* [PATCH] dt-bindings: display: ssd1307fb: Convert to json-schema
@ 2021-05-18 7:51 Geert Uytterhoeven
2021-05-18 14:33 ` Maxime Ripard
2021-05-19 21:33 ` Rob Herring
0 siblings, 2 replies; 5+ messages in thread
From: Geert Uytterhoeven @ 2021-05-18 7:51 UTC (permalink / raw)
To: Rob Herring, Maxime Ripard, David Airlie, Daniel Vetter
Cc: linux-fbdev, dri-devel, devicetree, Geert Uytterhoeven
Convert the Solomon SSD1307 Framebuffer Device Tree binding
documentation to json-schema.
Fix the spelling of the "pwms" property.
Document default values.
Make properties with default values not required.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
I have listed Maxime as the maintainer, as he wrote the original driver
and bindings. Maxime: Please scream if this is inappropriate ;-)
---
.../bindings/display/solomon,ssd1307fb.yaml | 166 ++++++++++++++++++
.../devicetree/bindings/display/ssd1307fb.txt | 60 -------
2 files changed, 166 insertions(+), 60 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
delete mode 100644 Documentation/devicetree/bindings/display/ssd1307fb.txt
diff --git a/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml b/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
new file mode 100644
index 0000000000000000..bd632d86a4f814a0
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
@@ -0,0 +1,166 @@
+# 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
+
+if:
+ properties:
+ compatible:
+ contains:
+ const: solomon,ssd1307fb-i2c
+then:
+ required:
+ - pwms
+
+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>;
+ };
+ };
diff --git a/Documentation/devicetree/bindings/display/ssd1307fb.txt b/Documentation/devicetree/bindings/display/ssd1307fb.txt
deleted file mode 100644
index 2dcb6d12d1371536..0000000000000000
--- a/Documentation/devicetree/bindings/display/ssd1307fb.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-* Solomon SSD1307 Framebuffer Driver
-
-Required properties:
- - compatible: Should be "solomon,<chip>fb-<bus>". The only supported bus for
- now is i2c, and the supported chips are ssd1305, ssd1306, ssd1307 and
- ssd1309.
- - reg: Should contain address of the controller on the I2C bus. Most likely
- 0x3c or 0x3d
- - pwm: Should contain the pwm to use according to the OF device tree PWM
- specification [0]. Only required for the ssd1307.
- - solomon,height: Height in pixel of the screen driven by the controller
- - solomon,width: Width in pixel of the screen driven by the controller
- - solomon,page-offset: Offset of pages (band of 8 pixels) that the screen is
- mapped to.
-
-Optional properties:
- - reset-gpios: The GPIO used to reset the OLED display, if available. See
- Documentation/devicetree/bindings/gpio/gpio.txt for details.
- - vbat-supply: The supply for VBAT
- - solomon,segment-no-remap: Display needs normal (non-inverted) data column
- to segment mapping
- - solomon,col-offset: Offset of columns (COL/SEG) that the screen is mapped to.
- - solomon,com-seq: Display uses sequential COM pin configuration
- - solomon,com-lrremap: Display uses left-right COM pin remap
- - solomon,com-invdir: Display uses inverted COM pin scan direction
- - solomon,com-offset: Number of the COM pin wired to the first display line
- - solomon,prechargep1: Length of deselect period (phase 1) in clock cycles.
- - solomon,prechargep2: 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: Clock divisor 1 to 16
- - solomon,dclk-frq: Clock frequency 0 to 15, higher value means higher
- frequency
- - solomon,lookup-table: 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: Display uses color mode
- - solomon,low-power. Display runs in low power mode
-
-[0]: Documentation/devicetree/bindings/pwm/pwm.txt
-
-Examples:
-ssd1307: oled@3c {
- compatible = "solomon,ssd1307fb-i2c";
- reg = <0x3c>;
- pwms = <&pwm 4 3000>;
- reset-gpios = <&gpio2 7>;
-};
-
-ssd1306: oled@3c {
- 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>;
-};
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] dt-bindings: display: ssd1307fb: Convert to json-schema
2021-05-18 7:51 [PATCH] dt-bindings: display: ssd1307fb: Convert to json-schema Geert Uytterhoeven
@ 2021-05-18 14:33 ` Maxime Ripard
2021-05-18 14:49 ` Geert Uytterhoeven
2021-05-19 21:33 ` Rob Herring
1 sibling, 1 reply; 5+ messages in thread
From: Maxime Ripard @ 2021-05-18 14:33 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Rob Herring, David Airlie, Daniel Vetter, linux-fbdev, dri-devel,
devicetree
[-- Attachment #1: Type: text/plain, Size: 4221 bytes --]
Hi
On Tue, May 18, 2021 at 09:51:31AM +0200, Geert Uytterhoeven wrote:
> Convert the Solomon SSD1307 Framebuffer Device Tree binding
> documentation to json-schema.
>
> Fix the spelling of the "pwms" property.
> Document default values.
> Make properties with default values not required.
>
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> I have listed Maxime as the maintainer, as he wrote the original driver
> and bindings. Maxime: Please scream if this is inappropriate ;-)
Fine by me :)
> ---
> .../bindings/display/solomon,ssd1307fb.yaml | 166 ++++++++++++++++++
> .../devicetree/bindings/display/ssd1307fb.txt | 60 -------
> 2 files changed, 166 insertions(+), 60 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
> delete mode 100644 Documentation/devicetree/bindings/display/ssd1307fb.txt
>
> diff --git a/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml b/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
> new file mode 100644
> index 0000000000000000..bd632d86a4f814a0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
> @@ -0,0 +1,166 @@
> +# 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.
I guess we could document the default using an if / else statement?
Looks good otherwise :)
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] dt-bindings: display: ssd1307fb: Convert to json-schema
2021-05-18 14:33 ` Maxime Ripard
@ 2021-05-18 14:49 ` Geert Uytterhoeven
2021-05-24 11:48 ` Maxime Ripard
0 siblings, 1 reply; 5+ messages in thread
From: Geert Uytterhoeven @ 2021-05-18 14:49 UTC (permalink / raw)
To: Maxime Ripard
Cc: Rob Herring, David Airlie, Daniel Vetter,
Linux Fbdev development list, DRI Development,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
Hi Maxime,
On Tue, May 18, 2021 at 4:33 PM Maxime Ripard <maxime@cerno.tech> wrote:
> On Tue, May 18, 2021 at 09:51:31AM +0200, Geert Uytterhoeven wrote:
> > Convert the Solomon SSD1307 Framebuffer Device Tree binding
> > documentation to json-schema.
> >
> > Fix the spelling of the "pwms" property.
> > Document default values.
> > Make properties with default values not required.
> >
> > Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> > ---
> > I have listed Maxime as the maintainer, as he wrote the original driver
> > and bindings. Maxime: Please scream if this is inappropriate ;-)
>
> Fine by me :)
Thanks!
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
> > + solomon,dclk-div:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + minimum: 1
> > + maximum: 16
> > + description:
> > + Clock divisor. The default value is controller-dependent.
>
> I guess we could document the default using an if / else statement?
While clk-div has only two different defaults, dclk-frq has different
defaults for each of the 4 variants supported.
Do you think it's worthwhile doing that? All upstream DTS files lack
these properties, thus use the default values.
> Looks good otherwise :)
Thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] dt-bindings: display: ssd1307fb: Convert to json-schema
2021-05-18 7:51 [PATCH] dt-bindings: display: ssd1307fb: Convert to json-schema Geert Uytterhoeven
2021-05-18 14:33 ` Maxime Ripard
@ 2021-05-19 21:33 ` Rob Herring
1 sibling, 0 replies; 5+ messages in thread
From: Rob Herring @ 2021-05-19 21:33 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Daniel Vetter, Maxime Ripard, linux-fbdev, David Airlie,
Rob Herring, dri-devel, devicetree
On Tue, 18 May 2021 09:51:31 +0200, Geert Uytterhoeven wrote:
> Convert the Solomon SSD1307 Framebuffer Device Tree binding
> documentation to json-schema.
>
> Fix the spelling of the "pwms" property.
> Document default values.
> Make properties with default values not required.
>
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> I have listed Maxime as the maintainer, as he wrote the original driver
> and bindings. Maxime: Please scream if this is inappropriate ;-)
> ---
> .../bindings/display/solomon,ssd1307fb.yaml | 166 ++++++++++++++++++
> .../devicetree/bindings/display/ssd1307fb.txt | 60 -------
> 2 files changed, 166 insertions(+), 60 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
> delete mode 100644 Documentation/devicetree/bindings/display/ssd1307fb.txt
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] dt-bindings: display: ssd1307fb: Convert to json-schema
2021-05-18 14:49 ` Geert Uytterhoeven
@ 2021-05-24 11:48 ` Maxime Ripard
0 siblings, 0 replies; 5+ messages in thread
From: Maxime Ripard @ 2021-05-24 11:48 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Rob Herring, David Airlie, Daniel Vetter,
Linux Fbdev development list, DRI Development,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
[-- Attachment #1: Type: text/plain, Size: 1487 bytes --]
Hi
On Tue, May 18, 2021 at 04:49:45PM +0200, Geert Uytterhoeven wrote:
> On Tue, May 18, 2021 at 4:33 PM Maxime Ripard <maxime@cerno.tech> wrote:
> > On Tue, May 18, 2021 at 09:51:31AM +0200, Geert Uytterhoeven wrote:
> > > Convert the Solomon SSD1307 Framebuffer Device Tree binding
> > > documentation to json-schema.
> > >
> > > Fix the spelling of the "pwms" property.
> > > Document default values.
> > > Make properties with default values not required.
> > >
> > > Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> > > ---
> > > I have listed Maxime as the maintainer, as he wrote the original driver
> > > and bindings. Maxime: Please scream if this is inappropriate ;-)
> >
> > Fine by me :)
>
> Thanks!
>
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
>
> > > + solomon,dclk-div:
> > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > + minimum: 1
> > > + maximum: 16
> > > + description:
> > > + Clock divisor. The default value is controller-dependent.
> >
> > I guess we could document the default using an if / else statement?
>
> While clk-div has only two different defaults, dclk-frq has different
> defaults for each of the 4 variants supported.
>
> Do you think it's worthwhile doing that? All upstream DTS files lack
> these properties, thus use the default values.
I'd say it's even more important if everyone relies on it :)
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-05-24 11:48 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-18 7:51 [PATCH] dt-bindings: display: ssd1307fb: Convert to json-schema Geert Uytterhoeven
2021-05-18 14:33 ` Maxime Ripard
2021-05-18 14:49 ` Geert Uytterhoeven
2021-05-24 11:48 ` Maxime Ripard
2021-05-19 21:33 ` Rob Herring
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).