]>
Commit | Line | Data |
---|---|---|
6639562e YS |
1 | /* |
2 | * SH SPI driver | |
3 | * | |
4 | * Copyright (C) 2011 Renesas Solutions Corp. | |
5 | * | |
5b8031cc | 6 | * SPDX-License-Identifier: GPL-2.0 |
6639562e YS |
7 | */ |
8 | ||
9 | #ifndef __SH_SPI_H__ | |
10 | #define __SH_SPI_H__ | |
11 | ||
12 | #include <spi.h> | |
13 | ||
14 | struct 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 | |
c1d4ad94 | 51 | #define SH_SPI_SSS1 0x08 |
6639562e | 52 | #define SH_SPI_WPABRT 0x04 |
c1d4ad94 | 53 | #define SH_SPI_SSS0 0x01 |
6639562e YS |
54 | |
55 | #define SH_SPI_FIFO_SIZE 32 | |
c1d4ad94 | 56 | #define SH_SPI_NUM_CS 4 |
6639562e YS |
57 | |
58 | struct sh_spi { | |
59 | struct spi_slave slave; | |
60 | struct sh_spi_regs *regs; | |
61 | }; | |
62 | ||
63 | static 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 |