[PATCH v3 3/3] dt-bindings: mfd: atmel,hlcdc: Convert to DT schema format

Conor Dooley conor.dooley at microchip.com
Thu Jan 25 00:27:55 PST 2024


> > If the lvds pll is an input to the hlcdc, you need to add it here.
> >  From your description earlier it does sound like it is an input to
> > the hlcdc, but now you are claiming that it is not.
> 
> The LVDS PLL serves as an input to both the LCDC and LVDSC

Then it should be an input to both the LCDC and LVDSC in the devicetree.

> with the 
> LVDS_PLL multiplied by 7 for the Pixel clock to the LVDS PHY, and 

Are you sure? The diagram doesn't show a multiplier, the 7x comment
there seems to be showing relations?

> LVDS_PLL divided by 7 for the Pixel clock to the LCDC.

> I am inclined to believe that appropriately configuring and enabling it 
> in the LVDS driver would be the appropriate course of action.

We're talking about bindings here, not drivers, but I would imagine that
if two peripherals are using the same clock then both of them should be
getting a reference to and enabling that clock so that the clock
framework can correctly track the users.

> > I don't know your hardware, so I have no idea which of the two is
> > correct, but it sounds like the former. Without digging into how this
> > works my assumption about the hardware here looks like is that the lvds
> > controller is a clock provider,
> 
> It's a PLL clock from PMC.
> 
> > and that the lvds controller's clock is
> > an optional input for the hlcdc.
> 
> Again it's a PLL clock from PMC.
> 
> Please refer Section 39.3 
> https://ww1.microchip.com/downloads/aemDocuments/documents/MPU32/ProductDocuments/DataSheets/SAM9X7-Series-Data-Sheet-DS60001813.pdf

It is not the same exact clock as you pointed out above though, so the
by 7 divider should be modelled.

> > Can you please explain what provides the lvds pll clock and show an
> > example of how you think the devictree would look with "the lvds pll in
> > the lvds dt node"?
> 
> Sure, Please see the below example
> 
> The typical lvds node will look like
> 
>                  lvds_controller: lvds-controller at f8060000 {
>                          compatible = "microchip,sam9x7-lvds";
>                          reg = <0xf8060000 0x100>;
>                          interrupts = <56 IRQ_TYPE_LEVEL_HIGH 0>;
>                          clocks = <&pmc PMC_TYPE_PERIPHERAL 56>, <&pmc 
> PMC_TYPE_CORE PMC_LVDSPLL>;
>                          clock-names = "pclk", "lvds_pll_clk";
>                          status = "disabled";
>                  };

In isolation, this looks fine.

Cheers,
Conor.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20240125/f9de710d/attachment-0001.sig>


More information about the linux-arm-kernel mailing list