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