]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - drivers/spi/fsl_qspi.h
mmc: hi6220_dw_mmc: Add hi6220 glue code for dw_mmc controller.
[karo-tx-uboot.git] / drivers / spi / fsl_qspi.h
1 /*
2  * Copyright 2013-2014 Freescale Semiconductor, Inc.
3  *
4  * Register definitions for Freescale QSPI
5  *
6  * SPDX-License-Identifier:     GPL-2.0+
7  */
8
9 #ifndef _FSL_QSPI_H_
10 #define _FSL_QSPI_H_
11
12 struct fsl_qspi_regs {
13         u32 mcr;
14         u32 rsvd0[1];
15         u32 ipcr;
16         u32 flshcr;
17         u32 buf0cr;
18         u32 buf1cr;
19         u32 buf2cr;
20         u32 buf3cr;
21         u32 bfgencr;
22         u32 soccr;
23         u32 rsvd1[2];
24         u32 buf0ind;
25         u32 buf1ind;
26         u32 buf2ind;
27         u32 rsvd2[49];
28         u32 sfar;
29         u32 rsvd3[1];
30         u32 smpr;
31         u32 rbsr;
32         u32 rbct;
33         u32 rsvd4[15];
34         u32 tbsr;
35         u32 tbdr;
36         u32 rsvd5[1];
37         u32 sr;
38         u32 fr;
39         u32 rser;
40         u32 spndst;
41         u32 sptrclr;
42         u32 rsvd6[4];
43         u32 sfa1ad;
44         u32 sfa2ad;
45         u32 sfb1ad;
46         u32 sfb2ad;
47         u32 rsvd7[28];
48         u32 rbdr[32];
49         u32 rsvd8[32];
50         u32 lutkey;
51         u32 lckcr;
52         u32 rsvd9[2];
53         u32 lut[64];
54 };
55
56 #define QSPI_IPCR_SEQID_SHIFT           24
57 #define QSPI_IPCR_SEQID_MASK            (0xf << QSPI_IPCR_SEQID_SHIFT)
58
59 #define QSPI_MCR_END_CFD_SHIFT          2
60 #define QSPI_MCR_END_CFD_MASK           (3 << QSPI_MCR_END_CFD_SHIFT)
61 #ifdef CONFIG_SYS_FSL_QSPI_AHB
62 /* AHB needs 64bit operation */
63 #define QSPI_MCR_END_CFD_LE             (3 << QSPI_MCR_END_CFD_SHIFT)
64 #else
65 #define QSPI_MCR_END_CFD_LE             (1 << QSPI_MCR_END_CFD_SHIFT)
66 #endif
67 #define QSPI_MCR_DDR_EN_SHIFT           7
68 #define QSPI_MCR_DDR_EN_MASK            (1 << QSPI_MCR_DDR_EN_SHIFT)
69 #define QSPI_MCR_CLR_RXF_SHIFT          10
70 #define QSPI_MCR_CLR_RXF_MASK           (1 << QSPI_MCR_CLR_RXF_SHIFT)
71 #define QSPI_MCR_CLR_TXF_SHIFT          11
72 #define QSPI_MCR_CLR_TXF_MASK           (1 << QSPI_MCR_CLR_TXF_SHIFT)
73 #define QSPI_MCR_MDIS_SHIFT             14
74 #define QSPI_MCR_MDIS_MASK              (1 << QSPI_MCR_MDIS_SHIFT)
75 #define QSPI_MCR_RESERVED_SHIFT         16
76 #define QSPI_MCR_RESERVED_MASK          (0xf << QSPI_MCR_RESERVED_SHIFT)
77 #define QSPI_MCR_SWRSTHD_SHIFT          1
78 #define QSPI_MCR_SWRSTHD_MASK           (1 << QSPI_MCR_SWRSTHD_SHIFT)
79 #define QSPI_MCR_SWRSTSD_SHIFT          0
80 #define QSPI_MCR_SWRSTSD_MASK           (1 << QSPI_MCR_SWRSTSD_SHIFT)
81
82 #define QSPI_SMPR_HSENA_SHIFT           0
83 #define QSPI_SMPR_HSENA_MASK            (1 << QSPI_SMPR_HSENA_SHIFT)
84 #define QSPI_SMPR_FSPHS_SHIFT           5
85 #define QSPI_SMPR_FSPHS_MASK            (1 << QSPI_SMPR_FSPHS_SHIFT)
86 #define QSPI_SMPR_FSDLY_SHIFT           6
87 #define QSPI_SMPR_FSDLY_MASK            (1 << QSPI_SMPR_FSDLY_SHIFT)
88 #define QSPI_SMPR_DDRSMP_SHIFT          16
89 #define QSPI_SMPR_DDRSMP_MASK           (7 << QSPI_SMPR_DDRSMP_SHIFT)
90
91 #define QSPI_BUFXCR_INVALID_MSTRID      0xe
92 #define QSPI_BUF3CR_ALLMST_SHIFT        31
93 #define QSPI_BUF3CR_ALLMST_MASK         (1 << QSPI_BUF3CR_ALLMST_SHIFT)
94 #define QSPI_BUF3CR_ADATSZ_SHIFT        8
95 #define QSPI_BUF3CR_ADATSZ_MASK         (0xFF << QSPI_BUF3CR_ADATSZ_SHIFT)
96
97 #define QSPI_BFGENCR_SEQID_SHIFT        12
98 #define QSPI_BFGENCR_SEQID_MASK         (0xf << QSPI_BFGENCR_SEQID_SHIFT)
99 #define QSPI_BFGENCR_PAR_EN_SHIFT       16
100 #define QSPI_BFGENCR_PAR_EN_MASK        (1 << QSPI_BFGENCR_PAR_EN_SHIFT)
101
102 #define QSPI_RBSR_RDBFL_SHIFT           8
103 #define QSPI_RBSR_RDBFL_MASK            (0x3f << QSPI_RBSR_RDBFL_SHIFT)
104
105 #define QSPI_RBCT_RXBRD_SHIFT           8
106 #define QSPI_RBCT_RXBRD_USEIPS          (1 << QSPI_RBCT_RXBRD_SHIFT)
107
108 #define QSPI_SR_BUSY_SHIFT              0
109 #define QSPI_SR_BUSY_MASK               (1 << QSPI_SR_BUSY_SHIFT)
110
111 #define QSPI_LCKCR_LOCK                 0x1
112 #define QSPI_LCKCR_UNLOCK               0x2
113
114 #define LUT_KEY_VALUE                   0x5af05af0
115
116 #define OPRND0_SHIFT                    0
117 #define OPRND0(x)                       ((x) << OPRND0_SHIFT)
118 #define PAD0_SHIFT                      8
119 #define PAD0(x)                         ((x) << PAD0_SHIFT)
120 #define INSTR0_SHIFT                    10
121 #define INSTR0(x)                       ((x) << INSTR0_SHIFT)
122 #define OPRND1_SHIFT                    16
123 #define OPRND1(x)                       ((x) << OPRND1_SHIFT)
124 #define PAD1_SHIFT                      24
125 #define PAD1(x)                         ((x) << PAD1_SHIFT)
126 #define INSTR1_SHIFT                    26
127 #define INSTR1(x)                       ((x) << INSTR1_SHIFT)
128
129 #define LUT_CMD                         1
130 #define LUT_ADDR                        2
131 #define LUT_DUMMY                       3
132 #define LUT_READ                        7
133 #define LUT_WRITE                       8
134
135 #define LUT_PAD1                        0
136 #define LUT_PAD2                        1
137 #define LUT_PAD4                        2
138
139 #define ADDR24BIT                       0x18
140 #define ADDR32BIT                       0x20
141
142 #endif /* _FSL_QSPI_H_ */