Merge tag 'mfd-for-linus-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
[pandora-kernel.git] / arch / arm / boot / dts / exynos4412-trats2.dts
index 5fbb013..21f7480 100644 (file)
@@ -15,6 +15,7 @@
 /dts-v1/;
 #include "exynos4412.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 
 / {
        model = "Samsung Trats 2 based on Exynos4412";
@@ -24,6 +25,7 @@
                i2c9 = &i2c_ak8975;
                i2c10 = &i2c_cm36651;
                i2c11 = &i2c_max77693;
+               i2c12 = &i2c_max77693_fuel;
        };
 
        memory {
                #address-cells = <1>;
                #size-cells = <0>;
 
-               vemmc_reg: regulator-0 {
-                       compatible = "regulator-fixed";
-                       regulator-name = "VMEM_VDD_2.8V";
-                       regulator-min-microvolt = <2800000>;
-                       regulator-max-microvolt = <2800000>;
-                       gpio = <&gpk0 2 0>;
-                       enable-active-high;
-               };
-
                cam_io_reg: voltage-regulator-1 {
                        compatible = "regulator-fixed";
                        regulator-name = "CAM_SENSOR_A";
                        enable-active-high;
                };
 
-               cam_isp_core_reg: voltage-regulator-4 {
-                       compatible = "regulator-fixed";
-                       regulator-name = "CAM_ISP_CORE_1.2V_EN";
-                       regulator-min-microvolt = <1200000>;
-                       regulator-max-microvolt = <1200000>;
-                       gpio = <&gpm0 3 0>;
-                       enable-active-high;
-                       regulator-always-on;
-               };
-
                ps_als_reg: voltage-regulator-5 {
                        compatible = "regulator-fixed";
                        regulator-name = "LED_A_3.0V";
                };
        };
 
+       i2c@138A0000 {
+               samsung,i2c-sda-delay = <100>;
+               samsung,i2c-slave-addr = <0x10>;
+               samsung,i2c-max-bus-freq = <100000>;
+               pinctrl-0 = <&i2c4_bus>;
+               pinctrl-names = "default";
+               status = "okay";
+
+               wm1811: wm1811@1a {
+                       compatible = "wlf,wm1811";
+                       reg = <0x1a>;
+                       clocks = <&pmu_system_controller 0>;
+                       clock-names = "MCLK1";
+                       DCVDD-supply = <&ldo3_reg>;
+                       DBVDD1-supply = <&ldo3_reg>;
+                       wlf,ldo1ena = <&gpj0 4 0>;
+               };
+       };
+
        i2c@138D0000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-slave-addr = <0x10>;
                                        regulator-min-microvolt = <1000000>;
                                        regulator-max-microvolt = <1000000>;
                                        regulator-always-on;
-                                       regulator-mem-on;
                                };
 
                                ldo2_reg: ldo2 {
                                        regulator-min-microvolt = <1200000>;
                                        regulator-max-microvolt = <1200000>;
                                        regulator-always-on;
-                                       regulator-mem-on;
+                                       regulator-state-mem {
+                                               regulator-on-in-suspend;
+                                       };
                                };
 
                                ldo3_reg: ldo3 {
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <1800000>;
                                        regulator-always-on;
-                                       regulator-mem-on;
                                };
 
                                ldo4_reg: ldo4 {
                                        regulator-min-microvolt = <2800000>;
                                        regulator-max-microvolt = <2800000>;
                                        regulator-always-on;
-                                       regulator-mem-on;
                                };
 
                                ldo5_reg: ldo5 {
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <1800000>;
                                        regulator-always-on;
-                                       regulator-mem-on;
                                };
 
                                ldo6_reg: ldo6 {
                                        regulator-min-microvolt = <1000000>;
                                        regulator-max-microvolt = <1000000>;
                                        regulator-always-on;
-                                       regulator-mem-on;
+                                       regulator-state-mem {
+                                               regulator-on-in-suspend;
+                                       };
                                };
 
                                ldo7_reg: ldo7 {
                                        regulator-min-microvolt = <1000000>;
                                        regulator-max-microvolt = <1000000>;
                                        regulator-always-on;
-                                       regulator-mem-on;
+                                       regulator-state-mem {
+                                               regulator-on-in-suspend;
+                                       };
                                };
 
                                ldo8_reg: ldo8 {
                                        regulator-name = "VMIPI_1.0V";
                                        regulator-min-microvolt = <1000000>;
                                        regulator-max-microvolt = <1000000>;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                       };
                                };
 
                                ldo9_reg: ldo9 {
                                        regulator-name = "CAM_ISP_MIPI_1.2V";
                                        regulator-min-microvolt = <1200000>;
                                        regulator-max-microvolt = <1200000>;
-                                       regulator-mem-idle;
                                };
 
                                ldo10_reg: ldo10 {
                                        regulator-name = "VMIPI_1.8V";
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <1800000>;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                       };
                                };
 
                                ldo11_reg: ldo11 {
                                        regulator-min-microvolt = <1950000>;
                                        regulator-max-microvolt = <1950000>;
                                        regulator-always-on;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                       };
                                };
 
                                ldo12_reg: ldo12 {
                                        regulator-name = "VUOTG_3.0V";
                                        regulator-min-microvolt = <3000000>;
                                        regulator-max-microvolt = <3000000>;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                       };
                                };
 
                                ldo13_reg: ldo13 {
                                        regulator-name = "NFC_AVDD_1.8V";
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <1800000>;
-                                       regulator-mem-idle;
                                };
 
                                ldo14_reg: ldo14 {
                                        regulator-min-microvolt = <1950000>;
                                        regulator-max-microvolt = <1950000>;
                                        regulator-always-on;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                       };
                                };
 
                                ldo15_reg: ldo15 {
                                        regulator-name = "VHSIC_1.0V";
                                        regulator-min-microvolt = <1000000>;
                                        regulator-max-microvolt = <1000000>;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-on-in-suspend;
+                                       };
                                };
 
                                ldo16_reg: ldo16 {
                                        regulator-name = "VHSIC_1.8V";
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <1800000>;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-on-in-suspend;
+                                       };
                                };
 
                                ldo17_reg: ldo17 {
                                        regulator-name = "CAM_SENSOR_CORE_1.2V";
                                        regulator-min-microvolt = <1200000>;
                                        regulator-max-microvolt = <1200000>;
-                                       regulator-mem-idle;
                                };
 
                                ldo18_reg: ldo18 {
                                        regulator-name = "CAM_ISP_SEN_IO_1.8V";
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <1800000>;
-                                       regulator-mem-idle;
                                };
 
                                ldo19_reg: ldo19 {
                                        regulator-name = "VT_CAM_1.8V";
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <1800000>;
-                                       regulator-mem-idle;
                                };
 
                                ldo20_reg: ldo20 {
                                        regulator-name = "VDDQ_PRE_1.8V";
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <1800000>;
-                                       regulator-mem-idle;
                                };
 
                                ldo21_reg: ldo21 {
                                        regulator-name = "VTF_2.8V";
                                        regulator-min-microvolt = <2800000>;
                                        regulator-max-microvolt = <2800000>;
-                                       regulator-mem-idle;
+                                       maxim,ena-gpios = <&gpy2 0 GPIO_ACTIVE_HIGH>;
                                };
 
                                ldo22_reg: ldo22 {
                                        regulator-name = "VMEM_VDD_2.8V";
                                        regulator-min-microvolt = <2800000>;
                                        regulator-max-microvolt = <2800000>;
+                                       maxim,ena-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
                                };
 
                                ldo23_reg: ldo23 {
                                        regulator-name = "TSP_AVDD_3.3V";
                                        regulator-min-microvolt = <3300000>;
                                        regulator-max-microvolt = <3300000>;
-                                       regulator-mem-idle;
                                };
 
                                ldo24_reg: ldo24 {
                                        regulator-name = "TSP_VDD_1.8V";
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <1800000>;
-                                       regulator-mem-idle;
                                };
 
                                ldo25_reg: ldo25 {
                                        regulator-name = "LCD_VCC_3.3V";
                                        regulator-min-microvolt = <2800000>;
                                        regulator-max-microvolt = <2800000>;
-                                       regulator-mem-idle;
                                };
 
                                ldo26_reg: ldo26 {
                                        regulator-name = "MOTOR_VCC_3.0V";
                                        regulator-min-microvolt = <3000000>;
                                        regulator-max-microvolt = <3000000>;
-                                       regulator-mem-idle;
                                };
 
                                buck1_reg: buck1 {
                                        regulator-max-microvolt = <1100000>;
                                        regulator-always-on;
                                        regulator-boot-on;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                       };
                                };
 
                                buck2_reg: buck2 {
                                        regulator-max-microvolt = <1500000>;
                                        regulator-always-on;
                                        regulator-boot-on;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-on-in-suspend;
+                                       };
                                };
 
                                buck3_reg: buck3 {
                                        regulator-max-microvolt = <1150000>;
                                        regulator-always-on;
                                        regulator-boot-on;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                       };
                                };
 
                                buck4_reg: buck4 {
                                        regulator-min-microvolt = <850000>;
                                        regulator-max-microvolt = <1150000>;
                                        regulator-boot-on;
-                                       regulator-mem-off;
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                       };
                                };
 
                                buck5_reg: buck5 {
                                        regulator-name = "VMEM_VDDF_3.0V";
                                        regulator-min-microvolt = <2850000>;
                                        regulator-max-microvolt = <2850000>;
+                                       maxim,ena-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
                                };
 
                                buck9_reg: buck9 {
                                        regulator-name = "CAM_ISP_CORE_1.2V";
                                        regulator-min-microvolt = <1000000>;
                                        regulator-max-microvolt = <1200000>;
-                                       regulator-mem-off;
+                                       maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>;
                                };
                        };
                };
                                haptic-supply = <&ldo26_reg>;
                                pwms = <&pwm 0 38022 0>;
                        };
+
+                       charger {
+                               compatible = "maxim,max77693-charger";
+
+                               maxim,constant-microvolt = <4350000>;
+                               maxim,min-system-microvolt = <3600000>;
+                               maxim,thermal-regulation-celsius = <100>;
+                               maxim,battery-overcurrent-microamp = <3500000>;
+                               maxim,charge-input-threshold-microvolt = <4300000>;
+                       };
+               };
+       };
+
+       i2c_max77693_fuel: i2c-gpio-3 {
+               compatible = "i2c-gpio";
+               gpios = <&gpf1 5 GPIO_ACTIVE_HIGH>, <&gpf1 4 GPIO_ACTIVE_HIGH>;
+               i2c-gpio,delay-us = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "okay";
+
+               max77693-fuel-gauge@36 {
+                       compatible = "maxim,max17047";
+                       interrupt-parent = <&gpx2>;
+                       interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+                       reg = <0x36>;
                };
        };
 
                broken-cd;
                non-removable;
                card-detect-delay = <200>;
-               vmmc-supply = <&vemmc_reg>;
+               vmmc-supply = <&ldo22_reg>;
                clock-frequency = <400000000>;
                samsung,dw-mshc-ciu-div = <0>;
                samsung,dw-mshc-sdr-timing = <2 3>;
                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>;
+               assigned-clock-parents = <&clock CLK_XUSBXTI>,
+                                        <&clock CLK_XUSBXTI>;
 
                fimc_0: fimc@11800000 {
                        status = "okay";
                };
        };
 
+       i2s0: i2s@03830000 {
+               pinctrl-0 = <&i2s0_bus>;
+               pinctrl-names = "default";
+               status = "okay";
+       };
+
+       sound {
+               compatible = "samsung,trats2-audio";
+               samsung,i2s-controller = <&i2s0>;
+               samsung,model = "Trats2";
+               samsung,audio-codec = <&wm1811>;
+               samsung,audio-routing =
+                       "SPK", "SPKOUTLN",
+                       "SPK", "SPKOUTLP",
+                       "SPK", "SPKOUTRN",
+                       "SPK", "SPKOUTRP";
+       };
+
        exynos-usbphy@125B0000 {
                status = "okay";
        };
        hsotg@12480000 {
                vusb_d-supply = <&ldo15_reg>;
                vusb_a-supply = <&ldo12_reg>;
+               dr_mode = "peripheral";
                status = "okay";
        };
 
        };
 };
 
+&pmu_system_controller {
+       assigned-clocks = <&pmu_system_controller 0>;
+       assigned-clock-parents =  <&clock CLK_XUSBXTI>;
+};
+
+&ppmu_dmc0 {
+       status = "okay";
+
+       events {
+               ppmu_dmc0_3: ppmu-event3-dmc0 {
+                       event-name = "ppmu-event3-dmc0";
+               };
+       };
+};
+
+&ppmu_dmc1 {
+       status = "okay";
+
+       events {
+               ppmu_dmc1_3: ppmu-event3-dmc1 {
+                       event-name = "ppmu-event3-dmc1";
+               };
+       };
+};
+
+&ppmu_leftbus {
+       status = "okay";
+
+       events {
+               ppmu_leftbus_3: ppmu-event3-leftbus {
+                       event-name = "ppmu-event3-leftbus";
+               };
+       };
+};
+
+&ppmu_rightbus {
+       status = "okay";
+
+       events {
+               ppmu_rightbus_3: ppmu-event3-rightbus {
+                       event-name = "ppmu-event3-rightbus";
+               };
+       };
+};
+
 &pinctrl_0 {
        pinctrl-names = "default";
        pinctrl-0 = <&sleep0>;