Binding for TI/National Semiconductor LP872x Driver Required properties: - compatible: "ti,lp8720" or "ti,lp8725" - reg: I2C slave address. 0x7d = LP8720, 0x7a = LP8725 Optional properties: - ti,general-config: the value of LP872X_GENERAL_CFG register (u8) (LP8720) bit[2]: BUCK output voltage control by external DVS pin or register 1 = external pin, 0 = bit7 of register 08h bit[1]: sleep control by external DVS pin or register 1 = external pin, 0 = bit6 of register 08h bit[0]: time step unit(usec). 1 = 25, 0 = 50 (LP8725) bit[7:6]: time step unit(usec). 00 = 32, 01 = 64, 10 = 128, 11 = 256 bit[4]: BUCK2 enable control. 1 = enable, 0 = disable bit[3]: BUCK2 output voltage register address. 1 = 0Ah, 0 = 0Bh bit[2]: BUCK1 output voltage control by external DVS pin or register 1 = register 08h, 0 = DVS bit[1]: LDO sleep control. 1 = sleep mode, 0 = normal bit[0]: BUCK1 enable control, 1 = enable, 0 = disable For more details, please see the datasheet. - ti,update-config: define it when LP872X_GENERAL_CFG register should be set - ti,dvs-gpio: GPIO specifier for external DVS pin control of LP872x devices. - ti,dvs-vsel: DVS selector. 0 = SEL_V1, 1 = SEL_V2. - ti,dvs-state: initial DVS pin state. 0 = DVS_LOW, 1 = DVS_HIGH. - enable-gpios: GPIO specifier for EN pin control of LP872x devices. Sub nodes for regulator_init_data LP8720 has maximum 6 nodes. (child name: ldo1 ~ 5 and buck) LP8725 has maximum 9 nodes. (child name: ldo1 ~ 5, lilo1,2 and buck1,2) For more details, please see the following binding document. (Documentation/devicetree/bindings/regulator/regulator.txt) Datasheet - LP8720: https://www.ti.com/lit/ds/symlink/lp8720.pdf - LP8725: https://www.ti.com/lit/ds/symlink/lp8725.pdf Example 1) LP8720 lp8720@7d { compatible = "ti,lp8720"; reg = <0x7d>; /* external DVS pin used, timestep is 25usec */ ti,general-config = /bits/ 8 <0x03>; ti,update-config; /* * The dvs-gpio depends on the processor environment. * For example, following GPIO specifier means GPIO134 in OMAP4. */ ti,dvs-gpio = <&gpio5 6 0>; ti,dvs-vsel = /bits/ 8 <1>; /* SEL_V2 */ ti,dvs-state = /bits/ 8 <1>; /* DVS_HIGH */ vaf: ldo1 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3300000>; }; vmmc: ldo2 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3300000>; }; vcam_io: ldo3 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3300000>; regulator-boot-on; }; vcam_core: ldo4 { regulator-min-microvolt = <800000>; regulator-max-microvolt = <2850000>; regulator-boot-on; }; vcam: ldo5 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3300000>; }; vcc: buck { regulator-name = "VBUCK"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <2300000>; }; }; Example 2) LP8725 lp8725@7a { compatible = "ti,lp8725"; reg = <0x7a>; /* Enable BUCK1,2, no DVS, normal LDO mode, timestep is 256usec */ ti,general-config = /bits/ 8 <0xdd>; ti,update-config; vcam_io: ldo1 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3300000>; }; vcam_core: ldo2 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3300000>; }; vcam: ldo3 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3300000>; }; vcmmb_io: ldo4 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3300000>; regulator-boot-on; }; vcmmb_core: ldo5 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3300000>; regulator-boot-on; }; vaux1: lilo1 { regulator-name = "VAUX1"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <3300000>; }; vaux2: lilo2 { regulator-name = "VAUX2"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <3300000>; }; vcc1: buck1 { regulator-name = "VBUCK1"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <3000000>; regulator-min-microamp = <460000>; regulator-max-microamp = <1370000>; regulator-boot-on; }; vcc2: buck2 { regulator-name = "VBUCK2"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <3000000>; regulator-min-microamp = <460000>; regulator-max-microamp = <1370000>; regulator-boot-on; }; };