# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/display/solomon,ssd1307fb.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Solomon SSD1307 OLED Controller Framebuffer maintainers: - Maxime Ripard - Javier Martinez Canillas properties: compatible: oneOf: # Deprecated compatible strings - enum: - solomon,ssd1305fb-i2c - solomon,ssd1306fb-i2c - solomon,ssd1307fb-i2c - solomon,ssd1309fb-i2c deprecated: true - enum: - sinowealth,sh1106 - solomon,ssd1305 - solomon,ssd1306 - solomon,ssd1307 - solomon,ssd1309 pwms: maxItems: 1 vbat-supply: description: The supply for VBAT solomon,page-offset: $ref: /schemas/types.yaml#/definitions/uint32 default: 1 description: Offset of pages (band of 8 pixels) that the screen is mapped to solomon,segment-no-remap: type: boolean description: Display needs normal (non-inverted) data column to segment mapping solomon,col-offset: $ref: /schemas/types.yaml#/definitions/uint32 default: 0 description: Offset of columns (COL/SEG) that the screen is mapped to solomon,com-seq: type: boolean description: Display uses sequential COM pin configuration solomon,com-lrremap: type: boolean description: Display uses left-right COM pin remap solomon,com-invdir: type: boolean description: Display uses inverted COM pin scan direction solomon,com-offset: $ref: /schemas/types.yaml#/definitions/uint32 default: 0 description: Number of the COM pin wired to the first display line solomon,prechargep1: $ref: /schemas/types.yaml#/definitions/uint32 default: 2 description: Length of deselect period (phase 1) in clock cycles solomon,prechargep2: $ref: /schemas/types.yaml#/definitions/uint32 default: 2 description: Length of precharge period (phase 2) in clock cycles. This needs to be the higher, the higher the capacitance of the OLED's pixels is. solomon,dclk-div: $ref: /schemas/types.yaml#/definitions/uint32 minimum: 1 maximum: 16 description: Clock divisor. The default value is controller-dependent. solomon,dclk-frq: $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 maximum: 15 description: Clock frequency, higher value means higher frequency. The default value is controller-dependent. solomon,lookup-table: $ref: /schemas/types.yaml#/definitions/uint8-array maxItems: 4 description: 8 bit value array of current drive pulse widths for BANK0, and colors A, B, and C. Each value in range of 31 to 63 for pulse widths of 32 to 64. Color D is always width 64. solomon,area-color-enable: type: boolean description: Display uses color mode solomon,low-power: type: boolean description: Display runs in low power mode required: - compatible - reg allOf: - $ref: solomon,ssd-common.yaml# - if: properties: compatible: contains: const: sinowealth,sh1106 then: properties: solomon,width: default: 132 solomon,height: default: 64 solomon,dclk-div: default: 1 solomon,dclk-frq: default: 5 - if: properties: compatible: contains: enum: - solomon,ssd1305-i2c - solomon,ssd1305 then: properties: solomon,width: default: 132 solomon,height: default: 64 solomon,dclk-div: default: 1 solomon,dclk-frq: default: 7 - if: properties: compatible: contains: enum: - solomon,ssd1306-i2c - solomon,ssd1306 then: properties: solomon,width: default: 128 solomon,height: default: 64 solomon,dclk-div: default: 1 solomon,dclk-frq: default: 8 - if: properties: compatible: contains: enum: - solomon,ssd1307-i2c - solomon,ssd1307 then: properties: solomon,width: default: 128 solomon,height: default: 39 solomon,dclk-div: default: 2 solomon,dclk-frq: default: 12 required: - pwms - if: properties: compatible: contains: enum: - solomon,ssd1309-i2c - solomon,ssd1309 then: properties: solomon,width: default: 128 solomon,height: default: 64 solomon,dclk-div: default: 1 solomon,dclk-frq: default: 10 unevaluatedProperties: false examples: - | i2c { #address-cells = <1>; #size-cells = <0>; ssd1307_i2c: oled@3c { compatible = "solomon,ssd1307"; reg = <0x3c>; pwms = <&pwm 4 3000>; reset-gpios = <&gpio2 7>; }; ssd1306_i2c: oled@3d { compatible = "solomon,ssd1306"; reg = <0x3d>; pwms = <&pwm 4 3000>; reset-gpios = <&gpio2 7>; solomon,com-lrremap; solomon,com-invdir; solomon,com-offset = <32>; solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>; }; }; - | spi { #address-cells = <1>; #size-cells = <0>; ssd1307_spi: oled@0 { compatible = "solomon,ssd1307"; reg = <0x0>; pwms = <&pwm 4 3000>; reset-gpios = <&gpio2 7>; dc-gpios = <&gpio2 8>; spi-max-frequency = <10000000>; }; ssd1306_spi: oled@1 { compatible = "solomon,ssd1306"; reg = <0x1>; pwms = <&pwm 4 3000>; reset-gpios = <&gpio2 7>; dc-gpios = <&gpio2 8>; spi-max-frequency = <10000000>; solomon,com-lrremap; solomon,com-invdir; solomon,com-offset = <32>; solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>; }; };