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