Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge remote-tracking branches 'regulator/fix/axp20x', 'regulator/fix/da9063', 'regulator/fix/gpio' and 'regulator/fix/s2mps11' into regulator-linus

+36 -10
+9 -3
drivers/regulator/axp20x-regulator.c
··· 157 157 static const struct regulator_linear_range axp20x_ldo4_ranges[] = { 158 158 REGULATOR_LINEAR_RANGE(1250000, 0x0, 0x0, 0), 159 159 REGULATOR_LINEAR_RANGE(1300000, 0x1, 0x8, 100000), 160 - REGULATOR_LINEAR_RANGE(2500000, 0x9, 0xf, 100000), 160 + REGULATOR_LINEAR_RANGE(2500000, 0x9, 0x9, 0), 161 + REGULATOR_LINEAR_RANGE(2700000, 0xa, 0xb, 100000), 162 + REGULATOR_LINEAR_RANGE(3000000, 0xc, 0xf, 100000), 161 163 }; 162 164 163 165 static const struct regulator_desc axp20x_regulators[] = { ··· 217 215 AXP22X_ELDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(1)), 218 216 AXP_DESC(AXP22X, ELDO3, "eldo3", "eldoin", 700, 3300, 100, 219 217 AXP22X_ELDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(2)), 220 - AXP_DESC_IO(AXP22X, LDO_IO0, "ldo_io0", "ips", 1800, 3300, 100, 218 + /* Note the datasheet only guarantees reliable operation up to 219 + * 3.3V, this needs to be enforced via dts provided constraints */ 220 + AXP_DESC_IO(AXP22X, LDO_IO0, "ldo_io0", "ips", 700, 3800, 100, 221 221 AXP22X_LDO_IO0_V_OUT, 0x1f, AXP20X_GPIO0_CTRL, 0x07, 222 222 AXP22X_IO_ENABLED, AXP22X_IO_DISABLED), 223 - AXP_DESC_IO(AXP22X, LDO_IO1, "ldo_io1", "ips", 1800, 3300, 100, 223 + /* Note the datasheet only guarantees reliable operation up to 224 + * 3.3V, this needs to be enforced via dts provided constraints */ 225 + AXP_DESC_IO(AXP22X, LDO_IO1, "ldo_io1", "ips", 700, 3800, 100, 224 226 AXP22X_LDO_IO1_V_OUT, 0x1f, AXP20X_GPIO1_CTRL, 0x07, 225 227 AXP22X_IO_ENABLED, AXP22X_IO_DISABLED), 226 228 AXP_DESC_FIXED(AXP22X, RTC_LDO, "rtc_ldo", "ips", 3000),
+1 -1
drivers/regulator/da9063-regulator.c
··· 900 900 MODULE_AUTHOR("Krystian Garbaciak <krystian.garbaciak@diasemi.com>"); 901 901 MODULE_DESCRIPTION("DA9063 regulators driver"); 902 902 MODULE_LICENSE("GPL"); 903 - MODULE_ALIAS("paltform:" DA9063_DRVNAME_REGULATORS); 903 + MODULE_ALIAS("platform:" DA9063_DRVNAME_REGULATORS);
+2
drivers/regulator/gpio-regulator.c
··· 162 162 of_property_read_u32(np, "startup-delay-us", &config->startup_delay); 163 163 164 164 config->enable_gpio = of_get_named_gpio(np, "enable-gpio", 0); 165 + if (config->enable_gpio == -EPROBE_DEFER) 166 + return ERR_PTR(-EPROBE_DEFER); 165 167 166 168 /* Fetch GPIOs. - optional property*/ 167 169 ret = of_gpio_count(np);
+22 -6
drivers/regulator/s2mps11.c
··· 308 308 .enable_mask = S2MPS11_ENABLE_MASK \ 309 309 } 310 310 311 - #define regulator_desc_s2mps11_buck6_10(num, min, step) { \ 311 + #define regulator_desc_s2mps11_buck67810(num, min, step) { \ 312 312 .name = "BUCK"#num, \ 313 313 .id = S2MPS11_BUCK##num, \ 314 314 .ops = &s2mps11_buck_ops, \ ··· 321 321 .vsel_reg = S2MPS11_REG_B6CTRL2 + (num - 6) * 2, \ 322 322 .vsel_mask = S2MPS11_BUCK_VSEL_MASK, \ 323 323 .enable_reg = S2MPS11_REG_B6CTRL1 + (num - 6) * 2, \ 324 + .enable_mask = S2MPS11_ENABLE_MASK \ 325 + } 326 + 327 + #define regulator_desc_s2mps11_buck9 { \ 328 + .name = "BUCK9", \ 329 + .id = S2MPS11_BUCK9, \ 330 + .ops = &s2mps11_buck_ops, \ 331 + .type = REGULATOR_VOLTAGE, \ 332 + .owner = THIS_MODULE, \ 333 + .min_uV = MIN_3000_MV, \ 334 + .uV_step = STEP_25_MV, \ 335 + .n_voltages = S2MPS11_BUCK9_N_VOLTAGES, \ 336 + .ramp_delay = S2MPS11_RAMP_DELAY, \ 337 + .vsel_reg = S2MPS11_REG_B9CTRL2, \ 338 + .vsel_mask = S2MPS11_BUCK9_VSEL_MASK, \ 339 + .enable_reg = S2MPS11_REG_B9CTRL1, \ 324 340 .enable_mask = S2MPS11_ENABLE_MASK \ 325 341 } 326 342 ··· 384 368 regulator_desc_s2mps11_buck1_4(3), 385 369 regulator_desc_s2mps11_buck1_4(4), 386 370 regulator_desc_s2mps11_buck5, 387 - regulator_desc_s2mps11_buck6_10(6, MIN_600_MV, STEP_6_25_MV), 388 - regulator_desc_s2mps11_buck6_10(7, MIN_600_MV, STEP_6_25_MV), 389 - regulator_desc_s2mps11_buck6_10(8, MIN_600_MV, STEP_6_25_MV), 390 - regulator_desc_s2mps11_buck6_10(9, MIN_3000_MV, STEP_25_MV), 391 - regulator_desc_s2mps11_buck6_10(10, MIN_750_MV, STEP_12_5_MV), 371 + regulator_desc_s2mps11_buck67810(6, MIN_600_MV, STEP_6_25_MV), 372 + regulator_desc_s2mps11_buck67810(7, MIN_600_MV, STEP_6_25_MV), 373 + regulator_desc_s2mps11_buck67810(8, MIN_600_MV, STEP_6_25_MV), 374 + regulator_desc_s2mps11_buck9, 375 + regulator_desc_s2mps11_buck67810(10, MIN_750_MV, STEP_12_5_MV), 392 376 }; 393 377 394 378 static struct regulator_ops s2mps14_reg_ops;
+2
include/linux/mfd/samsung/s2mps11.h
··· 173 173 174 174 #define S2MPS11_LDO_VSEL_MASK 0x3F 175 175 #define S2MPS11_BUCK_VSEL_MASK 0xFF 176 + #define S2MPS11_BUCK9_VSEL_MASK 0x1F 176 177 #define S2MPS11_ENABLE_MASK (0x03 << S2MPS11_ENABLE_SHIFT) 177 178 #define S2MPS11_ENABLE_SHIFT 0x06 178 179 #define S2MPS11_LDO_N_VOLTAGES (S2MPS11_LDO_VSEL_MASK + 1) 179 180 #define S2MPS11_BUCK_N_VOLTAGES (S2MPS11_BUCK_VSEL_MASK + 1) 181 + #define S2MPS11_BUCK9_N_VOLTAGES (S2MPS11_BUCK9_VSEL_MASK + 1) 180 182 #define S2MPS11_RAMP_DELAY 25000 /* uV/us */ 181 183 182 184 #define S2MPS11_CTRL1_PWRHOLD_MASK BIT(4)