Line data Source code
1 0 : /*
2 : * Copyright 2024 NXP
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_MIPI_DBI_MIPI_DBI_H_
8 : #define ZEPHYR_INCLUDE_DT_BINDINGS_MIPI_DBI_MIPI_DBI_H_
9 :
10 : /**
11 : * @brief MIPI-DBI driver APIs
12 : * @defgroup mipi_dbi_interface MIPI-DBI driver APIs
13 : * @ingroup io_interfaces
14 : * @{
15 : */
16 :
17 : /**
18 : * SPI 3 wire (Type C1). Uses 9 write clocks to send a byte of data.
19 : * The bit sent on the 9th clock indicates whether the byte is a
20 : * command or data byte
21 : *
22 : *
23 : * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-
24 : * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-'
25 : *
26 : * -.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.-
27 : * DOUT |D/C| D7| D6| D5| D4| D3| D2| D1| D0|D/C| D7| D6| D5| D4|...|
28 : * -'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'-
29 : * | Word 1 | Word n
30 : *
31 : * -. .-
32 : * CS '-----------------------------------------------------------'
33 : */
34 1 : #define MIPI_DBI_MODE_SPI_3WIRE 0x1
35 : /**
36 : * SPI 4 wire (Type C3). Uses 8 write clocks to send a byte of data.
37 : * an additional C/D pin will be use to indicate whether the byte is a
38 : * command or data byte
39 : *
40 : * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
41 : * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '---
42 : *
43 : * -.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.-
44 : * DOUT | D7| D6| D5| D4| D3| D2| D1| D0| D7| D6| D5| D4| D3| D2| D1| D0|
45 : * -'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'-
46 : * | Word 1 | Word n
47 : *
48 : * -. .-
49 : * CS '---------------------------------------------------------------'
50 : *
51 : * -.-------------------------------.-------------------------------.-
52 : * CD | D/C | D/C |
53 : * -'-------------------------------'-------------------------------'-
54 : */
55 1 : #define MIPI_DBI_MODE_SPI_4WIRE 0x2
56 : /**
57 : * Parallel Bus protocol for MIPI DBI Type A based on Motorola 6800 bus.
58 : *
59 : * -. .--------. .------------------------
60 : * CS '---' '---'
61 : *
62 : * -------------------------------------------
63 : * RESX
64 : *
65 : * .--------------------------------
66 : * D/CX ----------'
67 : *
68 : *
69 : * R/WX -------------------------------------------
70 : *
71 : * -------------------------------------------
72 : * E
73 : *
74 : * .--------. .--------------------------.
75 : * D[15:0]/ -| COMMAND|---| DATA |
76 : * D[8:0]/ '--------' '--------------------------'
77 : * D[7:0]
78 : *
79 : * Please refer to the MIPI DBI specification for a detailed cycle diagram.
80 : */
81 1 : #define MIPI_DBI_MODE_6800_BUS_16_BIT 0x3
82 0 : #define MIPI_DBI_MODE_6800_BUS_9_BIT 0x4
83 0 : #define MIPI_DBI_MODE_6800_BUS_8_BIT 0x5
84 : /**
85 : * Parallel Bus protocol for MIPI DBI Type B based on Intel 8080 bus.
86 : *
87 : * -. .-
88 : * CS '---------------------------------------'
89 : *
90 : * -------------------------------------------
91 : * RESX
92 : *
93 : * --. .----------------------------
94 : * D/CX '-----------'
95 : *
96 : * ---. .--------. .----------------------
97 : * WRX '---' '---'
98 : *
99 : * -------------------------------------------
100 : * RDX
101 : *
102 : * .--------. .--------------------------.
103 : * D[15:0]/ ---| COMMAND|---| DATA |
104 : * D[8:0]/ '--------' '--------------------------'
105 : * D[7:0]
106 : *
107 : * Please refer to the MIPI DBI specification for a detailed cycle diagram.
108 : */
109 1 : #define MIPI_DBI_MODE_8080_BUS_16_BIT 0x6
110 0 : #define MIPI_DBI_MODE_8080_BUS_9_BIT 0x7
111 0 : #define MIPI_DBI_MODE_8080_BUS_8_BIT 0x8
112 :
113 : /** MIPI DBI tearing enable synchronization is disabled. */
114 1 : #define MIPI_DBI_TE_NO_EDGE 0x0
115 :
116 : /**
117 : * MIPI DBI tearing enable synchronization on rising edge of TE signal.
118 : * The controller will only send display write data on a rising edge of TE.
119 : * This should be used when the controller can send a frame worth of data
120 : * data to the display panel faster than the display panel can read a frame
121 : * from its RAM
122 : *
123 : * .------. .------.
124 : * TE -----' '------------------------' '-------------
125 : * -----. .----------------------.
126 : * CS '--------' '--------------------
127 : */
128 1 : #define MIPI_DBI_TE_RISING_EDGE 0x1
129 :
130 : /**
131 : * MIPI DBI tearing enable synchronization on falling edge of TE signal.
132 : * The controller will only send display write data on a falling edge of TE.
133 : * This should be used when the controller sends a frame worth of data
134 : * data to the display panel slower than the display panel can read a frame
135 : * from its RAM. TE synchronization in this mode will only work if the
136 : * controller can complete the write before the display panel completes 2
137 : * read cycles, otherwise the read pointer will "catch up" with the write
138 : * pointer.
139 : *
140 : * .------. .------.
141 : * TE -----' '------------------------' '-------------
142 : * ------------. .-----
143 : * CS '---------------------------------------'
144 : */
145 1 : #define MIPI_DBI_TE_FALLING_EDGE 0x2
146 :
147 : /**
148 : * SPI transfer of DBI commands as 8-bit blocks, the default behaviour in
149 : * SPI 4 wire (Type C3) mode. The clocking diagram corresponds exactly to
150 : * the illustration of Type C3.
151 : */
152 1 : #define MIPI_DBI_SPI_XFR_8BIT 8
153 : /**
154 : * SPI transfer of DBI commands as 16-bit blocks, a rare and seldom behaviour
155 : * in SPI 4 wire (Type C3) mode. The corresponding clocking diagram is slightly
156 : * different to the illustration of Type C3.
157 : *
158 : * .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
159 : * SCK -' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '---
160 : *
161 : * -.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.---.-
162 : * DOUT |D15|D14|D13|D12|D11|D10| D9| D8| D7| D6| D5| D4| D3| D2| D1| D0|
163 : * -'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'---'-
164 : * | Word 1 (stuffing) : (byte) |
165 : *
166 : * -. .-
167 : * CS '---------------------------------------------------------------'
168 : *
169 : * -.---------------------------------------------------------------.-
170 : * CD | D/C |
171 : * -'---------------------------------------------------------------'-
172 : */
173 1 : #define MIPI_DBI_SPI_XFR_16BIT 16
174 :
175 : /**
176 : * @}
177 : */
178 :
179 :
180 : #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_MIPI_DBI_MIPI_DBI_H_ */
|