xref: /freebsd/sys/contrib/device-tree/Bindings/display/solomon,ssd1307fb.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1354d7675SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2354d7675SEmmanuel Vadot%YAML 1.2
3354d7675SEmmanuel Vadot---
4354d7675SEmmanuel Vadot$id: http://devicetree.org/schemas/display/solomon,ssd1307fb.yaml#
5354d7675SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6354d7675SEmmanuel Vadot
7354d7675SEmmanuel Vadottitle: Solomon SSD1307 OLED Controller Framebuffer
8354d7675SEmmanuel Vadot
9354d7675SEmmanuel Vadotmaintainers:
10354d7675SEmmanuel Vadot  - Maxime Ripard <mripard@kernel.org>
11c9ccf3a3SEmmanuel Vadot  - Javier Martinez Canillas <javierm@redhat.com>
12354d7675SEmmanuel Vadot
13354d7675SEmmanuel Vadotproperties:
14354d7675SEmmanuel Vadot  compatible:
15d5b0e70fSEmmanuel Vadot    oneOf:
16d5b0e70fSEmmanuel Vadot      # Deprecated compatible strings
17d5b0e70fSEmmanuel Vadot      - enum:
18354d7675SEmmanuel Vadot          - solomon,ssd1305fb-i2c
19354d7675SEmmanuel Vadot          - solomon,ssd1306fb-i2c
20354d7675SEmmanuel Vadot          - solomon,ssd1307fb-i2c
21354d7675SEmmanuel Vadot          - solomon,ssd1309fb-i2c
22d5b0e70fSEmmanuel Vadot        deprecated: true
23d5b0e70fSEmmanuel Vadot      - enum:
24d5b0e70fSEmmanuel Vadot          - sinowealth,sh1106
25d5b0e70fSEmmanuel Vadot          - solomon,ssd1305
26d5b0e70fSEmmanuel Vadot          - solomon,ssd1306
27d5b0e70fSEmmanuel Vadot          - solomon,ssd1307
28d5b0e70fSEmmanuel Vadot          - solomon,ssd1309
29354d7675SEmmanuel Vadot
30354d7675SEmmanuel Vadot  pwms:
31354d7675SEmmanuel Vadot    maxItems: 1
32354d7675SEmmanuel Vadot
33354d7675SEmmanuel Vadot  vbat-supply:
34354d7675SEmmanuel Vadot    description: The supply for VBAT
35354d7675SEmmanuel Vadot
36354d7675SEmmanuel Vadot  solomon,page-offset:
37354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
38354d7675SEmmanuel Vadot    default: 1
39354d7675SEmmanuel Vadot    description:
40354d7675SEmmanuel Vadot      Offset of pages (band of 8 pixels) that the screen is mapped to
41354d7675SEmmanuel Vadot
42354d7675SEmmanuel Vadot  solomon,segment-no-remap:
43354d7675SEmmanuel Vadot    type: boolean
44354d7675SEmmanuel Vadot    description:
45354d7675SEmmanuel Vadot      Display needs normal (non-inverted) data column to segment mapping
46354d7675SEmmanuel Vadot
47354d7675SEmmanuel Vadot  solomon,col-offset:
48354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
49354d7675SEmmanuel Vadot    default: 0
50354d7675SEmmanuel Vadot    description:
51354d7675SEmmanuel Vadot      Offset of columns (COL/SEG) that the screen is mapped to
52354d7675SEmmanuel Vadot
53354d7675SEmmanuel Vadot  solomon,com-seq:
54354d7675SEmmanuel Vadot    type: boolean
55354d7675SEmmanuel Vadot    description:
56354d7675SEmmanuel Vadot      Display uses sequential COM pin configuration
57354d7675SEmmanuel Vadot
58354d7675SEmmanuel Vadot  solomon,com-lrremap:
59354d7675SEmmanuel Vadot    type: boolean
60354d7675SEmmanuel Vadot    description:
61354d7675SEmmanuel Vadot      Display uses left-right COM pin remap
62354d7675SEmmanuel Vadot
63354d7675SEmmanuel Vadot  solomon,com-invdir:
64354d7675SEmmanuel Vadot    type: boolean
65354d7675SEmmanuel Vadot    description:
66354d7675SEmmanuel Vadot      Display uses inverted COM pin scan direction
67354d7675SEmmanuel Vadot
68354d7675SEmmanuel Vadot  solomon,com-offset:
69354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
70354d7675SEmmanuel Vadot    default: 0
71354d7675SEmmanuel Vadot    description:
72354d7675SEmmanuel Vadot      Number of the COM pin wired to the first display line
73354d7675SEmmanuel Vadot
74354d7675SEmmanuel Vadot  solomon,prechargep1:
75354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
76354d7675SEmmanuel Vadot    default: 2
77354d7675SEmmanuel Vadot    description:
78354d7675SEmmanuel Vadot      Length of deselect period (phase 1) in clock cycles
79354d7675SEmmanuel Vadot
80354d7675SEmmanuel Vadot  solomon,prechargep2:
81354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
82354d7675SEmmanuel Vadot    default: 2
83354d7675SEmmanuel Vadot    description:
84354d7675SEmmanuel Vadot      Length of precharge period (phase 2) in clock cycles.  This needs to be
85354d7675SEmmanuel Vadot      the higher, the higher the capacitance of the OLED's pixels is.
86354d7675SEmmanuel Vadot
87354d7675SEmmanuel Vadot  solomon,dclk-div:
88354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
89354d7675SEmmanuel Vadot    minimum: 1
90354d7675SEmmanuel Vadot    maximum: 16
91354d7675SEmmanuel Vadot    description:
92354d7675SEmmanuel Vadot      Clock divisor. The default value is controller-dependent.
93354d7675SEmmanuel Vadot
94354d7675SEmmanuel Vadot  solomon,dclk-frq:
95354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
96354d7675SEmmanuel Vadot    minimum: 0
97354d7675SEmmanuel Vadot    maximum: 15
98354d7675SEmmanuel Vadot    description:
99354d7675SEmmanuel Vadot      Clock frequency, higher value means higher frequency.
100354d7675SEmmanuel Vadot      The default value is controller-dependent.
101354d7675SEmmanuel Vadot
102354d7675SEmmanuel Vadot  solomon,lookup-table:
103354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8-array
104354d7675SEmmanuel Vadot    maxItems: 4
105354d7675SEmmanuel Vadot    description:
106354d7675SEmmanuel Vadot      8 bit value array of current drive pulse widths for BANK0, and colors A,
107354d7675SEmmanuel Vadot      B, and C. Each value in range of 31 to 63 for pulse widths of 32 to 64.
108354d7675SEmmanuel Vadot      Color D is always width 64.
109354d7675SEmmanuel Vadot
110354d7675SEmmanuel Vadot  solomon,area-color-enable:
111354d7675SEmmanuel Vadot    type: boolean
112354d7675SEmmanuel Vadot    description:
113354d7675SEmmanuel Vadot      Display uses color mode
114354d7675SEmmanuel Vadot
115354d7675SEmmanuel Vadot  solomon,low-power:
116354d7675SEmmanuel Vadot    type: boolean
117354d7675SEmmanuel Vadot    description:
118354d7675SEmmanuel Vadot      Display runs in low power mode
119354d7675SEmmanuel Vadot
120354d7675SEmmanuel Vadotrequired:
121354d7675SEmmanuel Vadot  - compatible
122354d7675SEmmanuel Vadot  - reg
123354d7675SEmmanuel Vadot
124354d7675SEmmanuel VadotallOf:
125*84943d6fSEmmanuel Vadot  - $ref: solomon,ssd-common.yaml#
126b97ee269SEmmanuel Vadot
127354d7675SEmmanuel Vadot  - if:
128354d7675SEmmanuel Vadot      properties:
129354d7675SEmmanuel Vadot        compatible:
130354d7675SEmmanuel Vadot          contains:
131d5b0e70fSEmmanuel Vadot            const: sinowealth,sh1106
132d5b0e70fSEmmanuel Vadot    then:
133d5b0e70fSEmmanuel Vadot      properties:
134aa1a8ff2SEmmanuel Vadot        width:
135aa1a8ff2SEmmanuel Vadot          default: 132
136aa1a8ff2SEmmanuel Vadot        height:
137aa1a8ff2SEmmanuel Vadot          default: 64
138d5b0e70fSEmmanuel Vadot        solomon,dclk-div:
139d5b0e70fSEmmanuel Vadot          default: 1
140d5b0e70fSEmmanuel Vadot        solomon,dclk-frq:
141d5b0e70fSEmmanuel Vadot          default: 5
142d5b0e70fSEmmanuel Vadot
143d5b0e70fSEmmanuel Vadot  - if:
144d5b0e70fSEmmanuel Vadot      properties:
145d5b0e70fSEmmanuel Vadot        compatible:
146d5b0e70fSEmmanuel Vadot          contains:
147d5b0e70fSEmmanuel Vadot            enum:
148d5b0e70fSEmmanuel Vadot              - solomon,ssd1305-i2c
149d5b0e70fSEmmanuel Vadot              - solomon,ssd1305
150354d7675SEmmanuel Vadot    then:
151354d7675SEmmanuel Vadot      properties:
152aa1a8ff2SEmmanuel Vadot        width:
153aa1a8ff2SEmmanuel Vadot          default: 132
154aa1a8ff2SEmmanuel Vadot        height:
155aa1a8ff2SEmmanuel Vadot          default: 64
156354d7675SEmmanuel Vadot        solomon,dclk-div:
157354d7675SEmmanuel Vadot          default: 1
158354d7675SEmmanuel Vadot        solomon,dclk-frq:
159354d7675SEmmanuel Vadot          default: 7
160354d7675SEmmanuel Vadot
161354d7675SEmmanuel Vadot  - if:
162354d7675SEmmanuel Vadot      properties:
163354d7675SEmmanuel Vadot        compatible:
164354d7675SEmmanuel Vadot          contains:
165d5b0e70fSEmmanuel Vadot            enum:
166d5b0e70fSEmmanuel Vadot              - solomon,ssd1306-i2c
167d5b0e70fSEmmanuel Vadot              - solomon,ssd1306
168354d7675SEmmanuel Vadot    then:
169354d7675SEmmanuel Vadot      properties:
170aa1a8ff2SEmmanuel Vadot        width:
171aa1a8ff2SEmmanuel Vadot          default: 128
172aa1a8ff2SEmmanuel Vadot        height:
173aa1a8ff2SEmmanuel Vadot          default: 64
174354d7675SEmmanuel Vadot        solomon,dclk-div:
175354d7675SEmmanuel Vadot          default: 1
176354d7675SEmmanuel Vadot        solomon,dclk-frq:
177354d7675SEmmanuel Vadot          default: 8
178354d7675SEmmanuel Vadot
179354d7675SEmmanuel Vadot  - if:
180354d7675SEmmanuel Vadot      properties:
181354d7675SEmmanuel Vadot        compatible:
182354d7675SEmmanuel Vadot          contains:
183d5b0e70fSEmmanuel Vadot            enum:
184d5b0e70fSEmmanuel Vadot              - solomon,ssd1307-i2c
185d5b0e70fSEmmanuel Vadot              - solomon,ssd1307
186354d7675SEmmanuel Vadot    then:
187354d7675SEmmanuel Vadot      properties:
188aa1a8ff2SEmmanuel Vadot        width:
189aa1a8ff2SEmmanuel Vadot          default: 128
190aa1a8ff2SEmmanuel Vadot        height:
191aa1a8ff2SEmmanuel Vadot          default: 39
192354d7675SEmmanuel Vadot        solomon,dclk-div:
193354d7675SEmmanuel Vadot          default: 2
194354d7675SEmmanuel Vadot        solomon,dclk-frq:
195354d7675SEmmanuel Vadot          default: 12
196354d7675SEmmanuel Vadot      required:
197354d7675SEmmanuel Vadot        - pwms
198354d7675SEmmanuel Vadot
199354d7675SEmmanuel Vadot  - if:
200354d7675SEmmanuel Vadot      properties:
201354d7675SEmmanuel Vadot        compatible:
202354d7675SEmmanuel Vadot          contains:
203d5b0e70fSEmmanuel Vadot            enum:
204d5b0e70fSEmmanuel Vadot              - solomon,ssd1309-i2c
205d5b0e70fSEmmanuel Vadot              - solomon,ssd1309
206354d7675SEmmanuel Vadot    then:
207354d7675SEmmanuel Vadot      properties:
208aa1a8ff2SEmmanuel Vadot        width:
209aa1a8ff2SEmmanuel Vadot          default: 128
210aa1a8ff2SEmmanuel Vadot        height:
211aa1a8ff2SEmmanuel Vadot          default: 64
212354d7675SEmmanuel Vadot        solomon,dclk-div:
213354d7675SEmmanuel Vadot          default: 1
214354d7675SEmmanuel Vadot        solomon,dclk-frq:
215354d7675SEmmanuel Vadot          default: 10
216354d7675SEmmanuel Vadot
217b97ee269SEmmanuel VadotunevaluatedProperties: false
218354d7675SEmmanuel Vadot
219354d7675SEmmanuel Vadotexamples:
220354d7675SEmmanuel Vadot  - |
221fac71e4eSEmmanuel Vadot    i2c {
222354d7675SEmmanuel Vadot            #address-cells = <1>;
223354d7675SEmmanuel Vadot            #size-cells = <0>;
224354d7675SEmmanuel Vadot
225d5b0e70fSEmmanuel Vadot            ssd1307_i2c: oled@3c {
226d5b0e70fSEmmanuel Vadot                    compatible = "solomon,ssd1307";
227354d7675SEmmanuel Vadot                    reg = <0x3c>;
228354d7675SEmmanuel Vadot                    pwms = <&pwm 4 3000>;
229354d7675SEmmanuel Vadot                    reset-gpios = <&gpio2 7>;
230354d7675SEmmanuel Vadot            };
231354d7675SEmmanuel Vadot
232d5b0e70fSEmmanuel Vadot            ssd1306_i2c: oled@3d {
233d5b0e70fSEmmanuel Vadot                    compatible = "solomon,ssd1306";
234fac71e4eSEmmanuel Vadot                    reg = <0x3d>;
235354d7675SEmmanuel Vadot                    pwms = <&pwm 4 3000>;
236354d7675SEmmanuel Vadot                    reset-gpios = <&gpio2 7>;
237354d7675SEmmanuel Vadot                    solomon,com-lrremap;
238354d7675SEmmanuel Vadot                    solomon,com-invdir;
239354d7675SEmmanuel Vadot                    solomon,com-offset = <32>;
240354d7675SEmmanuel Vadot                    solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>;
241354d7675SEmmanuel Vadot            };
242354d7675SEmmanuel Vadot    };
243d5b0e70fSEmmanuel Vadot  - |
244d5b0e70fSEmmanuel Vadot    spi {
245d5b0e70fSEmmanuel Vadot            #address-cells = <1>;
246d5b0e70fSEmmanuel Vadot            #size-cells = <0>;
247d5b0e70fSEmmanuel Vadot
248d5b0e70fSEmmanuel Vadot            ssd1307_spi: oled@0 {
249d5b0e70fSEmmanuel Vadot                    compatible = "solomon,ssd1307";
250d5b0e70fSEmmanuel Vadot                    reg = <0x0>;
251d5b0e70fSEmmanuel Vadot                    pwms = <&pwm 4 3000>;
252d5b0e70fSEmmanuel Vadot                    reset-gpios = <&gpio2 7>;
253d5b0e70fSEmmanuel Vadot                    dc-gpios = <&gpio2 8>;
254d5b0e70fSEmmanuel Vadot                    spi-max-frequency = <10000000>;
255d5b0e70fSEmmanuel Vadot            };
256d5b0e70fSEmmanuel Vadot
257d5b0e70fSEmmanuel Vadot            ssd1306_spi: oled@1 {
258d5b0e70fSEmmanuel Vadot                    compatible = "solomon,ssd1306";
259d5b0e70fSEmmanuel Vadot                    reg = <0x1>;
260d5b0e70fSEmmanuel Vadot                    pwms = <&pwm 4 3000>;
261d5b0e70fSEmmanuel Vadot                    reset-gpios = <&gpio2 7>;
262d5b0e70fSEmmanuel Vadot                    dc-gpios = <&gpio2 8>;
263d5b0e70fSEmmanuel Vadot                    spi-max-frequency = <10000000>;
264d5b0e70fSEmmanuel Vadot                    solomon,com-lrremap;
265d5b0e70fSEmmanuel Vadot                    solomon,com-invdir;
266d5b0e70fSEmmanuel Vadot                    solomon,com-offset = <32>;
267d5b0e70fSEmmanuel Vadot                    solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>;
268d5b0e70fSEmmanuel Vadot            };
269d5b0e70fSEmmanuel Vadot    };
270