Skip to contentSkip to conversation

Add initial support for TI's K2G SOC

PATCH New Franklin S Cooper Jr 3 participants 7 messages Feb 2, 2016 – Feb 8, 2016

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

cover Add initial support for TI's K2G SOC

This patchset provides initial support for K2G the latest addition to Texas Instruments Keystone 2 product family. These patches are built on top of the latest 4.5-rc2 commit.

K2G is a A15 + C66x DSP processor built to address the needs of industrial communication and control, automotive and performance audio applications.

Supported peripherals include MMC,USB2.0,DCAN,DSS,McASP and PCIe SS.

The technical reference manual for K2G can be found here:
http://www.ti.com/lit/ug/spruhy8/spruhy8.pdf

This patchset provides the ability to boot K2G's general purpose evm using a ramfs filesystem.

Additional patches will follow this series that will add support for new drivers that will enable additional peripherals and features

K2G Bootlog on 4.5-rc2:
http://pastebin.ubuntu.com/14861580/

To show no regressions:
K2E Bootlog: http://pastebin.ubuntu.com/14861523/
Other Keystone 2 devices need this partial revert discussed in the below thread.
http://marc.info/?l=linux-netdev&m=145444838030865&w=2

This is an issue seen on the netcp driver and has nothing to do with this patch set.

Nishanth Menon (1):
ARM: keystone: Create new binding for K2G SoC

Vitaly Andrianov (2):
ARM: dts: keystone: Add Initial DT support for TI K2G SoC family
ARM: dts: keystone: Add minimum support for K2G evm

 .../devicetree/bindings/arm/keystone/keystone.txt  |  5 ++
 arch/arm/boot/dts/Makefile                         |  3 +-
 arch/arm/boot/dts/k2g-evm.dts                      | 32 ++++++++
 arch/arm/boot/dts/k2g.dtsi                         | 89 ++++++++++++++++++++++
 arch/arm/mach-keystone/keystone.c                  |  1 +
 5 files changed, 129 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/k2g-evm.dts
 create mode 100644 arch/arm/boot/dts/k2g.dtsi
Signature · 1 line
2.7.0
#1 lore raw

PATCH 1/3 ARM: keystone: Create new binding for K2G SoC

From: Nishanth Menon <[email protected]>

K2G SoC family is the newest version of the Keystone family of processors.

The technical reference manual for K2G can be found here:
http://www.ti.com/lit/ug/spruhy8/spruhy8.pdf

Add new bindings for K2G and the K2G evm. Also document these new bindings.

---
 Documentation/devicetree/bindings/arm/keystone/keystone.txt | 5 +++++
 arch/arm/mach-keystone/keystone.c                           | 1 +
 2 files changed, 6 insertions(+)
Documentation/devicetree/bindings/arm/keystone/keystone.txt +5 -0
index 3090a8a..48f6703 100644
@@ -22,6 +22,8 @@ SoCs:
    compatible = "ti,k2l", "ti,keystone"
 - Keystone 2 Edison
    compatible = "ti,k2e", "ti,keystone"
+- K2G
+   compatible = "ti,k2g", "ti,keystone"
 
 Boards:
 -  Keystone 2 Hawking/Kepler EVM
@@ -32,3 +34,6 @@ Boards:
 
 -  Keystone 2 Edison EVM
    compatible = "ti,k2e-evm", "ti,k2e", "ti,keystone"
+
+-  K2G EVM
+   compatible = "ti,k2g-evm", "ti,k2g", "ti-keystone"
arch/arm/mach-keystone/keystone.c +1 -0
index c279293..55cb199 100644
@@ -100,6 +100,7 @@ static const char *const keystone_match[] __initconst = {
 	"ti,k2hk",
 	"ti,k2e",
 	"ti,k2l",
+	"ti,k2g",
 	"ti,keystone",
 	NULL,
 };
Signature · 1 line
2.7.0
maintainer
#2 lore raw

PATCH 1/3 ARM: keystone: Create new binding for K2G SoC

Quoted 7 lines · Franklin S Cooper Jr

From: Nishanth Menon <[email protected]>

K2G SoC family is the newest version of the Keystone family of processors.

The technical reference manual for K2G can be found here:
http://www.ti.com/lit/ug/spruhy8/spruhy8.pdf

Quoted 8 lines

Add new bindings for K2G and the K2G evm. Also document these new bindings.

---
 Documentation/devicetree/bindings/arm/keystone/keystone.txt | 5 +++++
 arch/arm/mach-keystone/keystone.c                           | 1 +
 2 files changed, 6 insertions(+)
#3 lore raw

PATCH 2/3 ARM: dts: keystone: Add Initial DT support for TI K2G SoC family

In reply to Franklin S Cooper Jr

From: Vitaly Andrianov <[email protected]>

K2G is the newest addition of TI's Keystone 2 product family. It is a single core Cortex A15 and a C66x DSP.

K2G supports standard peripherals such as SPI, UART, MMC and USB 2.0.

Includes two dual-core Programmable Real-time Unit and Industrial Communication Subsystems (PRU-ICSS).

The technical reference manual for K2G can be found here:
http://www.ti.com/lit/ug/spruhy8/spruhy8.pdf

This device is targeted for a variety of applications which include, but are not limited to:

Home audio
Professional audio
Industrial Programmable Logic Control

The peripheral nodes that have been included in this patch have been tested during bring-up. Since all peripherals will not necessarily be used on all boards, disable all peripherals by default. This allow the board dts to selectively choose which peripherals it wants to enable.

This SoC now uses the next generation of power management architecture with the PM functionality located in a microcontroller embedded in the SOC.

Support for this new PM architecture along with other peripherals will be added in future patches.

---
 arch/arm/boot/dts/k2g.dtsi | 89 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)
 create mode 100644 arch/arm/boot/dts/k2g.dtsi
arch/arm/boot/dts/k2g.dtsi new file +89 -0
new file mode 100644
index 0000000..7ff2796
@@ -0,0 +1,89 @@
+/*
+ * Device Tree Source for K2G SOC
+ *
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * 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.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include "skeleton.dtsi"
+
+/ {
+	compatible = "ti,k2g","ti,keystone";
+	model = "Texas Instruments K2G SoC";
+	#address-cells = <2>;
+	#size-cells = <2>;
+	interrupt-parent = <&gic>;
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu at 0 {
+			compatible = "arm,cortex-a15";
+			device_type = "cpu";
+			reg = <0>;
+		};
+	};
+
+	gic: interrupt-controller at 02561000 {
+		compatible = "arm,cortex-a15-gic";
+		#interrupt-cells = <3>;
+		interrupt-controller;
+		reg = <0x0 0x02561000 0x0 0x1000>,
+		      <0x0 0x02562000 0x0 0x2000>,
+		      <0x0 0x02564000 0x0 0x1000>,
+		      <0x0 0x02566000 0x0 0x2000>;
+		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
+				IRQ_TYPE_LEVEL_HIGH)>;
+	};
+
+	timer {
+		compatible = "arm,armv7-timer";
+		interrupts =
+			<GIC_PPI 13
+				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+			<GIC_PPI 14
+				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+			<GIC_PPI 11
+				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+			<GIC_PPI 10
+				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+	};
+
+	pmu {
+		compatible = "arm,cortex-a15-pmu";
+		interrupts = <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
+	};
+
+	soc {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "ti,keystone","simple-bus";
+		ranges = <0x0 0x0 0x0 0xc0000000>;
+		dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>;
+
+		uart0: serial at 02530c00 {
+			compatible = "ns16550a";
+			current-speed = <115200>;
+			reg-shift = <2>;
+			reg-io-width = <4>;
+			reg = <0x02530c00 0x100>;
+			interrupts = <GIC_SPI 164 IRQ_TYPE_EDGE_RISING>;
+			clock-frequency = <200000000>;
+			status = "disabled";
+		};
+	};
+};
Signature · 1 line
2.7.0
#4 lore raw

PATCH 3/3 ARM: dts: keystone: Add minimum support for K2G evm

In reply to Franklin S Cooper Jr

From: Vitaly Andrianov <[email protected]>

Add barebones K2G evm dts. This DTS allows the board to boot using a ram based filesystem.

The technical reference manual for K2G can be found here:
http://www.ti.com/lit/ug/spruhy8/spruhy8.pdf

---
 arch/arm/boot/dts/Makefile    |  3 ++-
 arch/arm/boot/dts/k2g-evm.dts | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/k2g-evm.dts
arch/arm/boot/dts/Makefile +2 -1
index a4a6d70..8343f66 100644
@@ -156,7 +156,8 @@ dtb-$(CONFIG_ARCH_INTEGRATOR) += \
 dtb-$(CONFIG_ARCH_KEYSTONE) += \
 	k2hk-evm.dtb \
 	k2l-evm.dtb \
-	k2e-evm.dtb
+	k2e-evm.dtb \
+	k2g-evm.dtb
 dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-b3.dtb \
 	kirkwood-blackarmor-nas220.dtb \
arch/arm/boot/dts/k2g-evm.dts new file +32 -0
new file mode 100644
index 0000000..99663b3
@@ -0,0 +1,32 @@
+/*
+ * Device Tree Source for K2G EVM
+ *
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * 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.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+/dts-v1/;
+
+#include "k2g.dtsi"
+
+/ {
+	compatible =  "ti,k2g-evm", "ti,k2g", "ti,keystone";
+	model = "Texas Instruments K2G General Purpose EVM";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000008 0x00000000 0x00000000 0x80000000>;
+	};
+
+};
+
+&uart0 {
+	status = "okay";
+};
Signature · 1 line
2.7.0
#5 lore raw

cover Add initial support for TI's K2G SOC

In reply to Franklin S Cooper Jr
Quoted 12 lines · Franklin S Cooper Jr

This patchset provides initial support for K2G the latest addition to Texas Instruments Keystone 2 product family. These patches are built on top of the latest 4.5-rc2 commit.

K2G is a A15 + C66x DSP processor built to address the needs of industrial communication and control, automotive and performance audio applications.

Supported peripherals include MMC,USB2.0,DCAN,DSS,McASP and PCIe SS.

The technical reference manual for K2G can be found here:
http://www.ti.com/lit/ug/spruhy8/spruhy8.pdf

Quoted 9 lines

This patchset provides the ability to boot K2G's general purpose evm using a ramfs filesystem.

Additional patches will follow this series that will add support for new drivers that will enable additional peripherals and features

K2G Bootlog on 4.5-rc2:
http://pastebin.ubuntu.com/14861580/

Quick scan of the series looks fine to me. I will wait for others to come back for a week or so and then add to 4.6 queue.

Thanks for the series !!

Reagrds,
Santosh

#6 lore raw

cover Add initial support for TI's K2G SOC

Quoted 22 lines · santosh shilimkar
Quoted 21 lines · Franklin S Cooper Jr

This patchset provides initial support for K2G the latest addition to Texas
Instruments Keystone 2 product family. These patches are built on top of the latest 4.5-rc2 commit.

K2G is a A15 + C66x DSP processor built to address the needs of industrial
communication and control, automotive and performance audio applications.

Supported peripherals include MMC,USB2.0,DCAN,DSS,McASP and PCIe SS.

The technical reference manual for K2G can be found here:
http://www.ti.com/lit/ug/spruhy8/spruhy8.pdf

This patchset provides the ability to boot K2G's general purpose evm using
a ramfs filesystem.

Additional patches will follow this series that will add support for new drivers that will enable additional peripherals and features

Quoted 8 lines
Quoted 3 lines

K2G Bootlog on 4.5-rc2:
http://pastebin.ubuntu.com/14861580/

Quick scan of the series looks fine to me. I will wait for others to come back for a week or so and then add to 4.6 queue.

Thanks for the series !!

You should start seeing the patches in linux-next build soon.

Reagrds,
Santosh