Commit 99ff1830 authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'keystone-soc-for-arm-soc' of...

Merge tag 'keystone-soc-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into next/soc

From Santosh Shilimkar:
SOC support for Keystone II devices:
- Minimal machine and device-tree support with arch_timers and console UART
- Reboot hook using PLL reset
- Low level debug support using UART
- SMP boot support

* tag 'keystone-soc-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone

:
  ARM: keystone: Enable SMP support on Keystone machines
  ARM: keystone: Add minimal TI Keystone platform support
  ARM: dts: keystone: Add minimal Keystone SOC device tree data

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 7bf15412 f07cb6a0
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
TI Keystone Platforms Device Tree Bindings
-----------------------------------------------

Boards with Keystone2 based devices (TCI66xxK2H) SOC shall have the
following properties.

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.
+3 −0
Original line number Diff line number Diff line
@@ -950,6 +950,8 @@ source "arch/arm/mach-iop13xx/Kconfig"

source "arch/arm/mach-ixp4xx/Kconfig"

source "arch/arm/mach-keystone/Kconfig"

source "arch/arm/mach-kirkwood/Kconfig"

source "arch/arm/mach-ks8695/Kconfig"
@@ -1562,6 +1564,7 @@ config ARCH_NR_GPIO
	int
	default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
	default 512 if SOC_OMAP5
	default 512 if ARCH_KEYSTONE
	default 392 if ARCH_U8500
	default 352 if ARCH_VT8500
	default 288 if ARCH_SUNXI
+16 −0
Original line number Diff line number Diff line
@@ -251,6 +251,20 @@ choice
		  Say Y here if you want kernel low-level debugging support
		  on i.MX6Q/DL.

	config DEBUG_KEYSTONE_UART0
		bool "Kernel low-level debugging on KEYSTONE2 using UART0"
		depends on ARCH_KEYSTONE
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART0 serial port on KEYSTONE2 devices.

	config DEBUG_KEYSTONE_UART1
		bool "Kernel low-level debugging on KEYSTONE2 using UART1"
		depends on ARCH_KEYSTONE
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART1 serial port on KEYSTONE2 devices.

	config DEBUG_MMP_UART2
		bool "Kernel low-level debugging message via MMP UART2"
		depends on ARCH_MMP
@@ -657,6 +671,8 @@ config DEBUG_LL_INCLUDE
				 DEBUG_IMX51_UART || \
				 DEBUG_IMX53_UART ||\
				 DEBUG_IMX6Q_UART
	default "debug/keystone.S" if DEBUG_KEYSTONE_UART0 || \
				      DEBUG_KEYSTONE_UART1
	default "debug/mvebu.S" if DEBUG_MVEBU_UART || \
				   DEBUG_MVEBU_UART_ALTERNATE
	default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
+1 −0
Original line number Diff line number Diff line
@@ -195,6 +195,7 @@ machine-$(CONFIG_PLAT_SPEAR) += spear
machine-$(CONFIG_ARCH_VIRT)		+= virt
machine-$(CONFIG_ARCH_ZYNQ)		+= zynq
machine-$(CONFIG_ARCH_SUNXI)		+= sunxi
machine-$(CONFIG_ARCH_KEYSTONE)		+= keystone

# Platform directory name.  This list is sorted alphanumerically
# by CONFIG_* macro name.
+117 −0
Original line number Diff line number Diff line
/*
 * Copyright 2013 Texas Instruments, Inc.
 *
 * 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/ "skeleton.dtsi"

/ {
	model = "Texas Instruments Keystone 2 SoC";
	compatible =  "ti,keystone-evm";
	#address-cells = <2>;
	#size-cells = <2>;
	interrupt-parent = <&gic>;

	aliases {
		serial0	= &uart0;
	};

	memory {
		reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		interrupt-parent = <&gic>;

		cpu@0 {
			compatible = "arm,cortex-a15";
			device_type = "cpu";
			reg = <0>;
		};

		cpu@1 {
			compatible = "arm,cortex-a15";
			device_type = "cpu";
			reg = <1>;
		};

		cpu@2 {
			compatible = "arm,cortex-a15";
			device_type = "cpu";
			reg = <2>;
		};

		cpu@3 {
			compatible = "arm,cortex-a15";
			device_type = "cpu";
			reg = <3>;
		};
	};

	gic: interrupt-controller {
		compatible = "arm,cortex-a15-gic";
		#interrupt-cells = <3>;
		#size-cells = <0>;
		#address-cells = <1>;
		interrupt-controller;
		reg = <0x0 0x02561000 0x0 0x1000>,
		      <0x0 0x02562000 0x0 0x2000>;
	};

	timer {
		compatible = "arm,armv7-timer";
		interrupts = <1 13 0xf08>,
			     <1 14 0xf08>,
			     <1 11 0xf08>,
			     <1 10 0x308>;
	};

	pmu {
		compatible = "arm,cortex-a15-pmu";
		interrupts = <0 20 0xf01>,
			     <0 21 0xf01>,
			     <0 22 0xf01>,
			     <0 23 0xf01>;
	};

	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "ti,keystone","simple-bus";
		interrupt-parent = <&gic>;
		ranges = <0x0 0x0 0x0 0xc0000000>;

		rstctrl: reset-controller {
			compatible = "ti,keystone-reset";
			reg = <0x023100e8 4>;	/* pll reset control reg */
		};

		uart0: serial@02530c00 {
			compatible = "ns16550a";
			current-speed = <115200>;
			reg-shift = <2>;
			reg-io-width = <4>;
			reg = <0x02530c00 0x100>;
			clock-frequency = <133120000>;
			interrupts = <0 277 0xf01>;
		};

		uart1:	serial@02531000 {
			compatible = "ns16550a";
			current-speed = <115200>;
			reg-shift = <2>;
			reg-io-width = <4>;
			reg = <0x02531000 0x100>;
			clock-frequency = <133120000>;
			interrupts = <0 280 0xf01>;
		};

	};
};
Loading