100fd6e61SKim, MiloBinding for TI/National Semiconductor LP872x Driver 200fd6e61SKim, Milo 300fd6e61SKim, MiloRequired properties: 400fd6e61SKim, Milo - compatible: "ti,lp8720" or "ti,lp8725" 500fd6e61SKim, Milo - reg: I2C slave address. 0x7d = LP8720, 0x7a = LP8725 600fd6e61SKim, Milo 700fd6e61SKim, MiloOptional properties: 800fd6e61SKim, Milo - ti,general-config: the value of LP872X_GENERAL_CFG register (u8) 900fd6e61SKim, Milo (LP8720) 1000fd6e61SKim, Milo bit[2]: BUCK output voltage control by external DVS pin or register 1100fd6e61SKim, Milo 1 = external pin, 0 = bit7 of register 08h 1200fd6e61SKim, Milo bit[1]: sleep control by external DVS pin or register 1300fd6e61SKim, Milo 1 = external pin, 0 = bit6 of register 08h 1400fd6e61SKim, Milo bit[0]: time step unit(usec). 1 = 25, 0 = 50 1500fd6e61SKim, Milo 1600fd6e61SKim, Milo (LP8725) 1700fd6e61SKim, Milo bit[7:6]: time step unit(usec). 00 = 32, 01 = 64, 10 = 128, 11 = 256 1800fd6e61SKim, Milo bit[4]: BUCK2 enable control. 1 = enable, 0 = disable 1900fd6e61SKim, Milo bit[3]: BUCK2 output voltage register address. 1 = 0Ah, 0 = 0Bh 2000fd6e61SKim, Milo bit[2]: BUCK1 output voltage control by external DVS pin or register 2100fd6e61SKim, Milo 1 = register 08h, 0 = DVS 2200fd6e61SKim, Milo bit[1]: LDO sleep control. 1 = sleep mode, 0 = normal 2300fd6e61SKim, Milo bit[0]: BUCK1 enable control, 1 = enable, 0 = disable 2400fd6e61SKim, Milo 2500fd6e61SKim, Milo For more details, please see the datasheet. 2600fd6e61SKim, Milo 2700fd6e61SKim, Milo - ti,update-config: define it when LP872X_GENERAL_CFG register should be set 2800fd6e61SKim, Milo - ti,dvs-gpio: GPIO specifier for external DVS pin control of LP872x devices. 2900fd6e61SKim, Milo - ti,dvs-vsel: DVS selector. 0 = SEL_V1, 1 = SEL_V2. 3000fd6e61SKim, Milo - ti,dvs-state: initial DVS pin state. 0 = DVS_LOW, 1 = DVS_HIGH. 317e6213f4SPaul Kocialkowski - enable-gpios: GPIO specifier for EN pin control of LP872x devices. 3200fd6e61SKim, Milo 3300fd6e61SKim, Milo Sub nodes for regulator_init_data 3400fd6e61SKim, Milo LP8720 has maximum 6 nodes. (child name: ldo1 ~ 5 and buck) 3500fd6e61SKim, Milo LP8725 has maximum 9 nodes. (child name: ldo1 ~ 5, lilo1,2 and buck1,2) 3600fd6e61SKim, Milo For more details, please see the following binding document. 3700fd6e61SKim, Milo (Documentation/devicetree/bindings/regulator/regulator.txt) 3800fd6e61SKim, Milo 3900fd6e61SKim, MiloDatasheet 40*2ca76b3eSAlexander A. Klimov - LP8720: https://www.ti.com/lit/ds/symlink/lp8720.pdf 41*2ca76b3eSAlexander A. Klimov - LP8725: https://www.ti.com/lit/ds/symlink/lp8725.pdf 4200fd6e61SKim, Milo 4300fd6e61SKim, MiloExample 1) LP8720 4400fd6e61SKim, Milo 4500fd6e61SKim, Milolp8720@7d { 4600fd6e61SKim, Milo compatible = "ti,lp8720"; 4700fd6e61SKim, Milo reg = <0x7d>; 4800fd6e61SKim, Milo 4900fd6e61SKim, Milo /* external DVS pin used, timestep is 25usec */ 5000fd6e61SKim, Milo ti,general-config = /bits/ 8 <0x03>; 5100fd6e61SKim, Milo ti,update-config; 5200fd6e61SKim, Milo 5300fd6e61SKim, Milo /* 5400fd6e61SKim, Milo * The dvs-gpio depends on the processor environment. 5500fd6e61SKim, Milo * For example, following GPIO specifier means GPIO134 in OMAP4. 5600fd6e61SKim, Milo */ 5700fd6e61SKim, Milo ti,dvs-gpio = <&gpio5 6 0>; 5800fd6e61SKim, Milo ti,dvs-vsel = /bits/ 8 <1>; /* SEL_V2 */ 5900fd6e61SKim, Milo ti,dvs-state = /bits/ 8 <1>; /* DVS_HIGH */ 6000fd6e61SKim, Milo 6100fd6e61SKim, Milo vaf: ldo1 { 6200fd6e61SKim, Milo regulator-min-microvolt = <1200000>; 6300fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 6400fd6e61SKim, Milo }; 6500fd6e61SKim, Milo 6600fd6e61SKim, Milo vmmc: ldo2 { 6700fd6e61SKim, Milo regulator-min-microvolt = <1200000>; 6800fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 6900fd6e61SKim, Milo }; 7000fd6e61SKim, Milo 7100fd6e61SKim, Milo vcam_io: ldo3 { 7200fd6e61SKim, Milo regulator-min-microvolt = <1200000>; 7300fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 7400fd6e61SKim, Milo regulator-boot-on; 7500fd6e61SKim, Milo }; 7600fd6e61SKim, Milo 7700fd6e61SKim, Milo vcam_core: ldo4 { 7800fd6e61SKim, Milo regulator-min-microvolt = <800000>; 7900fd6e61SKim, Milo regulator-max-microvolt = <2850000>; 8000fd6e61SKim, Milo regulator-boot-on; 8100fd6e61SKim, Milo }; 8200fd6e61SKim, Milo 8300fd6e61SKim, Milo vcam: ldo5 { 8400fd6e61SKim, Milo regulator-min-microvolt = <1200000>; 8500fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 8600fd6e61SKim, Milo }; 8700fd6e61SKim, Milo 8800fd6e61SKim, Milo vcc: buck { 8900fd6e61SKim, Milo regulator-name = "VBUCK"; 9000fd6e61SKim, Milo regulator-min-microvolt = <800000>; 9100fd6e61SKim, Milo regulator-max-microvolt = <2300000>; 9200fd6e61SKim, Milo }; 9300fd6e61SKim, Milo}; 9400fd6e61SKim, Milo 9500fd6e61SKim, MiloExample 2) LP8725 9600fd6e61SKim, Milo 9700fd6e61SKim, Milolp8725@7a { 9800fd6e61SKim, Milo compatible = "ti,lp8725"; 9900fd6e61SKim, Milo reg = <0x7a>; 10000fd6e61SKim, Milo 10100fd6e61SKim, Milo /* Enable BUCK1,2, no DVS, normal LDO mode, timestep is 256usec */ 10200fd6e61SKim, Milo ti,general-config = /bits/ 8 <0xdd>; 10300fd6e61SKim, Milo ti,update-config; 10400fd6e61SKim, Milo 10500fd6e61SKim, Milo vcam_io: ldo1 { 10600fd6e61SKim, Milo regulator-min-microvolt = <1200000>; 10700fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 10800fd6e61SKim, Milo }; 10900fd6e61SKim, Milo 11000fd6e61SKim, Milo vcam_core: ldo2 { 11100fd6e61SKim, Milo regulator-min-microvolt = <1200000>; 11200fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 11300fd6e61SKim, Milo }; 11400fd6e61SKim, Milo 11500fd6e61SKim, Milo vcam: ldo3 { 11600fd6e61SKim, Milo regulator-min-microvolt = <1200000>; 11700fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 11800fd6e61SKim, Milo }; 11900fd6e61SKim, Milo 12000fd6e61SKim, Milo vcmmb_io: ldo4 { 12100fd6e61SKim, Milo regulator-min-microvolt = <1200000>; 12200fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 12300fd6e61SKim, Milo regulator-boot-on; 12400fd6e61SKim, Milo }; 12500fd6e61SKim, Milo 12600fd6e61SKim, Milo vcmmb_core: ldo5 { 12700fd6e61SKim, Milo regulator-min-microvolt = <1200000>; 12800fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 12900fd6e61SKim, Milo regulator-boot-on; 13000fd6e61SKim, Milo }; 13100fd6e61SKim, Milo 13200fd6e61SKim, Milo vaux1: lilo1 { 13300fd6e61SKim, Milo regulator-name = "VAUX1"; 13400fd6e61SKim, Milo regulator-min-microvolt = <800000>; 13500fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 13600fd6e61SKim, Milo }; 13700fd6e61SKim, Milo 13800fd6e61SKim, Milo vaux2: lilo2 { 13900fd6e61SKim, Milo regulator-name = "VAUX2"; 14000fd6e61SKim, Milo regulator-min-microvolt = <800000>; 14100fd6e61SKim, Milo regulator-max-microvolt = <3300000>; 14200fd6e61SKim, Milo }; 14300fd6e61SKim, Milo 14400fd6e61SKim, Milo vcc1: buck1 { 14500fd6e61SKim, Milo regulator-name = "VBUCK1"; 14600fd6e61SKim, Milo regulator-min-microvolt = <800000>; 14700fd6e61SKim, Milo regulator-max-microvolt = <3000000>; 14800fd6e61SKim, Milo regulator-min-microamp = <460000>; 14900fd6e61SKim, Milo regulator-max-microamp = <1370000>; 15000fd6e61SKim, Milo regulator-boot-on; 15100fd6e61SKim, Milo }; 15200fd6e61SKim, Milo 15300fd6e61SKim, Milo vcc2: buck2 { 15400fd6e61SKim, Milo regulator-name = "VBUCK2"; 15500fd6e61SKim, Milo regulator-min-microvolt = <800000>; 15600fd6e61SKim, Milo regulator-max-microvolt = <3000000>; 15700fd6e61SKim, Milo regulator-min-microamp = <460000>; 15800fd6e61SKim, Milo regulator-max-microamp = <1370000>; 15900fd6e61SKim, Milo regulator-boot-on; 16000fd6e61SKim, Milo }; 16100fd6e61SKim, Milo}; 162