ARM: dts: keystone: Add support for K2H and K2E SOCs/EVMs
Subsystems (4)
cover ARM: dts: keystone: Add support for K2H and K2E SOCs/EVMs
Series adds support for two Keystone2 SOCs called Lammar(K2L) and Edision(K2E) with respective EVMs. As seen from changes, just device tree updates are needed to support the SOCs and EVMs which is the goal with DT :)
Kyetsone2 Edision SOC(K2E):
- It is a Quad Cortex A15 based SoC with 1 DSP.
- Standard peripherals such as i2c, spi, uart, timer, etc similar to K2H.
- Additional instances of PCIE and USB
- No wireless hardware accelerators.
Keystone2 Lamarr SOC(K2L):
- It is a dual Cortex A15 core based SoC with 4 DSPs.
- Standard peripherals such as i2c, spi, uart, timer, pcie etc., similar to K2H
- Different set of wireless hardware w.r.t K2H.
Series has been boot tested on K2L and K2E EVMs.
Murali Karicheri (4):
ARM: dts: keystone: update for supporting K2L/K2E EVMs
ARM: dts: keystone: preparatory patch to support K2L and K2E SOCs
ARM: dts: keystone: add support for K2 Lamarr SoC and EVM
ARM: dts: keystone: add support for k2 Edison SoC and EVM
.../devicetree/bindings/arm/keystone/keystone.txt | 10 + arch/arm/boot/dts/k2e-clocks.dtsi | 78 ++++ arch/arm/boot/dts/k2e-evm.dts | 60 +++ arch/arm/boot/dts/k2e.dtsi | 80 ++++ arch/arm/boot/dts/k2hk-clocks.dtsi | 426 ++++++++++++++++++++ arch/arm/boot/dts/k2hk-evm.dts | 6 +- arch/arm/boot/dts/k2hk.dtsi | 46 +++ arch/arm/boot/dts/k2l-clocks.dtsi | 267 ++++++++++++ arch/arm/boot/dts/k2l-evm.dts | 37 ++ arch/arm/boot/dts/k2l.dtsi | 55 +++ arch/arm/boot/dts/keystone-clocks.dtsi | 405 ------------------- arch/arm/boot/dts/keystone.dtsi | 31 -- arch/arm/mach-keystone/keystone.c | 3 + 13 files changed, 1066 insertions(+), 438 deletions(-) create mode 100644 arch/arm/boot/dts/k2e-clocks.dtsi create mode 100644 arch/arm/boot/dts/k2e-evm.dts create mode 100644 arch/arm/boot/dts/k2e.dtsi create mode 100644 arch/arm/boot/dts/k2hk-clocks.dtsi create mode 100644 arch/arm/boot/dts/k2hk.dtsi create mode 100644 arch/arm/boot/dts/k2l-clocks.dtsi create mode 100644 arch/arm/boot/dts/k2l-evm.dts create mode 100644 arch/arm/boot/dts/k2l.dtsi
Regards,
Santosh
Signature · 1 line
1.7.9.5
PATCH 1/4 ARM: dts: keystone: update for supporting K2L/K2E EVMs
From: Murali Karicheri <[email protected]>
This patch add compatibility strings for k2hk, k2l and k2e EVMs
--- .../devicetree/bindings/arm/keystone/keystone.txt | 10 ++++++++++ arch/arm/mach-keystone/keystone.c | 3 +++ 2 files changed, 13 insertions(+)
Documentation/devicetree/bindings/arm/keystone/keystone.txt +10 -0
@@ -8,3 +8,13 @@ Required properties: - compatible: All TI specific devices present in Keystone SOC should be in the form "ti,keystone-*". Generic devices like gic, arch_timers, ns16550 type UART should use the specified compatible for those devices. + +Boards: +- Keystone 2 Hawking/Kepler EVM + compatible = "ti,k2hk-evm" + +- Keystone 2 Lamarr EVM + compatible = "ti,k2l-evm" + +- Keystone 2 Edison EVM + compatible = "ti,k2e-evm"
arch/arm/mach-keystone/keystone.c +3 -0
@@ -47,6 +47,9 @@ static void __init keystone_init(void)static const char *keystone_match[]__initconst = {"ti,keystone-evm" , +"ti,k2hk-evm" , +"ti,k2l-evm" , +"ti,k2e-evm" ,NULL , };
Signature · 1 line
1.7.9.5
PATCH 1/4 ARM: dts: keystone: update for supporting K2L/K2E EVMs
Quoted 21 lines · Santosh Shilimkar
From: Murali Karicheri <[email protected]>
This patch add compatibility strings for k2hk, k2l and k2e EVMs
Cc Olof Johansson <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Rob Herring <[email protected]>Cc Kumar Gala <[email protected]>Cc Mark Rutland <[email protected]>Signed-off-by Murali Karicheri <[email protected]>Signed-off-by Santosh Shilimkar <[email protected]>--- .../devicetree/bindings/arm/keystone/keystone.txt | 10 ++++++++++ arch/arm/mach-keystone/keystone.c | 3 +++ 2 files changed, 13 insertions(+)Documentation/devicetree/bindings/arm/keystone/keystone.txt +0
-0
Documentation/devicetree/bindings/arm/keystone/keystone.txt Required properties: · line 17
Quoted 10 lines
Documentation/devicetree/bindings/arm/keystone/keystone.txt +7
-0@@ -8,3 +8,13 @@ Required properties: - compatible: All TI specific devices present in Keystone SOC should be in the form "ti,keystone-*". Generic devices like gic, arch_timers, ns16550 type UART should use the specified compatible for those devices. + +Boards: +- Keystone 2 Hawking/Kepler EVM + compatible = "ti,k2hk-evm" + +- Keystone 2 Lamarr EVM + compatible = "ti,k2l-evm"
Your previous email said Lammar. One, or maybe both, are wrong, but which one?
Quoted 8 lines
Documentation/devicetree/bindings/arm/keystone/keystone.txt +3
-0+ +- Keystone 2 Edison EVM + compatible = "ti,k2e-evm"arch/arm/mach-keystone/keystone.c +0
-0
arch/arm/mach-keystone/keystone.c static void __init keystone_init(void) · line 52
Quoted 6 lines
arch/arm/mach-keystone/keystone.c +3
-0@@ -47,6 +47,9 @@ static void __init keystone_init(void)static const char *keystone_match[]__initconst = {"ti,keystone-evm" , +"ti,k2hk-evm" , +"ti,k2l-evm" , +"ti,k2e-evm" ,
-evm indicate board-level compat fields. We'd be better off just keeping a "ti,keystone" top-level compatible here and just using that to probe. That way you don't have to touch the file for new boards in the future.
-Olof
PATCH 1/4 ARM: dts: keystone: update for supporting K2L/K2E EVMs
Quoted 26 lines · Olof Johansson
Quoted 25 lines · Santosh Shilimkar
From: Murali Karicheri <[email protected]>
This patch add compatibility strings for k2hk, k2l and k2e EVMs
Cc Olof Johansson <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Rob Herring <[email protected]>Cc Kumar Gala <[email protected]>Cc Mark Rutland <[email protected]>Signed-off-by Murali Karicheri <[email protected]>Signed-off-by Santosh Shilimkar <[email protected]>--- .../devicetree/bindings/arm/keystone/keystone.txt | 10 ++++++++++ arch/arm/mach-keystone/keystone.c | 3 +++ 2 files changed, 13 insertions(+)Documentation/devicetree/bindings/arm/keystone/keystone.txt +1
-0@@ -8,3 +8,13 @@ Required properties: - compatible: All TI specific devices present in Keystone SOC should be in the form "ti,keystone-*". Generic devices like gic, arch_timers, ns16550 type UART should use the specified compatible for those devices. +
Quoted 9 lines
Documentation/devicetree/bindings/arm/keystone/keystone.txt Required properties: · line 17
Quoted 6 lines
Documentation/devicetree/bindings/arm/keystone/keystone.txt +6
-0+Boards: +- Keystone 2 Hawking/Kepler EVM + compatible = "ti,k2hk-evm" + +- Keystone 2 Lamarr EVM + compatible = "ti,k2l-evm"Your previous email said Lammar. One, or maybe both, are wrong, but which one?
My email had a typo then. The one here is right.
Quoted 9 lines
Quoted 9 lines
Documentation/devicetree/bindings/arm/keystone/keystone.txt +3
-0+ +- Keystone 2 Edison EVM + compatible = "ti,k2e-evm"arch/arm/mach-keystone/keystone.c +0
-0@@ -47,6 +47,9 @@ static void __init keystone_init(void)
Quoted 10 lines
arch/arm/mach-keystone/keystone.c static void __init keystone_init(void) · line 52
Quoted 5 lines
arch/arm/mach-keystone/keystone.c +3
-0static const char *keystone_match[]__initconst = {"ti,keystone-evm" , +"ti,k2hk-evm" , +"ti,k2l-evm" , +"ti,k2e-evm" ,-evm indicate board-level compat fields. We'd be better off just keeping a "ti,keystone" top-level compatible here and just using that to probe. That way you don't have to touch the file for new boards in the future.
So far keystone-evm was k2hk(Keystone2 Hawking EVM) but with additional two SOC's and board's, separate compatible was needed to differentiate. These boards do have significant differences though current mainline code. This mainly because the boards are build for those specific SOC families.
I would like to keep the organisation that way so that we cab support any future boards like below.
"ti,k2hk-evm" --> All the Keystone2 Hawking/Kepler boards "ti,k2l-evm" --> All the Keystone2 Lamarr boards
"ti,k2e-evm" --> All the Keystone2 Edision boards
I don't expect to touch this file till new SOC gets added with its EVM.
Regards,
Ssantosh
PATCH 1/4 ARM: dts: keystone: update for supporting K2L/K2E EVMs
Quoted 62 lines · Santosh Shilimkar
Quoted 26 lines · Olof Johansson
Quoted 25 lines · Santosh Shilimkar
From: Murali Karicheri <[email protected]>
This patch add compatibility strings for k2hk, k2l and k2e EVMs
Cc Olof Johansson <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Rob Herring <[email protected]>Cc Kumar Gala <[email protected]>Cc Mark Rutland <[email protected]>Signed-off-by Murali Karicheri <[email protected]>Signed-off-by Santosh Shilimkar <[email protected]>--- .../devicetree/bindings/arm/keystone/keystone.txt | 10 ++++++++++ arch/arm/mach-keystone/keystone.c | 3 +++ 2 files changed, 13 insertions(+)Documentation/devicetree/bindings/arm/keystone/keystone.txt +1
-0@@ -8,3 +8,13 @@ Required properties: - compatible: All TI specific devices present in Keystone SOC should be in the form "ti,keystone-*". Generic devices like gic, arch_timers, ns16550 type UART should use the specified compatible for those devices. +Quoted 9 lines
Documentation/devicetree/bindings/arm/keystone/keystone.txt Required properties: · line 17
Quoted 6 lines
Documentation/devicetree/bindings/arm/keystone/keystone.txt +6
-0+Boards: +- Keystone 2 Hawking/Kepler EVM + compatible = "ti,k2hk-evm" + +- Keystone 2 Lamarr EVM + compatible = "ti,k2l-evm"Your previous email said Lammar. One, or maybe both, are wrong, but which one?
My email had a typo then. The one here is right.
Quoted 9 lines
Quoted 9 lines
Documentation/devicetree/bindings/arm/keystone/keystone.txt +3
-0+ +- Keystone 2 Edison EVM + compatible = "ti,k2e-evm"arch/arm/mach-keystone/keystone.c +0
-0@@ -47,6 +47,9 @@ static void __init keystone_init(void)Quoted 10 lines
arch/arm/mach-keystone/keystone.c static void __init keystone_init(void) · line 52
Quoted 5 lines
arch/arm/mach-keystone/keystone.c +3
-0static const char *keystone_match[]__initconst = {"ti,keystone-evm" , +"ti,k2hk-evm" , +"ti,k2l-evm" , +"ti,k2e-evm" ,-evm indicate board-level compat fields. We'd be better off just keeping a "ti,keystone" top-level compatible here and just using that to probe. That way you don't have to touch the file for new boards in the future.
So far keystone-evm was k2hk(Keystone2 Hawking EVM) but with additional two SOC's and board's, separate compatible was needed to differentiate. These boards do have significant differences though current mainline code. This mainly because the boards are build for those specific SOC families.
Quoted 8 lines
I would like to keep the organisation that way so that we cab support any future boards like below.
"ti,k2hk-evm" --> All the Keystone2 Hawking/Kepler boards "ti,k2l-evm" --> All the Keystone2 Lamarr boards
"ti,k2e-evm" --> All the Keystone2 Edision boardsI don't expect to touch this file till new SOC gets added with its EVM.
Right, but today they all need to be enumerated in your C file -- if you do a "ti,keystone" compatible field that you use on all of them then there will be no need for any code changes for these different boards, which is the whole point behind device-tree...
-Olof
PATCH 2/4 ARM: dts: keystone: preparatory patch to support K2L and K2E SOCs
In reply to Santosh ShilimkarFrom: Murali Karicheri <[email protected]>
Current keystone.dtsi includes SoC specific definitions for K2HK SoCs. In order to support two addition keystone devices, k2 Edison and K2 Lamarr and corresponding EVMs, This patch restructure the dts files for the following:-
- All clock nodes that are only available in k2hk SoC are moved from keystone-clocks.dtsi to a new k2hk-clocks.dtsi include file
- The CPU nodes are now part of the soc specific k2hk.dtsi.
- Change the compatibility string to ti,k2hk-evm and change the model name accordingly
- Finally include k2hk-clocks.dtsi in k2hk.dtsi and that in k2hk-evm.dts
--- arch/arm/boot/dts/k2hk-clocks.dtsi | 426 ++++++++++++++++++++++++++++++++ arch/arm/boot/dts/k2hk-evm.dts | 6 +- arch/arm/boot/dts/k2hk.dtsi | 46 ++++ arch/arm/boot/dts/keystone-clocks.dtsi | 405 ------------------------------ arch/arm/boot/dts/keystone.dtsi | 31 --- 5 files changed, 476 insertions(+), 438 deletions(-) create mode 100644 arch/arm/boot/dts/k2hk-clocks.dtsi create mode 100644 arch/arm/boot/dts/k2hk.dtsi
arch/arm/boot/dts/k2hk-clocks.dtsi new file +426 -0
@@ -0,0 +1,426 @@ +/* + * Copyright 2013-2014 Texas Instruments, Inc. + * + * Keystone 2 Kepler/Hawking SoC clock nodes + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +clocks { + armpllclk: armpllclk at 2620370 { + #clock-cells = <0>; + compatible = "ti,keystone,pll-clock"; + clocks = <&refclkarm>; + clock-output-names = "arm-pll-clk"; + reg = <0x02620370 4>; + reg-names = "control"; + }; + + mainpllclk: mainpllclk at 2310110 { + #clock-cells = <0>; + compatible = "ti,keystone,main-pll-clock"; + clocks = <&refclksys>; + reg = <0x02620350 4>, <0x02310110 4>; + reg-names = "control", "multiplier"; + fixed-postdiv = <2>; + }; + + papllclk: papllclk at 2620358 { + #clock-cells = <0>; + compatible = "ti,keystone,pll-clock"; + clocks = <&refclkpass>; + clock-output-names = "pa-pll-clk"; + reg = <0x02620358 4>; + reg-names = "control"; + }; + + ddr3apllclk: ddr3apllclk at 2620360 { + #clock-cells = <0>; + compatible = "ti,keystone,pll-clock"; + clocks = <&refclkddr3a>; + clock-output-names = "ddr-3a-pll-clk"; + reg = <0x02620360 4>; + reg-names = "control"; + }; + + ddr3bpllclk: ddr3bpllclk at 2620368 { + #clock-cells = <0>; + compatible = "ti,keystone,pll-clock"; + clocks = <&refclkddr3b>; + clock-output-names = "ddr-3b-pll-clk"; + reg = <0x02620368 4>; + reg-names = "control"; + }; + + clktsip: clktsip { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk16>; + clock-output-names = "tsip"; + reg = <0x0235000c 0xb00>, <0x02350000 0x400>; + reg-names = "control", "domain"; + domain-id = <0>; + }; + + clksrio: clksrio { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1rstiso13>; + clock-output-names = "srio"; + reg = <0x0235002c 0xb00>, <0x02350010 0x400>; + reg-names = "control", "domain"; + domain-id = <4>; + }; + + clkhyperlink0: clkhyperlink0 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk12>; + clock-output-names = "hyperlink-0"; + reg = <0x02350030 0xb00>, <0x02350014 0x400>; + reg-names = "control", "domain"; + domain-id = <5>; + }; + + clkgem1: clkgem1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1>; + clock-output-names = "gem1"; + reg = <0x02350040 0xb00>, <0x02350024 0x400>; + reg-names = "control", "domain"; + domain-id = <9>; + }; + + clkgem2: clkgem2 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1>; + clock-output-names = "gem2"; + reg = <0x02350044 0xb00>, <0x02350028 0x400>; + reg-names = "control", "domain"; + domain-id = <10>; + }; + + clkgem3: clkgem3 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1>; + clock-output-names = "gem3"; + reg = <0x02350048 0xb00>, <0x0235002c 0x400>; + reg-names = "control", "domain"; + domain-id = <11>; + }; + + clkgem4: clkgem4 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1>; + clock-output-names = "gem4"; + reg = <0x0235004c 0xb00>, <0x02350030 0x400>; + reg-names = "control", "domain"; + domain-id = <12>; + }; + + clkgem5: clkgem5 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1>; + clock-output-names = "gem5"; + reg = <0x02350050 0xb00>, <0x02350034 0x400>; + reg-names = "control", "domain"; + domain-id = <13>; + }; + + clkgem6: clkgem6 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1>; + clock-output-names = "gem6"; + reg = <0x02350054 0xb00>, <0x02350038 0x400>; + reg-names = "control", "domain"; + domain-id = <14>; + }; + + clkgem7: clkgem7 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1>; + clock-output-names = "gem7"; + reg = <0x02350058 0xb00>, <0x0235003c 0x400>; + reg-names = "control", "domain"; + domain-id = <15>; + }; + + clkddr31: clkddr31 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "ddr3-1"; + reg = <0x02350060 0xb00>, <0x02350040 0x400>; + reg-names = "control", "domain"; + domain-id = <16>; + }; + + clktac: clktac { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "tac"; + reg = <0x02350064 0xb00>, <0x02350044 0x400>; + reg-names = "control", "domain"; + domain-id = <17>; + }; + + clkrac01: clkrac01 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "rac-01"; + reg = <0x02350068 0xb00>, <0x02350044 0x400>; + reg-names = "control", "domain"; + domain-id = <17>; + }; + + clkrac23: clkrac23 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "rac-23"; + reg = <0x0235006c 0xb00>, <0x02350048 0x400>; + reg-names = "control", "domain"; + domain-id = <18>; + }; + + clkfftc0: clkfftc0 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "fftc-0"; + reg = <0x02350070 0xb00>, <0x0235004c 0x400>; + reg-names = "control", "domain"; + domain-id = <19>; + }; + + clkfftc1: clkfftc1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "fftc-1"; + reg = <0x02350074 0xb00>, <0x023504c0 0x400>; + reg-names = "control", "domain"; + domain-id = <19>; + }; + + clkfftc2: clkfftc2 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "fftc-2"; + reg = <0x02350078 0xb00>, <0x02350050 0x400>; + reg-names = "control", "domain"; + domain-id = <20>; + }; + + clkfftc3: clkfftc3 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "fftc-3"; + reg = <0x0235007c 0xb00>, <0x02350050 0x400>; + reg-names = "control", "domain"; + domain-id = <20>; + }; + + clkfftc4: clkfftc4 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "fftc-4"; + reg = <0x02350080 0xb00>, <0x02350050 0x400>; + reg-names = "control", "domain"; + domain-id = <20>; + }; + + clkfftc5: clkfftc5 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "fftc-5"; + reg = <0x02350084 0xb00>, <0x02350050 0x400>; + reg-names = "control", "domain"; + domain-id = <20>; + }; + + clkaif: clkaif { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "aif"; + reg = <0x02350088 0xb00>, <0x02350054 0x400>; + reg-names = "control", "domain"; + domain-id = <21>; + }; + + clktcp3d0: clktcp3d0 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "tcp3d-0"; + reg = <0x0235008c 0xb00>, <0x02350058 0x400>; + reg-names = "control", "domain"; + domain-id = <22>; + }; + + clktcp3d1: clktcp3d1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "tcp3d-1"; + reg = <0x02350090 0xb00>, <0x02350058 0x400>; + reg-names = "control", "domain"; + domain-id = <22>; + }; + + clktcp3d2: clktcp3d2 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "tcp3d-2"; + reg = <0x02350094 0xb00>, <0x0235005c 0x400>; + reg-names = "control", "domain"; + domain-id = <23>; + }; + + clktcp3d3: clktcp3d3 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "tcp3d-3"; + reg = <0x02350098 0xb00>, <0x0235005c 0x400>; + reg-names = "control", "domain"; + domain-id = <23>; + }; + + clkvcp0: clkvcp0 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-0"; + reg = <0x0235009c 0xb00>, <0x02350060 0x400>; + reg-names = "control", "domain"; + domain-id = <24>; + }; + + clkvcp1: clkvcp1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-1"; + reg = <0x023500a0 0xb00>, <0x02350060 0x400>; + reg-names = "control", "domain"; + domain-id = <24>; + }; + + clkvcp2: clkvcp2 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-2"; + reg = <0x023500a4 0xb00>, <0x02350060 0x400>; + reg-names = "control", "domain"; + domain-id = <24>; + }; + + clkvcp3: clkvcp3 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-3"; + reg = <0x0235000a8 0xb00>, <0x02350060 0x400>; + reg-names = "control", "domain"; + domain-id = <24>; + }; + + clkvcp4: clkvcp4 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-4"; + reg = <0x023500ac 0xb00>, <0x02350064 0x400>; + reg-names = "control", "domain"; + domain-id = <25>; + }; + + clkvcp5: clkvcp5 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-5"; + reg = <0x023500b0 0xb00>, <0x02350064 0x400>; + reg-names = "control", "domain"; + domain-id = <25>; + }; + + clkvcp6: clkvcp6 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-6"; + reg = <0x023500b4 0xb00>, <0x02350064 0x400>; + reg-names = "control", "domain"; + domain-id = <25>; + }; + + clkvcp7: clkvcp7 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-7"; + reg = <0x023500b8 0xb00>, <0x02350064 0x400>; + reg-names = "control", "domain"; + domain-id = <25>; + }; + + clkbcp: clkbcp { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "bcp"; + reg = <0x023500bc 0xb00>, <0x02350068 0x400>; + reg-names = "control", "domain"; + domain-id = <26>; + }; + + clkdxb: clkdxb { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "dxb"; + reg = <0x023500c0 0xb00>, <0x0235006c 0x400>; + reg-names = "control", "domain"; + domain-id = <27>; + }; + + clkhyperlink1: clkhyperlink1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk12>; + clock-output-names = "hyperlink-1"; + reg = <0x023500c4 0xb00>, <0x02350070 0x400>; + reg-names = "control", "domain"; + domain-id = <28>; + }; + + clkxge: clkxge { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "xge"; + reg = <0x023500c8 0xb00>, <0x02350074 0x400>; + reg-names = "control", "domain"; + domain-id = <29>; + }; +};
arch/arm/boot/dts/k2hk-evm.dts +4 -2
@@ -1,5 +1,5 @@ /* - * Copyright 2013 Texas Instruments, Inc. + * Copyright 2013-2014 Texas Instruments, Inc. * * Keystone 2 Kepler/Hawking EVM device tree *
@@ -10,9 +10,11 @@ /dts-v1/; #include "keystone.dtsi" +#include "k2hk.dtsi" / { - compatible = "ti,keystone-evm"; + compatible = "ti,k2hk-evm"; + model = "Texas Instruments Keystone 2 Kepler/Hawking EVM"; soc { clocks {
arch/arm/boot/dts/k2hk.dtsi new file +46 -0
46 lines not on this page · raw message
arch/arm/boot/dts/keystone-clocks.dtsi +0 -405
429 lines not on this page · raw message
arch/arm/boot/dts/keystone.dtsi +0 -31
@@ -25,37 +25,6 @@ reg = <0x00000000 0x80000000 0x00000000 0x40000000>; }; - cpus { - #address-cells = <1>; - #size-cells = <0>; - - interrupt-parent = <&gic>; - - cpu at 0 { - compatible = "arm,cortex-a15"; - device_type = "cpu"; - reg = <0>; - }; - - cpu at 1 { - compatible = "arm,cortex-a15"; - device_type = "cpu"; - reg = <1>; - }; - - cpu at 2 { - compatible = "arm,cortex-a15"; - device_type = "cpu"; - reg = <2>; - }; - - cpu at 3 { - compatible = "arm,cortex-a15"; - device_type = "cpu"; - reg = <3>; - }; - }; - gic: interrupt-controller { compatible = "arm,cortex-a15-gic"; #interrupt-cells = <3>;
Signature · 1 line
1.7.9.5
PATCH 3/4 ARM: dts: keystone: add support for K2 Lamarr SoC and EVM
In reply to Santosh ShilimkarFrom: Murali Karicheri <[email protected]>
Keystone2 Lamarr (K2L) is a dual Cortex A15 core based SoC with 4 DSPs. It has standard peripherals such as i2c, spi, uart, timer, pcie etc., similar to k2hk, but different set of wireless hardware. This patch add support for k2 Lamarr SoC and EVM. This re-uses the common keystone.dtsi to include common bindings across the various k2 devices.
--- arch/arm/boot/dts/k2l-clocks.dtsi | 267 +++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/k2l-evm.dts | 37 +++++ arch/arm/boot/dts/k2l.dtsi | 55 ++++++++ 3 files changed, 359 insertions(+) create mode 100644 arch/arm/boot/dts/k2l-clocks.dtsi create mode 100644 arch/arm/boot/dts/k2l-evm.dts create mode 100644 arch/arm/boot/dts/k2l.dtsi
arch/arm/boot/dts/k2l-clocks.dtsi new file +267 -0
@@ -0,0 +1,267 @@ +/* + * Copyright 2013-2014 Texas Instruments, Inc. + * + * Keystone 2 lamarr SoC clock nodes + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +clocks { + armpllclk: armpllclk at 2620370 { + #clock-cells = <0>; + compatible = "ti,keystone,pll-clock"; + clocks = <&refclksys>; + clock-output-names = "arm-pll-clk"; + reg = <0x02620370 4>; + reg-names = "control"; + }; + + mainpllclk: mainpllclk at 2310110 { + #clock-cells = <0>; + compatible = "ti,keystone,main-pll-clock"; + clocks = <&refclksys>; + reg = <0x02620350 4>, <0x02310110 4>; + reg-names = "control", "multiplier"; + fixed-postdiv = <2>; + }; + + papllclk: papllclk at 2620358 { + #clock-cells = <0>; + compatible = "ti,keystone,pll-clock"; + clocks = <&refclksys>; + clock-output-names = "pa-pll-clk"; + reg = <0x02620358 4>; + reg-names = "control"; + }; + + ddr3apllclk: ddr3apllclk at 2620360 { + #clock-cells = <0>; + compatible = "ti,keystone,pll-clock"; + clocks = <&refclksys>; + clock-output-names = "ddr-3a-pll-clk"; + reg = <0x02620360 4>; + reg-names = "control"; + }; + + clkdfeiqnsys: clkdfeiqnsys { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk12>; + clock-output-names = "dfe"; + reg-names = "control", "domain"; + reg = <0x02350004 0xb00>, <0x02350000 0x400>; + domain-id = <0>; + }; + + clkpcie1: clkpcie1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk12>; + clock-output-names = "pcie"; + reg = <0x0235002c 0xb00>, <0x02350000 0x400>; + reg-names = "control", "domain"; + domain-id = <4>; + }; + + clkgem1: clkgem1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1>; + clock-output-names = "gem1"; + reg = <0x02350040 0xb00>, <0x02350024 0x400>; + reg-names = "control", "domain"; + domain-id = <9>; + }; + + clkgem2: clkgem2 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1>; + clock-output-names = "gem2"; + reg = <0x02350044 0xb00>, <0x02350028 0x400>; + reg-names = "control", "domain"; + domain-id = <10>; + }; + + clkgem3: clkgem3 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk1>; + clock-output-names = "gem3"; + reg = <0x02350048 0xb00>, <0x0235002c 0x400>; + reg-names = "control", "domain"; + domain-id = <11>; + }; + + clktac: clktac { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "tac"; + reg = <0x02350064 0xb00>, <0x02350044 0x400>; + reg-names = "control", "domain"; + domain-id = <17>; + }; + + clkrac: clkrac { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "rac"; + reg = <0x02350068 0xb00>, <0x02350044 0x400>; + reg-names = "control", "domain"; + domain-id = <17>; + }; + + clkdfepd0: clkdfepd0 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "dfe-pd0"; + reg = <0x0235006c 0xb00>, <0x02350044 0x400>; + reg-names = "control", "domain"; + domain-id = <18>; + }; + + clkfftc0: clkfftc0 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "fftc-0"; + reg = <0x02350070 0xb00>, <0x0235004c 0x400>; + reg-names = "control", "domain"; + domain-id = <19>; + }; + + clkosr: clkosr { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "osr"; + reg = <0x02350088 0xb00>, <0x0235004c 0x400>; + reg-names = "control", "domain"; + domain-id = <21>; + }; + + clktcp3d0: clktcp3d0 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "tcp3d-0"; + reg = <0x0235008c 0xb00>, <0x02350058 0x400>; + reg-names = "control", "domain"; + domain-id = <22>; + }; + + clktcp3d1: clktcp3d1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "tcp3d-1"; + reg = <0x02350094 0xb00>, <0x02350058 0x400>; + reg-names = "control", "domain"; + domain-id = <23>; + }; + + clkvcp0: clkvcp0 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-0"; + reg = <0x0235009c 0xb00>, <0x02350060 0x400>; + reg-names = "control", "domain"; + domain-id = <24>; + }; + + clkvcp1: clkvcp1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-1"; + reg = <0x023500a0 0xb00>, <0x02350060 0x400>; + reg-names = "control", "domain"; + domain-id = <24>; + }; + + clkvcp2: clkvcp2 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-2"; + reg = <0x023500a4 0xb00>, <0x02350060 0x400>; + reg-names = "control", "domain"; + domain-id = <24>; + }; + + clkvcp3: clkvcp3 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "vcp-3"; + reg = <0x0235000a8 0xb00>, <0x02350060 0x400>; + reg-names = "control", "domain"; + domain-id = <24>; + }; + + clkbcp: clkbcp { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "bcp"; + reg = <0x023500bc 0xb00>, <0x02350068 0x400>; + reg-names = "control", "domain"; + domain-id = <26>; + }; + + clkdfepd1: clkdfepd1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "dfe-pd1"; + reg = <0x023500c0 0xb00>, <0x02350044 0x400>; + reg-names = "control", "domain"; + domain-id = <27>; + }; + + clkfftc1: clkfftc1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "fftc-1"; + reg = <0x023500c4 0xb00>, <0x023504c0 0x400>; + reg-names = "control", "domain"; + domain-id = <28>; + }; + + clkiqnail: clkiqnail { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "iqn-ail"; + reg = <0x023500c8 0xb00>, <0x0235004c 0x400>; + reg-names = "control", "domain"; + domain-id = <29>; + }; + + clkuart2: clkuart2 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&clkmodrst0>; + clock-output-names = "uart2"; + reg = <0x02350000 0xb00>, <0x02350000 0x400>; + reg-names = "control", "domain"; + domain-id = <0>; + }; + + clkuart3: clkuart3 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&clkmodrst0>; + clock-output-names = "uart3"; + reg = <0x02350000 0xb00>, <0x02350000 0x400>; + reg-names = "control", "domain"; + domain-id = <0>; + }; +};
arch/arm/boot/dts/k2l-evm.dts new file +37 -0
@@ -0,0 +1,37 @@ +/* + * Copyright 2014 Texas Instruments, Inc. + * + * Keystone 2 Lamarr EVM device tree + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +/dts-v1/; + +#include "keystone.dtsi" +#include "k2l.dtsi" + +/ { + compatible = "ti,k2l-evm"; + model = "Texas Instruments Keystone 2 Lamarr EVM"; + + soc { + clocks { + refclksys: refclksys { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <122880000>; + clock-output-names = "refclk-sys"; + }; + }; + }; +}; + +&usb_phy { + status = "okay"; +}; + +&usb { + status = "okay"; +};
arch/arm/boot/dts/k2l.dtsi new file +55 -0
55 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH 4/4 ARM: dts: keystone: add support for k2 Edison SoC and EVM
In reply to Santosh ShilimkarFrom: Murali Karicheri <[email protected]>
Keystone2 Edison (K2E) is a Quad Cortex A15 based SoC with 1 DSP. It has standard peripherals such as i2c, spi, uart, timer, pcie, etc similar to k2hk, but without wireless hardwares. This patch add support for k2 Edison SoC and EVM. This re-uses the common keystone.dtsi to include common bindings across the various k2 devices.
--- arch/arm/boot/dts/k2e-clocks.dtsi | 78 ++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/k2e-evm.dts | 60 ++++++++++++++++++++++++++++ arch/arm/boot/dts/k2e.dtsi | 80 +++++++++++++++++++++++++++++++++++++ 3 files changed, 218 insertions(+) create mode 100644 arch/arm/boot/dts/k2e-clocks.dtsi create mode 100644 arch/arm/boot/dts/k2e-evm.dts create mode 100644 arch/arm/boot/dts/k2e.dtsi
arch/arm/boot/dts/k2e-clocks.dtsi new file +78 -0
@@ -0,0 +1,78 @@ +/* + * Copyright 2014 Texas Instruments, Inc. + * + * Keystone 2 Edison SoC specific device tree + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +clocks { + mainpllclk: mainpllclk at 2310110 { + #clock-cells = <0>; + compatible = "ti,keystone,main-pll-clock"; + clocks = <&refclksys>; + reg = <0x02620350 4>, <0x02310110 4>; + reg-names = "control", "multiplier"; + fixed-postdiv = <2>; + }; + + papllclk: papllclk at 2620358 { + #clock-cells = <0>; + compatible = "ti,keystone,pll-clock"; + clocks = <&refclkpass>; + clock-output-names = "pa-pll-clk"; + reg = <0x02620358 4>; + reg-names = "control"; + }; + + ddr3apllclk: ddr3apllclk at 2620360 { + #clock-cells = <0>; + compatible = "ti,keystone,pll-clock"; + clocks = <&refclkddr3a>; + clock-output-names = "ddr-3a-pll-clk"; + reg = <0x02620360 4>; + reg-names = "control"; + }; + + clkusb1: clkusb1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk16>; + clock-output-names = "usb"; + reg = <0x02350004 0xb00>, <0x02350000 0x400>; + reg-names = "control", "domain"; + domain-id = <0>; + }; + + clkhyperlink0: clkhyperlink0 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk12>; + clock-output-names = "hyperlink-0"; + reg = <0x02350030 0xb00>, <0x02350014 0x400>; + reg-names = "control", "domain"; + domain-id = <5>; + }; + + clkpcie1: clkpcie1 { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk12>; + clock-output-names = "pcie"; + reg = <0x0235006c 0xb00>, <0x02350000 0x400>; + reg-names = "control", "domain"; + domain-id = <18>; + }; + + clkxge: clkxge { + #clock-cells = <0>; + compatible = "ti,keystone,psc-clock"; + clocks = <&chipclk13>; + clock-output-names = "xge"; + reg = <0x023500c8 0xb00>, <0x02350074 0x400>; + reg-names = "control", "domain"; + domain-id = <29>; + }; +};
arch/arm/boot/dts/k2e-evm.dts new file +60 -0
60 lines not on this page · raw message
arch/arm/boot/dts/k2e.dtsi new file +80 -0
80 lines not on this page · raw message
Signature · 1 line
1.7.9.5