1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/display/solomon,ssd1307fb.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Solomon SSD1307 OLED Controller Framebuffer
8
9 maintainers:
10 - Maxime Ripard <mripard@kernel.org>
11 - Javier Martinez Canillas <javierm@redhat.com>
12
13 properties:
14 compatible:
15 oneOf:
16 # Deprecated compatible strings
17 - items:
18 - enum:
19 - solomon,ssd1305fb-i2c
20 - solomon,ssd1306fb-i2c
21 - solomon,ssd1307fb-i2c
22 - solomon,ssd1309fb-i2c
23 deprecated: true
24 - items:
25 - enum:
26 - sinowealth,sh1106
27 - solomon,ssd1305
28 - solomon,ssd1306
29 - solomon,ssd1307
30 - solomon,ssd1309
31
32 reg:
33 maxItems: 1
34
35 pwms:
36 maxItems: 1
37
38 reset-gpios:
39 maxItems: 1
40
41 # Only required for SPI
42 dc-gpios:
43 description:
44 GPIO connected to the controller's D/C# (Data/Command) pin,
45 that is needed for 4-wire SPI to tell the controller if the
46 data sent is for a command register or the display data RAM
47 maxItems: 1
48
49 vbat-supply:
50 description: The supply for VBAT
51
52 solomon,height:
53 $ref: /schemas/types.yaml#/definitions/uint32
54 default: 16
55 description:
56 Height in pixel of the screen driven by the controller
57
58 solomon,width:
59 $ref: /schemas/types.yaml#/definitions/uint32
60 default: 96
61 description:
62 Width in pixel of the screen driven by the controller
63
64 solomon,page-offset:
65 $ref: /schemas/types.yaml#/definitions/uint32
66 default: 1
67 description:
68 Offset of pages (band of 8 pixels) that the screen is mapped to
69
70 solomon,segment-no-remap:
71 type: boolean
72 description:
73 Display needs normal (non-inverted) data column to segment mapping
74
75 solomon,col-offset:
76 $ref: /schemas/types.yaml#/definitions/uint32
77 default: 0
78 description:
79 Offset of columns (COL/SEG) that the screen is mapped to
80
81 solomon,com-seq:
82 type: boolean
83 description:
84 Display uses sequential COM pin configuration
85
86 solomon,com-lrremap:
87 type: boolean
88 description:
89 Display uses left-right COM pin remap
90
91 solomon,com-invdir:
92 type: boolean
93 description:
94 Display uses inverted COM pin scan direction
95
96 solomon,com-offset:
97 $ref: /schemas/types.yaml#/definitions/uint32
98 default: 0
99 description:
100 Number of the COM pin wired to the first display line
101
102 solomon,prechargep1:
103 $ref: /schemas/types.yaml#/definitions/uint32
104 default: 2
105 description:
106 Length of deselect period (phase 1) in clock cycles
107
108 solomon,prechargep2:
109 $ref: /schemas/types.yaml#/definitions/uint32
110 default: 2
111 description:
112 Length of precharge period (phase 2) in clock cycles. This needs to be
113 the higher, the higher the capacitance of the OLED's pixels is.
114
115 solomon,dclk-div:
116 $ref: /schemas/types.yaml#/definitions/uint32
117 minimum: 1
118 maximum: 16
119 description:
120 Clock divisor. The default value is controller-dependent.
121
122 solomon,dclk-frq:
123 $ref: /schemas/types.yaml#/definitions/uint32
124 minimum: 0
125 maximum: 15
126 description:
127 Clock frequency, higher value means higher frequency.
128 The default value is controller-dependent.
129
130 solomon,lookup-table:
131 $ref: /schemas/types.yaml#/definitions/uint8-array
132 maxItems: 4
133 description:
134 8 bit value array of current drive pulse widths for BANK0, and colors A,
135 B, and C. Each value in range of 31 to 63 for pulse widths of 32 to 64.
136 Color D is always width 64.
137
138 solomon,area-color-enable:
139 type: boolean
140 description:
141 Display uses color mode
142
143 solomon,low-power:
144 type: boolean
145 description:
146 Display runs in low power mode
147
148 required:
149 - compatible
150 - reg
151
152 allOf:
153 - $ref: /schemas/spi/spi-peripheral-props.yaml#
154
155 - if:
156 properties:
157 compatible:
158 contains:
159 const: sinowealth,sh1106
160 then:
161 properties:
162 solomon,dclk-div:
163 default: 1
164 solomon,dclk-frq:
165 default: 5
166
167 - if:
168 properties:
169 compatible:
170 contains:
171 enum:
172 - solomon,ssd1305-i2c
173 - solomon,ssd1305
174 then:
175 properties:
176 solomon,dclk-div:
177 default: 1
178 solomon,dclk-frq:
179 default: 7
180
181 - if:
182 properties:
183 compatible:
184 contains:
185 enum:
186 - solomon,ssd1306-i2c
187 - solomon,ssd1306
188 then:
189 properties:
190 solomon,dclk-div:
191 default: 1
192 solomon,dclk-frq:
193 default: 8
194
195 - if:
196 properties:
197 compatible:
198 contains:
199 enum:
200 - solomon,ssd1307-i2c
201 - solomon,ssd1307
202 then:
203 properties:
204 solomon,dclk-div:
205 default: 2
206 solomon,dclk-frq:
207 default: 12
208 required:
209 - pwms
210
211 - if:
212 properties:
213 compatible:
214 contains:
215 enum:
216 - solomon,ssd1309-i2c
217 - solomon,ssd1309
218 then:
219 properties:
220 solomon,dclk-div:
221 default: 1
222 solomon,dclk-frq:
223 default: 10
224
225 unevaluatedProperties: false
226
227 examples:
228 - |
229 i2c1 {
230 #address-cells = <1>;
231 #size-cells = <0>;
232
233 ssd1307_i2c: oled@3c {
234 compatible = "solomon,ssd1307";
235 reg = <0x3c>;
236 pwms = <&pwm 4 3000>;
237 reset-gpios = <&gpio2 7>;
238 };
239
240 ssd1306_i2c: oled@3d {
241 compatible = "solomon,ssd1306";
242 reg = <0x3c>;
243 pwms = <&pwm 4 3000>;
244 reset-gpios = <&gpio2 7>;
245 solomon,com-lrremap;
246 solomon,com-invdir;
247 solomon,com-offset = <32>;
248 solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>;
249 };
250 };
251 - |
252 spi {
253 #address-cells = <1>;
254 #size-cells = <0>;
255
256 ssd1307_spi: oled@0 {
257 compatible = "solomon,ssd1307";
258 reg = <0x0>;
259 pwms = <&pwm 4 3000>;
260 reset-gpios = <&gpio2 7>;
261 dc-gpios = <&gpio2 8>;
262 spi-max-frequency = <10000000>;
263 };
264
265 ssd1306_spi: oled@1 {
266 compatible = "solomon,ssd1306";
267 reg = <0x1>;
268 pwms = <&pwm 4 3000>;
269 reset-gpios = <&gpio2 7>;
270 dc-gpios = <&gpio2 8>;
271 spi-max-frequency = <10000000>;
272 solomon,com-lrremap;
273 solomon,com-invdir;
274 solomon,com-offset = <32>;
275 solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>;
276 };
277 };
Cache object: 64195b68a8bddc0775c60962db3ed646
|