linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 0/2] clk: imx: scu: add parsing clocks from device tree support
@ 2019-04-30 17:35 Aisheng Dong
  2019-04-30 17:35 ` [PATCH V2 1/2] dt-bindings: firmware: imx-scu: new binding to parse clocks from device tree Aisheng Dong
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Aisheng Dong @ 2019-04-30 17:35 UTC (permalink / raw)
  To: linux-clk, devicetree
  Cc: Aisheng Dong, sboyd, mturquette, robh+dt, dl-linux-imx, kernel,
	Fabio Estevam, shawnguo, linux-arm-kernel

This is a follow up of the patch thread.
https://www.spinics.net/lists/devicetree/msg283675.html

This patch series is a preparation for the MX8 Architecture improvement.
As for IMX SCU based platforms like MX8QM and MX8QXP, they are comprised
of a couple of SS(Subsystems) while most of them within the same SS
can be shared. e.g. Clocks, Devices and etc.

However, current device tree is heavily depends on Clocks IDs defined which
cause some troubles in writing the common <soc>-ss-xx.dtsi file.

This patch series adds a new binding to support parsing clocks from device tree
which can fully decouple the dependency of Clock IDs in device tree and make
us be able to write a fully generic clock driver for SCU based SoCs.
And it can make the driver much easily to be maintained in the future and
avoid writing a lot of duplicated codes.

ChangeLog:
v1->v2:
 * SCU clock changed to one cell clock binding inspired by arm,scpi.txt
   Documentation/devicetree/bindings/arm/arm,scpi.txt
 * Add required power domain property
 * Dropped PATCH 3&4 first, will send the updated version accordingly
   after the binding is finally determined,

Dong Aisheng (2):
  dt-bindings: firmware: imx-scu: new binding to parse clocks from
    device tree
  dt-bindings: clock: imx-lpcg: add support to parse clocks from device
    tree

 .../devicetree/bindings/arm/freescale/fsl,scu.txt  | 45 ++++++++++++++++++----
 .../devicetree/bindings/clock/imx8qxp-lpcg.txt     | 34 +++++++++++++---
 include/dt-bindings/firmware/imx/rsrc.h            | 17 ++++++++
 3 files changed, 82 insertions(+), 14 deletions(-)

-- 
2.7.4

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH V2 1/2] dt-bindings: firmware: imx-scu: new binding to parse clocks from device tree
  2019-04-30 17:35 [PATCH V2 0/2] clk: imx: scu: add parsing clocks from device tree support Aisheng Dong
@ 2019-04-30 17:35 ` Aisheng Dong
  2019-04-30 17:35 ` [PATCH V2 2/2] dt-bindings: clock: imx-lpcg: add support " Aisheng Dong
  2019-05-03  0:52 ` [PATCH V2 0/2] clk: imx: scu: add parsing clocks from device tree support Aisheng Dong
  2 siblings, 0 replies; 6+ messages in thread
From: Aisheng Dong @ 2019-04-30 17:35 UTC (permalink / raw)
  To: linux-clk, devicetree
  Cc: Aisheng Dong, sboyd, mturquette, robh+dt, dl-linux-imx, kernel,
	Fabio Estevam, shawnguo, linux-arm-kernel

There's a few limitations on the original one cell clock binding
(#clock-cells = <1>) that we have to define all clock IDs for device
tree to reference. This may cause troubles if we want to use common
clock IDs for multi platforms support when the clock of those platforms
are mostly the same.
e.g. Current clock IDs name are defined with SS prefix.

However the device may reside in different SS across CPUs, that means the
SS prefix may not valid anymore for a new SoC. Furthermore, the device
availability of those clocks may also vary a bit.

For such situation, We formerly planned to add all new IDs for each SS
and dynamically check availability for different SoC in driver. That can
be done but that may involve a lot effort and may result in more changes
and duplicated code in driver, also make device tree upstreaming hard which
depends on Clock IDs.

To relief this situation, we want to move the clock definition into
device tree which can fully decouple the dependency of Clock ID definition
from device tree. This can make us write a full generic clock driver
for SCU based SoCs. No more frequent changes needed in clock driver
any more.

In the meanwhile, we can also use the existence of clock nodes in device
tree to address the device and clock availability differences across
different SoCs.

For SCU clocks, only two params required. The first one is resource id
which is encoded in reg property and the second is clock type index
which is encoded in generic clock-indices property they're not continuously.

And as we also want to support clock set parent function, 'clocks' property
is also used to pass all the possible input parents.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: devicetree@vger.kernel.org
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
ChangeLog:
v1->v2:
 * changed to one cell binding inspired by arm,scpi.txt
   Documentation/devicetree/bindings/arm/arm,scpi.txt
   Resource ID is encoded in 'reg' property.
   Clock type is encoded in generic clock-indices property.
   Then we don't have to search all the DT nodes to fetch
   those two value to construct clocks which is relatively
   low efficiency.
 * Add required power-domain property as well.
---
 .../devicetree/bindings/arm/freescale/fsl,scu.txt  | 45 ++++++++++++++++++----
 include/dt-bindings/firmware/imx/rsrc.h            | 17 ++++++++
 2 files changed, 54 insertions(+), 8 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt b/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt
index 5d7dbab..2f46e89 100644
--- a/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt
+++ b/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt
@@ -89,6 +89,27 @@ Required properties:
 			  "fsl,imx8qm-clock"
 			  "fsl,imx8qxp-clock"
 			followed by "fsl,scu-clk"
+- #address-cells:	Should be 1.
+- #size-cells:		Should be 0.
+
+Sub nodes are required to represent all available SCU clocks within this
+hardware subsystem and the following properties are needed:
+
+- reg:			Should contain the Resource ID of this SCU clock.
+- #clock-cells:		Should be 1.
+- clock-indices:	Index of all clock types supported by this SCU clock.
+			The order should match the clock-output-names array.
+			Refer to <include/dt-bindings/firmware/imx/rsrc.h> for
+			available clock types supported by SCU.
+- clock-output-names:	Shall be the corresponding names of the outputs.
+- power-domains:	Should contain the power domain used by this SCU clock.
+
+Optional properties:
+- clocks:		Shall be the input parent clock(s) phandle for the clock.
+			For multiplexed clocks, the list order must match the hardware
+			programming order.
+
+Legacy Clock binding (No sub-nodes which is DEPRECATED):
 - #clock-cells:		Should be 1. Contains the Clock ID value.
 - clocks:		List of clock specifiers, must contain an entry for
 			each required entry in clock-names
@@ -144,6 +165,21 @@ lsio_mu1: mailbox@5d1c0000 {
 	#mbox-cells = <2>;
 };
 
+conn-scu-clock-controller {
+	compatible = "fsl,imx8qxp-clk", "fsl,scu-clk";
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	uart0_clk: clock-scu@57 {
+		reg = <57>;
+		#clock-cells = <1>;
+		clock-indices = <IMX_SC_PM_CLK_PER>;
+		clock-output-names = "uart0_clk";
+		power-domains = <&pd IMX_SC_R_UART_0>;
+	};
+	...
+}
+
 firmware {
 	scu {
 		compatible = "fsl,imx-scu";
@@ -160,11 +196,6 @@ firmware {
 			  &lsio_mu1 1 3
 			  &lsio_mu1 3 3>;
 
-		clk: clk {
-			compatible = "fsl,imx8qxp-clk", "fsl,scu-clk";
-			#clock-cells = <1>;
-		};
-
 		iomuxc {
 			compatible = "fsl,imx8qxp-iomuxc";
 
@@ -192,8 +223,6 @@ serial@5a060000 {
 	...
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_lpuart0>;
-	clocks = <&clk IMX8QXP_UART0_CLK>,
-		 <&clk IMX8QXP_UART0_IPG_CLK>;
-	clock-names = "per", "ipg";
+	clocks = <&uart0_clk IMX_SC_PM_CLK_PER>;
 	power-domains = <&pd IMX_SC_R_UART_0>;
 };
diff --git a/include/dt-bindings/firmware/imx/rsrc.h b/include/dt-bindings/firmware/imx/rsrc.h
index 4e61f64..fbeaca7 100644
--- a/include/dt-bindings/firmware/imx/rsrc.h
+++ b/include/dt-bindings/firmware/imx/rsrc.h
@@ -547,4 +547,21 @@
 #define IMX_SC_R_ATTESTATION		545
 #define IMX_SC_R_LAST			546
 
+/*
+ * Defines for SC PM CLK
+ */
+#define IMX_SC_PM_CLK_SLV_BUS		0	/* Slave bus clock */
+#define IMX_SC_PM_CLK_MST_BUS		1	/* Master bus clock */
+#define IMX_SC_PM_CLK_PER		2	/* Peripheral clock */
+#define IMX_SC_PM_CLK_PHY		3	/* Phy clock */
+#define IMX_SC_PM_CLK_MISC		4	/* Misc clock */
+#define IMX_SC_PM_CLK_MISC0		0	/* Misc 0 clock */
+#define IMX_SC_PM_CLK_MISC1		1	/* Misc 1 clock */
+#define IMX_SC_PM_CLK_MISC2		2	/* Misc 2 clock */
+#define IMX_SC_PM_CLK_MISC3		3	/* Misc 3 clock */
+#define IMX_SC_PM_CLK_MISC4		4	/* Misc 4 clock */
+#define IMX_SC_PM_CLK_CPU		2	/* CPU clock */
+#define IMX_SC_PM_CLK_PLL		4	/* PLL */
+#define IMX_SC_PM_CLK_BYPASS		4	/* Bypass clock */
+
 #endif /* __DT_BINDINGS_RSCRC_IMX_H */
-- 
2.7.4

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH V2 2/2] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree
  2019-04-30 17:35 [PATCH V2 0/2] clk: imx: scu: add parsing clocks from device tree support Aisheng Dong
  2019-04-30 17:35 ` [PATCH V2 1/2] dt-bindings: firmware: imx-scu: new binding to parse clocks from device tree Aisheng Dong
@ 2019-04-30 17:35 ` Aisheng Dong
  2019-05-20 11:45   ` Leonard Crestez
  2019-05-03  0:52 ` [PATCH V2 0/2] clk: imx: scu: add parsing clocks from device tree support Aisheng Dong
  2 siblings, 1 reply; 6+ messages in thread
From: Aisheng Dong @ 2019-04-30 17:35 UTC (permalink / raw)
  To: linux-clk, devicetree
  Cc: Aisheng Dong, sboyd, mturquette, robh+dt, dl-linux-imx, kernel,
	Fabio Estevam, shawnguo, linux-arm-kernel

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.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: devicetree@vger.kernel.org
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
ChangeLog:
v1->v2:
 * Update example
 * Add power domain property
---
 .../devicetree/bindings/clock/imx8qxp-lpcg.txt     | 34 ++++++++++++++++++----
 1 file changed, 28 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt b/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt
index 965cfa4..6fc2fd8 100644
--- a/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt
+++ b/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt
@@ -11,6 +11,21 @@ enabled by these control bits, it might still not be running based
 on the base resource.
 
 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.
+- power-domains:	Should contain the power domain used by this clock.
+
+Legacy binding (DEPRECATED):
 - compatible:	Should be one of:
 		  "fsl,imx8qxp-lpcg-adma",
 		  "fsl,imx8qxp-lpcg-conn",
@@ -33,10 +48,17 @@ Examples:
 
 #include <dt-bindings/clock/imx8qxp-clock.h>
 
-conn_lpcg: clock-controller@5b200000 {
-	compatible = "fsl,imx8qxp-lpcg-conn";
-	reg = <0x5b200000 0xb0000>;
+sdhc0_lpcg: clock-controller@5b200000 {
+	compatible = "fsl,imx8qxp-lpcg";
+	reg = <0x5b200000 0x10000>;
 	#clock-cells = <1>;
+	clocks = <&sdhc0_clk IMX_SC_PM_CLK_PER>,
+		 <&conn_ipg_clk>, <&conn_axi_clk>;
+	bit-offset = <0 16 20>;
+	clock-output-names = "sdhc0_lpcg_per_clk",
+			     "sdhc0_lpcg_ipg_clk",
+			     "sdhc0_lpcg_ahb_clk";
+	power-domains = <&pd IMX_SC_R_SDHC_0>;
 };
 
 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>;
 	clock-names = "ipg", "per", "ahb";
 };
-- 
2.7.4

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* RE: [PATCH V2 0/2] clk: imx: scu: add parsing clocks from device tree support
  2019-04-30 17:35 [PATCH V2 0/2] clk: imx: scu: add parsing clocks from device tree support Aisheng Dong
  2019-04-30 17:35 ` [PATCH V2 1/2] dt-bindings: firmware: imx-scu: new binding to parse clocks from device tree Aisheng Dong
  2019-04-30 17:35 ` [PATCH V2 2/2] dt-bindings: clock: imx-lpcg: add support " Aisheng Dong
@ 2019-05-03  0:52 ` Aisheng Dong
  2 siblings, 0 replies; 6+ messages in thread
From: Aisheng Dong @ 2019-05-03  0:52 UTC (permalink / raw)
  To: linux-clk, devicetree
  Cc: sboyd, mturquette, robh+dt, dl-linux-imx, kernel, Fabio Estevam,
	shawnguo, linux-arm-kernel

Hi Rob,

Do you have a chance to help look at this?

Regards
Dong Aisheng

> From: Aisheng Dong
> Sent: Wednesday, May 1, 2019 1:35 AM
> 
> This is a follow up of the patch thread.
> https://www.spinics.net/lists/devicetree/msg283675.html
> 
> This patch series is a preparation for the MX8 Architecture improvement.
> As for IMX SCU based platforms like MX8QM and MX8QXP, they are comprised
> of a couple of SS(Subsystems) while most of them within the same SS can be
> shared. e.g. Clocks, Devices and etc.
> 
> However, current device tree is heavily depends on Clocks IDs defined which
> cause some troubles in writing the common <soc>-ss-xx.dtsi file.
> 
> This patch series adds a new binding to support parsing clocks from device tree
> which can fully decouple the dependency of Clock IDs in device tree and make
> us be able to write a fully generic clock driver for SCU based SoCs.
> And it can make the driver much easily to be maintained in the future and
> avoid writing a lot of duplicated codes.
> 
> ChangeLog:
> v1->v2:
>  * SCU clock changed to one cell clock binding inspired by arm,scpi.txt
>    Documentation/devicetree/bindings/arm/arm,scpi.txt
>  * Add required power domain property
>  * Dropped PATCH 3&4 first, will send the updated version accordingly
>    after the binding is finally determined,
> 
> Dong Aisheng (2):
>   dt-bindings: firmware: imx-scu: new binding to parse clocks from
>     device tree
>   dt-bindings: clock: imx-lpcg: add support to parse clocks from device
>     tree
> 
>  .../devicetree/bindings/arm/freescale/fsl,scu.txt  | 45
> ++++++++++++++++++----
>  .../devicetree/bindings/clock/imx8qxp-lpcg.txt     | 34 +++++++++++++---
>  include/dt-bindings/firmware/imx/rsrc.h            | 17 ++++++++
>  3 files changed, 82 insertions(+), 14 deletions(-)
> 
> --
> 2.7.4

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH V2 2/2] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree
  2019-04-30 17:35 ` [PATCH V2 2/2] dt-bindings: clock: imx-lpcg: add support " Aisheng Dong
@ 2019-05-20 11:45   ` Leonard Crestez
  2019-05-23  5:35     ` Aisheng Dong
  0 siblings, 1 reply; 6+ messages in thread
From: Leonard Crestez @ 2019-05-20 11:45 UTC (permalink / raw)
  To: Aisheng Dong, sboyd
  Cc: devicetree, mturquette, robh+dt, dl-linux-imx, kernel,
	Fabio Estevam, shawnguo, linux-clk, linux-arm-kernel

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.

>   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?

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH V2 2/2] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree
  2019-05-20 11:45   ` Leonard Crestez
@ 2019-05-23  5:35     ` Aisheng Dong
  0 siblings, 0 replies; 6+ messages in thread
From: Aisheng Dong @ 2019-05-23  5:35 UTC (permalink / raw)
  To: Leonard Crestez, sboyd
  Cc: devicetree, mturquette, robh+dt, dl-linux-imx, kernel,
	Fabio Estevam, shawnguo, linux-clk, linux-arm-kernel

> 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
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-05-23  5:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-30 17:35 [PATCH V2 0/2] clk: imx: scu: add parsing clocks from device tree support Aisheng Dong
2019-04-30 17:35 ` [PATCH V2 1/2] dt-bindings: firmware: imx-scu: new binding to parse clocks from device tree Aisheng Dong
2019-04-30 17:35 ` [PATCH V2 2/2] dt-bindings: clock: imx-lpcg: add support " Aisheng Dong
2019-05-20 11:45   ` Leonard Crestez
2019-05-23  5:35     ` Aisheng Dong
2019-05-03  0:52 ` [PATCH V2 0/2] clk: imx: scu: add parsing clocks from device tree support Aisheng Dong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).