diff options
| -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) |
