Re: [PATCH v3 0/3] Convert Microchip's HLCDC Text based DT bindings to JSON schema

From: Rob Herring
Date: Fri Jan 19 2024 - 14:52:01 EST


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