diff mbox

[V7,12/12] arm64: dts: add clocks for SC9860

Message ID 20171207125715.16160-13-chunyan.zhang@spreadtrum.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Chunyan Zhang Dec. 7, 2017, 12:57 p.m. UTC
Some clocks on SC9860 are in the same address area with syscon devices,
those are what have a property of 'sprd,syscon' which would refer to
syscon devices, others would have a reg property indicated their address
ranges.

Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
---
 arch/arm64/boot/dts/sprd/sc9860.dtsi | 115 +++++++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/sprd/whale2.dtsi |  18 +++++-
 2 files changed, 131 insertions(+), 2 deletions(-)

Comments

Chunyan Zhang Dec. 22, 2017, 5:31 a.m. UTC | #1
+ arm@kernel.org

On 7 December 2017 at 20:57, Chunyan Zhang <chunyan.zhang@spreadtrum.com> wrote:
> Some clocks on SC9860 are in the same address area with syscon devices,
> those are what have a property of 'sprd,syscon' which would refer to
> syscon devices, others would have a reg property indicated their address
> ranges.
>
> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
> ---
>  arch/arm64/boot/dts/sprd/sc9860.dtsi | 115 +++++++++++++++++++++++++++++++++++
>  arch/arm64/boot/dts/sprd/whale2.dtsi |  18 +++++-
>  2 files changed, 131 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/sprd/sc9860.dtsi b/arch/arm64/boot/dts/sprd/sc9860.dtsi
> index 7b7d8ce..bf03da4 100644
> --- a/arch/arm64/boot/dts/sprd/sc9860.dtsi
> +++ b/arch/arm64/boot/dts/sprd/sc9860.dtsi
> @@ -7,6 +7,7 @@
>   */
>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/clock/sprd,sc9860-clk.h>
>  #include "whale2.dtsi"
>
>  / {
> @@ -183,6 +184,120 @@
>         };
>
>         soc {
> +               pmu_gate: pmu-gate {
> +                       compatible = "sprd,sc9860-pmu-gate";
> +                       sprd,syscon = <&pmu_regs>; /* 0x402b0000 */
> +                       clocks = <&ext_26m>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               pll: pll {
> +                       compatible = "sprd,sc9860-pll";
> +                       sprd,syscon = <&ana_regs>; /* 0x40400000 */
> +                       clocks = <&pmu_gate 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               ap_clk: clock-controller@20000000 {
> +                       compatible = "sprd,sc9860-ap-clk";
> +                       reg = <0 0x20000000 0 0x400>;
> +                       clocks = <&ext_26m>, <&pll 0>,
> +                                <&pmu_gate 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               aon_prediv: aon-prediv {
> +                       compatible = "sprd,sc9860-aon-prediv";
> +                       reg = <0 0x402d0000 0 0x400>;
> +                       clocks = <&ext_26m>, <&pll 0>,
> +                                <&pmu_gate 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               apahb_gate: apahb-gate {
> +                       compatible = "sprd,sc9860-apahb-gate";
> +                       sprd,syscon = <&ap_ahb_regs>; /* 0x20210000 */
> +                       clocks = <&aon_prediv 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               aon_gate: aon-gate {
> +                       compatible = "sprd,sc9860-aon-gate";
> +                       sprd,syscon = <&aon_regs>; /* 0x402e0000 */
> +                       clocks = <&aon_prediv 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               aonsecure_clk: clock-controller@40880000 {
> +                       compatible = "sprd,sc9860-aonsecure-clk";
> +                       reg = <0 0x40880000 0 0x400>;
> +                       clocks = <&ext_26m>, <&pll 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               agcp_gate: agcp-gate {
> +                       compatible = "sprd,sc9860-agcp-gate";
> +                       sprd,syscon = <&agcp_regs>; /* 0x415e0000 */
> +                       clocks = <&aon_prediv 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               gpu_clk: clock-controller@60200000 {
> +                       compatible = "sprd,sc9860-gpu-clk";
> +                       reg = <0 0x60200000 0 0x400>;
> +                       clocks = <&pll 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               vsp_clk: clock-controller@61000000 {
> +                       compatible = "sprd,sc9860-vsp-clk";
> +                       reg = <0 0x61000000 0 0x400>;
> +                       clocks = <&ext_26m>, <&pll 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               vsp_gate: vsp-gate {
> +                       compatible = "sprd,sc9860-vsp-gate";
> +                       sprd,syscon = <&vsp_regs>; /* 0x61100000 */
> +                       clocks = <&vsp_clk 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               cam_clk: clock-controller@62000000 {
> +                       compatible = "sprd,sc9860-cam-clk";
> +                       reg = <0 0x62000000 0 0x4000>;
> +                       clocks = <&ext_26m>, <&pll 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               cam_gate: cam-gate {
> +                       compatible = "sprd,sc9860-cam-gate";
> +                       sprd,syscon = <&cam_regs>; /* 0x62100000 */
> +                       clocks = <&cam_clk 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               disp_clk: clock-controller@63000000 {
> +                       compatible = "sprd,sc9860-disp-clk";
> +                       reg = <0 0x63000000 0 0x400>;
> +                       clocks = <&ext_26m>, <&pll 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               disp_gate: disp-gate {
> +                       compatible = "sprd,sc9860-disp-gate";
> +                       sprd,syscon = <&disp_regs>; /* 0x63100000 */
> +                       clocks = <&disp_clk 0>;
> +                       #clock-cells = <1>;
> +               };
> +
> +               apapb_gate: apapb-gate {
> +                       compatible = "sprd,sc9860-apapb-gate";
> +                       sprd,syscon = <&ap_apb_regs>; /* 0x70b00000 */
> +                       clocks = <&ap_clk 0>;
> +                       #clock-cells = <1>;
> +               };
> +
>                 funnel@10001000 { /* SoC Funnel */
>                         compatible = "arm,coresight-funnel", "arm,primecell";
>                         reg = <0 0x10001000 0 0x1000>;
> diff --git a/arch/arm64/boot/dts/sprd/whale2.dtsi b/arch/arm64/boot/dts/sprd/whale2.dtsi
> index 6ea3a75..328009c 100644
> --- a/arch/arm64/boot/dts/sprd/whale2.dtsi
> +++ b/arch/arm64/boot/dts/sprd/whale2.dtsi
> @@ -106,10 +106,24 @@
>                 };
>         };
>
> -       ext_26m: ext-26m {
> +       ext_32k: ext_32k {
> +               compatible = "fixed-clock";
> +               #clock-cells = <0>;
> +               clock-frequency = <32768>;
> +               clock-output-names = "ext-32k";
> +       };
> +
> +       ext_26m: ext_26m {
>                 compatible = "fixed-clock";
>                 #clock-cells = <0>;
>                 clock-frequency = <26000000>;
> -               clock-output-names = "ext_26m";
> +               clock-output-names = "ext-26m";
> +       };
> +
> +       ext_rco_100m: ext_rco_100m {
> +               compatible = "fixed-clock";
> +               #clock-cells = <0>;
> +               clock-frequency = <100000000>;
> +               clock-output-names = "ext-rco-100m";
>         };
>  };
> --
> 2.7.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-clk" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Arnd Bergmann Jan. 4, 2018, 9:34 p.m. UTC | #2
On Thu, Dec 7, 2017 at 1:57 PM, Chunyan Zhang
<chunyan.zhang@spreadtrum.com> wrote:
> Some clocks on SC9860 are in the same address area with syscon devices,
> those are what have a property of 'sprd,syscon' which would refer to
> syscon devices, others would have a reg property indicated their address
> ranges.
>
> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
> ---
>  arch/arm64/boot/dts/sprd/sc9860.dtsi | 115 +++++++++++++++++++++++++++++++++++
>  arch/arm64/boot/dts/sprd/whale2.dtsi |  18 +++++-
>  2 files changed, 131 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/sprd/sc9860.dtsi b/arch/arm64/boot/dts/sprd/sc9860.dtsi
> index 7b7d8ce..bf03da4 100644
> --- a/arch/arm64/boot/dts/sprd/sc9860.dtsi
> +++ b/arch/arm64/boot/dts/sprd/sc9860.dtsi
> @@ -7,6 +7,7 @@
>   */
>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/clock/sprd,sc9860-clk.h>
>  #include "whale2.dtsi"

This caused a build error since the sprd,sc9860-clk.h file does not
exist, I'll revert or
undo the patch tomorrow.

        Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-clk" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Arnd Bergmann Jan. 4, 2018, 11:01 p.m. UTC | #3
On Thu, Jan 4, 2018 at 10:34 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Thu, Dec 7, 2017 at 1:57 PM, Chunyan Zhang
> <chunyan.zhang@spreadtrum.com> wrote:
>> Some clocks on SC9860 are in the same address area with syscon devices,
>> those are what have a property of 'sprd,syscon' which would refer to
>> syscon devices, others would have a reg property indicated their address
>> ranges.
>>
>> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
>> ---
>>  arch/arm64/boot/dts/sprd/sc9860.dtsi | 115 +++++++++++++++++++++++++++++++++++
>>  arch/arm64/boot/dts/sprd/whale2.dtsi |  18 +++++-
>>  2 files changed, 131 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/sprd/sc9860.dtsi b/arch/arm64/boot/dts/sprd/sc9860.dtsi
>> index 7b7d8ce..bf03da4 100644
>> --- a/arch/arm64/boot/dts/sprd/sc9860.dtsi
>> +++ b/arch/arm64/boot/dts/sprd/sc9860.dtsi
>> @@ -7,6 +7,7 @@
>>   */
>>
>>  #include <dt-bindings/interrupt-controller/arm-gic.h>
>> +#include <dt-bindings/clock/sprd,sc9860-clk.h>
>>  #include "whale2.dtsi"
>
> This caused a build error since the sprd,sc9860-clk.h file does not
> exist, I'll revert or undo the patch tomorrow.

I've taken another look, and fixing it by removing the broken #include
was easier than undoing the patches, so I did that now, see
https://patchwork.kernel.org/patch/10145773/

      Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-clk" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Chunyan Zhang Jan. 5, 2018, 5:27 a.m. UTC | #4
On 5 January 2018 at 07:01, Arnd Bergmann <arnd@arndb.de> wrote:
> On Thu, Jan 4, 2018 at 10:34 PM, Arnd Bergmann <arnd@arndb.de> wrote:
>> On Thu, Dec 7, 2017 at 1:57 PM, Chunyan Zhang
>> <chunyan.zhang@spreadtrum.com> wrote:
>>> Some clocks on SC9860 are in the same address area with syscon devices,
>>> those are what have a property of 'sprd,syscon' which would refer to
>>> syscon devices, others would have a reg property indicated their address
>>> ranges.
>>>
>>> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
>>> ---
>>>  arch/arm64/boot/dts/sprd/sc9860.dtsi | 115 +++++++++++++++++++++++++++++++++++
>>>  arch/arm64/boot/dts/sprd/whale2.dtsi |  18 +++++-
>>>  2 files changed, 131 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/arch/arm64/boot/dts/sprd/sc9860.dtsi b/arch/arm64/boot/dts/sprd/sc9860.dtsi
>>> index 7b7d8ce..bf03da4 100644
>>> --- a/arch/arm64/boot/dts/sprd/sc9860.dtsi
>>> +++ b/arch/arm64/boot/dts/sprd/sc9860.dtsi
>>> @@ -7,6 +7,7 @@
>>>   */
>>>
>>>  #include <dt-bindings/interrupt-controller/arm-gic.h>
>>> +#include <dt-bindings/clock/sprd,sc9860-clk.h>
>>>  #include "whale2.dtsi"
>>
>> This caused a build error since the sprd,sc9860-clk.h file does not
>> exist, I'll revert or undo the patch tomorrow.
>
> I've taken another look, and fixing it by removing the broken #include
> was easier than undoing the patches, so I did that now, see
> https://patchwork.kernel.org/patch/10145773/

Ok, thanks Arnd!

Chunyan

>
>       Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-clk" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm64/boot/dts/sprd/sc9860.dtsi b/arch/arm64/boot/dts/sprd/sc9860.dtsi
index 7b7d8ce..bf03da4 100644
--- a/arch/arm64/boot/dts/sprd/sc9860.dtsi
+++ b/arch/arm64/boot/dts/sprd/sc9860.dtsi
@@ -7,6 +7,7 @@ 
  */
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/sprd,sc9860-clk.h>
 #include "whale2.dtsi"
 
 / {
@@ -183,6 +184,120 @@ 
 	};
 
 	soc {
+		pmu_gate: pmu-gate {
+			compatible = "sprd,sc9860-pmu-gate";
+			sprd,syscon = <&pmu_regs>; /* 0x402b0000 */
+			clocks = <&ext_26m>;
+			#clock-cells = <1>;
+		};
+
+		pll: pll {
+			compatible = "sprd,sc9860-pll";
+			sprd,syscon = <&ana_regs>; /* 0x40400000 */
+			clocks = <&pmu_gate 0>;
+			#clock-cells = <1>;
+		};
+
+		ap_clk: clock-controller@20000000 {
+			compatible = "sprd,sc9860-ap-clk";
+			reg = <0 0x20000000 0 0x400>;
+			clocks = <&ext_26m>, <&pll 0>,
+				 <&pmu_gate 0>;
+			#clock-cells = <1>;
+		};
+
+		aon_prediv: aon-prediv {
+			compatible = "sprd,sc9860-aon-prediv";
+			reg = <0 0x402d0000 0 0x400>;
+			clocks = <&ext_26m>, <&pll 0>,
+				 <&pmu_gate 0>;
+			#clock-cells = <1>;
+		};
+
+		apahb_gate: apahb-gate {
+			compatible = "sprd,sc9860-apahb-gate";
+			sprd,syscon = <&ap_ahb_regs>; /* 0x20210000 */
+			clocks = <&aon_prediv 0>;
+			#clock-cells = <1>;
+		};
+
+		aon_gate: aon-gate {
+			compatible = "sprd,sc9860-aon-gate";
+			sprd,syscon = <&aon_regs>; /* 0x402e0000 */
+			clocks = <&aon_prediv 0>;
+			#clock-cells = <1>;
+		};
+
+		aonsecure_clk: clock-controller@40880000 {
+			compatible = "sprd,sc9860-aonsecure-clk";
+			reg = <0 0x40880000 0 0x400>;
+			clocks = <&ext_26m>, <&pll 0>;
+			#clock-cells = <1>;
+		};
+
+		agcp_gate: agcp-gate {
+			compatible = "sprd,sc9860-agcp-gate";
+			sprd,syscon = <&agcp_regs>; /* 0x415e0000 */
+			clocks = <&aon_prediv 0>;
+			#clock-cells = <1>;
+		};
+
+		gpu_clk: clock-controller@60200000 {
+			compatible = "sprd,sc9860-gpu-clk";
+			reg = <0 0x60200000 0 0x400>;
+			clocks = <&pll 0>;
+			#clock-cells = <1>;
+		};
+
+		vsp_clk: clock-controller@61000000 {
+			compatible = "sprd,sc9860-vsp-clk";
+			reg = <0 0x61000000 0 0x400>;
+			clocks = <&ext_26m>, <&pll 0>;
+			#clock-cells = <1>;
+		};
+
+		vsp_gate: vsp-gate {
+			compatible = "sprd,sc9860-vsp-gate";
+			sprd,syscon = <&vsp_regs>; /* 0x61100000 */
+			clocks = <&vsp_clk 0>;
+			#clock-cells = <1>;
+		};
+
+		cam_clk: clock-controller@62000000 {
+			compatible = "sprd,sc9860-cam-clk";
+			reg = <0 0x62000000 0 0x4000>;
+			clocks = <&ext_26m>, <&pll 0>;
+			#clock-cells = <1>;
+		};
+
+		cam_gate: cam-gate {
+			compatible = "sprd,sc9860-cam-gate";
+			sprd,syscon = <&cam_regs>; /* 0x62100000 */
+			clocks = <&cam_clk 0>;
+			#clock-cells = <1>;
+		};
+
+		disp_clk: clock-controller@63000000 {
+			compatible = "sprd,sc9860-disp-clk";
+			reg = <0 0x63000000 0 0x400>;
+			clocks = <&ext_26m>, <&pll 0>;
+			#clock-cells = <1>;
+		};
+
+		disp_gate: disp-gate {
+			compatible = "sprd,sc9860-disp-gate";
+			sprd,syscon = <&disp_regs>; /* 0x63100000 */
+			clocks = <&disp_clk 0>;
+			#clock-cells = <1>;
+		};
+
+		apapb_gate: apapb-gate {
+			compatible = "sprd,sc9860-apapb-gate";
+			sprd,syscon = <&ap_apb_regs>; /* 0x70b00000 */
+			clocks = <&ap_clk 0>;
+			#clock-cells = <1>;
+		};
+
 		funnel@10001000 { /* SoC Funnel */
 			compatible = "arm,coresight-funnel", "arm,primecell";
 			reg = <0 0x10001000 0 0x1000>;
diff --git a/arch/arm64/boot/dts/sprd/whale2.dtsi b/arch/arm64/boot/dts/sprd/whale2.dtsi
index 6ea3a75..328009c 100644
--- a/arch/arm64/boot/dts/sprd/whale2.dtsi
+++ b/arch/arm64/boot/dts/sprd/whale2.dtsi
@@ -106,10 +106,24 @@ 
 		};
 	};
 
-	ext_26m: ext-26m {
+	ext_32k: ext_32k {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <32768>;
+		clock-output-names = "ext-32k";
+	};
+
+	ext_26m: ext_26m {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <26000000>;
-		clock-output-names = "ext_26m";
+		clock-output-names = "ext-26m";
+	};
+
+	ext_rco_100m: ext_rco_100m {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <100000000>;
+		clock-output-names = "ext-rco-100m";
 	};
 };