11f49bf8bSGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 21f49bf8bSGeert Uytterhoeven%YAML 1.2 31f49bf8bSGeert Uytterhoeven--- 41f49bf8bSGeert Uytterhoeven$id: http://devicetree.org/schemas/display/solomon,ssd1307fb.yaml# 51f49bf8bSGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml# 61f49bf8bSGeert Uytterhoeven 71f49bf8bSGeert Uytterhoeventitle: Solomon SSD1307 OLED Controller Framebuffer 81f49bf8bSGeert Uytterhoeven 91f49bf8bSGeert Uytterhoevenmaintainers: 101f49bf8bSGeert Uytterhoeven - Maxime Ripard <mripard@kernel.org> 1121d26b39SJavier Martinez Canillas - Javier Martinez Canillas <javierm@redhat.com> 121f49bf8bSGeert Uytterhoeven 131f49bf8bSGeert Uytterhoevenproperties: 141f49bf8bSGeert Uytterhoeven compatible: 1536bf0611SJavier Martinez Canillas oneOf: 1636bf0611SJavier Martinez Canillas # Deprecated compatible strings 1736bf0611SJavier Martinez Canillas - enum: 181f49bf8bSGeert Uytterhoeven - solomon,ssd1305fb-i2c 191f49bf8bSGeert Uytterhoeven - solomon,ssd1306fb-i2c 201f49bf8bSGeert Uytterhoeven - solomon,ssd1307fb-i2c 211f49bf8bSGeert Uytterhoeven - solomon,ssd1309fb-i2c 2236bf0611SJavier Martinez Canillas deprecated: true 2336bf0611SJavier Martinez Canillas - enum: 2436bf0611SJavier Martinez Canillas - sinowealth,sh1106 2536bf0611SJavier Martinez Canillas - solomon,ssd1305 2636bf0611SJavier Martinez Canillas - solomon,ssd1306 2736bf0611SJavier Martinez Canillas - solomon,ssd1307 2836bf0611SJavier Martinez Canillas - solomon,ssd1309 291f49bf8bSGeert Uytterhoeven 301f49bf8bSGeert Uytterhoeven reg: 311f49bf8bSGeert Uytterhoeven maxItems: 1 321f49bf8bSGeert Uytterhoeven 331f49bf8bSGeert Uytterhoeven pwms: 341f49bf8bSGeert Uytterhoeven maxItems: 1 351f49bf8bSGeert Uytterhoeven 361f49bf8bSGeert Uytterhoeven reset-gpios: 371f49bf8bSGeert Uytterhoeven maxItems: 1 381f49bf8bSGeert Uytterhoeven 391b6a7961SJavier Martinez Canillas # Only required for SPI 401b6a7961SJavier Martinez Canillas dc-gpios: 411b6a7961SJavier Martinez Canillas description: 421b6a7961SJavier Martinez Canillas GPIO connected to the controller's D/C# (Data/Command) pin, 431b6a7961SJavier Martinez Canillas that is needed for 4-wire SPI to tell the controller if the 441b6a7961SJavier Martinez Canillas data sent is for a command register or the display data RAM 451b6a7961SJavier Martinez Canillas maxItems: 1 461b6a7961SJavier Martinez Canillas 471f49bf8bSGeert Uytterhoeven vbat-supply: 481f49bf8bSGeert Uytterhoeven description: The supply for VBAT 491f49bf8bSGeert Uytterhoeven 501f49bf8bSGeert Uytterhoeven solomon,height: 511f49bf8bSGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/uint32 521f49bf8bSGeert Uytterhoeven description: 53*591825fbSJavier Martinez Canillas Height in pixel of the screen driven by the controller. 54*591825fbSJavier Martinez Canillas The default value is controller-dependent. 551f49bf8bSGeert Uytterhoeven 561f49bf8bSGeert Uytterhoeven solomon,width: 571f49bf8bSGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/uint32 581f49bf8bSGeert Uytterhoeven description: 59*591825fbSJavier Martinez Canillas Width in pixel of the screen driven by the controller. 60*591825fbSJavier Martinez Canillas The default value is controller-dependent. 611f49bf8bSGeert Uytterhoeven 621f49bf8bSGeert Uytterhoeven solomon,page-offset: 631f49bf8bSGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/uint32 641f49bf8bSGeert Uytterhoeven default: 1 651f49bf8bSGeert Uytterhoeven description: 661f49bf8bSGeert Uytterhoeven Offset of pages (band of 8 pixels) that the screen is mapped to 671f49bf8bSGeert Uytterhoeven 681f49bf8bSGeert Uytterhoeven solomon,segment-no-remap: 691f49bf8bSGeert Uytterhoeven type: boolean 701f49bf8bSGeert Uytterhoeven description: 711f49bf8bSGeert Uytterhoeven Display needs normal (non-inverted) data column to segment mapping 721f49bf8bSGeert Uytterhoeven 731f49bf8bSGeert Uytterhoeven solomon,col-offset: 741f49bf8bSGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/uint32 751f49bf8bSGeert Uytterhoeven default: 0 761f49bf8bSGeert Uytterhoeven description: 771f49bf8bSGeert Uytterhoeven Offset of columns (COL/SEG) that the screen is mapped to 781f49bf8bSGeert Uytterhoeven 791f49bf8bSGeert Uytterhoeven solomon,com-seq: 801f49bf8bSGeert Uytterhoeven type: boolean 811f49bf8bSGeert Uytterhoeven description: 821f49bf8bSGeert Uytterhoeven Display uses sequential COM pin configuration 831f49bf8bSGeert Uytterhoeven 841f49bf8bSGeert Uytterhoeven solomon,com-lrremap: 851f49bf8bSGeert Uytterhoeven type: boolean 861f49bf8bSGeert Uytterhoeven description: 871f49bf8bSGeert Uytterhoeven Display uses left-right COM pin remap 881f49bf8bSGeert Uytterhoeven 891f49bf8bSGeert Uytterhoeven solomon,com-invdir: 901f49bf8bSGeert Uytterhoeven type: boolean 911f49bf8bSGeert Uytterhoeven description: 921f49bf8bSGeert Uytterhoeven Display uses inverted COM pin scan direction 931f49bf8bSGeert Uytterhoeven 941f49bf8bSGeert Uytterhoeven solomon,com-offset: 951f49bf8bSGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/uint32 961f49bf8bSGeert Uytterhoeven default: 0 971f49bf8bSGeert Uytterhoeven description: 981f49bf8bSGeert Uytterhoeven Number of the COM pin wired to the first display line 991f49bf8bSGeert Uytterhoeven 1001f49bf8bSGeert Uytterhoeven solomon,prechargep1: 1011f49bf8bSGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/uint32 1021f49bf8bSGeert Uytterhoeven default: 2 1031f49bf8bSGeert Uytterhoeven description: 1041f49bf8bSGeert Uytterhoeven Length of deselect period (phase 1) in clock cycles 1051f49bf8bSGeert Uytterhoeven 1061f49bf8bSGeert Uytterhoeven solomon,prechargep2: 1071f49bf8bSGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/uint32 1081f49bf8bSGeert Uytterhoeven default: 2 1091f49bf8bSGeert Uytterhoeven description: 1101f49bf8bSGeert Uytterhoeven Length of precharge period (phase 2) in clock cycles. This needs to be 1111f49bf8bSGeert Uytterhoeven the higher, the higher the capacitance of the OLED's pixels is. 1121f49bf8bSGeert Uytterhoeven 1131f49bf8bSGeert Uytterhoeven solomon,dclk-div: 1141f49bf8bSGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/uint32 1151f49bf8bSGeert Uytterhoeven minimum: 1 1161f49bf8bSGeert Uytterhoeven maximum: 16 1171f49bf8bSGeert Uytterhoeven description: 1181f49bf8bSGeert Uytterhoeven Clock divisor. The default value is controller-dependent. 1191f49bf8bSGeert Uytterhoeven 1201f49bf8bSGeert Uytterhoeven solomon,dclk-frq: 1211f49bf8bSGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/uint32 1221f49bf8bSGeert Uytterhoeven minimum: 0 1231f49bf8bSGeert Uytterhoeven maximum: 15 1241f49bf8bSGeert Uytterhoeven description: 1251f49bf8bSGeert Uytterhoeven Clock frequency, higher value means higher frequency. 1261f49bf8bSGeert Uytterhoeven The default value is controller-dependent. 1271f49bf8bSGeert Uytterhoeven 1281f49bf8bSGeert Uytterhoeven solomon,lookup-table: 1291f49bf8bSGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/uint8-array 1301f49bf8bSGeert Uytterhoeven maxItems: 4 1311f49bf8bSGeert Uytterhoeven description: 1321f49bf8bSGeert Uytterhoeven 8 bit value array of current drive pulse widths for BANK0, and colors A, 1331f49bf8bSGeert Uytterhoeven B, and C. Each value in range of 31 to 63 for pulse widths of 32 to 64. 1341f49bf8bSGeert Uytterhoeven Color D is always width 64. 1351f49bf8bSGeert Uytterhoeven 1361f49bf8bSGeert Uytterhoeven solomon,area-color-enable: 1371f49bf8bSGeert Uytterhoeven type: boolean 1381f49bf8bSGeert Uytterhoeven description: 1391f49bf8bSGeert Uytterhoeven Display uses color mode 1401f49bf8bSGeert Uytterhoeven 1411f49bf8bSGeert Uytterhoeven solomon,low-power: 1421f49bf8bSGeert Uytterhoeven type: boolean 1431f49bf8bSGeert Uytterhoeven description: 1441f49bf8bSGeert Uytterhoeven Display runs in low power mode 1451f49bf8bSGeert Uytterhoeven 1461f49bf8bSGeert Uytterhoevenrequired: 1471f49bf8bSGeert Uytterhoeven - compatible 1481f49bf8bSGeert Uytterhoeven - reg 1491f49bf8bSGeert Uytterhoeven 1501f49bf8bSGeert UytterhoevenallOf: 151944ad762SKrzysztof Kozlowski - $ref: /schemas/spi/spi-peripheral-props.yaml# 152944ad762SKrzysztof Kozlowski 1531f49bf8bSGeert Uytterhoeven - if: 1541f49bf8bSGeert Uytterhoeven properties: 1551f49bf8bSGeert Uytterhoeven compatible: 1561f49bf8bSGeert Uytterhoeven contains: 15736bf0611SJavier Martinez Canillas const: sinowealth,sh1106 15897a40c23SChen-Yu Tsai then: 15997a40c23SChen-Yu Tsai properties: 160*591825fbSJavier Martinez Canillas width: 161*591825fbSJavier Martinez Canillas default: 132 162*591825fbSJavier Martinez Canillas height: 163*591825fbSJavier Martinez Canillas default: 64 16497a40c23SChen-Yu Tsai solomon,dclk-div: 16597a40c23SChen-Yu Tsai default: 1 16697a40c23SChen-Yu Tsai solomon,dclk-frq: 16797a40c23SChen-Yu Tsai default: 5 16897a40c23SChen-Yu Tsai 16997a40c23SChen-Yu Tsai - if: 17097a40c23SChen-Yu Tsai properties: 17197a40c23SChen-Yu Tsai compatible: 17297a40c23SChen-Yu Tsai contains: 17336bf0611SJavier Martinez Canillas enum: 17436bf0611SJavier Martinez Canillas - solomon,ssd1305-i2c 17536bf0611SJavier Martinez Canillas - solomon,ssd1305 1761f49bf8bSGeert Uytterhoeven then: 1771f49bf8bSGeert Uytterhoeven properties: 178*591825fbSJavier Martinez Canillas width: 179*591825fbSJavier Martinez Canillas default: 132 180*591825fbSJavier Martinez Canillas height: 181*591825fbSJavier Martinez Canillas default: 64 1821f49bf8bSGeert Uytterhoeven solomon,dclk-div: 1831f49bf8bSGeert Uytterhoeven default: 1 1841f49bf8bSGeert Uytterhoeven solomon,dclk-frq: 1851f49bf8bSGeert Uytterhoeven default: 7 1861f49bf8bSGeert Uytterhoeven 1871f49bf8bSGeert Uytterhoeven - if: 1881f49bf8bSGeert Uytterhoeven properties: 1891f49bf8bSGeert Uytterhoeven compatible: 1901f49bf8bSGeert Uytterhoeven contains: 19136bf0611SJavier Martinez Canillas enum: 19236bf0611SJavier Martinez Canillas - solomon,ssd1306-i2c 19336bf0611SJavier Martinez Canillas - solomon,ssd1306 1941f49bf8bSGeert Uytterhoeven then: 1951f49bf8bSGeert Uytterhoeven properties: 196*591825fbSJavier Martinez Canillas width: 197*591825fbSJavier Martinez Canillas default: 128 198*591825fbSJavier Martinez Canillas height: 199*591825fbSJavier Martinez Canillas default: 64 2001f49bf8bSGeert Uytterhoeven solomon,dclk-div: 2011f49bf8bSGeert Uytterhoeven default: 1 2021f49bf8bSGeert Uytterhoeven solomon,dclk-frq: 2031f49bf8bSGeert Uytterhoeven default: 8 2041f49bf8bSGeert Uytterhoeven 2051f49bf8bSGeert Uytterhoeven - if: 2061f49bf8bSGeert Uytterhoeven properties: 2071f49bf8bSGeert Uytterhoeven compatible: 2081f49bf8bSGeert Uytterhoeven contains: 20936bf0611SJavier Martinez Canillas enum: 21036bf0611SJavier Martinez Canillas - solomon,ssd1307-i2c 21136bf0611SJavier Martinez Canillas - solomon,ssd1307 2121f49bf8bSGeert Uytterhoeven then: 2131f49bf8bSGeert Uytterhoeven properties: 214*591825fbSJavier Martinez Canillas width: 215*591825fbSJavier Martinez Canillas default: 128 216*591825fbSJavier Martinez Canillas height: 217*591825fbSJavier Martinez Canillas default: 39 2181f49bf8bSGeert Uytterhoeven solomon,dclk-div: 2191f49bf8bSGeert Uytterhoeven default: 2 2201f49bf8bSGeert Uytterhoeven solomon,dclk-frq: 2211f49bf8bSGeert Uytterhoeven default: 12 2221f49bf8bSGeert Uytterhoeven required: 2231f49bf8bSGeert Uytterhoeven - pwms 2241f49bf8bSGeert Uytterhoeven 2251f49bf8bSGeert Uytterhoeven - if: 2261f49bf8bSGeert Uytterhoeven properties: 2271f49bf8bSGeert Uytterhoeven compatible: 2281f49bf8bSGeert Uytterhoeven contains: 22936bf0611SJavier Martinez Canillas enum: 23036bf0611SJavier Martinez Canillas - solomon,ssd1309-i2c 23136bf0611SJavier Martinez Canillas - solomon,ssd1309 2321f49bf8bSGeert Uytterhoeven then: 2331f49bf8bSGeert Uytterhoeven properties: 234*591825fbSJavier Martinez Canillas width: 235*591825fbSJavier Martinez Canillas default: 128 236*591825fbSJavier Martinez Canillas height: 237*591825fbSJavier Martinez Canillas default: 64 2381f49bf8bSGeert Uytterhoeven solomon,dclk-div: 2391f49bf8bSGeert Uytterhoeven default: 1 2401f49bf8bSGeert Uytterhoeven solomon,dclk-frq: 2411f49bf8bSGeert Uytterhoeven default: 10 2421f49bf8bSGeert Uytterhoeven 243944ad762SKrzysztof KozlowskiunevaluatedProperties: false 2441f49bf8bSGeert Uytterhoeven 2451f49bf8bSGeert Uytterhoevenexamples: 2461f49bf8bSGeert Uytterhoeven - | 24720a72af1SRob Herring i2c { 2481f49bf8bSGeert Uytterhoeven #address-cells = <1>; 2491f49bf8bSGeert Uytterhoeven #size-cells = <0>; 2501f49bf8bSGeert Uytterhoeven 2511b6a7961SJavier Martinez Canillas ssd1307_i2c: oled@3c { 25236bf0611SJavier Martinez Canillas compatible = "solomon,ssd1307"; 2531f49bf8bSGeert Uytterhoeven reg = <0x3c>; 2541f49bf8bSGeert Uytterhoeven pwms = <&pwm 4 3000>; 2551f49bf8bSGeert Uytterhoeven reset-gpios = <&gpio2 7>; 2561f49bf8bSGeert Uytterhoeven }; 2571f49bf8bSGeert Uytterhoeven 2581b6a7961SJavier Martinez Canillas ssd1306_i2c: oled@3d { 25936bf0611SJavier Martinez Canillas compatible = "solomon,ssd1306"; 26020a72af1SRob Herring reg = <0x3d>; 2611f49bf8bSGeert Uytterhoeven pwms = <&pwm 4 3000>; 2621f49bf8bSGeert Uytterhoeven reset-gpios = <&gpio2 7>; 2631f49bf8bSGeert Uytterhoeven solomon,com-lrremap; 2641f49bf8bSGeert Uytterhoeven solomon,com-invdir; 2651f49bf8bSGeert Uytterhoeven solomon,com-offset = <32>; 2661f49bf8bSGeert Uytterhoeven solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>; 2671f49bf8bSGeert Uytterhoeven }; 2681f49bf8bSGeert Uytterhoeven }; 2691b6a7961SJavier Martinez Canillas - | 2701b6a7961SJavier Martinez Canillas spi { 2711b6a7961SJavier Martinez Canillas #address-cells = <1>; 2721b6a7961SJavier Martinez Canillas #size-cells = <0>; 2731b6a7961SJavier Martinez Canillas 2741b6a7961SJavier Martinez Canillas ssd1307_spi: oled@0 { 2751b6a7961SJavier Martinez Canillas compatible = "solomon,ssd1307"; 2761b6a7961SJavier Martinez Canillas reg = <0x0>; 2771b6a7961SJavier Martinez Canillas pwms = <&pwm 4 3000>; 2781b6a7961SJavier Martinez Canillas reset-gpios = <&gpio2 7>; 2791b6a7961SJavier Martinez Canillas dc-gpios = <&gpio2 8>; 2801b6a7961SJavier Martinez Canillas spi-max-frequency = <10000000>; 2811b6a7961SJavier Martinez Canillas }; 2821b6a7961SJavier Martinez Canillas 2831b6a7961SJavier Martinez Canillas ssd1306_spi: oled@1 { 2841b6a7961SJavier Martinez Canillas compatible = "solomon,ssd1306"; 2851b6a7961SJavier Martinez Canillas reg = <0x1>; 2861b6a7961SJavier Martinez Canillas pwms = <&pwm 4 3000>; 2871b6a7961SJavier Martinez Canillas reset-gpios = <&gpio2 7>; 2881b6a7961SJavier Martinez Canillas dc-gpios = <&gpio2 8>; 2891b6a7961SJavier Martinez Canillas spi-max-frequency = <10000000>; 2901b6a7961SJavier Martinez Canillas solomon,com-lrremap; 2911b6a7961SJavier Martinez Canillas solomon,com-invdir; 2921b6a7961SJavier Martinez Canillas solomon,com-offset = <32>; 2931b6a7961SJavier Martinez Canillas solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>; 2941b6a7961SJavier Martinez Canillas }; 2951b6a7961SJavier Martinez Canillas }; 296