ARM: dts: imx: ventana: add LTC3676 PMIC support
authorTim Harvey <tharvey@gateworks.com>
Wed, 16 Nov 2016 19:40:45 +0000 (11:40 -0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 2 Jan 2017 05:59:42 +0000 (13:59 +0800)
All of the Gateworks Ventana boards based on the IMX6 SoC except for the
GW54xx use the LTC3676 PMIC. Add a device-tree node with interrupt support
for this PMIC. Additionally remove the simple-bus notation in the regulator
nodes and any fixed regulators that are provided by the PMIC.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
arch/arm/boot/dts/imx6qdl-gw551x.dtsi
arch/arm/boot/dts/imx6qdl-gw552x.dtsi
arch/arm/boot/dts/imx6qdl-gw553x.dtsi

index afec2c7..e8c1edc 100644 (file)
                status = "okay";
        };
 
-       regulators {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               reg_3p3v: regulator@0 {
-                       compatible = "regulator-fixed";
-                       reg = <0>;
-                       regulator-name = "3P3V";
-                       regulator-min-microvolt = <3300000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-always-on;
-               };
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
 
-               reg_5p0v: regulator@1 {
-                       compatible = "regulator-fixed";
-                       reg = <1>;
-                       regulator-name = "5P0V";
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-                       regulator-always-on;
-               };
+       reg_5p0v: regulator-5p0v {
+               compatible = "regulator-fixed";
+               regulator-name = "5P0V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
 
-               reg_usb_otg_vbus: regulator@2 {
-                       compatible = "regulator-fixed";
-                       reg = <2>;
-                       regulator-name = "usb_otg_vbus";
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-                       gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
-                       enable-active-high;
-               };
+       reg_usb_otg_vbus: regulator-usb-otg-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
        };
 };
 
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";
+
+       ltc3676: pmic@3c {
+               compatible = "lltc,ltc3676";
+               reg = <0x3c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+
+               regulators {
+                       /* VDD_SOC (1+R1/R2 = 1.635) */
+                       reg_vdd_soc: sw1 {
+                               regulator-name = "vddsoc";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_1P8 (1+R1/R2 = 2.505): GPS/VideoIn/ENET-PHY */
+                       reg_1p8v: sw2 {
+                               regulator-name = "vdd1p8";
+                               regulator-min-microvolt = <1033310>;
+                               regulator-max-microvolt = <2004000>;
+                               lltc,fb-voltage-divider = <301000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_ARM (1+R1/R2 = 1.635) */
+                       reg_vdd_arm: sw3 {
+                               regulator-name = "vddarm";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_DDR (1+R1/R2 = 2.105) */
+                       reg_vdd_ddr: sw4 {
+                               regulator-name = "vddddr";
+                               regulator-min-microvolt = <868310>;
+                               regulator-max-microvolt = <1684000>;
+                               lltc,fb-voltage-divider = <221000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
+                       reg_2p5v: ldo2 {
+                               regulator-name = "vdd2p5";
+                               regulator-min-microvolt = <2490375>;
+                               regulator-max-microvolt = <2490375>;
+                               lltc,fb-voltage-divider = <487000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_HIGH (1+R1/R2 = 4.17) */
+                       reg_3p0v: ldo4 {
+                               regulator-name = "vdd3p0";
+                               regulator-min-microvolt = <3023250>;
+                               regulator-max-microvolt = <3023250>;
+                               lltc,fb-voltage-divider = <634000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &i2c3 {
                        >;
                };
 
+               pinctrl_pmic: pmicgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_8__GPIO1_IO08           0x0001b0b0 /* PMIC_IRQ# */
+                       >;
+               };
+
                pinctrl_pps: ppsgrp {
                        fsl,pins = <
                                MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x1b0b1
index 54aca3a..3bf7ae5 100644 (file)
                status = "okay";
        };
 
-       regulators {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               reg_1p0v: regulator@0 {
-                       compatible = "regulator-fixed";
-                       reg = <0>;
-                       regulator-name = "1P0V";
-                       regulator-min-microvolt = <1000000>;
-                       regulator-max-microvolt = <1000000>;
-                       regulator-always-on;
-               };
-
-               /* remove this fixed regulator once ltc3676__sw2 driver available */
-               reg_1p8v: regulator@1 {
-                       compatible = "regulator-fixed";
-                       reg = <1>;
-                       regulator-name = "1P8V";
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-                       regulator-always-on;
-               };
+       reg_1p0v: regulator-1p0v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P0V";
+               regulator-min-microvolt = <1000000>;
+               regulator-max-microvolt = <1000000>;
+               regulator-always-on;
+       };
 
-               reg_3p3v: regulator@2 {
-                       compatible = "regulator-fixed";
-                       reg = <2>;
-                       regulator-name = "3P3V";
-                       regulator-min-microvolt = <3300000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-always-on;
-               };
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
 
-               reg_5p0v: regulator@3 {
-                       compatible = "regulator-fixed";
-                       reg = <3>;
-                       regulator-name = "5P0V";
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-                       regulator-always-on;
-               };
+       reg_5p0v: regulator-5p0v {
+               compatible = "regulator-fixed";
+               regulator-name = "5P0V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
 
-               reg_usb_otg_vbus: regulator@4 {
-                       compatible = "regulator-fixed";
-                       reg = <4>;
-                       regulator-name = "usb_otg_vbus";
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-                       gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
-                       enable-active-high;
-               };
+       reg_usb_otg_vbus: regulator-usb-otg-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
        };
 
        sound {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";
+
+       ltc3676: pmic@3c {
+               compatible = "lltc,ltc3676";
+               reg = <0x3c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+
+               regulators {
+                       /* VDD_SOC (1+R1/R2 = 1.635) */
+                       reg_vdd_soc: sw1 {
+                               regulator-name = "vddsoc";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_1P8 (1+R1/R2 = 2.505): GPS/VideoIn/ENET-PHY */
+                       reg_1p8v: sw2 {
+                                regulator-name = "vdd1p8";
+                               regulator-min-microvolt = <1033310>;
+                               regulator-max-microvolt = <2004000>;
+                               lltc,fb-voltage-divider = <301000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_ARM (1+R1/R2 = 1.635) */
+                       reg_vdd_arm: sw3 {
+                               regulator-name = "vddarm";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_DDR (1+R1/R2 = 2.105) */
+                       reg_vdd_ddr: sw4 {
+                               regulator-name = "vddddr";
+                               regulator-min-microvolt = <868310>;
+                               regulator-max-microvolt = <1684000>;
+                               lltc,fb-voltage-divider = <221000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
+                       reg_2p5v: ldo2 {
+                               regulator-name = "vdd2p5";
+                               regulator-min-microvolt = <2490375>;
+                               regulator-max-microvolt = <2490375>;
+                               lltc,fb-voltage-divider = <487000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_AUD_1P8: Audio codec */
+                       reg_aud_1p8v: ldo3 {
+                               regulator-name = "vdd1p8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                       };
+
+                       /* VDD_HIGH (1+R1/R2 = 4.17) */
+                       reg_3p0v: ldo4 {
+                               regulator-name = "vdd3p0";
+                               regulator-min-microvolt = <3023250>;
+                               regulator-max-microvolt = <3023250>;
+                               lltc,fb-voltage-divider = <634000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &i2c3 {
                        >;
                };
 
+               pinctrl_pmic: pmicgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_8__GPIO1_IO08           0x0001b0b0 /* PMIC_IRQ# */
+                       >;
+               };
+
                pinctrl_pps: ppsgrp {
                        fsl,pins = <
                                MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x1b0b1
index 88e5cb3..19cf036 100644 (file)
                status = "okay";
        };
 
-       regulators {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               reg_1p0v: regulator@0 {
-                       compatible = "regulator-fixed";
-                       reg = <0>;
-                       regulator-name = "1P0V";
-                       regulator-min-microvolt = <1000000>;
-                       regulator-max-microvolt = <1000000>;
-                       regulator-always-on;
-               };
-
-               /* remove when pmic 1p8 regulator available */
-               reg_1p8v: regulator@1 {
-                       compatible = "regulator-fixed";
-                       reg = <1>;
-                       regulator-name = "1P8V";
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-                       regulator-always-on;
-               };
+       reg_1p0v: regulator-1p0v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P0V";
+               regulator-min-microvolt = <1000000>;
+               regulator-max-microvolt = <1000000>;
+               regulator-always-on;
+       };
 
-               reg_3p3v: regulator@2 {
-                       compatible = "regulator-fixed";
-                       reg = <2>;
-                       regulator-name = "3P3V";
-                       regulator-min-microvolt = <3300000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-always-on;
-               };
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
 
-               reg_usb_h1_vbus: regulator@3 {
-                       compatible = "regulator-fixed";
-                       reg = <3>;
-                       regulator-name = "usb_h1_vbus";
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-                       regulator-always-on;
-               };
+       reg_usb_h1_vbus: regulator-usb-h1-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_h1_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
 
-               reg_usb_otg_vbus: regulator@4 {
-                       compatible = "regulator-fixed";
-                       reg = <4>;
-                       regulator-name = "usb_otg_vbus";
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-                       gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
-                       enable-active-high;
-               };
+       reg_usb_otg_vbus: regulator-usb-otg-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
        };
 
        sound {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";
+
+       ltc3676: pmic@3c {
+               compatible = "lltc,ltc3676";
+               reg = <0x3c>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+
+               regulators {
+                       /* VDD_SOC (1+R1/R2 = 1.635) */
+                       reg_vdd_soc: sw1 {
+                               regulator-name = "vddsoc";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_1P8 (1+R1/R2 = 2.505): GPS/VideoIn/ENET-PHY */
+                       reg_1p8v: sw2 {
+                                regulator-name = "vdd1p8";
+                               regulator-min-microvolt = <1033310>;
+                               regulator-max-microvolt = <2004000>;
+                               lltc,fb-voltage-divider = <301000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_ARM (1+R1/R2 = 1.635) */
+                       reg_vdd_arm: sw3 {
+                               regulator-name = "vddarm";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_DDR (1+R1/R2 = 2.105) */
+                       reg_vdd_ddr: sw4 {
+                               regulator-name = "vddddr";
+                               regulator-min-microvolt = <868310>;
+                               regulator-max-microvolt = <1684000>;
+                               lltc,fb-voltage-divider = <221000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
+                       reg_2p5v: ldo2 {
+                               regulator-name = "vdd2p5";
+                               regulator-min-microvolt = <2490375>;
+                               regulator-max-microvolt = <2490375>;
+                               lltc,fb-voltage-divider = <487000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_AUD_1P8: Audio codec */
+                       reg_aud_1p8v: ldo3 {
+                               regulator-name = "vdd1p8a";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                       };
+
+                       /* VDD_HIGH (1+R1/R2 = 4.17) */
+                       reg_3p0v: ldo4 {
+                               regulator-name = "vdd3p0";
+                               regulator-min-microvolt = <3023250>;
+                               regulator-max-microvolt = <3023250>;
+                               lltc,fb-voltage-divider = <634000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &i2c3 {
                        >;
                };
 
+               pinctrl_pmic: pmicgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_8__GPIO1_IO08           0x0001b0b0 /* PMIC_IRQ# */
+                       >;
+               };
+
                pinctrl_pps: ppsgrp {
                        fsl,pins = <
                                MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x1b0b1
index 4b9fef8..405b403 100644 (file)
                reg = <0x10000000 0x20000000>;
        };
 
-       regulators {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               reg_5p0v: regulator@0 {
-                       compatible = "regulator-fixed";
-                       reg = <0>;
-                       regulator-name = "5P0V";
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-               };
+       reg_5p0v: regulator-5p0v {
+               compatible = "regulator-fixed";
+               regulator-name = "5P0V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
 
-               reg_usb_h1_vbus: regulator@1 {
-                       compatible = "regulator-fixed";
-                       reg = <1>;
-                       regulator-name = "usb_h1_vbus";
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-               };
+       reg_usb_h1_vbus: regulator-usb-h1-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_h1_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
 
-               reg_usb_otg_vbus: regulator@2 {
-                       compatible = "regulator-fixed";
-                       reg = <2>;
-                       regulator-name = "usb_otg_vbus";
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-               };
+       reg_usb_otg_vbus: regulator-usb-otg-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
        };
 };
 
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";
+
+       ltc3676: pmic@3c {
+               compatible = "lltc,ltc3676";
+               reg = <0x3c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+
+               regulators {
+                       /* VDD_SOC (1+R1/R2 = 1.635) */
+                       reg_vdd_soc: sw1 {
+                               regulator-name = "vddsoc";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_DDR (1+R1/R2 = 2.105) */
+                       reg_vdd_ddr: sw2 {
+                               regulator-name = "vddddr";
+                               regulator-min-microvolt = <868310>;
+                               regulator-max-microvolt = <1684000>;
+                               lltc,fb-voltage-divider = <221000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_ARM (1+R1/R2 = 1.635) */
+                       reg_vdd_arm: sw3 {
+                               regulator-name = "vddarm";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_3P3 (1+R1/R2 = 1.281) */
+                       reg_3p3: sw4 {
+                               regulator-name = "vdd3p3";
+                               regulator-min-microvolt = <1880000>;
+                               regulator-max-microvolt = <3647000>;
+                               lltc,fb-voltage-divider = <200000 56200>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_1P8a (1+R1/R2 = 2.505): HDMI In core */
+                       reg_1p8a: ldo2 {
+                               regulator-name = "vdd1p8a";
+                               regulator-min-microvolt = <1816125>;
+                               regulator-max-microvolt = <1816125>;
+                               lltc,fb-voltage-divider = <301000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_1P8b: HDMI In analog */
+                       reg_1p8b: ldo3 {
+                               regulator-name = "vdd1p8b";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                       };
+
+                       /* VDD_HIGH (1+R1/R2 = 4.17) */
+                       reg_3p0: ldo4 {
+                               regulator-name = "vdd3p0";
+                               regulator-min-microvolt = <3023250>;
+                               regulator-max-microvolt = <3023250>;
+                               lltc,fb-voltage-divider = <634000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &i2c3 {
                        >;
                };
 
+               pinctrl_pmic: pmicgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_8__GPIO1_IO08           0x0001b0b0 /* PMIC_IRQ# */
+                       >;
+               };
+
                pinctrl_pwm2: pwm2grp {
                        fsl,pins = <
                                MX6QDL_PAD_SD1_DAT2__PWM2_OUT           0x1b0b1
index ee83161..90200fa 100644 (file)
                reg = <0x10000000 0x20000000>;
        };
 
-       regulators {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               reg_1p0v: regulator@0 {
-                       compatible = "regulator-fixed";
-                       reg = <0>;
-                       regulator-name = "1P0V";
-                       regulator-min-microvolt = <1000000>;
-                       regulator-max-microvolt = <1000000>;
-                       regulator-always-on;
-               };
+       reg_1p0v: regulator-1p0v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P0V";
+               regulator-min-microvolt = <1000000>;
+               regulator-max-microvolt = <1000000>;
+               regulator-always-on;
+       };
 
-               reg_3p3v: regulator@2 {
-                       compatible = "regulator-fixed";
-                       reg = <2>;
-                       regulator-name = "3P3V";
-                       regulator-min-microvolt = <3300000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-always-on;
-               };
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
 
-               reg_5p0v: regulator@3 {
-                       compatible = "regulator-fixed";
-                       reg = <3>;
-                       regulator-name = "5P0V";
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-                       regulator-always-on;
-               };
+       reg_5p0v: regulator-5p0v {
+               compatible = "regulator-fixed";
+               regulator-name = "5P0V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
        };
 };
 
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";
+
+       ltc3676: pmic@3c {
+               compatible = "lltc,ltc3676";
+               reg = <0x3c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+
+               regulators {
+                       /* VDD_SOC (1+R1/R2 = 1.635) */
+                       reg_vdd_soc: sw1 {
+                               regulator-name = "vddsoc";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_1P8 (1+R1/R2 = 2.505): ENET-PHY */
+                       reg_1p8v: sw2 {
+                                regulator-name = "vdd1p8";
+                               regulator-min-microvolt = <1033310>;
+                               regulator-max-microvolt = <2004000>;
+                               lltc,fb-voltage-divider = <301000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_ARM (1+R1/R2 = 1.635) */
+                       reg_vdd_arm: sw3 {
+                               regulator-name = "vddarm";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_DDR (1+R1/R2 = 2.105) */
+                       reg_vdd_ddr: sw4 {
+                               regulator-name = "vddddr";
+                               regulator-min-microvolt = <868310>;
+                               regulator-max-microvolt = <1684000>;
+                               lltc,fb-voltage-divider = <221000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
+                       reg_2p5v: ldo2 {
+                               regulator-name = "vdd2p5";
+                               regulator-min-microvolt = <2490375>;
+                               regulator-max-microvolt = <2490375>;
+                               lltc,fb-voltage-divider = <487000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_HIGH (1+R1/R2 = 4.17) */
+                       reg_3p0v: ldo4 {
+                               regulator-name = "vdd3p0";
+                               regulator-min-microvolt = <3023250>;
+                               regulator-max-microvolt = <3023250>;
+                               lltc,fb-voltage-divider = <634000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &i2c3 {
                        >;
                };
 
+               pinctrl_pmic: pmicgrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_8__GPIO1_IO08           0x0001b0b0 /* PMIC_IRQ# */
+                       >;
+               };
+
                pinctrl_pwm2: pwm2grp {
                        fsl,pins = <
                                MX6QDL_PAD_SD1_DAT2__PWM2_OUT           0x1b0b1
index 86cec05..57374dd 100644 (file)
                status = "okay";
        };
 
-       reg_3p3v: regulator-3p3v {
-               compatible = "regulator-fixed";
-               regulator-name = "3P0V";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
-       };
-
        reg_5p0v: regulator-5p0v {
                compatible = "regulator-fixed";
                regulator-name = "5P0V";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";
+
+       ltc3676: pmic@3c {
+               compatible = "lltc,ltc3676";
+               reg = <0x3c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+
+               regulators {
+                       /* VDD_SOC (1+R1/R2 = 1.635) */
+                       reg_vdd_soc: sw1 {
+                               regulator-name = "vddsoc";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_DDR (1+R1/R2 = 2.105) */
+                       reg_vdd_ddr: sw2 {
+                               regulator-name = "vddddr";
+                               regulator-min-microvolt = <868310>;
+                               regulator-max-microvolt = <1684000>;
+                               lltc,fb-voltage-divider = <221000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_ARM (1+R1/R2 = 1.635) */
+                       reg_vdd_arm: sw3 {
+                               regulator-name = "vddarm";
+                               regulator-min-microvolt = <674400>;
+                               regulator-max-microvolt = <1308000>;
+                               lltc,fb-voltage-divider = <127000 200000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_3P3 (1+R1/R2 = 1.281) */
+                       reg_3p3v: sw4 {
+                               regulator-name = "vdd3p3";
+                               regulator-min-microvolt = <1880000>;
+                               regulator-max-microvolt = <3647000>;
+                               lltc,fb-voltage-divider = <200000 56200>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_1P8a (1+R1/R2 = 2.505): Analog Video Decoder */
+                       reg_1p8a: ldo2 {
+                               regulator-name = "vdd1p8a";
+                               regulator-min-microvolt = <1816125>;
+                               regulator-max-microvolt = <1816125>;
+                               lltc,fb-voltage-divider = <301000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_1P8b: microSD VDD_1P8 */
+                       reg_1p8b: ldo3 {
+                               regulator-name = "vdd1p8b";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                       };
+
+                       /* VDD_HIGH (1+R1/R2 = 4.17) */
+                       reg_3p0v: ldo4 {
+                               regulator-name = "vdd3p0";
+                               regulator-min-microvolt = <3023250>;
+                               regulator-max-microvolt = <3023250>;
+                               lltc,fb-voltage-divider = <634000 200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &i2c3 {
        pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
        pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
        cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
-       vmmc-supply = <&reg_3p3v>;
        status = "okay";
 };
 
                >;
        };
 
+       pinctrl_pmic: pmicgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_8__GPIO1_IO08           0x0001b0b0 /* PMIC_IRQ# */
+               >;
+       };
+
        pinctrl_pps: ppsgrp {
                fsl,pins = <
                        MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x1b0b1