2024-01-31 03:35:56

by Dharma Balasubiramani

[permalink] [raw]
Subject: [linux][PATCH v5 0/3] Convert Microchip's HLCDC Text based DT bindings to JSON schema

Converted the text bindings to YAML and validated them individually using following commands

$ make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/
$ make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/

changelogs are available in respective patches.

As Sam suggested I'm sending the PWM binding as it is in this patch series, clean up patch
will be sent as separate patch.

Dharma Balasubiramani (3):
dt-bindings: display: convert Atmel's HLCDC to DT schema
dt-bindings: atmel,hlcdc: convert pwm bindings to json-schema
dt-bindings: mfd: atmel,hlcdc: Convert to DT schema format

.../atmel/atmel,hlcdc-display-controller.yaml | 85 ++++++++++++++++
.../bindings/display/atmel/hlcdc-dc.txt | 75 --------------
.../devicetree/bindings/mfd/atmel,hlcdc.yaml | 99 +++++++++++++++++++
.../devicetree/bindings/mfd/atmel-hlcdc.txt | 56 -----------
.../bindings/pwm/atmel,hlcdc-pwm.yaml | 44 +++++++++
.../bindings/pwm/atmel-hlcdc-pwm.txt | 29 ------
6 files changed, 228 insertions(+), 160 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/atmel/atmel,hlcdc-display-controller.yaml
delete mode 100644 Documentation/devicetree/bindings/display/atmel/hlcdc-dc.txt
create mode 100644 Documentation/devicetree/bindings/mfd/atmel,hlcdc.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/atmel-hlcdc.txt
create mode 100644 Documentation/devicetree/bindings/pwm/atmel,hlcdc-pwm.yaml
delete mode 100644 Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt

--
2.25.1



2024-01-31 03:36:27

by Dharma Balasubiramani

[permalink] [raw]
Subject: [linux][PATCH v5 1/3] dt-bindings: display: convert Atmel's HLCDC to DT schema

Convert the existing DT binding to DT schema of the Atmel's HLCDC display
controller.

Signed-off-by: Dharma Balasubiramani <[email protected]>
---
Changelog
v4 -> v5
- No change.
v3 -> v4
- Add bus-width property to have one complete example.
v2 -> v3
- Remove '|' in description, as there is no formatting to preserve.
- Ref video-interfaces as endpoint.
- Remove ref and description for bus-width.
- Add new line before the child node in example.
- Remove 'example 2', as it is not required for just one additional property.
v1 -> v2
- Remove the explicit copyrights.
- Modify filename like compatible.
- Modify title (drop words like binding/driver).
- Modify description actually describing the hardware and not the driver.
- Remove pinctrl properties which aren't required.
- Ref endpoint and not endpoint-base.
- Drop redundant info about bus-width description and add ref to video-interfaces.
- Move 'additionalProperties' after 'Required'.
- Drop parent node and it's other sub-device node which are not related here.
- Add compatible to example 2 and add comments that bus-width is the diff between two examples.
---
.../atmel/atmel,hlcdc-display-controller.yaml | 85 +++++++++++++++++++
.../bindings/display/atmel/hlcdc-dc.txt | 75 ----------------
2 files changed, 85 insertions(+), 75 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/atmel/atmel,hlcdc-display-controller.yaml
delete mode 100644 Documentation/devicetree/bindings/display/atmel/hlcdc-dc.txt

diff --git a/Documentation/devicetree/bindings/display/atmel/atmel,hlcdc-display-controller.yaml b/Documentation/devicetree/bindings/display/atmel/atmel,hlcdc-display-controller.yaml
new file mode 100644
index 000000000000..e59d16dce652
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/atmel/atmel,hlcdc-display-controller.yaml
@@ -0,0 +1,85 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/atmel/atmel,hlcdc-display-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Atmel's High LCD Controller (HLCDC)
+
+maintainers:
+ - Nicolas Ferre <[email protected]>
+ - Alexandre Belloni <[email protected]>
+ - Claudiu Beznea <[email protected]>
+
+description:
+ The LCD Controller (LCDC) consists of logic for transferring LCD image
+ data from an external display buffer to a TFT LCD panel. The LCDC has one
+ display input buffer per layer that fetches pixels through the single bus
+ host interface and a look-up table to allow palletized display
+ configurations.
+
+properties:
+ compatible:
+ const: atmel,hlcdc-display-controller
+
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+ port@0:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ unevaluatedProperties: false
+ description:
+ Output endpoint of the controller, connecting the LCD panel signals.
+
+ properties:
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+ reg:
+ maxItems: 1
+
+ endpoint:
+ $ref: /schemas/media/video-interfaces.yaml#
+ unevaluatedProperties: false
+ description:
+ Endpoint connecting the LCD panel signals.
+
+ properties:
+ bus-width:
+ enum: [ 12, 16, 18, 24 ]
+
+required:
+ - '#address-cells'
+ - '#size-cells'
+ - compatible
+ - port@0
+
+additionalProperties: false
+
+examples:
+ - |
+ display-controller {
+ compatible = "atmel,hlcdc-display-controller";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb565>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ hlcdc_panel_output: endpoint@0 {
+ reg = <0>;
+ bus-width = <16>;
+ remote-endpoint = <&panel_input>;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/display/atmel/hlcdc-dc.txt b/Documentation/devicetree/bindings/display/atmel/hlcdc-dc.txt
deleted file mode 100644
index 923aea25344c..000000000000
--- a/Documentation/devicetree/bindings/display/atmel/hlcdc-dc.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-Device-Tree bindings for Atmel's HLCDC (High LCD Controller) DRM driver
-
-The Atmel HLCDC Display Controller is subdevice of the HLCDC MFD device.
-See ../../mfd/atmel-hlcdc.txt for more details.
-
-Required properties:
- - compatible: value should be "atmel,hlcdc-display-controller"
- - pinctrl-names: the pin control state names. Should contain "default".
- - pinctrl-0: should contain the default pinctrl states.
- - #address-cells: should be set to 1.
- - #size-cells: should be set to 0.
-
-Required children nodes:
- Children nodes are encoding available output ports and their connections
- to external devices using the OF graph representation (see ../graph.txt).
- At least one port node is required.
-
-Optional properties in grandchild nodes:
- Any endpoint grandchild node may specify a desired video interface
- according to ../../media/video-interfaces.txt, specifically
- - bus-width: recognized values are <12>, <16>, <18> and <24>, and
- override any output mode selection heuristic, forcing "rgb444",
- "rgb565", "rgb666" and "rgb888" respectively.
-
-Example:
-
- hlcdc: hlcdc@f0030000 {
- compatible = "atmel,sama5d3-hlcdc";
- reg = <0xf0030000 0x2000>;
- interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
- clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
- clock-names = "periph_clk","sys_clk", "slow_clk";
-
- hlcdc-display-controller {
- compatible = "atmel,hlcdc-display-controller";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- #address-cells = <1>;
- #size-cells = <0>;
- reg = <0>;
-
- hlcdc_panel_output: endpoint@0 {
- reg = <0>;
- remote-endpoint = <&panel_input>;
- };
- };
- };
-
- hlcdc_pwm: hlcdc-pwm {
- compatible = "atmel,hlcdc-pwm";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lcd_pwm>;
- #pwm-cells = <3>;
- };
- };
-
-Example 2: With a video interface override to force rgb565; as above
-but with these changes/additions:
-
- &hlcdc {
- hlcdc-display-controller {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb565>;
-
- port@0 {
- hlcdc_panel_output: endpoint@0 {
- bus-width = <16>;
- };
- };
- };
- };
--
2.25.1


2024-01-31 03:36:40

by Dharma Balasubiramani

[permalink] [raw]
Subject: [linux][PATCH v5 2/3] dt-bindings: atmel,hlcdc: convert pwm bindings to json-schema

Convert device tree bindings for Atmel's HLCDC PWM controller to YAML
format.

Signed-off-by: Dharma Balasubiramani <[email protected]>
Reviewed-by: Conor Dooley <[email protected]>
---
Changelog
v4 -> v5
v3 -> v4
- No changes
Note: The clean up patch will be sent later as Sam suggested.
v2 -> v3
- Remove '|' in description, as there is no formatting to preserve.
- Delete the description for pwm-cells.
- Drop the label for pwm node as it not used.
v1 -> v2
- Remove the explicit copyrights.
- Modify title (not include words like binding/driver).
- Modify description actually describing the hardware and not the driver.
- Remove pinctrl properties which aren't required.
- Drop parent node and it's other sub-device node which are not related here.
---
.../bindings/pwm/atmel,hlcdc-pwm.yaml | 44 +++++++++++++++++++
.../bindings/pwm/atmel-hlcdc-pwm.txt | 29 ------------
2 files changed, 44 insertions(+), 29 deletions(-)
create mode 100644 Documentation/devicetree/bindings/pwm/atmel,hlcdc-pwm.yaml
delete mode 100644 Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt

diff --git a/Documentation/devicetree/bindings/pwm/atmel,hlcdc-pwm.yaml b/Documentation/devicetree/bindings/pwm/atmel,hlcdc-pwm.yaml
new file mode 100644
index 000000000000..4f4cc21fe4f7
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/atmel,hlcdc-pwm.yaml
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/atmel,hlcdc-pwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Atmel's HLCDC's PWM controller
+
+maintainers:
+ - Nicolas Ferre <[email protected]>
+ - Alexandre Belloni <[email protected]>
+ - Claudiu Beznea <[email protected]>
+
+description:
+ The LCDC integrates a Pulse Width Modulation (PWM) Controller. This block
+ generates the LCD contrast control signal (LCD_PWM) that controls the
+ display's contrast by software. LCDC_PWM is an 8-bit PWM signal that can be
+ converted to an analog voltage with a simple passive filter. LCD display
+ panels have different backlight specifications in terms of minimum/maximum
+ values for PWM frequency. If the LCDC PWM frequency range does not match the
+ LCD display panel, it is possible to use the standalone PWM Controller to
+ drive the backlight.
+
+properties:
+ compatible:
+ const: atmel,hlcdc-pwm
+
+ "#pwm-cells":
+ const: 3
+
+required:
+ - compatible
+ - "#pwm-cells"
+
+additionalProperties: false
+
+examples:
+ - |
+ pwm {
+ compatible = "atmel,hlcdc-pwm";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lcd_pwm>;
+ #pwm-cells = <3>;
+ };
diff --git a/Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt b/Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt
deleted file mode 100644
index afa501bf7f94..000000000000
--- a/Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Device-Tree bindings for Atmel's HLCDC (High-end LCD Controller) PWM driver
-
-The Atmel HLCDC PWM is subdevice of the HLCDC MFD device.
-See ../mfd/atmel-hlcdc.txt for more details.
-
-Required properties:
- - compatible: value should be one of the following:
- "atmel,hlcdc-pwm"
- - pinctr-names: the pin control state names. Should contain "default".
- - pinctrl-0: should contain the pinctrl states described by pinctrl
- default.
- - #pwm-cells: should be set to 3. This PWM chip use the default 3 cells
- bindings defined in pwm.yaml in this directory.
-
-Example:
-
- hlcdc: hlcdc@f0030000 {
- compatible = "atmel,sama5d3-hlcdc";
- reg = <0xf0030000 0x2000>;
- clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
- clock-names = "periph_clk","sys_clk", "slow_clk";
-
- hlcdc_pwm: hlcdc-pwm {
- compatible = "atmel,hlcdc-pwm";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lcd_pwm>;
- #pwm-cells = <3>;
- };
- };
--
2.25.1


2024-01-31 17:05:08

by Conor Dooley

[permalink] [raw]
Subject: Re: [linux][PATCH v5 1/3] dt-bindings: display: convert Atmel's HLCDC to DT schema

On Wed, Jan 31, 2024 at 09:05:21AM +0530, Dharma Balasubiramani wrote:
> Convert the existing DT binding to DT schema of the Atmel's HLCDC display
> controller.

I feel like I recall a request to only have a complete example in the
mfd binding but nowhere else.

Otherwise,
Reviewed-by: Conor Dooley <[email protected]>

Cheers,
Conor.

> +examples:
> + - |
> + display-controller {
> + compatible = "atmel,hlcdc-display-controller";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb565>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0>;
> +
> + hlcdc_panel_output: endpoint@0 {
> + reg = <0>;
> + bus-width = <16>;
> + remote-endpoint = <&panel_input>;
> + };
> + };
> + };


Attachments:
(No filename) (936.00 B)
signature.asc (235.00 B)
Download all attachments

2024-01-31 17:11:57

by Conor Dooley

[permalink] [raw]
Subject: Re: [linux][PATCH v5 2/3] dt-bindings: atmel,hlcdc: convert pwm bindings to json-schema

On Wed, Jan 31, 2024 at 09:05:22AM +0530, Dharma Balasubiramani wrote:
> Convert device tree bindings for Atmel's HLCDC PWM controller to YAML
> format.
>
> Signed-off-by: Dharma Balasubiramani <[email protected]>
> Reviewed-by: Conor Dooley <[email protected]>

Same comment about the examples here FWIW.

> +examples:
> + - |
> + pwm {
> + compatible = "atmel,hlcdc-pwm";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_lcd_pwm>;
> + #pwm-cells = <3>;
> + };


Attachments:
(No filename) (531.00 B)
signature.asc (235.00 B)
Download all attachments

2024-02-01 03:39:25

by Dharma Balasubiramani

[permalink] [raw]
Subject: Re: [linux][PATCH v5 0/3] Convert Microchip's HLCDC Text based DT bindings to JSON schema

Hi Rob,

On 31/01/24 9:05 am, Dharma B - I70843 wrote:
> Converted the text bindings to YAML and validated them individually using following commands
>
> $ make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/
> $ make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/
>
> changelogs are available in respective patches.
>
> As Sam suggested I'm sending the PWM binding as it is in this patch series, clean up patch
> will be sent as separate patch.
>

I would want to know if I can have the examples in display and pwm
bindings separately or if I have to delete them from both and have a
single, comprehensive example in mfd binding. I'm a little puzzled about
this.

> Dharma Balasubiramani (3):
> dt-bindings: display: convert Atmel's HLCDC to DT schema
> dt-bindings: atmel,hlcdc: convert pwm bindings to json-schema
> dt-bindings: mfd: atmel,hlcdc: Convert to DT schema format
>
> .../atmel/atmel,hlcdc-display-controller.yaml | 85 ++++++++++++++++
> .../bindings/display/atmel/hlcdc-dc.txt | 75 --------------
> .../devicetree/bindings/mfd/atmel,hlcdc.yaml | 99 +++++++++++++++++++
> .../devicetree/bindings/mfd/atmel-hlcdc.txt | 56 -----------
> .../bindings/pwm/atmel,hlcdc-pwm.yaml | 44 +++++++++
> .../bindings/pwm/atmel-hlcdc-pwm.txt | 29 ------
> 6 files changed, 228 insertions(+), 160 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/display/atmel/atmel,hlcdc-display-controller.yaml
> delete mode 100644 Documentation/devicetree/bindings/display/atmel/hlcdc-dc.txt
> create mode 100644 Documentation/devicetree/bindings/mfd/atmel,hlcdc.yaml
> delete mode 100644 Documentation/devicetree/bindings/mfd/atmel-hlcdc.txt
> create mode 100644 Documentation/devicetree/bindings/pwm/atmel,hlcdc-pwm.yaml
> delete mode 100644 Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt
>

--
With Best Regards,
Dharma B.

2024-02-01 22:36:42

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [linux][PATCH v5 0/3] Convert Microchip's HLCDC Text based DT bindings to JSON schema

On Thu, Feb 01, 2024 at 03:38:37AM +0000, [email protected] wrote:
> Hi Rob,
>
> On 31/01/24 9:05 am, Dharma B - I70843 wrote:
> > Converted the text bindings to YAML and validated them individually using following commands
> >
> > $ make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/
> > $ make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/
> >
> > changelogs are available in respective patches.
> >
> > As Sam suggested I'm sending the PWM binding as it is in this patch series, clean up patch
> > will be sent as separate patch.
> >
>
> I would want to know if I can have the examples in display and pwm
> bindings separately or if I have to delete them from both and have a
> single, comprehensive example in mfd binding. I'm a little puzzled about
> this.

The strong preference is 1 complete example in the MFD binding. That
avoids 2 copies of the same thing, issues with incomplete examples,
and temporary warnings bisecting the series.

Rob

2024-02-01 23:53:46

by Dharma Balasubiramani

[permalink] [raw]
Subject: Re: [linux][PATCH v5 0/3] Convert Microchip's HLCDC Text based DT bindings to JSON schema

On 02/02/24 4:06 am, Rob Herring wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> On Thu, Feb 01, 2024 at 03:38:37AM +0000, [email protected] wrote:
>> Hi Rob,
>>
>> On 31/01/24 9:05 am, Dharma B - I70843 wrote:
>>> Converted the text bindings to YAML and validated them individually using following commands
>>>
>>> $ make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/
>>> $ make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/
>>>
>>> changelogs are available in respective patches.
>>>
>>> As Sam suggested I'm sending the PWM binding as it is in this patch series, clean up patch
>>> will be sent as separate patch.
>>>
>>
>> I would want to know if I can have the examples in display and pwm
>> bindings separately or if I have to delete them from both and have a
>> single, comprehensive example in mfd binding. I'm a little puzzled about
>> this.
>
> The strong preference is 1 complete example in the MFD binding. That
> avoids 2 copies of the same thing, issues with incomplete examples,
> and temporary warnings bisecting the series.

Sure, I will drop the examples in display and pwm bindings while sending v6.

--
Thanks,
Dharma B.

>
> Rob