uboot/drivers/spi/sh_spi.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * SH SPI driver
   4 *
   5 * Copyright (C) 2011 Renesas Solutions Corp.
   6 */
   7
   8#ifndef __SH_SPI_H__
   9#define __SH_SPI_H__
  10
  11#include <spi.h>
  12
  13struct sh_spi_regs {
  14        unsigned long tbr_rbr;
  15        unsigned long resv1;
  16        unsigned long cr1;
  17        unsigned long resv2;
  18        unsigned long cr2;
  19        unsigned long resv3;
  20        unsigned long cr3;
  21        unsigned long resv4;
  22        unsigned long cr4;
  23};
  24
  25/* CR1 */
  26#define SH_SPI_TBE      0x80
  27#define SH_SPI_TBF      0x40
  28#define SH_SPI_RBE      0x20
  29#define SH_SPI_RBF      0x10
  30#define SH_SPI_PFONRD   0x08
  31#define SH_SPI_SSDB     0x04
  32#define SH_SPI_SSD      0x02
  33#define SH_SPI_SSA      0x01
  34
  35/* CR2 */
  36#define SH_SPI_RSTF     0x80
  37#define SH_SPI_LOOPBK   0x40
  38#define SH_SPI_CPOL     0x20
  39#define SH_SPI_CPHA     0x10
  40#define SH_SPI_L1M0     0x08
  41
  42/* CR3 */
  43#define SH_SPI_MAX_BYTE 0xFF
  44
  45/* CR4 */
  46#define SH_SPI_TBEI     0x80
  47#define SH_SPI_TBFI     0x40
  48#define SH_SPI_RBEI     0x20
  49#define SH_SPI_RBFI     0x10
  50#define SH_SPI_SSS1     0x08
  51#define SH_SPI_WPABRT   0x04
  52#define SH_SPI_SSS0     0x01
  53
  54#define SH_SPI_FIFO_SIZE        32
  55#define SH_SPI_NUM_CS           4
  56
  57struct sh_spi {
  58        struct spi_slave        slave;
  59        struct sh_spi_regs      *regs;
  60};
  61
  62static inline struct sh_spi *to_sh_spi(struct spi_slave *slave)
  63{
  64        return container_of(slave, struct sh_spi, slave);
  65}
  66
  67#endif
  68