| # 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 <mripard@kernel.org> |
| - Javier Martinez Canillas <javierm@redhat.com> |
| |
| properties: |
| compatible: |
| oneOf: |
| # Deprecated compatible strings |
| - items: |
| - enum: |
| - solomon,ssd1305fb-i2c |
| - solomon,ssd1306fb-i2c |
| - solomon,ssd1307fb-i2c |
| - solomon,ssd1309fb-i2c |
| deprecated: true |
| - items: |
| - enum: |
| - sinowealth,sh1106 |
| - solomon,ssd1305 |
| - solomon,ssd1306 |
| - solomon,ssd1307 |
| - solomon,ssd1309 |
| |
| reg: |
| maxItems: 1 |
| |
| pwms: |
| maxItems: 1 |
| |
| reset-gpios: |
| maxItems: 1 |
| |
| # Only required for SPI |
| dc-gpios: |
| description: |
| GPIO connected to the controller's D/C# (Data/Command) pin, |
| that is needed for 4-wire SPI to tell the controller if the |
| data sent is for a command register or the display data RAM |
| maxItems: 1 |
| |
| vbat-supply: |
| description: The supply for VBAT |
| |
| solomon,height: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| default: 16 |
| description: |
| Height in pixel of the screen driven by the controller |
| |
| solomon,width: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| default: 96 |
| description: |
| Width in pixel of the screen driven by the controller |
| |
| 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: /schemas/spi/spi-peripheral-props.yaml# |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: sinowealth,sh1106 |
| then: |
| properties: |
| solomon,dclk-div: |
| default: 1 |
| solomon,dclk-frq: |
| default: 5 |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - solomon,ssd1305-i2c |
| - solomon,ssd1305 |
| then: |
| properties: |
| solomon,dclk-div: |
| default: 1 |
| solomon,dclk-frq: |
| default: 7 |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - solomon,ssd1306-i2c |
| - solomon,ssd1306 |
| then: |
| properties: |
| solomon,dclk-div: |
| default: 1 |
| solomon,dclk-frq: |
| default: 8 |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - solomon,ssd1307-i2c |
| - solomon,ssd1307 |
| then: |
| properties: |
| 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,dclk-div: |
| default: 1 |
| solomon,dclk-frq: |
| default: 10 |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| i2c1 { |
| #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 = <0x3c>; |
| 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>; |
| }; |
| }; |