209 lines
4.9 KiB
YAML
209 lines
4.9 KiB
YAML
|
# 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>
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
enum:
|
||
|
- solomon,ssd1305fb-i2c
|
||
|
- solomon,ssd1306fb-i2c
|
||
|
- solomon,ssd1307fb-i2c
|
||
|
- solomon,ssd1309fb-i2c
|
||
|
|
||
|
reg:
|
||
|
maxItems: 1
|
||
|
|
||
|
pwms:
|
||
|
maxItems: 1
|
||
|
|
||
|
reset-gpios:
|
||
|
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:
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: solomon,ssd1305fb-i2c
|
||
|
then:
|
||
|
properties:
|
||
|
solomon,dclk-div:
|
||
|
default: 1
|
||
|
solomon,dclk-frq:
|
||
|
default: 7
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: solomon,ssd1306fb-i2c
|
||
|
then:
|
||
|
properties:
|
||
|
solomon,dclk-div:
|
||
|
default: 1
|
||
|
solomon,dclk-frq:
|
||
|
default: 8
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: solomon,ssd1307fb-i2c
|
||
|
then:
|
||
|
properties:
|
||
|
solomon,dclk-div:
|
||
|
default: 2
|
||
|
solomon,dclk-frq:
|
||
|
default: 12
|
||
|
required:
|
||
|
- pwms
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: solomon,ssd1309fb-i2c
|
||
|
then:
|
||
|
properties:
|
||
|
solomon,dclk-div:
|
||
|
default: 1
|
||
|
solomon,dclk-frq:
|
||
|
default: 10
|
||
|
|
||
|
additionalProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
i2c1 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
ssd1307: oled@3c {
|
||
|
compatible = "solomon,ssd1307fb-i2c";
|
||
|
reg = <0x3c>;
|
||
|
pwms = <&pwm 4 3000>;
|
||
|
reset-gpios = <&gpio2 7>;
|
||
|
};
|
||
|
|
||
|
ssd1306: oled@3d {
|
||
|
compatible = "solomon,ssd1306fb-i2c";
|
||
|
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>;
|
||
|
};
|
||
|
};
|