Skip to contentSkip to conversation

clk: sirf: add CSR atlas7 clk and reset support

PATCH New Barry Song 2 participants 6 messages Dec 25, 2014 – May 6, 2015

Subsystems (2)
lore
Share & tools
lore

Barry Song

author
#0 lore raw

PATCH 1/1 clk: sirf: add CSR atlas7 clk and reset support

From: Zhiwu Song <[email protected]>

the hardware node includes both clock and reset support, so it is named as "car".
this patch implements Flexible clocks(mux, divider, gate), Selectable clock(mux, divider, gate), root clock(gate),leaf clock(gate), others. it also implements the reset controller functionality.

---
 .../devicetree/bindings/clock/csr,atlas7-car.txt   |   46 +
 drivers/clk/sirf/Makefile                          |    2 +-
 drivers/clk/sirf/clk-atlas7.c                      | 1652 ++++++++++++++++++++
 3 files changed, 1699 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/clock/csr,atlas7-car.txt
 create mode 100644 drivers/clk/sirf/clk-atlas7.c
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +46 -0
new file mode 100644
index 0000000..a1a9499
@@ -0,0 +1,46 @@
+* Clock and reset bindings for CSR atlas7
+
+Required properties:
+- compatible: Should be "sirf,atlas7-car"
+- reg: Address and length of the register set
+- #clock-cells: Should be <1>
+- #reset-cells: Should be <1>
+
+The clock consumer should specify the desired clock by having the clock
+ID in its "clocks" phandle cell.
+The ID list atlas7_clks defined in drivers/clk/sirf/clk-atlas7.c
+
+The reset consumer should specify the desired reset by having the reset
+ID in its "reset" phandle cell.
+The ID list atlas7_reset_unit defined in drivers/clk/sirf/clk-atlas7.c
+
+Examples:
+
+timer at 10dc0000 {
+	compatible = "sirf,macro-tick";
+	reg = <0x10dc0000 0x1000>;
+	clocks = <&car 54>;
+	interrupts = <0 0 0>,
+		   <0 1 0>,
+		   <0 2 0>,
+		   <0 49 0>,
+		   <0 50 0>,
+		   <0 51 0>;
+};
+
+uart1: uart at 18020000 {
+	cell-index = <1>;
+	compatible = "sirf,macro-uart";
+	reg = <0x18020000 0x1000>;
+	clocks = <&clks 95>;
+	interrupts = <0 18 0>;
+	fifosize = <32>;
+};
+
+vpp at 13110000 {
+	compatible = "sirf,prima2-vpp";
+	reg = <0x13110000 0x10000>;
+	interrupts = <0 31 0>;
+	clocks = <&car 85>;
+	resets = <&car 29>;
+};
drivers/clk/sirf/Makefile +1 -1
index 36b8e20..09b4210 100644
@@ -2,4 +2,4 @@
 # Makefile for sirf specific clk
 #
 
-obj-$(CONFIG_ARCH_SIRF) += clk-prima2.o clk-atlas6.o
+obj-$(CONFIG_ARCH_SIRF) += clk-prima2.o clk-atlas6.o clk-atlas7.o
drivers/clk/sirf/clk-atlas7.c new file +1652 -0

1,652 lines not on this page · raw message

Signature · 1 line
2.2.0
#1 lore raw

PATCH 1/1 clk: sirf: add CSR atlas7 clk and reset support

Quoting Barry Song (2014-12-25 00:24:05)

Quoted 60 lines

From: Zhiwu Song <[email protected]>

the hardware node includes both clock and reset support, so it is named as "car".
this patch implements Flexible clocks(mux, divider, gate), Selectable clock(mux, divider, gate), root clock(gate),leaf clock(gate), others. it also implements the reset controller functionality.

---
 .../devicetree/bindings/clock/csr,atlas7-car.txt   |   46 +
 drivers/clk/sirf/Makefile                          |    2 +-
 drivers/clk/sirf/clk-atlas7.c                      | 1652 ++++++++++++++++++++
 3 files changed, 1699 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/clock/csr,atlas7-car.txt
 create mode 100644 drivers/clk/sirf/clk-atlas7.c
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +36 -0
new file mode 100644
index 0000000..a1a9499
@@ -0,0 +1,46 @@
+* Clock and reset bindings for CSR atlas7
+
+Required properties:
+- compatible: Should be "sirf,atlas7-car"
+- reg: Address and length of the register set
+- #clock-cells: Should be <1>
+- #reset-cells: Should be <1>
+
+The clock consumer should specify the desired clock by having the clock
+ID in its "clocks" phandle cell.
+The ID list atlas7_clks defined in drivers/clk/sirf/clk-atlas7.c
+
+The reset consumer should specify the desired reset by having the reset
+ID in its "reset" phandle cell.
+The ID list atlas7_reset_unit defined in drivers/clk/sirf/clk-atlas7.c
+
+Examples:
+
+timer at 10dc0000 {
+       compatible = "sirf,macro-tick";
+       reg = <0x10dc0000 0x1000>;
+       clocks = <&car 54>;
+       interrupts = <0 0 0>,
+                  <0 1 0>,
+                  <0 2 0>,
+                  <0 49 0>,
+                  <0 50 0>,
+                  <0 51 0>;
+};
+
+uart1: uart at 18020000 {
+       cell-index = <1>;
+       compatible = "sirf,macro-uart";
+       reg = <0x18020000 0x1000>;
+       clocks = <&clks 95>;
+       interrupts = <0 18 0>;

Documentation/devicetree/bindings/clock/csr,atlas7-car.txt line 46

Quoted 10 lines
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +10 -0
+       fifosize = <32>;
+};
+
+vpp at 13110000 {
+       compatible = "sirf,prima2-vpp";
+       reg = <0x13110000 0x10000>;
+       interrupts = <0 31 0>;
+       clocks = <&car 85>;
+       resets = <&car 29>;
+};

It would be nice to provide an example of the clock provider node, "sirf,atlas7-car". Also do you have a patch which adds this node to a dts file somewhere?

Otherwise the rest of this patch looks OK.

Regards,
Mike

author
#2 lore raw

PATCH 1/1 clk: sirf: add CSR atlas7 clk and reset support

2015-04-11 8:23 GMT+08:00 Michael Turquette <[email protected]>:

Quoted 66 lines

Quoting Barry Song (2014-12-25 00:24:05)

Quoted 65 lines

From: Zhiwu Song <[email protected]>

the hardware node includes both clock and reset support, so it is named as "car".
this patch implements Flexible clocks(mux, divider, gate), Selectable clock(mux, divider, gate), root clock(gate),leaf clock(gate), others. it also implements the reset controller functionality.

---
 .../devicetree/bindings/clock/csr,atlas7-car.txt   |   46 +
 drivers/clk/sirf/Makefile                          |    2 +-
 drivers/clk/sirf/clk-atlas7.c                      | 1652 ++++++++++++++++++++
 3 files changed, 1699 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/clock/csr,atlas7-car.txt
 create mode 100644 drivers/clk/sirf/clk-atlas7.c
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +41 -0
new file mode 100644
index 0000000..a1a9499
@@ -0,0 +1,46 @@
+* Clock and reset bindings for CSR atlas7
+
+Required properties:
+- compatible: Should be "sirf,atlas7-car"
+- reg: Address and length of the register set
+- #clock-cells: Should be <1>
+- #reset-cells: Should be <1>
+
+The clock consumer should specify the desired clock by having the clock
+ID in its "clocks" phandle cell.
+The ID list atlas7_clks defined in drivers/clk/sirf/clk-atlas7.c
+
+The reset consumer should specify the desired reset by having the reset
+ID in its "reset" phandle cell.
+The ID list atlas7_reset_unit defined in drivers/clk/sirf/clk-atlas7.c
+
+Examples:
+
+timer at 10dc0000 {
+       compatible = "sirf,macro-tick";
+       reg = <0x10dc0000 0x1000>;
+       clocks = <&car 54>;
+       interrupts = <0 0 0>,
+                  <0 1 0>,
+                  <0 2 0>,
+                  <0 49 0>,
+                  <0 50 0>,
+                  <0 51 0>;
+};
+
+uart1: uart at 18020000 {
+       cell-index = <1>;
+       compatible = "sirf,macro-uart";
+       reg = <0x18020000 0x1000>;
+       clocks = <&clks 95>;
+       interrupts = <0 18 0>;
+       fifosize = <32>;
+};
+
+vpp at 13110000 {
+       compatible = "sirf,prima2-vpp";
Quoted 8 lines

Documentation/devicetree/bindings/clock/csr,atlas7-car.txt line 46

Quoted 5 lines
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +5 -0
+       reg = <0x13110000 0x10000>;
+       interrupts = <0 31 0>;
+       clocks = <&car 85>;
+       resets = <&car 29>;
+};

It would be nice to provide an example of the clock provider node, "sirf,atlas7-car".

ok. Mike, thanks for reviewing.

Quoted 3 lines

Also do you have a patch which adds this node to a dts file somewhere?

this has been done when atlas7 platform was added. see:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/atlas7.dtsi

there is a node:

            car: clock-controller at 18620000 {
                compatible = "sirf,atlas7-car";
                reg = <0x18620000 0x1000>;
                #clock-cells = <1>;
                #reset-cells = <1>;
            };
Quoted 4 lines

Otherwise the rest of this patch looks OK.

Regards,
Mike

-barry

author
#3 lore raw

PATCH 1/1 clk: sirf: add CSR atlas7 clk and reset support

2015-04-12 18:24 GMT+08:00, Barry Song <[email protected]>:

Quoted 79 lines

2015-04-11 8:23 GMT+08:00 Michael Turquette <[email protected]>:

Quoted 69 lines

Quoting Barry Song (2014-12-25 00:24:05)

Quoted 68 lines

From: Zhiwu Song <[email protected]>

the hardware node includes both clock and reset support, so it is named as "car".
this patch implements Flexible clocks(mux, divider, gate), Selectable clock(mux, divider, gate), root clock(gate),leaf clock(gate), others. it also implements the reset controller functionality.

---
 .../devicetree/bindings/clock/csr,atlas7-car.txt   |   46 +
 drivers/clk/sirf/Makefile                          |    2 +-
 drivers/clk/sirf/clk-atlas7.c                      | 1652
++++++++++++++++++++
 3 files changed, 1699 insertions(+), 1 deletion(-)
 create mode 100644
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt
 create mode 100644 drivers/clk/sirf/clk-atlas7.c
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +41 -0
new file mode 100644
index 0000000..a1a9499
@@ -0,0 +1,46 @@
+* Clock and reset bindings for CSR atlas7
+
+Required properties:
+- compatible: Should be "sirf,atlas7-car"
+- reg: Address and length of the register set
+- #clock-cells: Should be <1>
+- #reset-cells: Should be <1>
+
+The clock consumer should specify the desired clock by having the clock
+ID in its "clocks" phandle cell.
+The ID list atlas7_clks defined in drivers/clk/sirf/clk-atlas7.c
+
+The reset consumer should specify the desired reset by having the reset
+ID in its "reset" phandle cell.
+The ID list atlas7_reset_unit defined in drivers/clk/sirf/clk-atlas7.c
+
+Examples:
+
+timer at 10dc0000 {
+       compatible = "sirf,macro-tick";
+       reg = <0x10dc0000 0x1000>;
+       clocks = <&car 54>;
+       interrupts = <0 0 0>,
+                  <0 1 0>,
+                  <0 2 0>,
+                  <0 49 0>,
+                  <0 50 0>,
+                  <0 51 0>;
+};
+
+uart1: uart at 18020000 {
+       cell-index = <1>;
+       compatible = "sirf,macro-uart";
+       reg = <0x18020000 0x1000>;
+       clocks = <&clks 95>;
+       interrupts = <0 18 0>;
+       fifosize = <32>;
+};
+
+vpp at 13110000 {
+       compatible = "sirf,prima2-vpp";
Quoted 8 lines

Documentation/devicetree/bindings/clock/csr,atlas7-car.txt line 46

Quoted 5 lines
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +5 -0
+       reg = <0x13110000 0x10000>;
+       interrupts = <0 31 0>;
+       clocks = <&car 85>;
+       resets = <&car 29>;
+};

It would be nice to provide an example of the clock provider node, "sirf,atlas7-car".

Quoted 1 line

ok. Mike, thanks for reviewing.

hi mike, the example of the clock provider node has been done by the v2 patch sent two days ago.is there enough time to push it to 4.1?

Quoted 16 lines
Quoted 4 lines

Also do you have a patch which adds this node to a dts file somewhere?

this has been done when atlas7 platform was added. see:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/atlas7.dtsi

there is a node:

            car: clock-controller at 18620000 {
                compatible = "sirf,atlas7-car";
                reg = <0x18620000 0x1000>;
                #clock-cells = <1>;
                #reset-cells = <1>;
            };
Quoted 7 lines
Quoted 4 lines

Otherwise the rest of this patch looks OK.

Regards,
Mike

-barry

-barry

#4 lore raw

PATCH 1/1 clk: sirf: add CSR atlas7 clk and reset support

Quoting Barry Song (2015-04-14 04:57:18)

Quoted 80 lines

2015-04-12 18:24 GMT+08:00, Barry Song <[email protected]>:

Quoted 79 lines

2015-04-11 8:23 GMT+08:00 Michael Turquette <[email protected]>:

Quoted 77 lines

Quoting Barry Song (2014-12-25 00:24:05)

Quoted 63 lines

From: Zhiwu Song <[email protected]>

the hardware node includes both clock and reset support, so it is named as "car".
this patch implements Flexible clocks(mux, divider, gate), Selectable clock(mux, divider, gate), root clock(gate),leaf clock(gate), others. it also implements the reset controller functionality.

---
 .../devicetree/bindings/clock/csr,atlas7-car.txt   |   46 +
 drivers/clk/sirf/Makefile                          |    2 +-
 drivers/clk/sirf/clk-atlas7.c                      | 1652
++++++++++++++++++++
 3 files changed, 1699 insertions(+), 1 deletion(-)
 create mode 100644
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt
 create mode 100644 drivers/clk/sirf/clk-atlas7.c
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +36 -0
new file mode 100644
index 0000000..a1a9499
@@ -0,0 +1,46 @@
+* Clock and reset bindings for CSR atlas7
+
+Required properties:
+- compatible: Should be "sirf,atlas7-car"
+- reg: Address and length of the register set
+- #clock-cells: Should be <1>
+- #reset-cells: Should be <1>
+
+The clock consumer should specify the desired clock by having the clock
+ID in its "clocks" phandle cell.
+The ID list atlas7_clks defined in drivers/clk/sirf/clk-atlas7.c
+
+The reset consumer should specify the desired reset by having the reset
+ID in its "reset" phandle cell.
+The ID list atlas7_reset_unit defined in drivers/clk/sirf/clk-atlas7.c
+
+Examples:
+
+timer at 10dc0000 {
+       compatible = "sirf,macro-tick";
+       reg = <0x10dc0000 0x1000>;
+       clocks = <&car 54>;
+       interrupts = <0 0 0>,
+                  <0 1 0>,
+                  <0 2 0>,
+                  <0 49 0>,
+                  <0 50 0>,
+                  <0 51 0>;
+};
+
+uart1: uart at 18020000 {
+       cell-index = <1>;
+       compatible = "sirf,macro-uart";
+       reg = <0x18020000 0x1000>;
+       clocks = <&clks 95>;
+       interrupts = <0 18 0>;

Documentation/devicetree/bindings/clock/csr,atlas7-car.txt line 46

Quoted 10 lines
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +10 -0
+       fifosize = <32>;
+};
+
+vpp at 13110000 {
+       compatible = "sirf,prima2-vpp";
+       reg = <0x13110000 0x10000>;
+       interrupts = <0 31 0>;
+       clocks = <&car 85>;
+       resets = <&car 29>;
+};

It would be nice to provide an example of the clock provider node, "sirf,atlas7-car".

Quoted 4 lines
Quoted 1 line

ok. Mike, thanks for reviewing.

hi mike, the example of the clock provider node has been done by the v2 patch sent two days ago.is there enough time to push it to 4.1?

I'm afraid not. I'll take it after 4.1-rc1 drops.

Regards,
Mike

Quoted 26 lines
Quoted 17 lines
Quoted 5 lines

Also do you have a patch which adds this node to a dts file somewhere?

this has been done when atlas7 platform was added. see:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/atlas7.dtsi

there is a node:

            car: clock-controller at 18620000 {
                compatible = "sirf,atlas7-car";
                reg = <0x18620000 0x1000>;
                #clock-cells = <1>;
                #reset-cells = <1>;
            };
Quoted 7 lines
Quoted 4 lines

Otherwise the rest of this patch looks OK.

Regards,
Mike

-barry

-barry

author
#5 lore raw

PATCH 1/1 clk: sirf: add CSR atlas7 clk and reset support

2015-04-17 5:59 GMT+08:00 Michael Turquette <[email protected]>:

Quoted 81 lines

Quoting Barry Song (2015-04-14 04:57:18)

Quoted 80 lines

2015-04-12 18:24 GMT+08:00, Barry Song <[email protected]>:

Quoted 79 lines

2015-04-11 8:23 GMT+08:00 Michael Turquette <[email protected]>:

Quoted 77 lines

Quoting Barry Song (2014-12-25 00:24:05)

Quoted 63 lines

From: Zhiwu Song <[email protected]>

the hardware node includes both clock and reset support, so it is named as "car".
this patch implements Flexible clocks(mux, divider, gate), Selectable clock(mux, divider, gate), root clock(gate),leaf clock(gate), others. it also implements the reset controller functionality.

---
 .../devicetree/bindings/clock/csr,atlas7-car.txt   |   46 +
 drivers/clk/sirf/Makefile                          |    2 +-
 drivers/clk/sirf/clk-atlas7.c                      | 1652
++++++++++++++++++++
 3 files changed, 1699 insertions(+), 1 deletion(-)
 create mode 100644
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt
 create mode 100644 drivers/clk/sirf/clk-atlas7.c
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +36 -0
new file mode 100644
index 0000000..a1a9499
@@ -0,0 +1,46 @@
+* Clock and reset bindings for CSR atlas7
+
+Required properties:
+- compatible: Should be "sirf,atlas7-car"
+- reg: Address and length of the register set
+- #clock-cells: Should be <1>
+- #reset-cells: Should be <1>
+
+The clock consumer should specify the desired clock by having the clock
+ID in its "clocks" phandle cell.
+The ID list atlas7_clks defined in drivers/clk/sirf/clk-atlas7.c
+
+The reset consumer should specify the desired reset by having the reset
+ID in its "reset" phandle cell.
+The ID list atlas7_reset_unit defined in drivers/clk/sirf/clk-atlas7.c
+
+Examples:
+
+timer at 10dc0000 {
+       compatible = "sirf,macro-tick";
+       reg = <0x10dc0000 0x1000>;
+       clocks = <&car 54>;
+       interrupts = <0 0 0>,
+                  <0 1 0>,
+                  <0 2 0>,
+                  <0 49 0>,
+                  <0 50 0>,
+                  <0 51 0>;
+};
+
+uart1: uart at 18020000 {
+       cell-index = <1>;
+       compatible = "sirf,macro-uart";
+       reg = <0x18020000 0x1000>;
+       clocks = <&clks 95>;
+       interrupts = <0 18 0>;

Documentation/devicetree/bindings/clock/csr,atlas7-car.txt line 46

Quoted 10 lines
Documentation/devicetree/bindings/clock/csr,atlas7-car.txt new file +10 -0
+       fifosize = <32>;
+};
+
+vpp at 13110000 {
+       compatible = "sirf,prima2-vpp";
+       reg = <0x13110000 0x10000>;
+       interrupts = <0 31 0>;
+       clocks = <&car 85>;
+       resets = <&car 29>;
+};

It would be nice to provide an example of the clock provider node, "sirf,atlas7-car".

Quoted 6 lines
Quoted 4 lines
Quoted 1 line

ok. Mike, thanks for reviewing.

hi mike, the example of the clock provider node has been done by the v2 patch sent two days ago.is there enough time to push it to 4.1?

I'm afraid not. I'll take it after 4.1-rc1 drops.

hi Mike, can you pick up this one to clk-next as the plan? after this, i have several incremental patches to rebase against your tree for 4.1.

Quoted 3 lines

Regards,
Mike

-barry