RE: [PATCH V2 2/2] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> From: Leonard Crestez
> Sent: Monday, May 20, 2019 7:45 PM
> 
> On 30.04.2019 20:35, Aisheng Dong wrote:
> > MX8QM and MX8QXP LPCG Clocks are mostly the same except they may
> > reside in different subsystems across CPUs and also vary a bit on the
> availability.
> >
> > Same as SCU clock, we want to move the clock definition into device
> > tree which can fully decouple the dependency of Clock ID definition
> > from device tree and make us be able to write a fully generic lpcg clock
> driver.
> >
> > And we can also use the existence of clock nodes in device tree to
> > address the device and clock availability differences across different SoCs.
> >
> > diff --git a/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt
> > b/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt
> >
> >   Required properties:
> > +- compatible:		Should be one of:
> > +			  "fsl,imx8qxp-lpcg"
> > +			  "fsl,imx8qm-lpcg" followed by "fsl,imx8qxp-lpcg".
> > +- reg:			Address and length of the register set.
> > +- #clock-cells:		Should be 1. One LPCG supports multiple clocks.
> > +- clocks:		Input parent clocks phandle array for each clock.
> > +- bit-offset:		An integer array indicating the bit offset for each clock.
> > +- hw-autogate:		Boolean array indicating whether supports HW
> autogate for
> > +			each clock.
> > +- clock-output-names:	Shall be the corresponding names of the outputs.
> > +			NOTE this property must be specified in the same order
> > +			as the clock bit-offset and hw-autogate property.
> 
> Splitting the LPCG areas is good but describing "bit-offset" and similar inside
> devicetree seems excessively generic.
> 
> Perhaps we could have many smaller imx8qxp-lpcg-sdhc, imx8qxp-lpcg-enet
> etc where the actual clks inside each node are still defined in driver code.
> 

If that way, we would have too many more compatible strings per clocks
and we have to add more for new SoCs which I'd like to avoid.

> >   usdhc1: mmc@5b010000 {
> > @@ -44,8 +66,8 @@ usdhc1: mmc@5b010000 {
> >   	interrupt-parent = <&gic>;
> >   	interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
> >   	reg = <0x5b010000 0x10000>;
> > -	clocks = <&conn_lpcg IMX8QXP_CONN_LPCG_SDHC0_IPG_CLK>,
> > -		 <&conn_lpcg IMX8QXP_CONN_LPCG_SDHC0_PER_CLK>,
> > -		 <&conn_lpcg IMX8QXP_CONN_LPCG_SDHC0_HCLK>;
> > +	clocks = <&sdhc0_lpcg 1>,
> > +		 <&sdhc0_lpcg 0>,
> > +		 <&sdhc0_lpcg 2>;
> 
> This is less readable, can't we keep symbolic constants?

I'm scared to define more macros for device clocks.
It's usually a one time job and could be referenced easily by looking into
the definition of sdhc0_lpcg in DT.
So less readable may not be a real problem.

Regards
Dong Aisheng




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux