Merge branch 'next/dt-samsung-new' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorOlof Johansson <olof@lixom.net>
Sat, 29 Sep 2012 18:30:23 +0000 (11:30 -0700)
committerOlof Johansson <olof@lixom.net>
Sat, 29 Sep 2012 18:30:23 +0000 (11:30 -0700)
From Kukjin Kim:

* 'next/dt-samsung-new' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: dts: Add nodes for dw_mmc controllers for Samsung EXYNOS5250 platforms
  ARM: EXYNOS: Add AUXDATA support for MSHC controllers
  ARM: EXYNOS: Add support for MSHC controller clocks
  ARM: dts: Enable on-board keys as wakeup source for exynos4210-origen
  ARM: dts: use uart2 for console on smdkv310 and smdk5250
  ARM: dts: Add basic dts file for Samsung Trats board
  ARM: EXYNOS: Add OF compatibility lookups for EXYNOS4 i2c adapters
  ARM: dts: Specify address and size cells for i2c controllers for EXYNOS4
  ARM: dts: Assume status of all optional nodes as disabled for exynos4
  ARM: EXYNOS: Use exynos4 prefix instead of exynos4210 on exynos4-dt
  ARM: dts: Move parts common to EXYNOS4 from exynos4210.dtsi to exynos4.dtsi

12 files changed:
arch/arm/boot/dts/exynos4.dtsi [new file with mode: 0644]
arch/arm/boot/dts/exynos4210-origen.dts
arch/arm/boot/dts/exynos4210-smdkv310.dts
arch/arm/boot/dts/exynos4210-trats.dts [new file with mode: 0644]
arch/arm/boot/dts/exynos4210.dtsi
arch/arm/boot/dts/exynos5250-smdk5250.dts
arch/arm/boot/dts/exynos5250.dtsi
arch/arm/mach-exynos/Makefile.boot
arch/arm/mach-exynos/clock-exynos5.c
arch/arm/mach-exynos/include/mach/map.h
arch/arm/mach-exynos/mach-exynos4-dt.c
arch/arm/mach-exynos/mach-exynos5-dt.c

diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
new file mode 100644 (file)
index 0000000..a26c3dd
--- /dev/null
@@ -0,0 +1,248 @@
+/*
+ * Samsung's Exynos4 SoC series common device tree source
+ *
+ * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
+ *             http://www.samsung.com
+ * Copyright (c) 2010-2011 Linaro Ltd.
+ *             www.linaro.org
+ *
+ * Samsung's Exynos4 SoC series device nodes are listed in this file.  Particular
+ * SoCs from Exynos4 series can include this file and provide values for SoCs
+ * specfic bindings.
+ *
+ * Note: This file does not include device nodes for all the controllers in
+ * Exynos4 SoCs. As device tree coverage for Exynos4 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"
+
+/ {
+       interrupt-parent = <&gic>;
+
+       aliases {
+               spi0 = &spi_0;
+               spi1 = &spi_1;
+               spi2 = &spi_2;
+       };
+
+       gic:interrupt-controller@10490000 {
+               compatible = "arm,cortex-a9-gic";
+               #interrupt-cells = <3>;
+               interrupt-controller;
+               reg = <0x10490000 0x1000>, <0x10480000 0x100>;
+       };
+
+       combiner:interrupt-controller@10440000 {
+               compatible = "samsung,exynos4210-combiner";
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               reg = <0x10440000 0x1000>;
+       };
+
+       watchdog@10060000 {
+               compatible = "samsung,s3c2410-wdt";
+               reg = <0x10060000 0x100>;
+               interrupts = <0 43 0>;
+               status = "disabled";
+       };
+
+       rtc@10070000 {
+               compatible = "samsung,s3c6410-rtc";
+               reg = <0x10070000 0x100>;
+               interrupts = <0 44 0>, <0 45 0>;
+               status = "disabled";
+       };
+
+       keypad@100A0000 {
+               compatible = "samsung,s5pv210-keypad";
+               reg = <0x100A0000 0x100>;
+               interrupts = <0 109 0>;
+               status = "disabled";
+       };
+
+       sdhci@12510000 {
+               compatible = "samsung,exynos4210-sdhci";
+               reg = <0x12510000 0x100>;
+               interrupts = <0 73 0>;
+               status = "disabled";
+       };
+
+       sdhci@12520000 {
+               compatible = "samsung,exynos4210-sdhci";
+               reg = <0x12520000 0x100>;
+               interrupts = <0 74 0>;
+               status = "disabled";
+       };
+
+       sdhci@12530000 {
+               compatible = "samsung,exynos4210-sdhci";
+               reg = <0x12530000 0x100>;
+               interrupts = <0 75 0>;
+               status = "disabled";
+       };
+
+       sdhci@12540000 {
+               compatible = "samsung,exynos4210-sdhci";
+               reg = <0x12540000 0x100>;
+               interrupts = <0 76 0>;
+               status = "disabled";
+       };
+
+       serial@13800000 {
+               compatible = "samsung,exynos4210-uart";
+               reg = <0x13800000 0x100>;
+               interrupts = <0 52 0>;
+               status = "disabled";
+       };
+
+       serial@13810000 {
+               compatible = "samsung,exynos4210-uart";
+               reg = <0x13810000 0x100>;
+               interrupts = <0 53 0>;
+               status = "disabled";
+       };
+
+       serial@13820000 {
+               compatible = "samsung,exynos4210-uart";
+               reg = <0x13820000 0x100>;
+               interrupts = <0 54 0>;
+               status = "disabled";
+       };
+
+       serial@13830000 {
+               compatible = "samsung,exynos4210-uart";
+               reg = <0x13830000 0x100>;
+               interrupts = <0 55 0>;
+               status = "disabled";
+       };
+
+       i2c@13860000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "samsung,s3c2440-i2c";
+               reg = <0x13860000 0x100>;
+               interrupts = <0 58 0>;
+               status = "disabled";
+       };
+
+       i2c@13870000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "samsung,s3c2440-i2c";
+               reg = <0x13870000 0x100>;
+               interrupts = <0 59 0>;
+               status = "disabled";
+       };
+
+       i2c@13880000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "samsung,s3c2440-i2c";
+               reg = <0x13880000 0x100>;
+               interrupts = <0 60 0>;
+               status = "disabled";
+       };
+
+       i2c@13890000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "samsung,s3c2440-i2c";
+               reg = <0x13890000 0x100>;
+               interrupts = <0 61 0>;
+               status = "disabled";
+       };
+
+       i2c@138A0000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "samsung,s3c2440-i2c";
+               reg = <0x138A0000 0x100>;
+               interrupts = <0 62 0>;
+               status = "disabled";
+       };
+
+       i2c@138B0000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "samsung,s3c2440-i2c";
+               reg = <0x138B0000 0x100>;
+               interrupts = <0 63 0>;
+               status = "disabled";
+       };
+
+       i2c@138C0000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "samsung,s3c2440-i2c";
+               reg = <0x138C0000 0x100>;
+               interrupts = <0 64 0>;
+               status = "disabled";
+       };
+
+       i2c@138D0000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "samsung,s3c2440-i2c";
+               reg = <0x138D0000 0x100>;
+               interrupts = <0 65 0>;
+               status = "disabled";
+       };
+
+       spi_0: spi@13920000 {
+               compatible = "samsung,exynos4210-spi";
+               reg = <0x13920000 0x100>;
+               interrupts = <0 66 0>;
+               tx-dma-channel = <&pdma0 7>; /* preliminary */
+               rx-dma-channel = <&pdma0 6>; /* preliminary */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi_1: spi@13930000 {
+               compatible = "samsung,exynos4210-spi";
+               reg = <0x13930000 0x100>;
+               interrupts = <0 67 0>;
+               tx-dma-channel = <&pdma1 7>; /* preliminary */
+               rx-dma-channel = <&pdma1 6>; /* preliminary */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi_2: spi@13940000 {
+               compatible = "samsung,exynos4210-spi";
+               reg = <0x13940000 0x100>;
+               interrupts = <0 68 0>;
+               tx-dma-channel = <&pdma0 9>; /* preliminary */
+               rx-dma-channel = <&pdma0 8>; /* preliminary */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       amba {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "arm,amba-bus";
+               interrupt-parent = <&gic>;
+               ranges;
+
+               pdma0: pdma@12680000 {
+                       compatible = "arm,pl330", "arm,primecell";
+                       reg = <0x12680000 0x1000>;
+                       interrupts = <0 35 0>;
+               };
+
+               pdma1: pdma@12690000 {
+                       compatible = "arm,pl330", "arm,primecell";
+                       reg = <0x12690000 0x1000>;
+                       interrupts = <0 36 0>;
+               };
+       };
+};
index d69a7999a12b0c752b979d6155b64eb1f8ad8153..3e68f52e8454431d90c5bd1d47de5b791ce56b2e 100644 (file)
@@ -40,6 +40,7 @@
                        <&gpk2 4 2 3 3>,
                        <&gpk2 5 2 3 3>,
                        <&gpk2 6 2 3 3>;
+               status = "okay";
        };
 
        sdhci@12510000 {
@@ -53,6 +54,7 @@
                        <&gpk0 4 2 3 3>,
                        <&gpk0 5 2 3 3>,
                        <&gpk0 6 2 3 3>;
+               status = "okay";
        };
 
        gpio_keys {
                        label = "Up";
                        gpios = <&gpx2 0 0 0x10000 2>;
                        linux,code = <103>;
+                       gpio-key,wakeup;
                };
 
                down {
                        label = "Down";
                        gpios = <&gpx2 1 0 0x10000 2>;
                        linux,code = <108>;
+                       gpio-key,wakeup;
                };
 
                back {
                        label = "Back";
                        gpios = <&gpx1 7 0 0x10000 2>;
                        linux,code = <158>;
+                       gpio-key,wakeup;
                };
 
                home {
                        label = "Home";
                        gpios = <&gpx1 6 0 0x10000 2>;
                        linux,code = <102>;
+                       gpio-key,wakeup;
                };
 
                menu {
                        label = "Menu";
                        gpios = <&gpx1 5 0 0x10000 2>;
                        linux,code = <139>;
+                       gpio-key,wakeup;
                };
        };
 
                        linux,default-trigger = "heartbeat";
                };
        };
-
-       keypad@100A0000 {
-               status = "disabled";
-       };
-
-       sdhci@12520000 {
-               status = "disabled";
-       };
-
-       sdhci@12540000 {
-               status = "disabled";
-       };
-
-       i2c@13860000 {
-               status = "disabled";
-       };
-
-       i2c@13870000 {
-               status = "disabled";
-       };
-
-       i2c@13880000 {
-               status = "disabled";
-       };
-
-       i2c@13890000 {
-               status = "disabled";
-       };
-
-       i2c@138A0000 {
-               status = "disabled";
-       };
-
-       i2c@138B0000 {
-               status = "disabled";
-       };
-
-       i2c@138C0000 {
-               status = "disabled";
-       };
-
-       i2c@138D0000 {
-               status = "disabled";
-       };
-
-       spi_0: spi@13920000 {
-               status = "disabled";
-       };
-
-       spi_1: spi@13930000 {
-               status = "disabled";
-       };
-
-       spi_2: spi@13940000 {
-               status = "disabled";
-       };
 };
index 1beccc8f14ff948c622a6af681141221139ba021..63610c3ba3afbeffbeee894d2ea75e3b8ed24709 100644 (file)
@@ -26,7 +26,7 @@
        };
 
        chosen {
-               bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc";
+               bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
        };
 
        sdhci@12530000 {
@@ -40,6 +40,7 @@
                        <&gpk2 4 2 3 3>,
                        <&gpk2 5 2 3 3>,
                        <&gpk2 6 2 3 3>;
+               status = "okay";
        };
 
        keypad@100A0000 {
@@ -47,6 +48,7 @@
                samsung,keypad-num-columns = <8>;
                linux,keypad-no-autorepeat;
                linux,keypad-wakeup;
+               status = "okay";
 
                row-gpios = <&gpx2 0 3 3 0>,
                            <&gpx2 1 3 3 0>;
                samsung,i2c-max-bus-freq = <20000>;
                gpios = <&gpd1 0 2 3 0>,
                        <&gpd1 1 2 3 0>;
+               status = "okay";
 
                eeprom@50 {
                        compatible = "samsung,24ad0xd1";
                };
        };
 
-       sdhci@12510000 {
-               status = "disabled";
-       };
-
-       sdhci@12520000 {
-               status = "disabled";
-       };
-
-       sdhci@12540000 {
-               status = "disabled";
-       };
-
-       i2c@13870000 {
-               status = "disabled";
-       };
-
-       i2c@13880000 {
-               status = "disabled";
-       };
-
-       i2c@13890000 {
-               status = "disabled";
-       };
-
-       i2c@138A0000 {
-               status = "disabled";
-       };
-
-       i2c@138B0000 {
-               status = "disabled";
-       };
-
-       i2c@138C0000 {
-               status = "disabled";
-       };
-
-       i2c@138D0000 {
-               status = "disabled";
-       };
-
-       spi_0: spi@13920000 {
-               status = "disabled";
-       };
-
-       spi_1: spi@13930000 {
-               status = "disabled";
-       };
-
        spi_2: spi@13940000 {
                gpios = <&gpc1 1 5 3 0>,
                        <&gpc1 3 5 3 0>,
                        <&gpc1 4 5 3 0>;
+               status = "okay";
 
                w25x80@0 {
                        #address-cells = <1>;
diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
new file mode 100644 (file)
index 0000000..73567b8
--- /dev/null
@@ -0,0 +1,237 @@
+/*
+ * Samsung's Exynos4210 based Trats board device tree source
+ *
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ *             http://www.samsung.com
+ *
+ * Device tree source file for Samsung's Trats board which is based on
+ * Samsung's Exynos4210 SoC.
+ *
+ * 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/ "exynos4210.dtsi"
+
+/ {
+       model = "Samsung Trats based on Exynos4210";
+       compatible = "samsung,trats", "samsung,exynos4210";
+
+       memory {
+               reg =  <0x40000000 0x20000000
+                       0x60000000 0x20000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5";
+       };
+
+       vemmc_reg: voltage-regulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "VMEM_VDD_2.8V";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               gpio = <&gpk0 2 1 0 0>;
+               enable-active-high;
+       };
+
+       sdhci_emmc: sdhci@12510000 {
+               bus-width = <8>;
+               non-removable;
+               broken-voltage;
+               gpios = <&gpk0 0 2 0 3>,
+                       <&gpk0 1 2 0 3>,
+                       <&gpk0 3 2 2 3>,
+                       <&gpk0 4 2 2 3>,
+                       <&gpk0 5 2 2 3>,
+                       <&gpk0 6 2 2 3>,
+                       <&gpk1 3 3 3 3>,
+                       <&gpk1 4 3 3 3>,
+                       <&gpk1 5 3 3 3>,
+                       <&gpk1 6 3 3 3>;
+               vmmc-supply = <&vemmc_reg>;
+               status = "okay";
+       };
+
+       serial@13800000 {
+               status = "okay";
+       };
+
+       serial@13810000 {
+               status = "okay";
+       };
+
+       serial@13820000 {
+               status = "okay";
+       };
+
+       serial@13830000 {
+               status = "okay";
+       };
+
+       i2c@138B0000 {
+               samsung,i2c-sda-delay = <100>;
+               samsung,i2c-slave-addr = <0x10>;
+               samsung,i2c-max-bus-freq = <100000>;
+               gpios = <&gpb 6 3 3 0>,
+                       <&gpb 7 3 3 0>;
+               status = "okay";
+
+               max8997_pmic@66 {
+                       compatible = "maxim,max8997-pmic";
+
+                       reg = <0x66>;
+
+                       max8997,pmic-buck1-uses-gpio-dvs;
+                       max8997,pmic-buck2-uses-gpio-dvs;
+                       max8997,pmic-buck5-uses-gpio-dvs;
+
+                       max8997,pmic-ignore-gpiodvs-side-effect;
+                       max8997,pmic-buck125-default-dvs-idx = <0>;
+
+                       max8997,pmic-buck125-dvs-gpios = <&gpx0 5 1 0 0>,
+                                                        <&gpx0 6 1 0 0>,
+                                                        <&gpl0 0 1 0 0>;
+
+                       max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
+                                                        <1250000>, <1200000>,
+                                                        <1150000>, <1100000>,
+                                                        <1000000>, <950000>;
+
+                       max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
+                                                        <950000>,  <900000>,
+                                                        <1100000>, <1000000>,
+                                                        <950000>,  <900000>;
+
+                       max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
+                                                        <1200000>, <1200000>,
+                                                        <1200000>, <1200000>,
+                                                        <1200000>, <1200000>;
+
+                       regulators {
+                               valive_reg: LDO2 {
+                                    regulator-name = "VALIVE_1.1V_C210";
+                                    regulator-min-microvolt = <1100000>;
+                                    regulator-max-microvolt = <1100000>;
+                                    regulator-always-on;
+                               };
+
+                               vusb_reg: LDO3 {
+                                    regulator-name = "VUSB_1.1V_C210";
+                                    regulator-min-microvolt = <1100000>;
+                                    regulator-max-microvolt = <1100000>;
+                               };
+
+                               vmipi_reg: LDO4 {
+                                    regulator-name = "VMIPI_1.8V";
+                                    regulator-min-microvolt = <1800000>;
+                                    regulator-max-microvolt = <1800000>;
+                               };
+
+                               vpda_reg: LDO6 {
+                                    regulator-name = "VCC_1.8V_PDA";
+                                    regulator-min-microvolt = <1800000>;
+                                    regulator-max-microvolt = <1800000>;
+                                    regulator-always-on;
+                               };
+
+                               vcam_reg: LDO7 {
+                                    regulator-name = "CAM_ISP_1.8V";
+                                    regulator-min-microvolt = <1800000>;
+                                    regulator-max-microvolt = <1800000>;
+                               };
+
+                               vusbdac_reg: LDO8 {
+                                    regulator-name = "VUSB/VDAC_3.3V_C210";
+                                    regulator-min-microvolt = <3300000>;
+                                    regulator-max-microvolt = <3300000>;
+                               };
+
+                               vccpda_reg: LDO9 {
+                                    regulator-name = "VCC_2.8V_PDA";
+                                    regulator-min-microvolt = <2800000>;
+                                    regulator-max-microvolt = <2800000>;
+                                    regulator-always-on;
+                               };
+
+                               vpll_reg: LDO10 {
+                                    regulator-name = "VPLL_1.1V_C210";
+                                    regulator-min-microvolt = <1100000>;
+                                    regulator-max-microvolt = <1100000>;
+                                    regulator-always-on;
+                               };
+
+                               vcclcd_reg: LDO13 {
+                                    regulator-name = "VCC_3.3V_LCD";
+                                    regulator-min-microvolt = <3300000>;
+                                    regulator-max-microvolt = <3300000>;
+                               };
+
+                               vlcd_reg: LDO15 {
+                                    regulator-name = "VLCD_2.2V";
+                                    regulator-min-microvolt = <2200000>;
+                                    regulator-max-microvolt = <2200000>;
+                               };
+
+                               camsensor_reg: LDO16 {
+                                    regulator-name = "CAM_SENSOR_IO_1.8V";
+                                    regulator-min-microvolt = <1800000>;
+                                    regulator-max-microvolt = <1800000>;
+                               };
+
+                               vddq_reg: LDO21 {
+                                    regulator-name = "VDDQ_M1M2_1.2V";
+                                    regulator-min-microvolt = <1200000>;
+                                    regulator-max-microvolt = <1200000>;
+                                    regulator-always-on;
+                               };
+
+                               varm_breg: BUCK1 {
+                                    regulator-name = "VARM_1.2V_C210";
+                                    regulator-min-microvolt = <900000>;
+                                    regulator-max-microvolt = <1350000>;
+                                    regulator-always-on;
+                               };
+
+                               vint_breg: BUCK2 {
+                                    regulator-name = "VINT_1.1V_C210";
+                                    regulator-min-microvolt = <900000>;
+                                    regulator-max-microvolt = <1100000>;
+                                    regulator-always-on;
+                               };
+
+                               camisp_breg: BUCK4 {
+                                    regulator-name = "CAM_ISP_CORE_1.2V";
+                                    regulator-min-microvolt = <1200000>;
+                                    regulator-max-microvolt = <1200000>;
+                               };
+
+                               vmem_breg: BUCK5 {
+                                    regulator-name = "VMEM_1.2V_C210";
+                                    regulator-min-microvolt = <1200000>;
+                                    regulator-max-microvolt = <1200000>;
+                                    regulator-always-on;
+                               };
+
+                               vccsub_breg: BUCK7 {
+                                    regulator-name = "VCC_SUB_2.0V";
+                                    regulator-min-microvolt = <2000000>;
+                                    regulator-max-microvolt = <2000000>;
+                                    regulator-always-on;
+                               };
+
+                               safe1_sreg: ESAFEOUT1 {
+                                    regulator-name = "SAFEOUT1";
+                                    regulator-always-on;
+                               };
+
+                               safe2_sreg: ESAFEOUT2 {
+                                    regulator-name = "SAFEOUT2";
+                                    regulator-boot-on;
+                               };
+                       };
+               };
+       };
+};
index a4bd0c9a206eb52b0e673981080f2a6bbba2fd48..214c557eda7f7119584df481bde074c43a3611d4 100644 (file)
  * published by the Free Software Foundation.
 */
 
-/include/ "skeleton.dtsi"
+/include/ "exynos4.dtsi"
 /include/ "exynos4210-pinctrl.dtsi"
 
 / {
        compatible = "samsung,exynos4210";
-       interrupt-parent = <&gic>;
 
        aliases {
-               spi0 = &spi_0;
-               spi1 = &spi_1;
-               spi2 = &spi_2;
                pinctrl0 = &pinctrl_0;
                pinctrl1 = &pinctrl_1;
                pinctrl2 = &pinctrl_2;
        };
 
        gic:interrupt-controller@10490000 {
-               compatible = "arm,cortex-a9-gic";
-               #interrupt-cells = <3>;
-               interrupt-controller;
                cpu-offset = <0x8000>;
-               reg = <0x10490000 0x1000>, <0x10480000 0x100>;
        };
 
        combiner:interrupt-controller@10440000 {
-               compatible = "samsung,exynos4210-combiner";
-               #interrupt-cells = <2>;
-               interrupt-controller;
-               reg = <0x10440000 0x1000>;
                interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
                             <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
                             <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        interrupts = <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>,
-                                       <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>,
-                                       <0 24 0>, <0 25 0>, <0 26 0>, <0 27 0>,
-                                       <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>,
-                                       <0 32 0>;
+                                    <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>,
+                                    <0 24 0>, <0 25 0>, <0 26 0>, <0 27 0>,
+                                    <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>,
+                                    <0 32 0>;
                };
        };
 
                reg = <0x03860000 0x1000>;
        };
 
-       watchdog@10060000 {
-               compatible = "samsung,s3c2410-wdt";
-               reg = <0x10060000 0x100>;
-               interrupts = <0 43 0>;
-       };
-
-       rtc@10070000 {
-               compatible = "samsung,s3c6410-rtc";
-               reg = <0x10070000 0x100>;
-               interrupts = <0 44 0>, <0 45 0>;
-       };
-
-       keypad@100A0000 {
-               compatible = "samsung,s5pv210-keypad";
-               reg = <0x100A0000 0x100>;
-               interrupts = <0 109 0>;
-       };
-
-       sdhci@12510000 {
-               compatible = "samsung,exynos4210-sdhci";
-               reg = <0x12510000 0x100>;
-               interrupts = <0 73 0>;
-       };
-
-       sdhci@12520000 {
-               compatible = "samsung,exynos4210-sdhci";
-               reg = <0x12520000 0x100>;
-               interrupts = <0 74 0>;
-       };
-
-       sdhci@12530000 {
-               compatible = "samsung,exynos4210-sdhci";
-               reg = <0x12530000 0x100>;
-               interrupts = <0 75 0>;
-       };
-
-       sdhci@12540000 {
-               compatible = "samsung,exynos4210-sdhci";
-               reg = <0x12540000 0x100>;
-               interrupts = <0 76 0>;
-       };
-
-       serial@13800000 {
-               compatible = "samsung,exynos4210-uart";
-               reg = <0x13800000 0x100>;
-               interrupts = <0 52 0>;
-       };
-
-       serial@13810000 {
-               compatible = "samsung,exynos4210-uart";
-               reg = <0x13810000 0x100>;
-               interrupts = <0 53 0>;
-       };
-
-       serial@13820000 {
-               compatible = "samsung,exynos4210-uart";
-               reg = <0x13820000 0x100>;
-               interrupts = <0 54 0>;
-       };
-
-       serial@13830000 {
-               compatible = "samsung,exynos4210-uart";
-               reg = <0x13830000 0x100>;
-               interrupts = <0 55 0>;
-       };
-
-       i2c@13860000 {
-               compatible = "samsung,s3c2440-i2c";
-               reg = <0x13860000 0x100>;
-               interrupts = <0 58 0>;
-       };
-
-       i2c@13870000 {
-               compatible = "samsung,s3c2440-i2c";
-               reg = <0x13870000 0x100>;
-               interrupts = <0 59 0>;
-       };
-
-       i2c@13880000 {
-               compatible = "samsung,s3c2440-i2c";
-               reg = <0x13880000 0x100>;
-               interrupts = <0 60 0>;
-       };
-
-       i2c@13890000 {
-               compatible = "samsung,s3c2440-i2c";
-               reg = <0x13890000 0x100>;
-               interrupts = <0 61 0>;
-       };
-
-       i2c@138A0000 {
-               compatible = "samsung,s3c2440-i2c";
-               reg = <0x138A0000 0x100>;
-               interrupts = <0 62 0>;
-       };
-
-       i2c@138B0000 {
-               compatible = "samsung,s3c2440-i2c";
-               reg = <0x138B0000 0x100>;
-               interrupts = <0 63 0>;
-       };
-
-       i2c@138C0000 {
-               compatible = "samsung,s3c2440-i2c";
-               reg = <0x138C0000 0x100>;
-               interrupts = <0 64 0>;
-       };
-
-       i2c@138D0000 {
-               compatible = "samsung,s3c2440-i2c";
-               reg = <0x138D0000 0x100>;
-               interrupts = <0 65 0>;
-       };
-
-       spi_0: spi@13920000 {
-               compatible = "samsung,exynos4210-spi";
-               reg = <0x13920000 0x100>;
-               interrupts = <0 66 0>;
-               tx-dma-channel = <&pdma0 7>; /* preliminary */
-               rx-dma-channel = <&pdma0 6>; /* preliminary */
-               #address-cells = <1>;
-               #size-cells = <0>;
-       };
-
-       spi_1: spi@13930000 {
-               compatible = "samsung,exynos4210-spi";
-               reg = <0x13930000 0x100>;
-               interrupts = <0 67 0>;
-               tx-dma-channel = <&pdma1 7>; /* preliminary */
-               rx-dma-channel = <&pdma1 6>; /* preliminary */
-               #address-cells = <1>;
-               #size-cells = <0>;
-       };
-
-       spi_2: spi@13940000 {
-               compatible = "samsung,exynos4210-spi";
-               reg = <0x13940000 0x100>;
-               interrupts = <0 68 0>;
-               tx-dma-channel = <&pdma0 9>; /* preliminary */
-               rx-dma-channel = <&pdma0 8>; /* preliminary */
-               #address-cells = <1>;
-               #size-cells = <0>;
-       };
-
-       amba {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "arm,amba-bus";
-               interrupt-parent = <&gic>;
-               ranges;
-
-               pdma0: pdma@12680000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x12680000 0x1000>;
-                       interrupts = <0 35 0>;
-               };
-
-               pdma1: pdma@12690000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x12690000 0x1000>;
-                       interrupts = <0 36 0>;
-               };
-       };
-
        gpio-controllers {
                #address-cells = <1>;
                #size-cells = <1>;
index 8a5e348793c765e8caf189004f8c04848378206d..a352df403b7a5586ad1b2a47cb51c9eca0e89b0e 100644 (file)
        model = "SAMSUNG SMDK5250 board based on EXYNOS5250";
        compatible = "samsung,smdk5250", "samsung,exynos5250";
 
+       aliases {
+               mshc0 = &dwmmc_0;
+               mshc1 = &dwmmc_1;
+               mshc2 = &dwmmc_2;
+               mshc3 = &dwmmc_3;
+       };
+
        memory {
                reg = <0x40000000 0x80000000>;
        };
 
        chosen {
-               bootargs = "root=/dev/ram0 rw ramdisk=8192 console=ttySAC1,115200";
+               bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
        };
 
        i2c@12C60000 {
                status = "disabled";
        };
 
+       dwmmc_0: 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>;
+               };
+       };
+
+       dwmmc_1: dwmmc1@12210000 {
+               status = "disabled";
+       };
+
+       dwmmc_2: 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>;
+                       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>,
+                               <&gpc4 3 3 3 3>, <&gpc4 3 3 3 3>,
+                               <&gpc4 5 3 3 3>, <&gpc4 6 3 3 3>;
+               };
+       };
+
+       dwmmc_3: dwmmc3@12230000 {
+               status = "disabled";
+       };
+
        spi_0: spi@12d20000 {
                status = "disabled";
        };
index 004aaa8d123cd66fed607c7c45ebc5827cd018dd..f69e389e6ffa99c1f20ee932c8120ed4b6b00bd6 100644 (file)
                #size-cells = <0>;
        };
 
+       dwmmc0@12200000 {
+               compatible = "samsung,exynos5250-dw-mshc";
+               reg = <0x12200000 0x1000>;
+               interrupts = <0 75 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       dwmmc1@12210000 {
+               compatible = "samsung,exynos5250-dw-mshc";
+               reg = <0x12210000 0x1000>;
+               interrupts = <0 76 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       dwmmc2@12220000 {
+               compatible = "samsung,exynos5250-dw-mshc";
+               reg = <0x12220000 0x1000>;
+               interrupts = <0 77 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       dwmmc3@12230000 {
+               compatible = "samsung,exynos5250-dw-mshc";
+               reg = <0x12230000 0x1000>;
+               interrupts = <0 78 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
        amba {
                #address-cells = <1>;
                #size-cells = <1>;
index 31bd181b0514e2221f14fe3c8f778697ab8f32a3..a79d999725cbcf3d2c343d7d27fec8016500f996 100644 (file)
@@ -1,5 +1,5 @@
    zreladdr-y  += 0x40008000
 params_phys-y  := 0x40000100
 
-dtb-$(CONFIG_MACH_EXYNOS4_DT) += exynos4210-origen.dtb exynos4210-smdkv310.dtb
+dtb-$(CONFIG_MACH_EXYNOS4_DT) += exynos4210-origen.dtb exynos4210-smdkv310.dtb exynos4210-trats.dtb
 dtb-$(CONFIG_MACH_EXYNOS5_DT) += exynos5250-smdk5250.dtb
index 774533c670667c1a7a8e16986e7ababa841ee48e..17e6c77231fa0dbbd6c3ca4d0c16ddfcae335f3f 100644 (file)
@@ -569,34 +569,29 @@ static struct clk exynos5_init_clocks_off[] = {
                .enable         = exynos5_clk_ip_peris_ctrl,
                .ctrlbit        = (1 << 19),
        }, {
-               .name           = "hsmmc",
-               .devname        = "exynos4-sdhci.0",
+               .name           = "biu",        /* bus interface unit clock */
+               .devname        = "dw_mmc.0",
                .parent         = &exynos5_clk_aclk_200.clk,
                .enable         = exynos5_clk_ip_fsys_ctrl,
                .ctrlbit        = (1 << 12),
        }, {
-               .name           = "hsmmc",
-               .devname        = "exynos4-sdhci.1",
+               .name           = "biu",
+               .devname        = "dw_mmc.1",
                .parent         = &exynos5_clk_aclk_200.clk,
                .enable         = exynos5_clk_ip_fsys_ctrl,
                .ctrlbit        = (1 << 13),
        }, {
-               .name           = "hsmmc",
-               .devname        = "exynos4-sdhci.2",
+               .name           = "biu",
+               .devname        = "dw_mmc.2",
                .parent         = &exynos5_clk_aclk_200.clk,
                .enable         = exynos5_clk_ip_fsys_ctrl,
                .ctrlbit        = (1 << 14),
        }, {
-               .name           = "hsmmc",
-               .devname        = "exynos4-sdhci.3",
+               .name           = "biu",
+               .devname        = "dw_mmc.3",
                .parent         = &exynos5_clk_aclk_200.clk,
                .enable         = exynos5_clk_ip_fsys_ctrl,
                .ctrlbit        = (1 << 15),
-       }, {
-               .name           = "dwmci",
-               .parent         = &exynos5_clk_aclk_200.clk,
-               .enable         = exynos5_clk_ip_fsys_ctrl,
-               .ctrlbit        = (1 << 16),
        }, {
                .name           = "sata",
                .devname        = "ahci",
@@ -1015,8 +1010,8 @@ static struct clksrc_clk exynos5_clk_sclk_uart3 = {
 
 static struct clksrc_clk exynos5_clk_sclk_mmc0 = {
        .clk    = {
-               .name           = "sclk_mmc",
-               .devname        = "exynos4-sdhci.0",
+               .name           = "ciu",        /* card interface unit clock */
+               .devname        = "dw_mmc.0",
                .parent         = &exynos5_clk_dout_mmc0.clk,
                .enable         = exynos5_clksrc_mask_fsys_ctrl,
                .ctrlbit        = (1 << 0),
@@ -1026,8 +1021,8 @@ static struct clksrc_clk exynos5_clk_sclk_mmc0 = {
 
 static struct clksrc_clk exynos5_clk_sclk_mmc1 = {
        .clk    = {
-               .name           = "sclk_mmc",
-               .devname        = "exynos4-sdhci.1",
+               .name           = "ciu",
+               .devname        = "dw_mmc.1",
                .parent         = &exynos5_clk_dout_mmc1.clk,
                .enable         = exynos5_clksrc_mask_fsys_ctrl,
                .ctrlbit        = (1 << 4),
@@ -1037,8 +1032,8 @@ static struct clksrc_clk exynos5_clk_sclk_mmc1 = {
 
 static struct clksrc_clk exynos5_clk_sclk_mmc2 = {
        .clk    = {
-               .name           = "sclk_mmc",
-               .devname        = "exynos4-sdhci.2",
+               .name           = "ciu",
+               .devname        = "dw_mmc.2",
                .parent         = &exynos5_clk_dout_mmc2.clk,
                .enable         = exynos5_clksrc_mask_fsys_ctrl,
                .ctrlbit        = (1 << 8),
@@ -1048,8 +1043,8 @@ static struct clksrc_clk exynos5_clk_sclk_mmc2 = {
 
 static struct clksrc_clk exynos5_clk_sclk_mmc3 = {
        .clk    = {
-               .name           = "sclk_mmc",
-               .devname        = "exynos4-sdhci.3",
+               .name           = "ciu",
+               .devname        = "dw_mmc.3",
                .parent         = &exynos5_clk_dout_mmc3.clk,
                .enable         = exynos5_clksrc_mask_fsys_ctrl,
                .ctrlbit        = (1 << 12),
@@ -1122,14 +1117,6 @@ static struct clksrc_clk exynos5_clk_sclk_spi2 = {
 
 static struct clksrc_clk exynos5_clksrcs[] = {
        {
-               .clk    = {
-                       .name           = "sclk_dwmci",
-                       .parent         = &exynos5_clk_dout_mmc4.clk,
-                       .enable         = exynos5_clksrc_mask_fsys_ctrl,
-                       .ctrlbit        = (1 << 16),
-               },
-               .reg_div = { .reg = EXYNOS5_CLKDIV_FSYS3, .shift = 8, .size = 8 },
-       }, {
                .clk    = {
                        .name           = "sclk_fimd",
                        .devname        = "s3cfb.1",
index c72b675b3e4b98f07dd26353d1dcbb3ee7ae12e6..5edbbe99592fce6fa4440e43fc426737f2ec62b9 100644 (file)
 
 #define EXYNOS4_PA_HSMMC(x)            (0x12510000 + ((x) * 0x10000))
 #define EXYNOS4_PA_DWMCI               0x12550000
+#define EXYNOS5_PA_DWMCI0              0x12200000
+#define EXYNOS5_PA_DWMCI1              0x12210000
+#define EXYNOS5_PA_DWMCI2              0x12220000
+#define EXYNOS5_PA_DWMCI3              0x12230000
 
 #define EXYNOS4_PA_HSOTG               0x12480000
 #define EXYNOS4_PA_USB_HSPHY           0x125B0000
index b2b5d5faa74854adea983f3b2b1b085b6d133540..e58d786faf78c773636f10b168415df2c0ac61ef 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Samsung's Exynos4210 flattened device tree enabled machine
+ * Samsung's EXYNOS4 flattened device tree enabled machine
  *
  * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
  *             http://www.samsung.com
@@ -36,7 +36,7 @@
  * at some point, the drivers should be capable of parsing all the platform
  * data from the device tree.
  */
-static const struct of_dev_auxdata exynos4210_auxdata_lookup[] __initconst = {
+static const struct of_dev_auxdata exynos4_auxdata_lookup[] __initconst = {
        OF_DEV_AUXDATA("samsung,exynos4210-uart", EXYNOS4_PA_UART0,
                                "exynos4210-uart.0", NULL),
        OF_DEV_AUXDATA("samsung,exynos4210-uart", EXYNOS4_PA_UART1,
@@ -55,6 +55,20 @@ static const struct of_dev_auxdata exynos4210_auxdata_lookup[] __initconst = {
                                "exynos4-sdhci.3", NULL),
        OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(0),
                                "s3c2440-i2c.0", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(1),
+                               "s3c2440-i2c.1", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(2),
+                               "s3c2440-i2c.2", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(3),
+                               "s3c2440-i2c.3", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(4),
+                               "s3c2440-i2c.4", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(5),
+                               "s3c2440-i2c.5", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(6),
+                               "s3c2440-i2c.6", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(7),
+                               "s3c2440-i2c.7", NULL),
        OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS4_PA_SPI0,
                                "exynos4210-spi.0", NULL),
        OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS4_PA_SPI1,
@@ -66,19 +80,19 @@ static const struct of_dev_auxdata exynos4210_auxdata_lookup[] __initconst = {
        {},
 };
 
-static void __init exynos4210_dt_map_io(void)
+static void __init exynos4_dt_map_io(void)
 {
        exynos_init_io(NULL, 0);
        s3c24xx_init_clocks(24000000);
 }
 
-static void __init exynos4210_dt_machine_init(void)
+static void __init exynos4_dt_machine_init(void)
 {
        of_platform_populate(NULL, of_default_bus_match_table,
-                               exynos4210_auxdata_lookup, NULL);
+                               exynos4_auxdata_lookup, NULL);
 }
 
-static char const *exynos4210_dt_compat[] __initdata = {
+static char const *exynos4_dt_compat[] __initdata = {
        "samsung,exynos4210",
        NULL
 };
@@ -86,11 +100,11 @@ static char const *exynos4210_dt_compat[] __initdata = {
 DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)")
        /* Maintainer: Thomas Abraham <thomas.abraham@linaro.org> */
        .init_irq       = exynos4_init_irq,
-       .map_io         = exynos4210_dt_map_io,
+       .map_io         = exynos4_dt_map_io,
        .handle_irq     = gic_handle_irq,
-       .init_machine   = exynos4210_dt_machine_init,
+       .init_machine   = exynos4_dt_machine_init,
        .init_late      = exynos_init_late,
        .timer          = &exynos4_timer,
-       .dt_compat      = exynos4210_dt_compat,
+       .dt_compat      = exynos4_dt_compat,
        .restart        = exynos4_restart,
 MACHINE_END
index ef770bc2318fcbd074387a6c5278a007f169773d..ce82f3077edc882e7d99ecb9f7f4a65a9dfb757d 100644 (file)
@@ -47,6 +47,14 @@ static const struct of_dev_auxdata exynos5250_auxdata_lookup[] __initconst = {
                                "s3c2440-i2c.0", NULL),
        OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS5_PA_IIC(1),
                                "s3c2440-i2c.1", NULL),
+       OF_DEV_AUXDATA("samsung,exynos5250-dw-mshc", EXYNOS5_PA_DWMCI0,
+                               "dw_mmc.0", NULL),
+       OF_DEV_AUXDATA("samsung,exynos5250-dw-mshc", EXYNOS5_PA_DWMCI1,
+                               "dw_mmc.1", NULL),
+       OF_DEV_AUXDATA("samsung,exynos5250-dw-mshc", EXYNOS5_PA_DWMCI2,
+                               "dw_mmc.2", NULL),
+       OF_DEV_AUXDATA("samsung,exynos5250-dw-mshc", EXYNOS5_PA_DWMCI3,
+                               "dw_mmc.3", NULL),
        OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS5_PA_SPI0,
                                "exynos4210-spi.0", NULL),
        OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS5_PA_SPI1,
This page took 0.070783 seconds and 5 git commands to generate.