diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/dts/armada-370.dtsi | 15 | ||||
-rw-r--r-- | arch/arm/boot/dts/armada-xp-mv78230.dtsi | 12 | ||||
-rw-r--r-- | arch/arm/boot/dts/armada-xp-mv78260.dtsi | 19 | ||||
-rw-r--r-- | arch/arm/boot/dts/armada-xp-mv78460.dtsi | 34 | ||||
-rw-r--r-- | arch/arm/boot/dts/armada-xp.dtsi | 20 | ||||
-rw-r--r-- | arch/arm/mach-mvebu/Kconfig | 4 | ||||
-rw-r--r-- | arch/arm/mach-mvebu/armada-370-xp.c | 9 |
7 files changed, 112 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi index 2069151afe01..175df2887076 100644 --- a/arch/arm/boot/dts/armada-370.dtsi +++ b/arch/arm/boot/dts/armada-370.dtsi | |||
@@ -75,5 +75,20 @@ | |||
75 | #interrupts-cells = <2>; | 75 | #interrupts-cells = <2>; |
76 | interrupts = <91>; | 76 | interrupts = <91>; |
77 | }; | 77 | }; |
78 | |||
79 | coreclk: mvebu-sar@d0018230 { | ||
80 | compatible = "marvell,armada-370-core-clock"; | ||
81 | reg = <0xd0018230 0x08>; | ||
82 | #clock-cells = <1>; | ||
83 | }; | ||
84 | |||
85 | gateclk: clock-gating-control@d0018220 { | ||
86 | compatible = "marvell,armada-370-gating-clock"; | ||
87 | reg = <0xd0018220 0x4>; | ||
88 | clocks = <&coreclk 0>; | ||
89 | #clock-cells = <1>; | ||
90 | }; | ||
91 | |||
92 | |||
78 | }; | 93 | }; |
79 | }; | 94 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/arch/arm/boot/dts/armada-xp-mv78230.dtsi index ea355192be6f..c45c7b4dc352 100644 --- a/arch/arm/boot/dts/armada-xp-mv78230.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78230.dtsi | |||
@@ -24,6 +24,18 @@ | |||
24 | gpio1 = &gpio1; | 24 | gpio1 = &gpio1; |
25 | }; | 25 | }; |
26 | 26 | ||
27 | cpus { | ||
28 | #address-cells = <1>; | ||
29 | #size-cells = <0>; | ||
30 | |||
31 | cpu@0 { | ||
32 | device_type = "cpu"; | ||
33 | compatible = "marvell,sheeva-v7"; | ||
34 | reg = <0>; | ||
35 | clocks = <&cpuclk 0>; | ||
36 | }; | ||
37 | } | ||
38 | |||
27 | soc { | 39 | soc { |
28 | pinctrl { | 40 | pinctrl { |
29 | compatible = "marvell,mv78230-pinctrl"; | 41 | compatible = "marvell,mv78230-pinctrl"; |
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi index 2057863f3dfa..a2aee5707377 100644 --- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi | |||
@@ -25,6 +25,25 @@ | |||
25 | gpio2 = &gpio2; | 25 | gpio2 = &gpio2; |
26 | }; | 26 | }; |
27 | 27 | ||
28 | cpus { | ||
29 | #address-cells = <1>; | ||
30 | #size-cells = <0>; | ||
31 | |||
32 | cpu@0 { | ||
33 | device_type = "cpu"; | ||
34 | compatible = "marvell,sheeva-v7"; | ||
35 | reg = <0>; | ||
36 | clocks = <&cpuclk 0>; | ||
37 | }; | ||
38 | |||
39 | cpu@1 { | ||
40 | device_type = "cpu"; | ||
41 | compatible = "marvell,sheeva-v7"; | ||
42 | reg = <1>; | ||
43 | clocks = <&cpuclk 1>; | ||
44 | }; | ||
45 | }; | ||
46 | |||
28 | soc { | 47 | soc { |
29 | pinctrl { | 48 | pinctrl { |
30 | compatible = "marvell,mv78260-pinctrl"; | 49 | compatible = "marvell,mv78260-pinctrl"; |
diff --git a/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/arch/arm/boot/dts/armada-xp-mv78460.dtsi index ffac98373792..da03a129243a 100644 --- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi | |||
@@ -25,6 +25,40 @@ | |||
25 | gpio2 = &gpio2; | 25 | gpio2 = &gpio2; |
26 | }; | 26 | }; |
27 | 27 | ||
28 | |||
29 | cpus { | ||
30 | #address-cells = <1>; | ||
31 | #size-cells = <0>; | ||
32 | |||
33 | cpu@0 { | ||
34 | device_type = "cpu"; | ||
35 | compatible = "marvell,sheeva-v7"; | ||
36 | reg = <0>; | ||
37 | clocks = <&cpuclk 0>; | ||
38 | }; | ||
39 | |||
40 | cpu@1 { | ||
41 | device_type = "cpu"; | ||
42 | compatible = "marvell,sheeva-v7"; | ||
43 | reg = <1>; | ||
44 | clocks = <&cpuclk 1>; | ||
45 | }; | ||
46 | |||
47 | cpu@2 { | ||
48 | device_type = "cpu"; | ||
49 | compatible = "marvell,sheeva-v7"; | ||
50 | reg = <2>; | ||
51 | clocks = <&cpuclk 2>; | ||
52 | }; | ||
53 | |||
54 | cpu@3 { | ||
55 | device_type = "cpu"; | ||
56 | compatible = "marvell,sheeva-v7"; | ||
57 | reg = <3>; | ||
58 | clocks = <&cpuclk 3>; | ||
59 | }; | ||
60 | }; | ||
61 | |||
28 | soc { | 62 | soc { |
29 | pinctrl { | 63 | pinctrl { |
30 | compatible = "marvell,mv78460-pinctrl"; | 64 | compatible = "marvell,mv78460-pinctrl"; |
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi index 71d6b5d0daf1..f51554e80009 100644 --- a/arch/arm/boot/dts/armada-xp.dtsi +++ b/arch/arm/boot/dts/armada-xp.dtsi | |||
@@ -47,6 +47,26 @@ | |||
47 | marvell,timer-25Mhz; | 47 | marvell,timer-25Mhz; |
48 | }; | 48 | }; |
49 | 49 | ||
50 | coreclk: mvebu-sar@d0018230 { | ||
51 | compatible = "marvell,armada-xp-core-clock"; | ||
52 | reg = <0xd0018230 0x08>; | ||
53 | #clock-cells = <1>; | ||
54 | }; | ||
55 | |||
56 | cpuclk: clock-complex@d0018700 { | ||
57 | #clock-cells = <1>; | ||
58 | compatible = "marvell,armada-xp-cpu-clock"; | ||
59 | reg = <0xd0018700 0xA0>; | ||
60 | clocks = <&coreclk 1>; | ||
61 | }; | ||
62 | |||
63 | gateclk: clock-gating-control@d0018220 { | ||
64 | compatible = "marvell,armada-xp-gating-clock"; | ||
65 | reg = <0xd0018220 0x4>; | ||
66 | clocks = <&coreclk 0>; | ||
67 | #clock-cells = <1>; | ||
68 | }; | ||
69 | |||
50 | system-controller@d0018200 { | 70 | system-controller@d0018200 { |
51 | compatible = "marvell,armada-370-xp-system-controller"; | 71 | compatible = "marvell,armada-370-xp-system-controller"; |
52 | reg = <0xd0018200 0x500>; | 72 | reg = <0xd0018200 0x500>; |
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index 416d46ef7ebd..79299cd94f0f 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig | |||
@@ -9,6 +9,10 @@ config ARCH_MVEBU | |||
9 | select PINCTRL | 9 | select PINCTRL |
10 | select PLAT_ORION | 10 | select PLAT_ORION |
11 | select SPARSE_IRQ | 11 | select SPARSE_IRQ |
12 | select CLKDEV_LOOKUP | ||
13 | select MVEBU_CLK_CORE | ||
14 | select MVEBU_CLK_CPU | ||
15 | select MVEBU_CLK_GATING | ||
12 | 16 | ||
13 | if ARCH_MVEBU | 17 | if ARCH_MVEBU |
14 | 18 | ||
diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c index 49d791548ad6..3292d6da5dc7 100644 --- a/arch/arm/mach-mvebu/armada-370-xp.c +++ b/arch/arm/mach-mvebu/armada-370-xp.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/of_platform.h> | 17 | #include <linux/of_platform.h> |
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | #include <linux/time-armada-370-xp.h> | 19 | #include <linux/time-armada-370-xp.h> |
20 | #include <linux/clk/mvebu.h> | ||
20 | #include <asm/mach/arch.h> | 21 | #include <asm/mach/arch.h> |
21 | #include <asm/mach/map.h> | 22 | #include <asm/mach/map.h> |
22 | #include <asm/mach/time.h> | 23 | #include <asm/mach/time.h> |
@@ -37,8 +38,14 @@ void __init armada_370_xp_map_io(void) | |||
37 | iotable_init(armada_370_xp_io_desc, ARRAY_SIZE(armada_370_xp_io_desc)); | 38 | iotable_init(armada_370_xp_io_desc, ARRAY_SIZE(armada_370_xp_io_desc)); |
38 | } | 39 | } |
39 | 40 | ||
41 | void __init armada_370_xp_timer_and_clk_init(void) | ||
42 | { | ||
43 | mvebu_clocks_init(); | ||
44 | armada_370_xp_timer_init(); | ||
45 | } | ||
46 | |||
40 | struct sys_timer armada_370_xp_timer = { | 47 | struct sys_timer armada_370_xp_timer = { |
41 | .init = armada_370_xp_timer_init, | 48 | .init = armada_370_xp_timer_and_clk_init, |
42 | }; | 49 | }; |
43 | 50 | ||
44 | static void __init armada_370_xp_dt_init(void) | 51 | static void __init armada_370_xp_dt_init(void) |