Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4bb2d100 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull "ARM: More SoC support updates" from Olof Johansson:
 "This branch contains a handful of updates of SoC base code that had
  dependencies on other external trees that have now been merged:

   * Support for the new EXYNOS5250 SoC from Samsung
   * SMP and power domain support for Tegra3 from NVIDIA
   * ux500 updates for exporting SoC information through sysfs"

Fix up trivial merge conflicts as per Olof.

* tag 'soc2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (30 commits)
  ARM: mach-shmobile: ap4evb: Reserve DMA memory for the frame buffer
  ARM: EXYNOS: Fix compilation error with mach-exynos4-dt board
  ARM: dts: add initial dts file for EXYNOS5250, SMDK5250
  ARM: EXYNOS: add support device tree enabled board file for EXYNOS5
  ARM: EXYNOS: add support ARCH_EXYNOS5 for EXYNOS5 SoCs
  ARM: EXYNOS: add support get_core_count() for EXYNOS5250
  ARM: EXYNOS: support EINT for EXYNOS4 and EXYNOS5
  ARM: EXYNOS: add interrupt definitions for EXYNOS5250
  ARM: EXYNOS: add support for EXYNOS5250 SoC
  ARM: EXYNOS: add support uart for EXYNOS4 and EXYNOS5
  ARM: EXYNOS: add initial setup-i2c0 for EXYNOS5
  ARM: EXYNOS: add clock part for EXYNOS5250 SoC
  ARM: EXYNOS: use exynos_init_uarts() instead of exynos4_init_uarts()
  ARM: EXYNOS: to declare static for mach-exynos/common.c
  ARM: EXYNOS: Add clkdev lookup entry for lcd clock
  ARM: dt: Explicitly configure all serial ports on Tegra Cardhu
  ARM: tegra: support for secondary cores on Tegra30
  ARM: tegra: support for Tegra30 CPU powerdomains
  ARM: tegra: add support for Tegra30 powerdomains
  ARM: tegra: export tegra_powergate_is_powered()
  ...
parents ff877c49 83fe628e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -180,6 +180,7 @@ machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0
machine-$(CONFIG_ARCH_S5PC100)		:= s5pc100
machine-$(CONFIG_ARCH_S5PV210)		:= s5pv210
machine-$(CONFIG_ARCH_EXYNOS4)		:= exynos
machine-$(CONFIG_ARCH_EXYNOS5)		:= exynos
machine-$(CONFIG_ARCH_SA1100)		:= sa1100
machine-$(CONFIG_ARCH_SHARK)		:= shark
machine-$(CONFIG_ARCH_SHMOBILE) 	:= shmobile
+26 −0
Original line number Diff line number Diff line
/*
 * SAMSUNG SMDK5250 board device tree source
 *
 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
 *		http://www.samsung.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.
*/

/dts-v1/;
/include/ "exynos5250.dtsi"

/ {
	model = "SAMSUNG SMDK5250 board based on EXYNOS5250";
	compatible = "samsung,smdk5250", "samsung,exynos5250";

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

	chosen {
		bootargs = "root=/dev/ram0 rw ramdisk=8192 console=ttySAC1,115200";
	};
};
+413 −0
Original line number Diff line number Diff line
/*
 * SAMSUNG EXYNOS5250 SoC device tree source
 *
 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * SAMSUNG EXYNOS5250 SoC device nodes are listed in this file.
 * EXYNOS5250 based board files can include this file and provide
 * values for board specfic bindings.
 *
 * Note: This file does not include device nodes for all the controllers in
 * EXYNOS5250 SoC. As device tree coverage for EXYNOS5250 increases,
 * additional nodes can be added to this file.
 *
 * 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.
*/

/include/ "skeleton.dtsi"

/ {
	compatible = "samsung,exynos5250";
	interrupt-parent = <&gic>;

	gic:interrupt-controller@10490000 {
		compatible = "arm,cortex-a9-gic";
		#interrupt-cells = <3>;
		interrupt-controller;
		reg = <0x10490000 0x1000>, <0x10480000 0x100>;
	};

	watchdog {
		compatible = "samsung,s3c2410-wdt";
		reg = <0x101D0000 0x100>;
		interrupts = <0 42 0>;
	};

	rtc {
		compatible = "samsung,s3c6410-rtc";
		reg = <0x101E0000 0x100>;
		interrupts = <0 43 0>, <0 44 0>;
	};

	sdhci@12200000 {
		compatible = "samsung,exynos4210-sdhci";
		reg = <0x12200000 0x100>;
		interrupts = <0 75 0>;
	};

	sdhci@12210000 {
		compatible = "samsung,exynos4210-sdhci";
		reg = <0x12210000 0x100>;
		interrupts = <0 76 0>;
	};

	sdhci@12220000 {
		compatible = "samsung,exynos4210-sdhci";
		reg = <0x12220000 0x100>;
		interrupts = <0 77 0>;
	};

	sdhci@12230000 {
		compatible = "samsung,exynos4210-sdhci";
		reg = <0x12230000 0x100>;
		interrupts = <0 78 0>;
	};

	serial@12C00000 {
		compatible = "samsung,exynos4210-uart";
		reg = <0x12C00000 0x100>;
		interrupts = <0 51 0>;
	};

	serial@12C10000 {
		compatible = "samsung,exynos4210-uart";
		reg = <0x12C10000 0x100>;
		interrupts = <0 52 0>;
	};

	serial@12C20000 {
		compatible = "samsung,exynos4210-uart";
		reg = <0x12C20000 0x100>;
		interrupts = <0 53 0>;
	};

	serial@12C30000 {
		compatible = "samsung,exynos4210-uart";
		reg = <0x12C30000 0x100>;
		interrupts = <0 54 0>;
	};

	i2c@12C60000 {
		compatible = "samsung,s3c2440-i2c";
		reg = <0x12C60000 0x100>;
		interrupts = <0 56 0>;
	};

	i2c@12C70000 {
		compatible = "samsung,s3c2440-i2c";
		reg = <0x12C70000 0x100>;
		interrupts = <0 57 0>;
	};

	i2c@12C80000 {
		compatible = "samsung,s3c2440-i2c";
		reg = <0x12C80000 0x100>;
		interrupts = <0 58 0>;
	};

	i2c@12C90000 {
		compatible = "samsung,s3c2440-i2c";
		reg = <0x12C90000 0x100>;
		interrupts = <0 59 0>;
	};

	i2c@12CA0000 {
		compatible = "samsung,s3c2440-i2c";
		reg = <0x12CA0000 0x100>;
		interrupts = <0 60 0>;
	};

	i2c@12CB0000 {
		compatible = "samsung,s3c2440-i2c";
		reg = <0x12CB0000 0x100>;
		interrupts = <0 61 0>;
	};

	i2c@12CC0000 {
		compatible = "samsung,s3c2440-i2c";
		reg = <0x12CC0000 0x100>;
		interrupts = <0 62 0>;
	};

	i2c@12CD0000 {
		compatible = "samsung,s3c2440-i2c";
		reg = <0x12CD0000 0x100>;
		interrupts = <0 63 0>;
	};

	amba {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "arm,amba-bus";
		interrupt-parent = <&gic>;
		ranges;

		pdma0: pdma@121A0000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0x121A0000 0x1000>;
			interrupts = <0 34 0>;
		};

		pdma1: pdma@121B0000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0x121B0000 0x1000>;
			interrupts = <0 35 0>;
		};

		mdma0: pdma@10800000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0x10800000 0x1000>;
			interrupts = <0 33 0>;
		};

		mdma1: pdma@11C10000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0x11C10000 0x1000>;
			interrupts = <0 124 0>;
		};
	};

	gpio-controllers {
		#address-cells = <1>;
		#size-cells = <1>;
		gpio-controller;
		ranges;

		gpa0: gpio-controller@11400000 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400000 0x20>;
			#gpio-cells = <4>;
		};

		gpa1: gpio-controller@11400020 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400020 0x20>;
			#gpio-cells = <4>;
		};

		gpa2: gpio-controller@11400040 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400040 0x20>;
			#gpio-cells = <4>;
		};

		gpb0: gpio-controller@11400060 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400060 0x20>;
			#gpio-cells = <4>;
		};

		gpb1: gpio-controller@11400080 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400080 0x20>;
			#gpio-cells = <4>;
		};

		gpb2: gpio-controller@114000A0 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x114000A0 0x20>;
			#gpio-cells = <4>;
		};

		gpb3: gpio-controller@114000C0 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x114000C0 0x20>;
			#gpio-cells = <4>;
		};

		gpc0: gpio-controller@114000E0 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x114000E0 0x20>;
			#gpio-cells = <4>;
		};

		gpc1: gpio-controller@11400100 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400100 0x20>;
			#gpio-cells = <4>;
		};

		gpc2: gpio-controller@11400120 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400120 0x20>;
			#gpio-cells = <4>;
		};

		gpc3: gpio-controller@11400140 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400140 0x20>;
			#gpio-cells = <4>;
		};

		gpd0: gpio-controller@11400160 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400160 0x20>;
			#gpio-cells = <4>;
		};

		gpd1: gpio-controller@11400180 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400180 0x20>;
			#gpio-cells = <4>;
		};

		gpy0: gpio-controller@114001A0 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x114001A0 0x20>;
			#gpio-cells = <4>;
		};

		gpy1: gpio-controller@114001C0 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x114001C0 0x20>;
			#gpio-cells = <4>;
		};

		gpy2: gpio-controller@114001E0 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x114001E0 0x20>;
			#gpio-cells = <4>;
		};

		gpy3: gpio-controller@11400200 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400200 0x20>;
			#gpio-cells = <4>;
		};

		gpy4: gpio-controller@11400220 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400220 0x20>;
			#gpio-cells = <4>;
		};

		gpy5: gpio-controller@11400240 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400240 0x20>;
			#gpio-cells = <4>;
		};

		gpy6: gpio-controller@11400260 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400260 0x20>;
			#gpio-cells = <4>;
		};

		gpx0: gpio-controller@11400C00 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400C00 0x20>;
			#gpio-cells = <4>;
		};

		gpx1: gpio-controller@11400C20 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400C20 0x20>;
			#gpio-cells = <4>;
		};

		gpx2: gpio-controller@11400C40 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400C40 0x20>;
			#gpio-cells = <4>;
		};

		gpx3: gpio-controller@11400C60 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x11400C60 0x20>;
			#gpio-cells = <4>;
		};

		gpe0: gpio-controller@13400000 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x13400000 0x20>;
			#gpio-cells = <4>;
		};

		gpe1: gpio-controller@13400020 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x13400020 0x20>;
			#gpio-cells = <4>;
		};

		gpf0: gpio-controller@13400040 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x13400040 0x20>;
			#gpio-cells = <4>;
		};

		gpf1: gpio-controller@13400060 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x13400060 0x20>;
			#gpio-cells = <4>;
		};

		gpg0: gpio-controller@13400080 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x13400080 0x20>;
			#gpio-cells = <4>;
		};

		gpg1: gpio-controller@134000A0 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x134000A0 0x20>;
			#gpio-cells = <4>;
		};

		gpg2: gpio-controller@134000C0 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x134000C0 0x20>;
			#gpio-cells = <4>;
		};

		gph0: gpio-controller@134000E0 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x134000E0 0x20>;
			#gpio-cells = <4>;
		};

		gph1: gpio-controller@13400100 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x13400100 0x20>;
			#gpio-cells = <4>;
		};

		gpv0: gpio-controller@10D10000 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x10D10000 0x20>;
			#gpio-cells = <4>;
		};

		gpv1: gpio-controller@10D10020 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x10D10020 0x20>;
			#gpio-cells = <4>;
		};

		gpv2: gpio-controller@10D10040 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x10D10040 0x20>;
			#gpio-cells = <4>;
		};

		gpv3: gpio-controller@10D10060 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x10D10060 0x20>;
			#gpio-cells = <4>;
		};

		gpv4: gpio-controller@10D10080 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x10D10080 0x20>;
			#gpio-cells = <4>;
		};

		gpz: gpio-controller@03860000 {
			compatible = "samsung,exynos4-gpio";
			reg = <0x03860000 0x20>;
			#gpio-cells = <4>;
		};
	};
};
+16 −0
Original line number Diff line number Diff line
@@ -14,6 +14,22 @@
		clock-frequency = < 408000000 >;
	};

	serial@70006040 {
		status = "disable";
	};

	serial@70006200 {
		status = "disable";
	};

	serial@70006300 {
		status = "disable";
	};

	serial@70006400 {
		status = "disable";
	};

	i2c@7000c000 {
		clock-frequency = <100000>;
	};
+23 −6
Original line number Diff line number Diff line
@@ -11,18 +11,19 @@ if ARCH_EXYNOS

menu "SAMSUNG EXYNOS SoCs Support"

choice
	prompt "EXYNOS System Type"
	default ARCH_EXYNOS4

config ARCH_EXYNOS4
	bool "SAMSUNG EXYNOS4"
	default y
	select HAVE_SMP
	select MIGHT_HAVE_CACHE_L2X0
	help
	  Samsung EXYNOS4 SoCs based systems

endchoice
config ARCH_EXYNOS5
	bool "SAMSUNG EXYNOS5"
	select HAVE_SMP
	help
	  Samsung EXYNOS5 (Cortex-A15) SoC based systems

comment "EXYNOS SoCs"

@@ -56,6 +57,13 @@ config SOC_EXYNOS4412
	help
	  Enable EXYNOS4412 SoC support

config SOC_EXYNOS5250
	bool "SAMSUNG EXYNOS5250"
	default y
	depends on ARCH_EXYNOS5
	help
	  Enable EXYNOS5250 SoC support

config EXYNOS4_MCT
	bool
	default y
@@ -356,7 +364,7 @@ config MACH_SMDK4412
	  Machine support for Samsung SMDK4412
endif

comment "Flattened Device Tree based board for Exynos4 based SoC"
comment "Flattened Device Tree based board for EXYNOS SoCs"

config MACH_EXYNOS4_DT
	bool "Samsung Exynos4 Machine using device tree"
@@ -370,6 +378,15 @@ config MACH_EXYNOS4_DT
	  Note: This is under development and not all peripherals can be supported
	  with this machine file.

config MACH_EXYNOS5_DT
	bool "SAMSUNG EXYNOS5 Machine using device tree"
	select SOC_EXYNOS5250
	select USE_OF
	select ARM_AMBA
	help
	  Machine support for Samsung Exynos4 machine with device tree enabled.
	  Select this if a fdt blob is available for the EXYNOS4 SoC based board.

if ARCH_EXYNOS4

comment "Configuration for HSMMC 8-bit bus width"
Loading