Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[deliverable/linux.git] / arch / arm / boot / dts / exynos4412-trats2.dts
index 5e066cd87f6653595142d2b34d533a973fc1b78c..29231b4526433ef0fbae30e81d81088671dc3ac1 100644 (file)
@@ -14,6 +14,7 @@
 
 /dts-v1/;
 #include "exynos4412.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "Samsung Trats 2 based on Exynos4412";
@@ -22,6 +23,7 @@
        aliases {
                i2c9 = &i2c_ak8975;
                i2c10 = &i2c_cm36651;
+               i2c11 = &i2c_max77693;
        };
 
        memory {
                                        regulator-name = "VMEM_VDD_2.8V";
                                        regulator-min-microvolt = <2800000>;
                                        regulator-max-microvolt = <2800000>;
-                                       regulator-always-on;
-                                       regulator-mem-off;
                                };
 
                                ldo23_reg: ldo23 {
                                        regulator-name = "VMEM_VDDF_3.0V";
                                        regulator-min-microvolt = <2850000>;
                                        regulator-max-microvolt = <2850000>;
-                                       regulator-always-on;
-                                       regulator-mem-off;
                                };
 
                                buck9_reg: buck9 {
                };
        };
 
+       i2c_max77693: i2c-gpio-1 {
+               compatible = "i2c-gpio";
+               gpios = <&gpm2 0 GPIO_ACTIVE_HIGH>, <&gpm2 1 GPIO_ACTIVE_HIGH>;
+               i2c-gpio,delay-us = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "okay";
+
+               max77693@66 {
+                       compatible = "maxim,max77693";
+                       interrupt-parent = <&gpx1>;
+                       interrupts = <5 2>;
+                       reg = <0x66>;
+
+                       regulators {
+                               esafeout1_reg: ESAFEOUT1@1 {
+                                       regulator-name = "ESAFEOUT1";
+                               };
+                               esafeout2_reg: ESAFEOUT2@2 {
+                                       regulator-name = "ESAFEOUT2";
+                               };
+                               charger_reg: CHARGER@0 {
+                                       regulator-name = "CHARGER";
+                                       regulator-min-microamp = <60000>;
+                                       regulator-max-microamp = <2580000>;
+                               };
+                       };
+
+                       max77693_haptic {
+                               compatible = "maxim,max77693-haptic";
+                               haptic-supply = <&ldo26_reg>;
+                               pwms = <&pwm 0 38022 0>;
+                       };
+               };
+       };
+
        mmc@12550000 {
                num-slots = <1>;
                broken-cd;
                cap-mmc-highspeed;
        };
 
+       sdhci@12530000 {
+               bus-width = <4>;
+               cd-gpios = <&gpx3 4 0>;
+               cd-inverted;
+               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
+               pinctrl-names = "default";
+               vmmc-supply = <&ldo21_reg>;
+               status = "okay";
+       };
+
        serial@13800000 {
                status = "okay";
        };
                status = "okay";
        };
 
+       tmu@100C0000 {
+               vtmu-supply = <&ldo10_reg>;
+               status = "okay";
+       };
+
        i2c_ak8975: i2c-gpio-0 {
                compatible = "i2c-gpio";
                gpios = <&gpy2 4 0>, <&gpy2 5 0>;
                };
        };
 
+       pwm: pwm@139D0000 {
+               pinctrl-0 = <&pwm0_out>;
+               pinctrl-names = "default";
+               samsung,pwm-outputs = <0>;
+               status = "okay";
+       };
+
        dsi_0: dsi@11C80000 {
                vddcore-supply = <&ldo8_reg>;
                vddio-supply = <&ldo10_reg>;
                pinctrl-0 = <&cam_port_a_clk_active &cam_port_b_clk_active>;
                pinctrl-names = "default";
                status = "okay";
+               assigned-clocks = <&clock CLK_MOUT_CAM0>,
+                                 <&clock CLK_MOUT_CAM1>;
+               assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>,
+                                        <&clock CLK_MOUT_MPLL_USER_T>;
 
                fimc_0: fimc@11800000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC0>,
+                                       <&clock CLK_SCLK_FIMC0>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                fimc_1: fimc@11810000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC1>,
+                                       <&clock CLK_SCLK_FIMC1>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                fimc_2: fimc@11820000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC2>,
+                                       <&clock CLK_SCLK_FIMC2>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                fimc_3: fimc@11830000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC3>,
+                                       <&clock CLK_SCLK_FIMC3>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                csis_0: csis@11880000 {
                        status = "okay";
                        vddcore-supply = <&ldo8_reg>;
                        vddio-supply = <&ldo10_reg>;
-                       clock-frequency = <176000000>;
+                       assigned-clocks = <&clock CLK_MOUT_CSIS0>,
+                                       <&clock CLK_SCLK_CSIS0>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
 
                        /* Camera C (3) MIPI CSI-2 (CSIS0) */
                        port@3 {
                };
 
                csis_1: csis@11890000 {
+                       status = "okay";
                        vddcore-supply = <&ldo8_reg>;
                        vddio-supply = <&ldo10_reg>;
-                       clock-frequency = <160000000>;
-                       status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_CSIS1>,
+                                       <&clock CLK_SCLK_CSIS1>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
 
                        /* Camera D (4) MIPI CSI-2 (CSIS1) */
                        port@4 {
                io-channels = <&adc 2>;  /* Battery temperature */
        };
 };
+
+&pinctrl_0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep0>;
+
+       sleep0: sleep-states {
+               PIN_SLP(gpa0-0, INPUT, NONE);
+               PIN_SLP(gpa0-1, OUT0, NONE);
+               PIN_SLP(gpa0-2, INPUT, NONE);
+               PIN_SLP(gpa0-3, INPUT, UP);
+               PIN_SLP(gpa0-4, INPUT, NONE);
+               PIN_SLP(gpa0-5, INPUT, DOWN);
+               PIN_SLP(gpa0-6, INPUT, DOWN);
+               PIN_SLP(gpa0-7, INPUT, UP);
+
+               PIN_SLP(gpa1-0, INPUT, DOWN);
+               PIN_SLP(gpa1-1, INPUT, DOWN);
+               PIN_SLP(gpa1-2, INPUT, DOWN);
+               PIN_SLP(gpa1-3, INPUT, DOWN);
+               PIN_SLP(gpa1-4, INPUT, DOWN);
+               PIN_SLP(gpa1-5, INPUT, DOWN);
+
+               PIN_SLP(gpb-0, INPUT, NONE);
+               PIN_SLP(gpb-1, INPUT, NONE);
+               PIN_SLP(gpb-2, INPUT, NONE);
+               PIN_SLP(gpb-3, INPUT, NONE);
+               PIN_SLP(gpb-4, INPUT, DOWN);
+               PIN_SLP(gpb-5, INPUT, UP);
+               PIN_SLP(gpb-6, INPUT, DOWN);
+               PIN_SLP(gpb-7, INPUT, DOWN);
+
+               PIN_SLP(gpc0-0, INPUT, DOWN);
+               PIN_SLP(gpc0-1, INPUT, DOWN);
+               PIN_SLP(gpc0-2, INPUT, DOWN);
+               PIN_SLP(gpc0-3, INPUT, DOWN);
+               PIN_SLP(gpc0-4, INPUT, DOWN);
+
+               PIN_SLP(gpc1-0, INPUT, NONE);
+               PIN_SLP(gpc1-1, PREV, NONE);
+               PIN_SLP(gpc1-2, INPUT, NONE);
+               PIN_SLP(gpc1-3, INPUT, NONE);
+               PIN_SLP(gpc1-4, INPUT, NONE);
+
+               PIN_SLP(gpd0-0, INPUT, DOWN);
+               PIN_SLP(gpd0-1, INPUT, DOWN);
+               PIN_SLP(gpd0-2, INPUT, NONE);
+               PIN_SLP(gpd0-3, INPUT, NONE);
+
+               PIN_SLP(gpd1-0, INPUT, DOWN);
+               PIN_SLP(gpd1-1, INPUT, DOWN);
+               PIN_SLP(gpd1-2, INPUT, NONE);
+               PIN_SLP(gpd1-3, INPUT, NONE);
+
+               PIN_SLP(gpf0-0, INPUT, NONE);
+               PIN_SLP(gpf0-1, INPUT, NONE);
+               PIN_SLP(gpf0-2, INPUT, DOWN);
+               PIN_SLP(gpf0-3, INPUT, DOWN);
+               PIN_SLP(gpf0-4, INPUT, NONE);
+               PIN_SLP(gpf0-5, INPUT, DOWN);
+               PIN_SLP(gpf0-6, INPUT, NONE);
+               PIN_SLP(gpf0-7, INPUT, DOWN);
+
+               PIN_SLP(gpf1-0, INPUT, DOWN);
+               PIN_SLP(gpf1-1, INPUT, DOWN);
+               PIN_SLP(gpf1-2, INPUT, DOWN);
+               PIN_SLP(gpf1-3, INPUT, DOWN);
+               PIN_SLP(gpf1-4, INPUT, NONE);
+               PIN_SLP(gpf1-5, INPUT, NONE);
+               PIN_SLP(gpf1-6, INPUT, DOWN);
+               PIN_SLP(gpf1-7, PREV, NONE);
+
+               PIN_SLP(gpf2-0, PREV, NONE);
+               PIN_SLP(gpf2-1, INPUT, DOWN);
+               PIN_SLP(gpf2-2, INPUT, DOWN);
+               PIN_SLP(gpf2-3, INPUT, DOWN);
+               PIN_SLP(gpf2-4, INPUT, DOWN);
+               PIN_SLP(gpf2-5, INPUT, DOWN);
+               PIN_SLP(gpf2-6, INPUT, NONE);
+               PIN_SLP(gpf2-7, INPUT, NONE);
+
+               PIN_SLP(gpf3-0, INPUT, NONE);
+               PIN_SLP(gpf3-1, PREV, NONE);
+               PIN_SLP(gpf3-2, PREV, NONE);
+               PIN_SLP(gpf3-3, PREV, NONE);
+               PIN_SLP(gpf3-4, OUT1, NONE);
+               PIN_SLP(gpf3-5, INPUT, DOWN);
+
+               PIN_SLP(gpj0-0, PREV, NONE);
+               PIN_SLP(gpj0-1, PREV, NONE);
+               PIN_SLP(gpj0-2, PREV, NONE);
+               PIN_SLP(gpj0-3, INPUT, DOWN);
+               PIN_SLP(gpj0-4, PREV, NONE);
+               PIN_SLP(gpj0-5, PREV, NONE);
+               PIN_SLP(gpj0-6, INPUT, DOWN);
+               PIN_SLP(gpj0-7, INPUT, DOWN);
+
+               PIN_SLP(gpj1-0, INPUT, DOWN);
+               PIN_SLP(gpj1-1, PREV, NONE);
+               PIN_SLP(gpj1-2, PREV, NONE);
+               PIN_SLP(gpj1-3, INPUT, DOWN);
+               PIN_SLP(gpj1-4, INPUT, DOWN);
+       };
+};
+
+&pinctrl_1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep1>;
+
+       sleep1: sleep-states {
+               PIN_SLP(gpk0-0, PREV, NONE);
+               PIN_SLP(gpk0-1, PREV, NONE);
+               PIN_SLP(gpk0-2, OUT0, NONE);
+               PIN_SLP(gpk0-3, PREV, NONE);
+               PIN_SLP(gpk0-4, PREV, NONE);
+               PIN_SLP(gpk0-5, PREV, NONE);
+               PIN_SLP(gpk0-6, PREV, NONE);
+
+               PIN_SLP(gpk1-0, INPUT, DOWN);
+               PIN_SLP(gpk1-1, INPUT, DOWN);
+               PIN_SLP(gpk1-2, INPUT, DOWN);
+               PIN_SLP(gpk1-3, PREV, NONE);
+               PIN_SLP(gpk1-4, PREV, NONE);
+               PIN_SLP(gpk1-5, PREV, NONE);
+               PIN_SLP(gpk1-6, PREV, NONE);
+
+               PIN_SLP(gpk2-0, INPUT, DOWN);
+               PIN_SLP(gpk2-1, INPUT, DOWN);
+               PIN_SLP(gpk2-2, INPUT, DOWN);
+               PIN_SLP(gpk2-3, INPUT, DOWN);
+               PIN_SLP(gpk2-4, INPUT, DOWN);
+               PIN_SLP(gpk2-5, INPUT, DOWN);
+               PIN_SLP(gpk2-6, INPUT, DOWN);
+
+               PIN_SLP(gpk3-0, OUT0, NONE);
+               PIN_SLP(gpk3-1, INPUT, NONE);
+               PIN_SLP(gpk3-2, INPUT, DOWN);
+               PIN_SLP(gpk3-3, INPUT, NONE);
+               PIN_SLP(gpk3-4, INPUT, NONE);
+               PIN_SLP(gpk3-5, INPUT, NONE);
+               PIN_SLP(gpk3-6, INPUT, NONE);
+
+               PIN_SLP(gpl0-0, INPUT, DOWN);
+               PIN_SLP(gpl0-1, INPUT, DOWN);
+               PIN_SLP(gpl0-2, INPUT, DOWN);
+               PIN_SLP(gpl0-3, INPUT, DOWN);
+               PIN_SLP(gpl0-4, PREV, NONE);
+               PIN_SLP(gpl0-6, PREV, NONE);
+
+               PIN_SLP(gpl1-0, INPUT, DOWN);
+               PIN_SLP(gpl1-1, INPUT, DOWN);
+               PIN_SLP(gpl2-0, INPUT, DOWN);
+               PIN_SLP(gpl2-1, INPUT, DOWN);
+               PIN_SLP(gpl2-2, INPUT, DOWN);
+               PIN_SLP(gpl2-3, INPUT, DOWN);
+               PIN_SLP(gpl2-4, INPUT, DOWN);
+               PIN_SLP(gpl2-5, INPUT, DOWN);
+               PIN_SLP(gpl2-6, PREV, NONE);
+               PIN_SLP(gpl2-7, INPUT, DOWN);
+
+               PIN_SLP(gpm0-0, INPUT, DOWN);
+               PIN_SLP(gpm0-1, INPUT, DOWN);
+               PIN_SLP(gpm0-2, INPUT, DOWN);
+               PIN_SLP(gpm0-3, INPUT, DOWN);
+               PIN_SLP(gpm0-4, INPUT, DOWN);
+               PIN_SLP(gpm0-5, INPUT, DOWN);
+               PIN_SLP(gpm0-6, INPUT, DOWN);
+               PIN_SLP(gpm0-7, INPUT, DOWN);
+
+               PIN_SLP(gpm1-0, INPUT, DOWN);
+               PIN_SLP(gpm1-1, INPUT, DOWN);
+               PIN_SLP(gpm1-2, INPUT, NONE);
+               PIN_SLP(gpm1-3, INPUT, NONE);
+               PIN_SLP(gpm1-4, INPUT, NONE);
+               PIN_SLP(gpm1-5, INPUT, NONE);
+               PIN_SLP(gpm1-6, INPUT, DOWN);
+
+               PIN_SLP(gpm2-0, INPUT, NONE);
+               PIN_SLP(gpm2-1, INPUT, NONE);
+               PIN_SLP(gpm2-2, INPUT, DOWN);
+               PIN_SLP(gpm2-3, INPUT, DOWN);
+               PIN_SLP(gpm2-4, INPUT, DOWN);
+
+               PIN_SLP(gpm3-0, PREV, NONE);
+               PIN_SLP(gpm3-1, PREV, NONE);
+               PIN_SLP(gpm3-2, PREV, NONE);
+               PIN_SLP(gpm3-3, OUT1, NONE);
+               PIN_SLP(gpm3-4, INPUT, DOWN);
+               PIN_SLP(gpm3-5, INPUT, DOWN);
+               PIN_SLP(gpm3-6, INPUT, DOWN);
+               PIN_SLP(gpm3-7, INPUT, DOWN);
+
+               PIN_SLP(gpm4-0, INPUT, DOWN);
+               PIN_SLP(gpm4-1, INPUT, DOWN);
+               PIN_SLP(gpm4-2, INPUT, DOWN);
+               PIN_SLP(gpm4-3, INPUT, DOWN);
+               PIN_SLP(gpm4-4, INPUT, DOWN);
+               PIN_SLP(gpm4-5, INPUT, DOWN);
+               PIN_SLP(gpm4-6, INPUT, DOWN);
+               PIN_SLP(gpm4-7, INPUT, DOWN);
+
+               PIN_SLP(gpy0-0, INPUT, DOWN);
+               PIN_SLP(gpy0-1, INPUT, DOWN);
+               PIN_SLP(gpy0-2, INPUT, DOWN);
+               PIN_SLP(gpy0-3, INPUT, DOWN);
+               PIN_SLP(gpy0-4, INPUT, DOWN);
+               PIN_SLP(gpy0-5, INPUT, DOWN);
+
+               PIN_SLP(gpy1-0, INPUT, DOWN);
+               PIN_SLP(gpy1-1, INPUT, DOWN);
+               PIN_SLP(gpy1-2, INPUT, DOWN);
+               PIN_SLP(gpy1-3, INPUT, DOWN);
+
+               PIN_SLP(gpy2-0, PREV, NONE);
+               PIN_SLP(gpy2-1, INPUT, DOWN);
+               PIN_SLP(gpy2-2, INPUT, NONE);
+               PIN_SLP(gpy2-3, INPUT, NONE);
+               PIN_SLP(gpy2-4, INPUT, NONE);
+               PIN_SLP(gpy2-5, INPUT, NONE);
+
+               PIN_SLP(gpy3-0, INPUT, DOWN);
+               PIN_SLP(gpy3-1, INPUT, DOWN);
+               PIN_SLP(gpy3-2, INPUT, DOWN);
+               PIN_SLP(gpy3-3, INPUT, DOWN);
+               PIN_SLP(gpy3-4, INPUT, DOWN);
+               PIN_SLP(gpy3-5, INPUT, DOWN);
+               PIN_SLP(gpy3-6, INPUT, DOWN);
+               PIN_SLP(gpy3-7, INPUT, DOWN);
+
+               PIN_SLP(gpy4-0, INPUT, DOWN);
+               PIN_SLP(gpy4-1, INPUT, DOWN);
+               PIN_SLP(gpy4-2, INPUT, DOWN);
+               PIN_SLP(gpy4-3, INPUT, DOWN);
+               PIN_SLP(gpy4-4, INPUT, DOWN);
+               PIN_SLP(gpy4-5, INPUT, DOWN);
+               PIN_SLP(gpy4-6, INPUT, DOWN);
+               PIN_SLP(gpy4-7, INPUT, DOWN);
+
+               PIN_SLP(gpy5-0, INPUT, DOWN);
+               PIN_SLP(gpy5-1, INPUT, DOWN);
+               PIN_SLP(gpy5-2, INPUT, DOWN);
+               PIN_SLP(gpy5-3, INPUT, DOWN);
+               PIN_SLP(gpy5-4, INPUT, DOWN);
+               PIN_SLP(gpy5-5, INPUT, DOWN);
+               PIN_SLP(gpy5-6, INPUT, DOWN);
+               PIN_SLP(gpy5-7, INPUT, DOWN);
+
+               PIN_SLP(gpy6-0, INPUT, DOWN);
+               PIN_SLP(gpy6-1, INPUT, DOWN);
+               PIN_SLP(gpy6-2, INPUT, DOWN);
+               PIN_SLP(gpy6-3, INPUT, DOWN);
+               PIN_SLP(gpy6-4, INPUT, DOWN);
+               PIN_SLP(gpy6-5, INPUT, DOWN);
+               PIN_SLP(gpy6-6, INPUT, DOWN);
+               PIN_SLP(gpy6-7, INPUT, DOWN);
+       };
+};
+
+&pinctrl_2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep2>;
+
+       sleep2: sleep-states {
+               PIN_SLP(gpz-0, INPUT, DOWN);
+               PIN_SLP(gpz-1, INPUT, DOWN);
+               PIN_SLP(gpz-2, INPUT, DOWN);
+               PIN_SLP(gpz-3, INPUT, DOWN);
+               PIN_SLP(gpz-4, INPUT, DOWN);
+               PIN_SLP(gpz-5, INPUT, DOWN);
+               PIN_SLP(gpz-6, INPUT, DOWN);
+       };
+};
+
+&pinctrl_3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep3>;
+
+       sleep3: sleep-states {
+               PIN_SLP(gpv0-0, INPUT, DOWN);
+               PIN_SLP(gpv0-1, INPUT, DOWN);
+               PIN_SLP(gpv0-2, INPUT, DOWN);
+               PIN_SLP(gpv0-3, INPUT, DOWN);
+               PIN_SLP(gpv0-4, INPUT, DOWN);
+               PIN_SLP(gpv0-5, INPUT, DOWN);
+               PIN_SLP(gpv0-6, INPUT, DOWN);
+               PIN_SLP(gpv0-7, INPUT, DOWN);
+
+               PIN_SLP(gpv1-0, INPUT, DOWN);
+               PIN_SLP(gpv1-1, INPUT, DOWN);
+               PIN_SLP(gpv1-2, INPUT, DOWN);
+               PIN_SLP(gpv1-3, INPUT, DOWN);
+               PIN_SLP(gpv1-4, INPUT, DOWN);
+               PIN_SLP(gpv1-5, INPUT, DOWN);
+               PIN_SLP(gpv1-6, INPUT, DOWN);
+               PIN_SLP(gpv1-7, INPUT, DOWN);
+
+               PIN_SLP(gpv2-0, INPUT, DOWN);
+               PIN_SLP(gpv2-1, INPUT, DOWN);
+               PIN_SLP(gpv2-2, INPUT, DOWN);
+               PIN_SLP(gpv2-3, INPUT, DOWN);
+               PIN_SLP(gpv2-4, INPUT, DOWN);
+               PIN_SLP(gpv2-5, INPUT, DOWN);
+               PIN_SLP(gpv2-6, INPUT, DOWN);
+               PIN_SLP(gpv2-7, INPUT, DOWN);
+
+               PIN_SLP(gpv3-0, INPUT, DOWN);
+               PIN_SLP(gpv3-1, INPUT, DOWN);
+               PIN_SLP(gpv3-2, INPUT, DOWN);
+               PIN_SLP(gpv3-3, INPUT, DOWN);
+               PIN_SLP(gpv3-4, INPUT, DOWN);
+               PIN_SLP(gpv3-5, INPUT, DOWN);
+               PIN_SLP(gpv3-6, INPUT, DOWN);
+               PIN_SLP(gpv3-7, INPUT, DOWN);
+
+               PIN_SLP(gpv4-0, INPUT, DOWN);
+       };
+};
This page took 0.059231 seconds and 5 git commands to generate.