Message ID | 20240118092612.117491-1-dharma.b@microchip.com (mailing list archive) |
---|---|
Headers | show |
Series | Convert Microchip's HLCDC Text based DT bindings to JSON schema | expand |
Hi Dharma et al. On Thu, Jan 18, 2024 at 02:56:09PM +0530, Dharma Balasubiramani 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. > > 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 I know this is a bit late to ask - sorry in advance. The binding describes the single IP block as a multi functional device, but it is a single IP block that includes the display controller and a simple pwm that can be used for contrast or backlight. If we ignore the fact that the current drivers for hlcdc uses an mfd abstraction, is this then the optimal way to describe the HW? In one of my stale git tree I converted atmel lcdc to DT, and here I used: + "#pwm-cells": + description: + This PWM chip use the default 3 cells bindings + defined in ../../pwm/pwm.yaml. + const: 3 + + clocks: + maxItems: 2 + + clock-names: + maxItems: 2 + items: + - const: lcdc_clk + - const: hclk This proved to be a simple way to describe the HW. To make the DT binding backward compatible you likely need to add a few compatible that otherwise would have been left out - but that should do the trick. The current atmel hlcdc driver that is split in three is IMO an over-engineering, and the driver could benefit merging it all in one. And the binding should not prevent this. Sam
Hi Sam, On 19/01/24 1:00 am, Sam Ravnborg wrote: > [You don't often get email from sam@ravnborg.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > Hi Dharma et al. > > On Thu, Jan 18, 2024 at 02:56:09PM +0530, Dharma Balasubiramani 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. >> >> 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 > > I know this is a bit late to ask - sorry in advance. > > The binding describes the single IP block as a multi functional device, > but it is a single IP block that includes the display controller and a > simple pwm that can be used for contrast or backlight. yes. > > If we ignore the fact that the current drivers for hlcdc uses an mfd > abstraction, is this then the optimal way to describe the HW? > > > In one of my stale git tree I converted atmel lcdc to DT, and here Are you referring the "bindings/display/atmel,lcdc.txt"? > I used: > > + "#pwm-cells": > + description: > + This PWM chip use the default 3 cells bindings > + defined in ../../pwm/pwm.yaml. > + const: 3 > + > + clocks: > + maxItems: 2 > + > + clock-names: > + maxItems: 2 > + items: > + - const: lcdc_clk > + - const: hclk > > This proved to be a simple way to describe the HW. > > To make the DT binding backward compatible you likely need to add a few > compatible that otherwise would have been left out - but that should do > the trick. again you mean the compatibles from atmel,lcdc binding? > > The current atmel hlcdc driver that is split in three is IMO an > over-engineering, and the driver could benefit merging it all in one. > And the binding should not prevent this. could you please confirm if my understanding is correct: you want a unified display binding that encompasses the properties of the two subdevices (display controller and pwm), eliminating the need to reference them in additional bindings? > > Sam
On Thu, Jan 18, 2024 at 08:30:40PM +0100, Sam Ravnborg wrote: > Hi Dharma et al. > > On Thu, Jan 18, 2024 at 02:56:09PM +0530, Dharma Balasubiramani 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. > > > > 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 > > I know this is a bit late to ask - sorry in advance. > > The binding describes the single IP block as a multi functional device, > but it is a single IP block that includes the display controller and a > simple pwm that can be used for contrast or backlight. > > If we ignore the fact that the current drivers for hlcdc uses an mfd > abstraction, is this then the optimal way to describe the HW? > > > In one of my stale git tree I converted atmel lcdc to DT, and here > I used: > > + "#pwm-cells": > + description: > + This PWM chip use the default 3 cells bindings > + defined in ../../pwm/pwm.yaml. > + const: 3 > + > + clocks: > + maxItems: 2 > + > + clock-names: > + maxItems: 2 > + items: > + - const: lcdc_clk > + - const: hclk > > This proved to be a simple way to describe the HW. > > To make the DT binding backward compatible you likely need to add a few > compatible that otherwise would have been left out - but that should do > the trick. > > The current atmel hlcdc driver that is split in three is IMO an > over-engineering, and the driver could benefit merging it all in one. > And the binding should not prevent this. I agree on all this, but a conversion is not really the time to redesign things. Trust me, I've wanted to on lots of conversions. It should be possible to simplify the driver side while keeping the DT as-is. Just make the display driver bind to the MFD node instead. After that, then one could look at flattening everything to 1 node. Rob
Hi Dharma, On Fri, Jan 19, 2024 at 08:41:04AM +0000, Dharma.B@microchip.com wrote: > Hi Sam, > On 19/01/24 1:00 am, Sam Ravnborg wrote: > > [You don't often get email from sam@ravnborg.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > > > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > > > Hi Dharma et al. > > > > On Thu, Jan 18, 2024 at 02:56:09PM +0530, Dharma Balasubiramani 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. > >> > >> 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 > > > > I know this is a bit late to ask - sorry in advance. > > > > The binding describes the single IP block as a multi functional device, > > but it is a single IP block that includes the display controller and a > > simple pwm that can be used for contrast or backlight. > yes. > > > > If we ignore the fact that the current drivers for hlcdc uses an mfd > > abstraction, is this then the optimal way to describe the HW? > > > > > > In one of my stale git tree I converted atmel lcdc to DT, and here > Are you referring the "bindings/display/atmel,lcdc.txt"? Correct. > > I used: > > > > + "#pwm-cells": > > + description: > > + This PWM chip use the default 3 cells bindings > > + defined in ../../pwm/pwm.yaml. > > + const: 3 > > + > > + clocks: > > + maxItems: 2 > > + > > + clock-names: > > + maxItems: 2 > > + items: > > + - const: lcdc_clk > > + - const: hclk > > > > This proved to be a simple way to describe the HW. > > > > To make the DT binding backward compatible you likely need to add a few > > compatible that otherwise would have been left out - but that should do > > the trick. > again you mean the compatibles from atmel,lcdc binding? If the new binding describes the full IP, as I suggest, then I assume you need to add the compatible "atmel,hlcdc-pwm" to be backward compatible. Otherwise users assuming the old binding will fail to find the pwm info. I am not sure how important this is - but at least then the device trees can be updated out of sync with the current users. I hope this explains what I tried to say, otherwise do not hesitate to get back to me. Sam
Hi Dharma & Rob. > > To make the DT binding backward compatible you likely need to add a few > > compatible that otherwise would have been left out - but that should do > > the trick. > > > > The current atmel hlcdc driver that is split in three is IMO an > > over-engineering, and the driver could benefit merging it all in one. > > And the binding should not prevent this. > > I agree on all this, but a conversion is not really the time to redesign > things. Trust me, I've wanted to on lots of conversions. It should be > possible to simplify the driver side while keeping the DT as-is. Just > make the display driver bind to the MFD node instead. After that, then > one could look at flattening everything to 1 node. Understood and thinking a bit about it fully agreed as well. Dharma - please see my comments only as ideas for the future, and ignore them in this fine rewrite you do. Sam
On 20/01/24 6:53 pm, Sam Ravnborg wrote: > [You don't often get email from sam@ravnborg.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > Hi Sam & Rob, > Hi Dharma & Rob. > >>> To make the DT binding backward compatible you likely need to add a few >>> compatible that otherwise would have been left out - but that should do >>> the trick. >>> >>> The current atmel hlcdc driver that is split in three is IMO an >>> over-engineering, and the driver could benefit merging it all in one. >>> And the binding should not prevent this. >> >> I agree on all this, but a conversion is not really the time to redesign >> things. Trust me, I've wanted to on lots of conversions. It should be >> possible to simplify the driver side while keeping the DT as-is. Just >> make the display driver bind to the MFD node instead. After that, then >> one could look at flattening everything to 1 node. > > Understood and thinking a bit about it fully agreed as well. > Dharma - please see my comments only as ideas for the future, and > ignore them in this fine rewrite you do. > > Sam Based on your insights, I'm contemplating the decision to merge Patch 2 [PWM binding] with Patch 3[MFD binding]. It seems redundant given that we already have a PWM node example in the MFD binding. Instead of introducing a new PWM binding, pwm: $ref: /schemas/pwm/atmel,hlcdc-pwm.yaml I will update the existing MFD binding as follows: properties: compatible: const: atmel,hlcdc-pwm "#pwm-cells": const: 3 required: - compatible - "#pwm-cells"
Hi Dharma On Mon, Jan 22, 2024 at 03:52:17AM +0000, Dharma.B@microchip.com wrote: > On 20/01/24 6:53 pm, Sam Ravnborg wrote: > > [You don't often get email from sam@ravnborg.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > > > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > Hi Sam & Rob, > > Hi Dharma & Rob. > > > >>> To make the DT binding backward compatible you likely need to add a few > >>> compatible that otherwise would have been left out - but that should do > >>> the trick. > >>> > >>> The current atmel hlcdc driver that is split in three is IMO an > >>> over-engineering, and the driver could benefit merging it all in one. > >>> And the binding should not prevent this. > >> > >> I agree on all this, but a conversion is not really the time to redesign > >> things. Trust me, I've wanted to on lots of conversions. It should be > >> possible to simplify the driver side while keeping the DT as-is. Just > >> make the display driver bind to the MFD node instead. After that, then > >> one could look at flattening everything to 1 node. > > > > Understood and thinking a bit about it fully agreed as well. > > Dharma - please see my comments only as ideas for the future, and > > ignore them in this fine rewrite you do. > > > > Sam > Based on your insights, I'm contemplating the decision to merge Patch 2 > [PWM binding] with Patch 3[MFD binding]. It seems redundant given that > we already have a PWM node example in the MFD binding. > > Instead of introducing a new PWM binding, > pwm: > $ref: /schemas/pwm/atmel,hlcdc-pwm.yaml > > I will update the existing MFD binding as follows: > > properties: > compatible: > const: atmel,hlcdc-pwm > > "#pwm-cells": > const: 3 > > required: > - compatible > - "#pwm-cells" > Good idea, this looks like a nice simplification. Sam
Hi Dharma, On Mon, Jan 22, 2024 at 03:52:17AM +0000, Dharma.B@microchip.com wrote: > On 20/01/24 6:53 pm, Sam Ravnborg wrote: > > [You don't often get email from sam@ravnborg.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > > > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > Hi Sam & Rob, > > Hi Dharma & Rob. > > > >>> To make the DT binding backward compatible you likely need to add a few > >>> compatible that otherwise would have been left out - but that should do > >>> the trick. > >>> > >>> The current atmel hlcdc driver that is split in three is IMO an > >>> over-engineering, and the driver could benefit merging it all in one. > >>> And the binding should not prevent this. > >> > >> I agree on all this, but a conversion is not really the time to redesign > >> things. Trust me, I've wanted to on lots of conversions. It should be > >> possible to simplify the driver side while keeping the DT as-is. Just > >> make the display driver bind to the MFD node instead. After that, then > >> one could look at flattening everything to 1 node. > > > > Understood and thinking a bit about it fully agreed as well. > > Dharma - please see my comments only as ideas for the future, and > > ignore them in this fine rewrite you do. > > > > Sam > Based on your insights, I'm contemplating the decision to merge Patch 2 > [PWM binding] with Patch 3[MFD binding]. It seems redundant given that > we already have a PWM node example in the MFD binding. > > Instead of introducing a new PWM binding, > pwm: > $ref: /schemas/pwm/atmel,hlcdc-pwm.yaml > > I will update the existing MFD binding as follows: > > properties: > compatible: > const: atmel,hlcdc-pwm > > "#pwm-cells": > const: 3 > > required: > - compatible > - "#pwm-cells" > As already commented, this looks nice. But as Rob said, this should be a 1:1 conversion from text to yaml, and then clean-up can come in the second step. Sam
On 22/01/24 9:34 pm, Sam Ravnborg wrote: > [You don't often get email from sam@ravnborg.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > Hi Dharma, > On Mon, Jan 22, 2024 at 03:52:17AM +0000, Dharma.B@microchip.com wrote: >> On 20/01/24 6:53 pm, Sam Ravnborg wrote: >>> [You don't often get email from sam@ravnborg.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] >>> >>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe >>> Hi Sam & Rob, >>> Hi Dharma & Rob. >>> >>>>> To make the DT binding backward compatible you likely need to add a few >>>>> compatible that otherwise would have been left out - but that should do >>>>> the trick. >>>>> >>>>> The current atmel hlcdc driver that is split in three is IMO an >>>>> over-engineering, and the driver could benefit merging it all in one. >>>>> And the binding should not prevent this. >>>> >>>> I agree on all this, but a conversion is not really the time to redesign >>>> things. Trust me, I've wanted to on lots of conversions. It should be >>>> possible to simplify the driver side while keeping the DT as-is. Just >>>> make the display driver bind to the MFD node instead. After that, then >>>> one could look at flattening everything to 1 node. >>> >>> Understood and thinking a bit about it fully agreed as well. >>> Dharma - please see my comments only as ideas for the future, and >>> ignore them in this fine rewrite you do. >>> >>> Sam >> Based on your insights, I'm contemplating the decision to merge Patch 2 >> [PWM binding] with Patch 3[MFD binding]. It seems redundant given that >> we already have a PWM node example in the MFD binding. >> >> Instead of introducing a new PWM binding, >> pwm: >> $ref: /schemas/pwm/atmel,hlcdc-pwm.yaml >> >> I will update the existing MFD binding as follows: >> >> properties: >> compatible: >> const: atmel,hlcdc-pwm >> >> "#pwm-cells": >> const: 3 >> >> required: >> - compatible >> - "#pwm-cells" >> > As already commented, this looks nice. > But as Rob said, this should be a 1:1 conversion from text to yaml, > and then clean-up can come in the second step. Fine, I will send v4 with no changes in [PATCH 2] PWM binding, I will send another separate patch for this clean up.