* [RFC 1/5] clk: iproc: define Broadcom NSP iProc clock binding
2015-10-13 21:22 [PATCH 0/5] ARM: dts: add device tree support for NS, NSP, and NS2 clocks Jon Mason
@ 2015-10-13 21:22 ` Jon Mason
2015-10-13 22:17 ` Ray Jui
2015-10-13 21:22 ` [RFC 2/5] ARM: dts: enable clock support for Broadcom NSP Jon Mason
` (3 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: Jon Mason @ 2015-10-13 21:22 UTC (permalink / raw)
To: Michael Turquette, Stephen Boyd
Cc: devicetree, Florian Fainelli, Scott Branden, Hauke Mehrtens,
linux-kernel, bcm-kernel-feedback-list, Ray Jui, linux-clk,
linux-arm-kernel
Document the device tree bindings for Broadcom Northstar Plus
architecture based clock controller
Signed-off-by: Jon Mason <jonmason@broadcom.com>
---
.../bindings/clock/brcm,iproc-clocks.txt | 30 ++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt b/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
index da8d9bb..b3c3e9d 100644
--- a/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
+++ b/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
@@ -130,3 +130,33 @@ These clock IDs are defined in:
ch3_unused mipipll 4 BCM_CYGNUS_MIPIPLL_CH3_UNUSED
ch4_unused mipipll 5 BCM_CYGNUS_MIPIPLL_CH4_UNUSED
ch5_unused mipipll 6 BCM_CYGNUS_MIPIPLL_CH5_UNUSED
+
+Northstar and Northstar Plus
+------
+PLL and leaf clock compatible strings for Northstar and Northstar Plus are:
+ "brcm,nsp-armpll"
+ "brcm,nsp-genpll"
+ "brcm,nsp-lcpll0"
+
+The following table defines the set of PLL/clock index and ID for Northstar and
+Northstar Plus. These clock IDs are defined in:
+ "include/dt-bindings/clock/bcm-nsp.h"
+
+ Clock Source Index ID
+ --- ----- ----- ---------
+ crystal N/A N/A N/A
+
+ armpll crystal N/A N/A
+
+ genpll crystal 0 BCM_NSP_GENPLL
+ phy genpll 1 BCM_NSP_GENPLL_PHY_CLK
+ ethernetclk genpll 2 BCM_NSP_GENPLL_ENET_SW_CLK
+ usbclk genpll 3 BCM_NSP_GENPLL_USB_PHY_REF_CLK
+ iprocfast genpll 4 BCM_NSP_GENPLL_IPROCFAST_CLK
+ sata1 genpll 5 BCM_NSP_GENPLL_SATA1_CLK
+ sata2 genpll 6 BCM_NSP_GENPLL_SATA2_CLK
+
+ lcpll0 crystal 0 BCM_NSP_LCPLL0
+ pcie_phy lcpll0 1 BCM_NSP_LCPLL0_PCIE_PHY_REF_CLK
+ sdio lcpll0 2 BCM_NSP_LCPLL0_SDIO_CLK
+ ddr_phy lcpll0 3 BCM_NSP_LCPLL0_DDR_PHY_CLK
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [RFC 1/5] clk: iproc: define Broadcom NSP iProc clock binding
2015-10-13 21:22 ` [RFC 1/5] clk: iproc: define Broadcom NSP iProc clock binding Jon Mason
@ 2015-10-13 22:17 ` Ray Jui
[not found] ` <561D8300.3040804-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
0 siblings, 1 reply; 13+ messages in thread
From: Ray Jui @ 2015-10-13 22:17 UTC (permalink / raw)
To: Jon Mason, Michael Turquette, Stephen Boyd
Cc: Florian Fainelli, Hauke Mehrtens, Scott Branden, linux-clk,
devicetree, linux-arm-kernel, linux-kernel,
bcm-kernel-feedback-list
Shouldn't the device tree binding document go with the other patch
series since both the binding document and drivers are merged by Michael
or Stephen?
On 10/13/2015 2:22 PM, Jon Mason wrote:
> Document the device tree bindings for Broadcom Northstar Plus
> architecture based clock controller
>
> Signed-off-by: Jon Mason <jonmason@broadcom.com>
> ---
> .../bindings/clock/brcm,iproc-clocks.txt | 30 ++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt b/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
> index da8d9bb..b3c3e9d 100644
> --- a/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
> +++ b/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
> @@ -130,3 +130,33 @@ These clock IDs are defined in:
> ch3_unused mipipll 4 BCM_CYGNUS_MIPIPLL_CH3_UNUSED
> ch4_unused mipipll 5 BCM_CYGNUS_MIPIPLL_CH4_UNUSED
> ch5_unused mipipll 6 BCM_CYGNUS_MIPIPLL_CH5_UNUSED
> +
> +Northstar and Northstar Plus
> +------
> +PLL and leaf clock compatible strings for Northstar and Northstar Plus are:
> + "brcm,nsp-armpll"
> + "brcm,nsp-genpll"
> + "brcm,nsp-lcpll0"
So the current clock driver also supports NS? That will be nice and that
indicates all the clock related registers/offsets are exactly the same
between NS and NSP?
> +
> +The following table defines the set of PLL/clock index and ID for Northstar and
> +Northstar Plus. These clock IDs are defined in:
> + "include/dt-bindings/clock/bcm-nsp.h"
> +
> + Clock Source Index ID
> + --- ----- ----- ---------
> + crystal N/A N/A N/A
> +
> + armpll crystal N/A N/A
> +
> + genpll crystal 0 BCM_NSP_GENPLL
> + phy genpll 1 BCM_NSP_GENPLL_PHY_CLK
> + ethernetclk genpll 2 BCM_NSP_GENPLL_ENET_SW_CLK
> + usbclk genpll 3 BCM_NSP_GENPLL_USB_PHY_REF_CLK
> + iprocfast genpll 4 BCM_NSP_GENPLL_IPROCFAST_CLK
> + sata1 genpll 5 BCM_NSP_GENPLL_SATA1_CLK
> + sata2 genpll 6 BCM_NSP_GENPLL_SATA2_CLK
> +
> + lcpll0 crystal 0 BCM_NSP_LCPLL0
> + pcie_phy lcpll0 1 BCM_NSP_LCPLL0_PCIE_PHY_REF_CLK
> + sdio lcpll0 2 BCM_NSP_LCPLL0_SDIO_CLK
> + ddr_phy lcpll0 3 BCM_NSP_LCPLL0_DDR_PHY_CLK
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [RFC 2/5] ARM: dts: enable clock support for Broadcom NSP
2015-10-13 21:22 [PATCH 0/5] ARM: dts: add device tree support for NS, NSP, and NS2 clocks Jon Mason
2015-10-13 21:22 ` [RFC 1/5] clk: iproc: define Broadcom NSP iProc clock binding Jon Mason
@ 2015-10-13 21:22 ` Jon Mason
2015-10-13 21:22 ` [RFC 3/5] ARM: dts: enable clock support for BCM5301X Jon Mason
` (2 subsequent siblings)
4 siblings, 0 replies; 13+ messages in thread
From: Jon Mason @ 2015-10-13 21:22 UTC (permalink / raw)
To: Michael Turquette, Stephen Boyd
Cc: devicetree, Florian Fainelli, Scott Branden, Hauke Mehrtens,
linux-kernel, bcm-kernel-feedback-list, Ray Jui, linux-clk,
linux-arm-kernel
Replace current device tree dummy clocks with real clock support for
Broadcom Northstar Plus SoC
Signed-off-by: Jon Mason <jonmason@broadcom.com>
---
arch/arm/boot/dts/bcm-nsp.dtsi | 93 ++++++++++++++++++++++++++++++++----------
1 file changed, 72 insertions(+), 21 deletions(-)
diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi
index 58aca27..768ee24 100644
--- a/arch/arm/boot/dts/bcm-nsp.dtsi
+++ b/arch/arm/boot/dts/bcm-nsp.dtsi
@@ -32,6 +32,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/clock/bcm-nsp.h>
#include "skeleton.dtsi"
@@ -42,7 +43,7 @@
mpcore {
compatible = "simple-bus";
- ranges = <0x00000000 0x19020000 0x00003000>;
+ ranges = <0x00000000 0x19000000 0x00023000>;
#address-cells = <1>;
#size-cells = <1>;
@@ -58,27 +59,34 @@
};
};
- L2: l2-cache {
- compatible = "arm,pl310-cache";
- reg = <0x2000 0x1000>;
- cache-unified;
- cache-level = <2>;
+ a9pll: arm_clk@0000 {
+ #clock-cells = <0>;
+ compatible = "brcm,nsp-armpll";
+ clocks = <&osc>;
+ reg = <0x0000 0x1000>;
+ };
+
+ timer@20200 {
+ compatible = "arm,cortex-a9-global-timer";
+ reg = <0x20200 0x100>;
+ interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&periph_clk>;
};
- gic: interrupt-controller@19021000 {
+ gic: interrupt-controller@21000 {
compatible = "arm,cortex-a9-gic";
#interrupt-cells = <3>;
#address-cells = <0>;
interrupt-controller;
- reg = <0x1000 0x1000>,
- <0x0100 0x100>;
+ reg = <0x21000 0x1000>,
+ <0x20100 0x100>;
};
- timer@19020200 {
- compatible = "arm,cortex-a9-global-timer";
- reg = <0x0200 0x100>;
- interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&periph_clk>;
+ L2: l2-cache {
+ compatible = "arm,pl310-cache";
+ reg = <0x22000 0x1000>;
+ cache-unified;
+ cache-level = <2>;
};
};
@@ -87,33 +95,76 @@
#size-cells = <1>;
ranges;
- periph_clk: periph_clk {
+ osc: oscillator {
+ #clock-cells = <0>;
compatible = "fixed-clock";
+ clock-frequency = <25000000>;
+ };
+
+ iprocmed: iprocmed {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ };
+
+ iprocslow: iprocslow {
#clock-cells = <0>;
- clock-frequency = <500000000>;
+ compatible = "fixed-factor-clock";
+ clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
+ clock-div = <4>;
+ clock-mult = <1>;
+ };
+
+ periph_clk: periph_clk {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clocks = <&a9pll>;
+ clock-div = <2>;
+ clock-mult = <1>;
};
};
axi {
compatible = "simple-bus";
- ranges = <0x00000000 0x18000000 0x00001000>;
+ ranges = <0x00000000 0x18000000 0x0003f164>;
#address-cells = <1>;
#size-cells = <1>;
- uart0: serial@18000300 {
+ uart0: serial@00300 {
compatible = "ns16550a";
- reg = <0x0300 0x100>;
+ reg = <0x00300 0x100>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
clock-frequency = <62499840>;
status = "disabled";
};
- uart1: serial@18000400 {
+ uart1: serial@00400 {
compatible = "ns16550a";
- reg = <0x0400 0x100>;
+ reg = <0x00400 0x100>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
clock-frequency = <62499840>;
status = "disabled";
};
+
+ lcpll0: lcpll0@3f100 {
+ #clock-cells = <1>;
+ compatible = "brcm,nsp-lcpll0";
+ reg = <0x3f100 0x14>;
+ clocks = <&osc>;
+ clock-output-names = "lcpll0", "pcie_phy", "sdio",
+ "ddr_phy";
+ };
+
+ genpll: genpll@3f140 {
+ #clock-cells = <1>;
+ compatible = "brcm,nsp-genpll";
+ reg = <0x3f140 0x24>;
+ clocks = <&osc>;
+ clock-output-names = "genpll", "phy", "ethernetclk",
+ "usbclk", "iprocfast", "sata1",
+ "sata2";
+ };
};
};
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread* [RFC 3/5] ARM: dts: enable clock support for BCM5301X
2015-10-13 21:22 [PATCH 0/5] ARM: dts: add device tree support for NS, NSP, and NS2 clocks Jon Mason
2015-10-13 21:22 ` [RFC 1/5] clk: iproc: define Broadcom NSP iProc clock binding Jon Mason
2015-10-13 21:22 ` [RFC 2/5] ARM: dts: enable clock support for Broadcom NSP Jon Mason
@ 2015-10-13 21:22 ` Jon Mason
2015-10-18 22:34 ` Hauke Mehrtens
2015-10-13 21:22 ` [RFC 4/5] clk: iproc: define Broadcom NS2 iProc clock binding Jon Mason
2015-10-13 21:22 ` [RFC 5/5] ARM: dts: enable clock support for Broadcom NS2 Jon Mason
4 siblings, 1 reply; 13+ messages in thread
From: Jon Mason @ 2015-10-13 21:22 UTC (permalink / raw)
To: Michael Turquette, Stephen Boyd
Cc: Florian Fainelli, Hauke Mehrtens, Ray Jui, Scott Branden,
linux-clk, devicetree, linux-arm-kernel, linux-kernel,
bcm-kernel-feedback-list
Replace current device tree dummy clocks with real clock support for
Broadcom Northstar SoCs.
Signed-off-by: Jon Mason <jonmason@broadcom.com>
---
arch/arm/boot/dts/bcm5301x.dtsi | 88 ++++++++++++++++++++++++++++++++---------
1 file changed, 69 insertions(+), 19 deletions(-)
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 6f50f67..1eca551 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -8,6 +8,7 @@
* Licensed under the GNU/GPL. See COPYING for details.
*/
+#include <dt-bindings/clock/bcm-nsp.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
@@ -42,41 +43,48 @@
mpcore {
compatible = "simple-bus";
- ranges = <0x00000000 0x19020000 0x00003000>;
+ ranges = <0x00000000 0x19000000 0x00023000>;
#address-cells = <1>;
#size-cells = <1>;
- scu@0000 {
+ a9pll: arm_clk@00000 {
+ #clock-cells = <0>;
+ compatible = "brcm,nsp-armpll";
+ clocks = <&osc>;
+ reg = <0x00000 0x1000>;
+ };
+
+ scu@20000 {
compatible = "arm,cortex-a9-scu";
- reg = <0x0000 0x100>;
+ reg = <0x20000 0x100>;
};
- timer@0200 {
+ timer@20200 {
compatible = "arm,cortex-a9-global-timer";
- reg = <0x0200 0x100>;
+ reg = <0x20200 0x100>;
interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk_periph>;
+ clocks = <&periph_clk>;
};
- local-timer@0600 {
+ local-timer@20600 {
compatible = "arm,cortex-a9-twd-timer";
- reg = <0x0600 0x100>;
+ reg = <0x20600 0x100>;
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk_periph>;
+ clocks = <&periph_clk>;
};
- gic: interrupt-controller@1000 {
+ gic: interrupt-controller@21000 {
compatible = "arm,cortex-a9-gic";
#interrupt-cells = <3>;
#address-cells = <0>;
interrupt-controller;
- reg = <0x1000 0x1000>,
- <0x0100 0x100>;
+ reg = <0x21000 0x1000>,
+ <0x20100 0x100>;
};
- L2: cache-controller@2000 {
+ L2: cache-controller@22000 {
compatible = "arm,pl310-cache";
- reg = <0x2000 0x1000>;
+ reg = <0x22000 0x1000>;
cache-unified;
arm,shared-override;
prefetch-data = <1>;
@@ -94,14 +102,37 @@
clocks {
#address-cells = <1>;
- #size-cells = <0>;
+ #size-cells = <1>;
+ ranges;
- /* As long as we do not have a real clock driver us this
- * fixed clock */
- clk_periph: periph {
+ osc: oscillator {
+ #clock-cells = <0>;
compatible = "fixed-clock";
+ clock-frequency = <25000000>;
+ };
+
+ iprocmed: iprocmed {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ };
+
+ iprocslow: iprocslow {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
+ clock-div = <4>;
+ clock-mult = <1>;
+ };
+
+ periph_clk: periph_clk {
#clock-cells = <0>;
- clock-frequency = <400000000>;
+ compatible = "fixed-factor-clock";
+ clocks = <&a9pll>;
+ clock-div = <2>;
+ clock-mult = <1>;
};
};
@@ -178,6 +209,25 @@
};
};
+ lcpll0: lcpll0@1800c100 {
+ #clock-cells = <1>;
+ compatible = "brcm,nsp-lcpll0";
+ reg = <0x1800c100 0x14>;
+ clocks = <&osc>;
+ clock-output-names = "lcpll0", "pcie_phy", "sdio",
+ "ddr_phy";
+ };
+
+ genpll: genpll@1800c140 {
+ #clock-cells = <1>;
+ compatible = "brcm,nsp-genpll";
+ reg = <0x1800c140 0x24>;
+ clocks = <&osc>;
+ clock-output-names = "genpll", "phy", "ethernetclk",
+ "usbclk", "iprocfast", "sata1",
+ "sata2";
+ };
+
nand: nand@18028000 {
compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [RFC 3/5] ARM: dts: enable clock support for BCM5301X
2015-10-13 21:22 ` [RFC 3/5] ARM: dts: enable clock support for BCM5301X Jon Mason
@ 2015-10-18 22:34 ` Hauke Mehrtens
0 siblings, 0 replies; 13+ messages in thread
From: Hauke Mehrtens @ 2015-10-18 22:34 UTC (permalink / raw)
To: Jon Mason, Michael Turquette, Stephen Boyd
Cc: devicetree, Florian Fainelli, Scott Branden, Ray Jui,
linux-kernel, bcm-kernel-feedback-list, linux-clk,
linux-arm-kernel
On 10/13/2015 11:22 PM, Jon Mason wrote:
> Replace current device tree dummy clocks with real clock support for
> Broadcom Northstar SoCs.
>
> Signed-off-by: Jon Mason <jonmason@broadcom.com>
The clock-frequency of the uarts should also be replaced with the
correct clock from the clock driver.
Hauke
> ---
> arch/arm/boot/dts/bcm5301x.dtsi | 88 ++++++++++++++++++++++++++++++++---------
> 1 file changed, 69 insertions(+), 19 deletions(-)
>
> diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
> index 6f50f67..1eca551 100644
> --- a/arch/arm/boot/dts/bcm5301x.dtsi
> +++ b/arch/arm/boot/dts/bcm5301x.dtsi
> @@ -8,6 +8,7 @@
> * Licensed under the GNU/GPL. See COPYING for details.
> */
>
> +#include <dt-bindings/clock/bcm-nsp.h>
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/input/input.h>
> #include <dt-bindings/interrupt-controller/irq.h>
> @@ -42,41 +43,48 @@
>
> mpcore {
> compatible = "simple-bus";
> - ranges = <0x00000000 0x19020000 0x00003000>;
> + ranges = <0x00000000 0x19000000 0x00023000>;
> #address-cells = <1>;
> #size-cells = <1>;
>
> - scu@0000 {
> + a9pll: arm_clk@00000 {
> + #clock-cells = <0>;
> + compatible = "brcm,nsp-armpll";
> + clocks = <&osc>;
> + reg = <0x00000 0x1000>;
> + };
> +
> + scu@20000 {
> compatible = "arm,cortex-a9-scu";
> - reg = <0x0000 0x100>;
> + reg = <0x20000 0x100>;
> };
>
> - timer@0200 {
> + timer@20200 {
> compatible = "arm,cortex-a9-global-timer";
> - reg = <0x0200 0x100>;
> + reg = <0x20200 0x100>;
> interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
> - clocks = <&clk_periph>;
> + clocks = <&periph_clk>;
> };
>
> - local-timer@0600 {
> + local-timer@20600 {
> compatible = "arm,cortex-a9-twd-timer";
> - reg = <0x0600 0x100>;
> + reg = <0x20600 0x100>;
> interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>;
> - clocks = <&clk_periph>;
> + clocks = <&periph_clk>;
> };
>
> - gic: interrupt-controller@1000 {
> + gic: interrupt-controller@21000 {
> compatible = "arm,cortex-a9-gic";
> #interrupt-cells = <3>;
> #address-cells = <0>;
> interrupt-controller;
> - reg = <0x1000 0x1000>,
> - <0x0100 0x100>;
> + reg = <0x21000 0x1000>,
> + <0x20100 0x100>;
> };
>
> - L2: cache-controller@2000 {
> + L2: cache-controller@22000 {
> compatible = "arm,pl310-cache";
> - reg = <0x2000 0x1000>;
> + reg = <0x22000 0x1000>;
> cache-unified;
> arm,shared-override;
> prefetch-data = <1>;
> @@ -94,14 +102,37 @@
>
> clocks {
> #address-cells = <1>;
> - #size-cells = <0>;
> + #size-cells = <1>;
> + ranges;
>
> - /* As long as we do not have a real clock driver us this
> - * fixed clock */
> - clk_periph: periph {
> + osc: oscillator {
> + #clock-cells = <0>;
> compatible = "fixed-clock";
> + clock-frequency = <25000000>;
> + };
> +
> + iprocmed: iprocmed {
> + #clock-cells = <0>;
> + compatible = "fixed-factor-clock";
> + clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
> + clock-div = <2>;
> + clock-mult = <1>;
> + };
> +
> + iprocslow: iprocslow {
> + #clock-cells = <0>;
> + compatible = "fixed-factor-clock";
> + clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
> + clock-div = <4>;
> + clock-mult = <1>;
> + };
> +
> + periph_clk: periph_clk {
> #clock-cells = <0>;
> - clock-frequency = <400000000>;
> + compatible = "fixed-factor-clock";
> + clocks = <&a9pll>;
> + clock-div = <2>;
> + clock-mult = <1>;
> };
> };
>
> @@ -178,6 +209,25 @@
> };
> };
>
> + lcpll0: lcpll0@1800c100 {
> + #clock-cells = <1>;
> + compatible = "brcm,nsp-lcpll0";
> + reg = <0x1800c100 0x14>;
> + clocks = <&osc>;
> + clock-output-names = "lcpll0", "pcie_phy", "sdio",
> + "ddr_phy";
> + };
> +
> + genpll: genpll@1800c140 {
> + #clock-cells = <1>;
> + compatible = "brcm,nsp-genpll";
> + reg = <0x1800c140 0x24>;
> + clocks = <&osc>;
> + clock-output-names = "genpll", "phy", "ethernetclk",
> + "usbclk", "iprocfast", "sata1",
> + "sata2";
> + };
> +
> nand: nand@18028000 {
> compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
> reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [RFC 4/5] clk: iproc: define Broadcom NS2 iProc clock binding
2015-10-13 21:22 [PATCH 0/5] ARM: dts: add device tree support for NS, NSP, and NS2 clocks Jon Mason
` (2 preceding siblings ...)
2015-10-13 21:22 ` [RFC 3/5] ARM: dts: enable clock support for BCM5301X Jon Mason
@ 2015-10-13 21:22 ` Jon Mason
[not found] ` <1444771347-11382-5-git-send-email-jonmason-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-10-13 21:22 ` [RFC 5/5] ARM: dts: enable clock support for Broadcom NS2 Jon Mason
4 siblings, 1 reply; 13+ messages in thread
From: Jon Mason @ 2015-10-13 21:22 UTC (permalink / raw)
To: Michael Turquette, Stephen Boyd
Cc: Florian Fainelli, Hauke Mehrtens, Ray Jui, Scott Branden,
linux-clk, devicetree, linux-arm-kernel, linux-kernel,
bcm-kernel-feedback-list
Document the device tree bindings for Broadcom Northstar 2 architecture
based clock controller
Signed-off-by: Jon Mason <jonmason@broadcom.com>
---
.../bindings/clock/brcm,iproc-clocks.txt | 48 ++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt b/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
index b3c3e9d..ede65a5 100644
--- a/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
+++ b/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
@@ -160,3 +160,51 @@ Northstar Plus. These clock IDs are defined in:
pcie_phy lcpll0 1 BCM_NSP_LCPLL0_PCIE_PHY_REF_CLK
sdio lcpll0 2 BCM_NSP_LCPLL0_SDIO_CLK
ddr_phy lcpll0 3 BCM_NSP_LCPLL0_DDR_PHY_CLK
+
+Northstar 2
+-----------
+PLL and leaf clock compatible strings for Northstar 2 are:
+ "brcm,ns2-genpll-scr"
+ "brcm,ns2-genpll-sw"
+ "brcm,ns2-lcpll-ddr"
+ "brcm,ns2-lcpll-ports"
+
+The following table defines the set of PLL/clock index and ID for Northstar 2.
+These clock IDs are defined in:
+ "include/dt-bindings/clock/bcm-ns2.h"
+
+ Clock Source Index ID
+ --- ----- ----- ---------
+ crystal N/A N/A N/A
+
+ genpll_scr crystal 0 BCM_NS2_GENPLL_SCR
+ scr genpll_scr 1 BCM_NS2_GENPLL_SCR_SCR_CLK
+ fs genpll_scr 2 BCM_NS2_GENPLL_SCR_FS_CLK
+ audio_ref genpll_scr 3 BCM_NS2_GENPLL_SCR_AUDIO_CLK
+ ch3_unused genpll_scr 4 BCM_NS2_GENPLL_SCR_CH3_UNUSED
+ ch4_unused genpll_scr 5 BCM_NS2_GENPLL_SCR_CH4_UNUSED
+ ch5_unused genpll_scr 6 BCM_NS2_GENPLL_SCR_CH5_UNUSED
+
+ genpll_sw crystal 0 BCM_NS2_GENPLL_SW
+ rpe genpll_sw 1 BCM_NS2_GENPLL_SW_RPE_CLK
+ 250 genpll_sw 2 BCM_NS2_GENPLL_SW_250_CLK
+ nic genpll_sw 3 BCM_NS2_GENPLL_SW_NIC_CLK
+ chimp genpll_sw 4 BCM_NS2_GENPLL_SW_CHIMP_CLK
+ port genpll_sw 5 BCM_NS2_GENPLL_SW_PORT_CLK
+ sdio genpll_sw 6 BCM_NS2_GENPLL_SW_SDIO_CLK
+
+ lcpll_ddr crystal 0 BCM_NS2_LCPLL_DDR
+ pcie_sata_usb lcpll_ddr 1 BCM_NS2_LCPLL_DDR_PCIE_SATA_USB_CLK
+ ddr lcpll_ddr 2 BCM_NS2_LCPLL_DDR_DDR_CLK
+ ch2_unused lcpll_ddr 3 BCM_NS2_LCPLL_DDR_CH2_UNUSED
+ ch3_unused lcpll_ddr 4 BCM_NS2_LCPLL_DDR_CH3_UNUSED
+ ch4_unused lcpll_ddr 5 BCM_NS2_LCPLL_DDR_CH4_UNUSED
+ ch5_unused lcpll_ddr 6 BCM_NS2_LCPLL_DDR_CH5_UNUSED
+
+ lcpll_ports crystal 0 BCM_NS2_LCPLL_PORTS
+ wan lcpll_ports 1 BCM_NS2_LCPLL_PORTS_WAN_CLK
+ rgmii lcpll_ports 2 BCM_NS2_LCPLL_PORTS_RGMII_CLK
+ ch2_unused lcpll_ports 3 BCM_NS2_LCPLL_PORTS_CH2_UNUSED
+ ch3_unused lcpll_ports 4 BCM_NS2_LCPLL_PORTS_CH3_UNUSED
+ ch4_unused lcpll_ports 5 BCM_NS2_LCPLL_PORTS_CH4_UNUSED
+ ch5_unused lcpll_ports 6 BCM_NS2_LCPLL_PORTS_CH5_UNUSED
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread* [RFC 5/5] ARM: dts: enable clock support for Broadcom NS2
2015-10-13 21:22 [PATCH 0/5] ARM: dts: add device tree support for NS, NSP, and NS2 clocks Jon Mason
` (3 preceding siblings ...)
2015-10-13 21:22 ` [RFC 4/5] clk: iproc: define Broadcom NS2 iProc clock binding Jon Mason
@ 2015-10-13 21:22 ` Jon Mason
4 siblings, 0 replies; 13+ messages in thread
From: Jon Mason @ 2015-10-13 21:22 UTC (permalink / raw)
To: Michael Turquette, Stephen Boyd
Cc: Florian Fainelli, Hauke Mehrtens, Ray Jui, Scott Branden,
linux-clk, devicetree, linux-arm-kernel, linux-kernel,
bcm-kernel-feedback-list
Add device tree entries for clock support for Broadcom Northstar 2 SoC
Signed-off-by: Jon Mason <jonmason@broadcom.com>
---
arch/arm64/boot/dts/broadcom/ns2.dtsi | 93 ++++++++++++++++++++++++++++++++---
1 file changed, 86 insertions(+), 7 deletions(-)
diff --git a/arch/arm64/boot/dts/broadcom/ns2.dtsi b/arch/arm64/boot/dts/broadcom/ns2.dtsi
index 3c92d92..c632f3b 100644
--- a/arch/arm64/boot/dts/broadcom/ns2.dtsi
+++ b/arch/arm64/boot/dts/broadcom/ns2.dtsi
@@ -31,6 +31,7 @@
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/bcm-ns2.h>
/memreserve/ 0x84b00000 0x00000008;
@@ -89,25 +90,103 @@
IRQ_TYPE_EDGE_RISING)>;
};
+ clocks {
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ osc: oscillator {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+ clock-frequency = <25000000>;
+ };
+
+ iprocmed: iprocmed {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ };
+
+ iprocslow: iprocslow {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>;
+ clock-div = <4>;
+ clock-mult = <1>;
+ };
+ };
+
soc: soc {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0 0xffffffff>;
+ ranges = <0 0 0x65000000 0x01130100>;
+
+ lcpll_ddr: lcpll_ddr@001d058 {
+ #clock-cells = <1>;
+ compatible = "brcm,ns2-lcpll-ddr";
+ reg = <0x001d058 0x20>,
+ <0x001c020 0x4>,
+ <0x001d04c 0x4>;
+ clocks = <&osc>;
+ clock-output-names = "lcpll_ddr", "pcie_sata_usb",
+ "ddr", "ddr_ch2_unused",
+ "ddr_ch3_unused", "ddr_ch4_unused",
+ "ddr_ch5_unused";
+ };
+
+ lcpll_ports: lcpll_ports@1d078 {
+ #clock-cells = <1>;
+ compatible = "brcm,ns2-lcpll-ports";
+ reg = <0x001d078 0x20>,
+ <0x001c020 0x4>,
+ <0x001d054 0x4>;
+ clocks = <&osc>;
+ clock-output-names = "lcpll_ports", "wan", "rgmii",
+ "ports_ch2_unused",
+ "ports_ch3_unused",
+ "ports_ch4_unused",
+ "ports_ch5_unused";
+ };
+
+ genpll_scr: genpll_scr@001d098 {
+ #clock-cells = <1>;
+ compatible = "brcm,ns2-genpll-scr";
+ reg = <0x001d098 0x32>,
+ <0x001c020 0x4>,
+ <0x001d044 0x4>;
+ clocks = <&osc>;
+ clock-output-names = "genpll_scr", "scr", "fs",
+ "audio_ref", "scr_ch3_unused",
+ "scr_ch4_unused", "scr_ch5_unused";
+ };
+
+ genpll_sw: genpll_sw@001d0c4 {
+ #clock-cells = <1>;
+ compatible = "brcm,ns2-genpll-sw";
+ reg = <0x001d0c4 0x32>,
+ <0x001c020 0x4>,
+ <0x001d044 0x4>;
+ clocks = <&osc>;
+ clock-output-names = "genpll_sw", "rpe", "250", "nic",
+ "chimp", "port", "sdio";
+ };
- gic: interrupt-controller@65210000 {
+ gic: interrupt-controller@0210000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
interrupt-controller;
- reg = <0x65210000 0x1000>,
- <0x65220000 0x1000>,
- <0x65240000 0x2000>,
- <0x65260000 0x1000>;
+ reg = <0x0210000 0x1000>,
+ <0x0220000 0x1000>,
+ <0x0240000 0x2000>,
+ <0x0260000 0x1000>;
};
- uart3: serial@66130000 {
+ uart3: serial@1130000 {
compatible = "snps,dw-apb-uart";
- reg = <0x66130000 0x100>;
+ reg = <0x1130000 0x100>;
interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread