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

Commit d408c5dc authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge branch 'next/dt-samsung-2' of...

Merge branch 'next/dt-samsung-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dt

From Kukjin Kim:
Here is second Samsung DT stuff for v3.8.

This is including power domain DT support for exynos and Google ARM
Chromebook, Snow board and exynos4210-origen updates.

* 'next/dt-samsung-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung

:
  ARM: dts: Use drive strength 3 for SD pins for exynos4
  ARM: dts: Set up power domains for exynos4
  ARM: EXYNOS: Bind devices to power domains using DT
  ARM: EXYNOS: Fix power domain name initialization
  ARM: EXYNOS: Detect power domain state on registration from DT
  ARM: dts: Add vmmc fixed voltage regulator for exynos4210-origen
  ARM: dts: Update sdhci nodes for current bindings for exynos4210-origen
  ARM: dts: Update for pinctrl-samsung driver for exynos4210-origen
  ARM: dts: Split memory sections for exynos4210-origen
  ARM: EXYNOS: add all i2c busses to auxdata for DT
  ARM: dts: Add aliases for i2c controller for exynos4
  ARM: dts: Add board dts file for Snow board (ARM Chromebook)
  ARM: dts: Move the dwmmc aliases from smdk5250 dts to exynos

Add/add conflicts resolved in arch/arm/boot/dts/exynos5250-smdk5250.dts
and arch/arm/mach-exynos/mach-exynos5-dt.c.

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 8d2282a7 d80162ec
Loading
Loading
Loading
Loading
+11 −4
Original line number Original line Diff line number Diff line
@@ -4,14 +4,13 @@ Exynos processors include support for multiple power domains which are used
to gate power to one or more peripherals on the processor.
to gate power to one or more peripherals on the processor.


Required Properties:
Required Properties:
- compatiable: should be one of the following.
- compatible: should be one of the following.
    * samsung,exynos4210-pd - for exynos4210 type power domain.
    * samsung,exynos4210-pd - for exynos4210 type power domain.
- reg: physical base address of the controller and length of memory mapped
- reg: physical base address of the controller and length of memory mapped
    region.
    region.


Optional Properties:
Node of a device using power domains must have a samsung,power-domain property
- samsung,exynos4210-pd-off: Specifies that the power domain is in turned-off
defined with a phandle to respective power domain.
    state during boot and remains to be turned-off until explicitly turned-on.


Example:
Example:


@@ -19,3 +18,11 @@ Example:
		compatible = "samsung,exynos4210-pd";
		compatible = "samsung,exynos4210-pd";
		reg = <0x10023C00 0x10>;
		reg = <0x10023C00 0x10>;
	};
	};

Example of the node using power domain:

	node {
		/* ... */
		samsung,power-domain = <&lcd0>;
		/* ... */
	};
+2 −1
Original line number Original line Diff line number Diff line
@@ -26,7 +26,8 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
	exynos4210-smdkv310.dtb \
	exynos4210-smdkv310.dtb \
	exynos4210-trats.dtb \
	exynos4210-trats.dtb \
	exynos4412-smdk4412.dtb \
	exynos4412-smdk4412.dtb \
	exynos5250-smdk5250.dtb
	exynos5250-smdk5250.dtb \
	exynos5250-snow.dtb
dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb
dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb
dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \
dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \
	integratorcp.dtb
	integratorcp.dtb
+184 −0
Original line number Original line Diff line number Diff line
/*
 * Common device tree include for all Exynos 5250 boards based off of Daisy.
 *
 * Copyright (c) 2012 Google, 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.
*/

/ {
	aliases {
	};

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

	chosen {
	};

	i2c@12C60000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <378000>;
		gpios = <&gpb3 0 2 3 0>,
			<&gpb3 1 2 3 0>;
	};

	i2c@12C70000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <378000>;
		gpios = <&gpb3 2 2 3 0>,
			<&gpb3 3 2 3 0>;
	};

	i2c@12C80000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <66000>;

		/*
		 * Disabled pullups since external part has its own pullups and
		 * double-pulling gets us out of spec in some cases.
		 */
		gpios = <&gpa0 6 3 0 0>,
			<&gpa0 7 3 0 0>;

		hdmiddc@50 {
			compatible = "samsung,exynos5-hdmiddc";
			reg = <0x50>;
		};
	};

	i2c@12C90000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <66000>;
		gpios = <&gpa1 2 3 3 0>,
			<&gpa1 3 3 3 0>;
	};

	i2c@12CA0000 {
		status = "disabled";
	};

	i2c@12CB0000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <66000>;
		gpios = <&gpa2 2 3 3 0>,
			<&gpa2 3 3 3 0>;
	};

	i2c@12CC0000 {
		status = "disabled";
	};

	i2c@12CD0000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <66000>;
		gpios = <&gpb2 2 3 3 0>,
			<&gpb2 3 3 3 0>;
	};

	i2c@12CE0000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <378000>;

		hdmiphy@38 {
			compatible = "samsung,exynos5-hdmiphy";
			reg = <0x38>;
		};
	};

	dwmmc0@12200000 {
		num-slots = <1>;
		supports-highspeed;
		broken-cd;
		fifo-depth = <0x80>;
		card-detect-delay = <200>;
		samsung,dw-mshc-ciu-div = <3>;
		samsung,dw-mshc-sdr-timing = <2 3 3>;
		samsung,dw-mshc-ddr-timing = <1 2 3>;

		slot@0 {
			reg = <0>;
			bus-width = <8>;
			gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>,
				<&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>,
				<&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>,
				<&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>,
				<&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>;
		};
	};

	dwmmc1@12210000 {
		status = "disabled";
	};

	dwmmc2@12220000 {
		num-slots = <1>;
		supports-highspeed;
		fifo-depth = <0x80>;
		card-detect-delay = <200>;
		samsung,dw-mshc-ciu-div = <3>;
		samsung,dw-mshc-sdr-timing = <2 3 3>;
		samsung,dw-mshc-ddr-timing = <1 2 3>;

		slot@0 {
			reg = <0>;
			bus-width = <4>;
			samsung,cd-pinmux-gpio = <&gpc3 2 2 3 3>;
			wp-gpios = <&gpc2 1 0 0 3>;
			gpios = <&gpc3 0 2 0 3>, <&gpc3 1 2 0 3>,
				<&gpc3 3 2 3 3>, <&gpc3 4 2 3 3>,
				<&gpc3 5 2 3 3>, <&gpc3 6 2 3 3>;
		};
	};

	dwmmc3@12230000 {
		num-slots = <1>;
		supports-highspeed;
		broken-cd;
		fifo-depth = <0x80>;
		card-detect-delay = <200>;
		samsung,dw-mshc-ciu-div = <3>;
		samsung,dw-mshc-sdr-timing = <2 3 3>;
		samsung,dw-mshc-ddr-timing = <1 2 3>;

		slot@0 {
			reg = <0>;
			bus-width = <4>;
			/* See board-specific dts files for GPIOs */
		};
	};

	spi_0: spi@12d20000 {
		status = "disabled";
	};

	spi_1: spi@12d30000 {
		gpios = <&gpa2 4 2 3 0>,
			<&gpa2 6 2 3 0>,
			<&gpa2 7 2 3 0>;
		samsung,spi-src-clk = <0>;
		num-cs = <1>;
	};

	spi_2: spi@12d40000 {
		status = "disabled";
	};

	hdmi {
		hpd-gpio = <&gpx3 7 0xf 1 3>;
	};

	gpio-keys {
		compatible = "gpio-keys";

		power {
			label = "Power";
			gpios = <&gpx1 3 0 0x10000 0>;
			linux,code = <116>; /* KEY_POWER */
			gpio-key,wakeup;
		};
	};
};
+46 −8
Original line number Original line Diff line number Diff line
@@ -28,6 +28,44 @@
		spi0 = &spi_0;
		spi0 = &spi_0;
		spi1 = &spi_1;
		spi1 = &spi_1;
		spi2 = &spi_2;
		spi2 = &spi_2;
		i2c0 = &i2c_0;
		i2c1 = &i2c_1;
		i2c2 = &i2c_2;
		i2c3 = &i2c_3;
		i2c4 = &i2c_4;
		i2c5 = &i2c_5;
		i2c6 = &i2c_6;
		i2c7 = &i2c_7;
	};

	pd_mfc: mfc-power-domain@10023C40 {
		compatible = "samsung,exynos4210-pd";
		reg = <0x10023C40 0x20>;
	};

	pd_g3d: g3d-power-domain@10023C60 {
		compatible = "samsung,exynos4210-pd";
		reg = <0x10023C60 0x20>;
	};

	pd_lcd0: lcd0-power-domain@10023C80 {
		compatible = "samsung,exynos4210-pd";
		reg = <0x10023C80 0x20>;
	};

	pd_tv: tv-power-domain@10023C20 {
		compatible = "samsung,exynos4210-pd";
		reg = <0x10023C20 0x20>;
	};

	pd_cam: cam-power-domain@10023C00 {
		compatible = "samsung,exynos4210-pd";
		reg = <0x10023C00 0x20>;
	};

	pd_gps: gps-power-domain@10023CE0 {
		compatible = "samsung,exynos4210-pd";
		reg = <0x10023CE0 0x20>;
	};
	};


	gic:interrupt-controller@10490000 {
	gic:interrupt-controller@10490000 {
@@ -121,7 +159,7 @@
		status = "disabled";
		status = "disabled";
	};
	};


	i2c@13860000 {
	i2c_0: i2c@13860000 {
		#address-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
		#size-cells = <0>;
		compatible = "samsung,s3c2440-i2c";
		compatible = "samsung,s3c2440-i2c";
@@ -130,7 +168,7 @@
		status = "disabled";
		status = "disabled";
	};
	};


	i2c@13870000 {
	i2c_1: i2c@13870000 {
		#address-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
		#size-cells = <0>;
		compatible = "samsung,s3c2440-i2c";
		compatible = "samsung,s3c2440-i2c";
@@ -139,7 +177,7 @@
		status = "disabled";
		status = "disabled";
	};
	};


	i2c@13880000 {
	i2c_2: i2c@13880000 {
		#address-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
		#size-cells = <0>;
		compatible = "samsung,s3c2440-i2c";
		compatible = "samsung,s3c2440-i2c";
@@ -148,7 +186,7 @@
		status = "disabled";
		status = "disabled";
	};
	};


	i2c@13890000 {
	i2c_3: i2c@13890000 {
		#address-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
		#size-cells = <0>;
		compatible = "samsung,s3c2440-i2c";
		compatible = "samsung,s3c2440-i2c";
@@ -157,7 +195,7 @@
		status = "disabled";
		status = "disabled";
	};
	};


	i2c@138A0000 {
	i2c_4: i2c@138A0000 {
		#address-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
		#size-cells = <0>;
		compatible = "samsung,s3c2440-i2c";
		compatible = "samsung,s3c2440-i2c";
@@ -166,7 +204,7 @@
		status = "disabled";
		status = "disabled";
	};
	};


	i2c@138B0000 {
	i2c_5: i2c@138B0000 {
		#address-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
		#size-cells = <0>;
		compatible = "samsung,s3c2440-i2c";
		compatible = "samsung,s3c2440-i2c";
@@ -175,7 +213,7 @@
		status = "disabled";
		status = "disabled";
	};
	};


	i2c@138C0000 {
	i2c_6: i2c@138C0000 {
		#address-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
		#size-cells = <0>;
		compatible = "samsung,s3c2440-i2c";
		compatible = "samsung,s3c2440-i2c";
@@ -184,7 +222,7 @@
		status = "disabled";
		status = "disabled";
	};
	};


	i2c@138D0000 {
	i2c_7: i2c@138D0000 {
		#address-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
		#size-cells = <0>;
		compatible = "samsung,s3c2440-i2c";
		compatible = "samsung,s3c2440-i2c";
+27 −27
Original line number Original line Diff line number Diff line
@@ -22,38 +22,38 @@
	compatible = "insignal,origen", "samsung,exynos4210";
	compatible = "insignal,origen", "samsung,exynos4210";


	memory {
	memory {
		reg = <0x40000000 0x40000000>;
		reg = <0x40000000 0x10000000
		       0x50000000 0x10000000
		       0x60000000 0x10000000
		       0x70000000 0x10000000>;
	};
	};


	chosen {
	chosen {
		bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
		bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
	};
	};


	mmc_reg: voltage-regulator {
	        compatible = "regulator-fixed";
		regulator-name = "VMEM_VDD_2.8V";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		gpio = <&gpx1 1 0>;
		enable-active-high;
	};

	sdhci@12530000 {
	sdhci@12530000 {
		samsung,sdhci-bus-width = <4>;
		bus-width = <4>;
		linux,mmc_cap_4_bit_data;
		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
		samsung,sdhci-cd-internal;
		pinctrl-names = "default";
		gpio-cd = <&gpk2 2 2 3 3>;
		vmmc-supply = <&mmc_reg>;
		gpios = <&gpk2 0 2 0 3>,
			<&gpk2 1 2 0 3>,
			<&gpk2 3 2 3 3>,
			<&gpk2 4 2 3 3>,
			<&gpk2 5 2 3 3>,
			<&gpk2 6 2 3 3>;
		status = "okay";
		status = "okay";
	};
	};


	sdhci@12510000 {
	sdhci@12510000 {
		samsung,sdhci-bus-width = <4>;
		bus-width = <4>;
		linux,mmc_cap_4_bit_data;
		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>;
		samsung,sdhci-cd-internal;
		pinctrl-names = "default";
		gpio-cd = <&gpk0 2 2 3 3>;
		vmmc-supply = <&mmc_reg>;
		gpios = <&gpk0 0 2 0 3>,
			<&gpk0 1 2 0 3>,
			<&gpk0 3 2 3 3>,
			<&gpk0 4 2 3 3>,
			<&gpk0 5 2 3 3>,
			<&gpk0 6 2 3 3>;
		status = "okay";
		status = "okay";
	};
	};


@@ -80,35 +80,35 @@


		up {
		up {
			label = "Up";
			label = "Up";
			gpios = <&gpx2 0 0 0x10000 2>;
			gpios = <&gpx2 0 1>;
			linux,code = <103>;
			linux,code = <103>;
			gpio-key,wakeup;
			gpio-key,wakeup;
		};
		};


		down {
		down {
			label = "Down";
			label = "Down";
			gpios = <&gpx2 1 0 0x10000 2>;
			gpios = <&gpx2 1 1>;
			linux,code = <108>;
			linux,code = <108>;
			gpio-key,wakeup;
			gpio-key,wakeup;
		};
		};


		back {
		back {
			label = "Back";
			label = "Back";
			gpios = <&gpx1 7 0 0x10000 2>;
			gpios = <&gpx1 7 1>;
			linux,code = <158>;
			linux,code = <158>;
			gpio-key,wakeup;
			gpio-key,wakeup;
		};
		};


		home {
		home {
			label = "Home";
			label = "Home";
			gpios = <&gpx1 6 0 0x10000 2>;
			gpios = <&gpx1 6 1>;
			linux,code = <102>;
			linux,code = <102>;
			gpio-key,wakeup;
			gpio-key,wakeup;
		};
		};


		menu {
		menu {
			label = "Menu";
			label = "Menu";
			gpios = <&gpx1 5 0 0x10000 2>;
			gpios = <&gpx1 5 1>;
			linux,code = <139>;
			linux,code = <139>;
			gpio-key,wakeup;
			gpio-key,wakeup;
		};
		};
@@ -117,7 +117,7 @@
	leds {
	leds {
		compatible = "gpio-leds";
		compatible = "gpio-leds";
		status {
		status {
			gpios = <&gpx1 3 0 0x10000 2>;
			gpios = <&gpx1 3 1>;
			linux,default-trigger = "heartbeat";
			linux,default-trigger = "heartbeat";
		};
		};
	};
	};
Loading