Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame] | 1 | Binding for TI/National Semiconductor LP872x Driver |
| 2 | |
| 3 | Required properties: |
| 4 | - compatible: "ti,lp8720" or "ti,lp8725" |
| 5 | - reg: I2C slave address. 0x7d = LP8720, 0x7a = LP8725 |
| 6 | |
| 7 | Optional properties: |
| 8 | - ti,general-config: the value of LP872X_GENERAL_CFG register (u8) |
| 9 | (LP8720) |
| 10 | bit[2]: BUCK output voltage control by external DVS pin or register |
| 11 | 1 = external pin, 0 = bit7 of register 08h |
| 12 | bit[1]: sleep control by external DVS pin or register |
| 13 | 1 = external pin, 0 = bit6 of register 08h |
| 14 | bit[0]: time step unit(usec). 1 = 25, 0 = 50 |
| 15 | |
| 16 | (LP8725) |
| 17 | bit[7:6]: time step unit(usec). 00 = 32, 01 = 64, 10 = 128, 11 = 256 |
| 18 | bit[4]: BUCK2 enable control. 1 = enable, 0 = disable |
| 19 | bit[3]: BUCK2 output voltage register address. 1 = 0Ah, 0 = 0Bh |
| 20 | bit[2]: BUCK1 output voltage control by external DVS pin or register |
| 21 | 1 = register 08h, 0 = DVS |
| 22 | bit[1]: LDO sleep control. 1 = sleep mode, 0 = normal |
| 23 | bit[0]: BUCK1 enable control, 1 = enable, 0 = disable |
| 24 | |
| 25 | For more details, please see the datasheet. |
| 26 | |
| 27 | - ti,update-config: define it when LP872X_GENERAL_CFG register should be set |
| 28 | - ti,dvs-gpio: GPIO specifier for external DVS pin control of LP872x devices. |
| 29 | - ti,dvs-vsel: DVS selector. 0 = SEL_V1, 1 = SEL_V2. |
| 30 | - ti,dvs-state: initial DVS pin state. 0 = DVS_LOW, 1 = DVS_HIGH. |
| 31 | - enable-gpios: GPIO specifier for EN pin control of LP872x devices. |
| 32 | |
| 33 | Sub nodes for regulator_init_data |
| 34 | LP8720 has maximum 6 nodes. (child name: ldo1 ~ 5 and buck) |
| 35 | LP8725 has maximum 9 nodes. (child name: ldo1 ~ 5, lilo1,2 and buck1,2) |
| 36 | For more details, please see the following binding document. |
| 37 | (Documentation/devicetree/bindings/regulator/regulator.txt) |
| 38 | |
| 39 | Datasheet |
| 40 | - LP8720: https://www.ti.com/lit/ds/symlink/lp8720.pdf |
| 41 | - LP8725: https://www.ti.com/lit/ds/symlink/lp8725.pdf |
| 42 | |
| 43 | Example 1) LP8720 |
| 44 | |
| 45 | lp8720@7d { |
| 46 | compatible = "ti,lp8720"; |
| 47 | reg = <0x7d>; |
| 48 | |
| 49 | /* external DVS pin used, timestep is 25usec */ |
| 50 | ti,general-config = /bits/ 8 <0x03>; |
| 51 | ti,update-config; |
| 52 | |
| 53 | /* |
| 54 | * The dvs-gpio depends on the processor environment. |
| 55 | * For example, following GPIO specifier means GPIO134 in OMAP4. |
| 56 | */ |
| 57 | ti,dvs-gpio = <&gpio5 6 0>; |
| 58 | ti,dvs-vsel = /bits/ 8 <1>; /* SEL_V2 */ |
| 59 | ti,dvs-state = /bits/ 8 <1>; /* DVS_HIGH */ |
| 60 | |
| 61 | vaf: ldo1 { |
| 62 | regulator-min-microvolt = <1200000>; |
| 63 | regulator-max-microvolt = <3300000>; |
| 64 | }; |
| 65 | |
| 66 | vmmc: ldo2 { |
| 67 | regulator-min-microvolt = <1200000>; |
| 68 | regulator-max-microvolt = <3300000>; |
| 69 | }; |
| 70 | |
| 71 | vcam_io: ldo3 { |
| 72 | regulator-min-microvolt = <1200000>; |
| 73 | regulator-max-microvolt = <3300000>; |
| 74 | regulator-boot-on; |
| 75 | }; |
| 76 | |
| 77 | vcam_core: ldo4 { |
| 78 | regulator-min-microvolt = <800000>; |
| 79 | regulator-max-microvolt = <2850000>; |
| 80 | regulator-boot-on; |
| 81 | }; |
| 82 | |
| 83 | vcam: ldo5 { |
| 84 | regulator-min-microvolt = <1200000>; |
| 85 | regulator-max-microvolt = <3300000>; |
| 86 | }; |
| 87 | |
| 88 | vcc: buck { |
| 89 | regulator-name = "VBUCK"; |
| 90 | regulator-min-microvolt = <800000>; |
| 91 | regulator-max-microvolt = <2300000>; |
| 92 | }; |
| 93 | }; |
| 94 | |
| 95 | Example 2) LP8725 |
| 96 | |
| 97 | lp8725@7a { |
| 98 | compatible = "ti,lp8725"; |
| 99 | reg = <0x7a>; |
| 100 | |
| 101 | /* Enable BUCK1,2, no DVS, normal LDO mode, timestep is 256usec */ |
| 102 | ti,general-config = /bits/ 8 <0xdd>; |
| 103 | ti,update-config; |
| 104 | |
| 105 | vcam_io: ldo1 { |
| 106 | regulator-min-microvolt = <1200000>; |
| 107 | regulator-max-microvolt = <3300000>; |
| 108 | }; |
| 109 | |
| 110 | vcam_core: ldo2 { |
| 111 | regulator-min-microvolt = <1200000>; |
| 112 | regulator-max-microvolt = <3300000>; |
| 113 | }; |
| 114 | |
| 115 | vcam: ldo3 { |
| 116 | regulator-min-microvolt = <1200000>; |
| 117 | regulator-max-microvolt = <3300000>; |
| 118 | }; |
| 119 | |
| 120 | vcmmb_io: ldo4 { |
| 121 | regulator-min-microvolt = <1200000>; |
| 122 | regulator-max-microvolt = <3300000>; |
| 123 | regulator-boot-on; |
| 124 | }; |
| 125 | |
| 126 | vcmmb_core: ldo5 { |
| 127 | regulator-min-microvolt = <1200000>; |
| 128 | regulator-max-microvolt = <3300000>; |
| 129 | regulator-boot-on; |
| 130 | }; |
| 131 | |
| 132 | vaux1: lilo1 { |
| 133 | regulator-name = "VAUX1"; |
| 134 | regulator-min-microvolt = <800000>; |
| 135 | regulator-max-microvolt = <3300000>; |
| 136 | }; |
| 137 | |
| 138 | vaux2: lilo2 { |
| 139 | regulator-name = "VAUX2"; |
| 140 | regulator-min-microvolt = <800000>; |
| 141 | regulator-max-microvolt = <3300000>; |
| 142 | }; |
| 143 | |
| 144 | vcc1: buck1 { |
| 145 | regulator-name = "VBUCK1"; |
| 146 | regulator-min-microvolt = <800000>; |
| 147 | regulator-max-microvolt = <3000000>; |
| 148 | regulator-min-microamp = <460000>; |
| 149 | regulator-max-microamp = <1370000>; |
| 150 | regulator-boot-on; |
| 151 | }; |
| 152 | |
| 153 | vcc2: buck2 { |
| 154 | regulator-name = "VBUCK2"; |
| 155 | regulator-min-microvolt = <800000>; |
| 156 | regulator-max-microvolt = <3000000>; |
| 157 | regulator-min-microamp = <460000>; |
| 158 | regulator-max-microamp = <1370000>; |
| 159 | regulator-boot-on; |
| 160 | }; |
| 161 | }; |