Commit 60ab7f41 authored by Matti Vaittinen's avatar Matti Vaittinen Committed by Mark Brown
parent de824cc9
...@@ -11,13 +11,13 @@ static const struct regulator_ops pg86x_ops = { ...@@ -11,13 +11,13 @@ static const struct regulator_ops pg86x_ops = {
.list_voltage = regulator_list_voltage_linear_range, .list_voltage = regulator_list_voltage_linear_range,
}; };
static const struct regulator_linear_range pg86x_buck1_ranges[] = { static const struct linear_range pg86x_buck1_ranges[] = {
REGULATOR_LINEAR_RANGE( 0, 0, 10, 0), REGULATOR_LINEAR_RANGE( 0, 0, 10, 0),
REGULATOR_LINEAR_RANGE(1000000, 11, 34, 25000), REGULATOR_LINEAR_RANGE(1000000, 11, 34, 25000),
REGULATOR_LINEAR_RANGE(1600000, 35, 47, 50000), REGULATOR_LINEAR_RANGE(1600000, 35, 47, 50000),
}; };
static const struct regulator_linear_range pg86x_buck2_ranges[] = { static const struct linear_range pg86x_buck2_ranges[] = {
REGULATOR_LINEAR_RANGE( 0, 0, 15, 0), REGULATOR_LINEAR_RANGE( 0, 0, 15, 0),
REGULATOR_LINEAR_RANGE(1000000, 16, 39, 25000), REGULATOR_LINEAR_RANGE(1000000, 16, 39, 25000),
REGULATOR_LINEAR_RANGE(1600000, 40, 52, 50000), REGULATOR_LINEAR_RANGE(1600000, 40, 52, 50000),
......
...@@ -134,13 +134,13 @@ struct pm800_regulator_info { ...@@ -134,13 +134,13 @@ struct pm800_regulator_info {
} }
/* Ranges are sorted in ascending order. */ /* Ranges are sorted in ascending order. */
static const struct regulator_linear_range buck1_volt_range[] = { static const struct linear_range buck1_volt_range[] = {
REGULATOR_LINEAR_RANGE(600000, 0, 0x4f, 12500), REGULATOR_LINEAR_RANGE(600000, 0, 0x4f, 12500),
REGULATOR_LINEAR_RANGE(1600000, 0x50, 0x54, 50000), REGULATOR_LINEAR_RANGE(1600000, 0x50, 0x54, 50000),
}; };
/* BUCK 2~5 have same ranges. */ /* BUCK 2~5 have same ranges. */
static const struct regulator_linear_range buck2_5_volt_range[] = { static const struct linear_range buck2_5_volt_range[] = {
REGULATOR_LINEAR_RANGE(600000, 0, 0x4f, 12500), REGULATOR_LINEAR_RANGE(600000, 0, 0x4f, 12500),
REGULATOR_LINEAR_RANGE(1600000, 0x50, 0x72, 50000), REGULATOR_LINEAR_RANGE(1600000, 0x50, 0x72, 50000),
}; };
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
menuconfig REGULATOR menuconfig REGULATOR
bool "Voltage and Current Regulator Support" bool "Voltage and Current Regulator Support"
select LINEAR_RANGES
help help
Generic Voltage and Current Regulator support. Generic Voltage and Current Regulator support.
......
...@@ -220,13 +220,13 @@ static const struct regmap_config act8865_regmap_config = { ...@@ -220,13 +220,13 @@ static const struct regmap_config act8865_regmap_config = {
.val_bits = 8, .val_bits = 8,
}; };
static const struct regulator_linear_range act8865_voltage_ranges[] = { static const struct linear_range act8865_voltage_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, 0, 23, 25000), REGULATOR_LINEAR_RANGE(600000, 0, 23, 25000),
REGULATOR_LINEAR_RANGE(1200000, 24, 47, 50000), REGULATOR_LINEAR_RANGE(1200000, 24, 47, 50000),
REGULATOR_LINEAR_RANGE(2400000, 48, 63, 100000), REGULATOR_LINEAR_RANGE(2400000, 48, 63, 100000),
}; };
static const struct regulator_linear_range act8600_sudcdc_voltage_ranges[] = { static const struct linear_range act8600_sudcdc_voltage_ranges[] = {
REGULATOR_LINEAR_RANGE(3000000, 0, 63, 0), REGULATOR_LINEAR_RANGE(3000000, 0, 63, 0),
REGULATOR_LINEAR_RANGE(3000000, 64, 159, 100000), REGULATOR_LINEAR_RANGE(3000000, 64, 159, 100000),
REGULATOR_LINEAR_RANGE(12600000, 160, 191, 200000), REGULATOR_LINEAR_RANGE(12600000, 160, 191, 200000),
......
...@@ -73,7 +73,7 @@ struct act8945a_pmic { ...@@ -73,7 +73,7 @@ struct act8945a_pmic {
u32 op_mode[ACT8945A_ID_MAX]; u32 op_mode[ACT8945A_ID_MAX];
}; };
static const struct regulator_linear_range act8945a_voltage_ranges[] = { static const struct linear_range act8945a_voltage_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, 0, 23, 25000), REGULATOR_LINEAR_RANGE(600000, 0, 23, 25000),
REGULATOR_LINEAR_RANGE(1200000, 24, 47, 50000), REGULATOR_LINEAR_RANGE(1200000, 24, 47, 50000),
REGULATOR_LINEAR_RANGE(2400000, 48, 63, 100000), REGULATOR_LINEAR_RANGE(2400000, 48, 63, 100000),
......
...@@ -87,7 +87,7 @@ static const struct regulator_ops arizona_ldo1_hc_ops = { ...@@ -87,7 +87,7 @@ static const struct regulator_ops arizona_ldo1_hc_ops = {
.set_bypass = regulator_set_bypass_regmap, .set_bypass = regulator_set_bypass_regmap,
}; };
static const struct regulator_linear_range arizona_ldo1_hc_ranges[] = { static const struct linear_range arizona_ldo1_hc_ranges[] = {
REGULATOR_LINEAR_RANGE(900000, 0, 0x6, 50000), REGULATOR_LINEAR_RANGE(900000, 0, 0x6, 50000),
REGULATOR_LINEAR_RANGE(1800000, 0x7, 0x7, 0), REGULATOR_LINEAR_RANGE(1800000, 0x7, 0x7, 0),
}; };
......
...@@ -125,7 +125,7 @@ static const struct regulator_ops arizona_micsupp_ops = { ...@@ -125,7 +125,7 @@ static const struct regulator_ops arizona_micsupp_ops = {
.set_bypass = arizona_micsupp_set_bypass, .set_bypass = arizona_micsupp_set_bypass,
}; };
static const struct regulator_linear_range arizona_micsupp_ranges[] = { static const struct linear_range arizona_micsupp_ranges[] = {
REGULATOR_LINEAR_RANGE(1700000, 0, 0x1e, 50000), REGULATOR_LINEAR_RANGE(1700000, 0, 0x1e, 50000),
REGULATOR_LINEAR_RANGE(3300000, 0x1f, 0x1f, 0), REGULATOR_LINEAR_RANGE(3300000, 0x1f, 0x1f, 0),
}; };
...@@ -152,7 +152,7 @@ static const struct regulator_desc arizona_micsupp = { ...@@ -152,7 +152,7 @@ static const struct regulator_desc arizona_micsupp = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static const struct regulator_linear_range arizona_micsupp_ext_ranges[] = { static const struct linear_range arizona_micsupp_ext_ranges[] = {
REGULATOR_LINEAR_RANGE(900000, 0, 0x14, 25000), REGULATOR_LINEAR_RANGE(900000, 0, 0x14, 25000),
REGULATOR_LINEAR_RANGE(1500000, 0x15, 0x27, 100000), REGULATOR_LINEAR_RANGE(1500000, 0x15, 0x27, 100000),
}; };
......
...@@ -103,18 +103,18 @@ static const struct regulator_ops as3711_dldo_ops = { ...@@ -103,18 +103,18 @@ static const struct regulator_ops as3711_dldo_ops = {
.map_voltage = regulator_map_voltage_linear_range, .map_voltage = regulator_map_voltage_linear_range,
}; };
static const struct regulator_linear_range as3711_sd_ranges[] = { static const struct linear_range as3711_sd_ranges[] = {
REGULATOR_LINEAR_RANGE(612500, 0x1, 0x40, 12500), REGULATOR_LINEAR_RANGE(612500, 0x1, 0x40, 12500),
REGULATOR_LINEAR_RANGE(1425000, 0x41, 0x70, 25000), REGULATOR_LINEAR_RANGE(1425000, 0x41, 0x70, 25000),
REGULATOR_LINEAR_RANGE(2650000, 0x71, 0x7f, 50000), REGULATOR_LINEAR_RANGE(2650000, 0x71, 0x7f, 50000),
}; };
static const struct regulator_linear_range as3711_aldo_ranges[] = { static const struct linear_range as3711_aldo_ranges[] = {
REGULATOR_LINEAR_RANGE(1200000, 0, 0xf, 50000), REGULATOR_LINEAR_RANGE(1200000, 0, 0xf, 50000),
REGULATOR_LINEAR_RANGE(1800000, 0x10, 0x1f, 100000), REGULATOR_LINEAR_RANGE(1800000, 0x10, 0x1f, 100000),
}; };
static const struct regulator_linear_range as3711_dldo_ranges[] = { static const struct linear_range as3711_dldo_ranges[] = {
REGULATOR_LINEAR_RANGE(900000, 0, 0x10, 50000), REGULATOR_LINEAR_RANGE(900000, 0, 0x10, 50000),
REGULATOR_LINEAR_RANGE(1750000, 0x20, 0x3f, 50000), REGULATOR_LINEAR_RANGE(1750000, 0x20, 0x3f, 50000),
}; };
......
...@@ -389,7 +389,7 @@ static const struct regulator_ops as3722_ldo6_extcntrl_ops = { ...@@ -389,7 +389,7 @@ static const struct regulator_ops as3722_ldo6_extcntrl_ops = {
.set_bypass = regulator_set_bypass_regmap, .set_bypass = regulator_set_bypass_regmap,
}; };
static const struct regulator_linear_range as3722_ldo_ranges[] = { static const struct linear_range as3722_ldo_ranges[] = {
REGULATOR_LINEAR_RANGE(0, 0x00, 0x00, 0), REGULATOR_LINEAR_RANGE(0, 0x00, 0x00, 0),
REGULATOR_LINEAR_RANGE(825000, 0x01, 0x24, 25000), REGULATOR_LINEAR_RANGE(825000, 0x01, 0x24, 25000),
REGULATOR_LINEAR_RANGE(1725000, 0x40, 0x7F, 25000), REGULATOR_LINEAR_RANGE(1725000, 0x40, 0x7F, 25000),
...@@ -487,7 +487,7 @@ static bool as3722_sd0_is_low_voltage(struct as3722_regulators *as3722_regs) ...@@ -487,7 +487,7 @@ static bool as3722_sd0_is_low_voltage(struct as3722_regulators *as3722_regs)
return false; return false;
} }
static const struct regulator_linear_range as3722_sd2345_ranges[] = { static const struct linear_range as3722_sd2345_ranges[] = {
REGULATOR_LINEAR_RANGE(0, 0x00, 0x00, 0), REGULATOR_LINEAR_RANGE(0, 0x00, 0x00, 0),
REGULATOR_LINEAR_RANGE(612500, 0x01, 0x40, 12500), REGULATOR_LINEAR_RANGE(612500, 0x01, 0x40, 12500),
REGULATOR_LINEAR_RANGE(1425000, 0x41, 0x70, 25000), REGULATOR_LINEAR_RANGE(1425000, 0x41, 0x70, 25000),
......
...@@ -510,7 +510,7 @@ static const struct regulator_ops axp20x_ops_sw = { ...@@ -510,7 +510,7 @@ static const struct regulator_ops axp20x_ops_sw = {
.is_enabled = regulator_is_enabled_regmap, .is_enabled = regulator_is_enabled_regmap,
}; };
static const struct regulator_linear_range axp20x_ldo4_ranges[] = { static const struct linear_range axp20x_ldo4_ranges[] = {
REGULATOR_LINEAR_RANGE(1250000, REGULATOR_LINEAR_RANGE(1250000,
AXP20X_LDO4_V_OUT_1250mV_START, AXP20X_LDO4_V_OUT_1250mV_START,
AXP20X_LDO4_V_OUT_1250mV_END, AXP20X_LDO4_V_OUT_1250mV_END,
...@@ -638,7 +638,7 @@ static const struct regulator_desc axp22x_drivevbus_regulator = { ...@@ -638,7 +638,7 @@ static const struct regulator_desc axp22x_drivevbus_regulator = {
}; };
/* DCDC ranges shared with AXP813 */ /* DCDC ranges shared with AXP813 */
static const struct regulator_linear_range axp803_dcdc234_ranges[] = { static const struct linear_range axp803_dcdc234_ranges[] = {
REGULATOR_LINEAR_RANGE(500000, REGULATOR_LINEAR_RANGE(500000,
AXP803_DCDC234_500mV_START, AXP803_DCDC234_500mV_START,
AXP803_DCDC234_500mV_END, AXP803_DCDC234_500mV_END,
...@@ -649,7 +649,7 @@ static const struct regulator_linear_range axp803_dcdc234_ranges[] = { ...@@ -649,7 +649,7 @@ static const struct regulator_linear_range axp803_dcdc234_ranges[] = {
20000), 20000),
}; };
static const struct regulator_linear_range axp803_dcdc5_ranges[] = { static const struct linear_range axp803_dcdc5_ranges[] = {
REGULATOR_LINEAR_RANGE(800000, REGULATOR_LINEAR_RANGE(800000,
AXP803_DCDC5_800mV_START, AXP803_DCDC5_800mV_START,
AXP803_DCDC5_800mV_END, AXP803_DCDC5_800mV_END,
...@@ -660,7 +660,7 @@ static const struct regulator_linear_range axp803_dcdc5_ranges[] = { ...@@ -660,7 +660,7 @@ static const struct regulator_linear_range axp803_dcdc5_ranges[] = {
20000), 20000),
}; };
static const struct regulator_linear_range axp803_dcdc6_ranges[] = { static const struct linear_range axp803_dcdc6_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, REGULATOR_LINEAR_RANGE(600000,
AXP803_DCDC6_600mV_START, AXP803_DCDC6_600mV_START,
AXP803_DCDC6_600mV_END, AXP803_DCDC6_600mV_END,
...@@ -672,7 +672,7 @@ static const struct regulator_linear_range axp803_dcdc6_ranges[] = { ...@@ -672,7 +672,7 @@ static const struct regulator_linear_range axp803_dcdc6_ranges[] = {
}; };
/* AXP806's CLDO2 and AXP809's DLDO1 share the same range */ /* AXP806's CLDO2 and AXP809's DLDO1 share the same range */
static const struct regulator_linear_range axp803_dldo2_ranges[] = { static const struct linear_range axp803_dldo2_ranges[] = {
REGULATOR_LINEAR_RANGE(700000, REGULATOR_LINEAR_RANGE(700000,
AXP803_DLDO2_700mV_START, AXP803_DLDO2_700mV_START,
AXP803_DLDO2_700mV_END, AXP803_DLDO2_700mV_END,
...@@ -758,7 +758,7 @@ static const struct regulator_desc axp803_regulators[] = { ...@@ -758,7 +758,7 @@ static const struct regulator_desc axp803_regulators[] = {
AXP_DESC_FIXED(AXP803, RTC_LDO, "rtc-ldo", "ips", 3000), AXP_DESC_FIXED(AXP803, RTC_LDO, "rtc-ldo", "ips", 3000),
}; };
static const struct regulator_linear_range axp806_dcdca_ranges[] = { static const struct linear_range axp806_dcdca_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, REGULATOR_LINEAR_RANGE(600000,
AXP806_DCDCA_600mV_START, AXP806_DCDCA_600mV_START,
AXP806_DCDCA_600mV_END, AXP806_DCDCA_600mV_END,
...@@ -769,7 +769,7 @@ static const struct regulator_linear_range axp806_dcdca_ranges[] = { ...@@ -769,7 +769,7 @@ static const struct regulator_linear_range axp806_dcdca_ranges[] = {
20000), 20000),
}; };
static const struct regulator_linear_range axp806_dcdcd_ranges[] = { static const struct linear_range axp806_dcdcd_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, REGULATOR_LINEAR_RANGE(600000,
AXP806_DCDCD_600mV_START, AXP806_DCDCD_600mV_START,
AXP806_DCDCD_600mV_END, AXP806_DCDCD_600mV_END,
...@@ -834,7 +834,7 @@ static const struct regulator_desc axp806_regulators[] = { ...@@ -834,7 +834,7 @@ static const struct regulator_desc axp806_regulators[] = {
AXP806_PWR_OUT_CTRL2, AXP806_PWR_OUT_SW_MASK), AXP806_PWR_OUT_CTRL2, AXP806_PWR_OUT_SW_MASK),
}; };
static const struct regulator_linear_range axp809_dcdc4_ranges[] = { static const struct linear_range axp809_dcdc4_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, REGULATOR_LINEAR_RANGE(600000,
AXP809_DCDC4_600mV_START, AXP809_DCDC4_600mV_START,
AXP809_DCDC4_600mV_END, AXP809_DCDC4_600mV_END,
......
...@@ -116,14 +116,14 @@ static const unsigned int ldo_vbus[] = { ...@@ -116,14 +116,14 @@ static const unsigned int ldo_vbus[] = {
}; };
/* DCDC group CSR: supported voltages in microvolts */ /* DCDC group CSR: supported voltages in microvolts */
static const struct regulator_linear_range dcdc_csr_ranges[] = { static const struct linear_range dcdc_csr_ranges[] = {
REGULATOR_LINEAR_RANGE(860000, 2, 50, 10000), REGULATOR_LINEAR_RANGE(860000, 2, 50, 10000),
REGULATOR_LINEAR_RANGE(1360000, 51, 55, 20000), REGULATOR_LINEAR_RANGE(1360000, 51, 55, 20000),
REGULATOR_LINEAR_RANGE(900000, 56, 63, 0), REGULATOR_LINEAR_RANGE(900000, 56, 63, 0),
}; };
/* DCDC group IOSR1: supported voltages in microvolts */ /* DCDC group IOSR1: supported voltages in microvolts */
static const struct regulator_linear_range dcdc_iosr1_ranges[] = { static const struct linear_range dcdc_iosr1_ranges[] = {
REGULATOR_LINEAR_RANGE(860000, 2, 51, 10000), REGULATOR_LINEAR_RANGE(860000, 2, 51, 10000),
REGULATOR_LINEAR_RANGE(1500000, 52, 52, 0), REGULATOR_LINEAR_RANGE(1500000, 52, 52, 0),
REGULATOR_LINEAR_RANGE(1800000, 53, 53, 0), REGULATOR_LINEAR_RANGE(1800000, 53, 53, 0),
...@@ -131,7 +131,7 @@ static const struct regulator_linear_range dcdc_iosr1_ranges[] = { ...@@ -131,7 +131,7 @@ static const struct regulator_linear_range dcdc_iosr1_ranges[] = {
}; };
/* DCDC group SDSR1: supported voltages in microvolts */ /* DCDC group SDSR1: supported voltages in microvolts */
static const struct regulator_linear_range dcdc_sdsr1_ranges[] = { static const struct linear_range dcdc_sdsr1_ranges[] = {
REGULATOR_LINEAR_RANGE(860000, 2, 50, 10000), REGULATOR_LINEAR_RANGE(860000, 2, 50, 10000),
REGULATOR_LINEAR_RANGE(1340000, 51, 51, 0), REGULATOR_LINEAR_RANGE(1340000, 51, 51, 0),
REGULATOR_LINEAR_RANGE(900000, 52, 63, 0), REGULATOR_LINEAR_RANGE(900000, 52, 63, 0),
...@@ -143,7 +143,7 @@ struct bcm590xx_info { ...@@ -143,7 +143,7 @@ struct bcm590xx_info {
u8 n_voltages; u8 n_voltages;
const unsigned int *volt_table; const unsigned int *volt_table;
u8 n_linear_ranges; u8 n_linear_ranges;
const struct regulator_linear_range *linear_ranges; const struct linear_range *linear_ranges;
}; };
#define BCM590XX_REG_TABLE(_name, _table) \ #define BCM590XX_REG_TABLE(_name, _table) \
......
...@@ -20,22 +20,22 @@ ...@@ -20,22 +20,22 @@
#define BUCK_RAMPRATE_125MV 1 #define BUCK_RAMPRATE_125MV 1
#define BUCK_RAMP_MAX 250 #define BUCK_RAMP_MAX 250
static const struct regulator_linear_range bd70528_buck1_volts[] = { static const struct linear_range bd70528_buck1_volts[] = {
REGULATOR_LINEAR_RANGE(1200000, 0x00, 0x1, 600000), REGULATOR_LINEAR_RANGE(1200000, 0x00, 0x1, 600000),
REGULATOR_LINEAR_RANGE(2750000, 0x2, 0xf, 50000), REGULATOR_LINEAR_RANGE(2750000, 0x2, 0xf, 50000),
}; };
static const struct regulator_linear_range bd70528_buck2_volts[] = { static const struct linear_range bd70528_buck2_volts[] = {
REGULATOR_LINEAR_RANGE(1200000, 0x00, 0x1, 300000), REGULATOR_LINEAR_RANGE(1200000, 0x00, 0x1, 300000),
REGULATOR_LINEAR_RANGE(1550000, 0x2, 0xd, 50000), REGULATOR_LINEAR_RANGE(1550000, 0x2, 0xd, 50000),
REGULATOR_LINEAR_RANGE(3000000, 0xe, 0xf, 300000), REGULATOR_LINEAR_RANGE(3000000, 0xe, 0xf, 300000),
}; };
static const struct regulator_linear_range bd70528_buck3_volts[] = { static const struct linear_range bd70528_buck3_volts[] = {
REGULATOR_LINEAR_RANGE(800000, 0x00, 0xd, 50000), REGULATOR_LINEAR_RANGE(800000, 0x00, 0xd, 50000),
REGULATOR_LINEAR_RANGE(1800000, 0xe, 0xf, 0), REGULATOR_LINEAR_RANGE(1800000, 0xe, 0xf, 0),
}; };
/* All LDOs have same voltage ranges */ /* All LDOs have same voltage ranges */
static const struct regulator_linear_range bd70528_ldo_volts[] = { static const struct linear_range bd70528_ldo_volts[] = {
REGULATOR_LINEAR_RANGE(1650000, 0x0, 0x07, 50000), REGULATOR_LINEAR_RANGE(1650000, 0x0, 0x07, 50000),
REGULATOR_LINEAR_RANGE(2100000, 0x8, 0x0f, 100000), REGULATOR_LINEAR_RANGE(2100000, 0x8, 0x0f, 100000),
REGULATOR_LINEAR_RANGE(2850000, 0x10, 0x19, 50000), REGULATOR_LINEAR_RANGE(2850000, 0x10, 0x19, 50000),
......
...@@ -65,27 +65,27 @@ static const struct reg_init buck7_inits[] = { ...@@ -65,27 +65,27 @@ static const struct reg_init buck7_inits[] = {
}, },
}; };
static const struct regulator_linear_range bd71828_buck1267_volts[] = { static const struct linear_range bd71828_buck1267_volts[] = {
REGULATOR_LINEAR_RANGE(500000, 0x00, 0xef, 6250), REGULATOR_LINEAR_RANGE(500000, 0x00, 0xef, 6250),
REGULATOR_LINEAR_RANGE(2000000, 0xf0, 0xff, 0), REGULATOR_LINEAR_RANGE(2000000, 0xf0, 0xff, 0),
}; };
static const struct regulator_linear_range bd71828_buck3_volts[] = { static const struct linear_range bd71828_buck3_volts[] = {
REGULATOR_LINEAR_RANGE(1200000, 0x00, 0x0f, 50000), REGULATOR_LINEAR_RANGE(1200000, 0x00, 0x0f, 50000),
REGULATOR_LINEAR_RANGE(2000000, 0x10, 0x1f, 0), REGULATOR_LINEAR_RANGE(2000000, 0x10, 0x1f, 0),
}; };
static const struct regulator_linear_range bd71828_buck4_volts[] = { static const struct linear_range bd71828_buck4_volts[] = {
REGULATOR_LINEAR_RANGE(1000000, 0x00, 0x1f, 25000), REGULATOR_LINEAR_RANGE(1000000, 0x00, 0x1f, 25000),
REGULATOR_LINEAR_RANGE(1800000, 0x20, 0x3f, 0), REGULATOR_LINEAR_RANGE(1800000, 0x20, 0x3f, 0),
}; };
static const struct regulator_linear_range bd71828_buck5_volts[] = { static const struct linear_range bd71828_buck5_volts[] = {
REGULATOR_LINEAR_RANGE(2500000, 0x00, 0x0f, 50000), REGULATOR_LINEAR_RANGE(2500000, 0x00, 0x0f, 50000),
REGULATOR_LINEAR_RANGE(3300000, 0x10, 0x1f, 0), REGULATOR_LINEAR_RANGE(3300000, 0x10, 0x1f, 0),
}; };
static const struct regulator_linear_range bd71828_ldo_volts[] = { static const struct linear_range bd71828_ldo_volts[] = {
REGULATOR_LINEAR_RANGE(800000, 0x00, 0x31, 50000), REGULATOR_LINEAR_RANGE(800000, 0x00, 0x31, 50000),
REGULATOR_LINEAR_RANGE(3300000, 0x32, 0x3f, 0), REGULATOR_LINEAR_RANGE(3300000, 0x32, 0x3f, 0),
}; };
......
...@@ -152,7 +152,7 @@ static const struct regulator_ops bd718xx_dvs_buck_regulator_ops = { ...@@ -152,7 +152,7 @@ static const struct regulator_ops bd718xx_dvs_buck_regulator_ops = {
* BD71847 BUCK1/2 * BD71847 BUCK1/2
* 0.70 to 1.30V (10mV step) * 0.70 to 1.30V (10mV step)
*/ */
static const struct regulator_linear_range bd718xx_dvs_buck_volts[] = { static const struct linear_range bd718xx_dvs_buck_volts[] = {
REGULATOR_LINEAR_RANGE(700000, 0x00, 0x3C, 10000), REGULATOR_LINEAR_RANGE(700000, 0x00, 0x3C, 10000),
REGULATOR_LINEAR_RANGE(1300000, 0x3D, 0x3F, 0), REGULATOR_LINEAR_RANGE(1300000, 0x3D, 0x3F, 0),
}; };
...@@ -163,7 +163,7 @@ static const struct regulator_linear_range bd718xx_dvs_buck_volts[] = { ...@@ -163,7 +163,7 @@ static const struct regulator_linear_range bd718xx_dvs_buck_volts[] = {
* and * and
* 0.675 to 1.325 (range 1) * 0.675 to 1.325 (range 1)
*/ */
static const struct regulator_linear_range bd71837_buck5_volts[] = { static const struct linear_range bd71837_buck5_volts[] = {
/* Ranges when VOLT_SEL bit is 0 */ /* Ranges when VOLT_SEL bit is 0 */
REGULATOR_LINEAR_RANGE(700000, 0x00, 0x03, 100000), REGULATOR_LINEAR_RANGE(700000, 0x00, 0x03, 100000),
REGULATOR_LINEAR_RANGE(1050000, 0x04, 0x05, 50000), REGULATOR_LINEAR_RANGE(1050000, 0x04, 0x05, 50000),
...@@ -185,7 +185,7 @@ static const unsigned int bd71837_buck5_volt_range_sel[] = { ...@@ -185,7 +185,7 @@ static const unsigned int bd71837_buck5_volt_range_sel[] = {
/* /*
* BD71847 BUCK3 * BD71847 BUCK3
*/ */
static const struct regulator_linear_range bd71847_buck3_volts[] = { static const struct linear_range bd71847_buck3_volts[] = {
/* Ranges when VOLT_SEL bits are 00 */ /* Ranges when VOLT_SEL bits are 00 */
REGULATOR_LINEAR_RANGE(700000, 0x00, 0x03, 100000), REGULATOR_LINEAR_RANGE(700000, 0x00, 0x03, 100000),
REGULATOR_LINEAR_RANGE(1050000, 0x04, 0x05, 50000), REGULATOR_LINEAR_RANGE(1050000, 0x04, 0x05, 50000),
...@@ -202,7 +202,7 @@ static const unsigned int bd71847_buck3_volt_range_sel[] = { ...@@ -202,7 +202,7 @@ static const unsigned int bd71847_buck3_volt_range_sel[] = {
0x0, 0x0, 0x0, 0x40, 0x80, 0x80, 0x80 0x0, 0x0, 0x0, 0x40, 0x80, 0x80, 0x80
}; };
static const struct regulator_linear_range bd71847_buck4_volts[] = { static const struct linear_range bd71847_buck4_volts[] = {
REGULATOR_LINEAR_RANGE(3000000, 0x00, 0x03, 100000), REGULATOR_LINEAR_RANGE(3000000, 0x00, 0x03, 100000),
REGULATOR_LINEAR_RANGE(2600000, 0x00, 0x03, 100000), REGULATOR_LINEAR_RANGE(2600000, 0x00, 0x03, 100000),
}; };
...@@ -213,7 +213,7 @@ static const unsigned int bd71847_buck4_volt_range_sel[] = { 0x0, 0x40 }; ...@@ -213,7 +213,7 @@ static const unsigned int bd71847_buck4_volt_range_sel[] = { 0x0, 0x40 };
* BUCK6 * BUCK6
* 3.0V to 3.3V (step 100mV) * 3.0V to 3.3V (step 100mV)
*/ */
static const struct regulator_linear_range bd71837_buck6_volts[] = { static const struct linear_range bd71837_buck6_volts[] = {
REGULATOR_LINEAR_RANGE(3000000, 0x00, 0x03, 100000), REGULATOR_LINEAR_RANGE(3000000, 0x00, 0x03, 100000),
}; };
...@@ -237,7 +237,7 @@ static const unsigned int bd718xx_3rd_nodvs_buck_volts[] = { ...@@ -237,7 +237,7 @@ static const unsigned int bd718xx_3rd_nodvs_buck_volts[] = {
* BUCK8 * BUCK8
* 0.8V to 1.40V (step 10mV) * 0.8V to 1.40V (step 10mV)
*/ */
static const struct regulator_linear_range bd718xx_4th_nodvs_buck_volts[] = { static const struct linear_range bd718xx_4th_nodvs_buck_volts[] = {
REGULATOR_LINEAR_RANGE(800000, 0x00, 0x3C, 10000), REGULATOR_LINEAR_RANGE(800000, 0x00, 0x3C, 10000),
}; };
...@@ -245,7 +245,7 @@ static const struct regulator_linear_range bd718xx_4th_nodvs_buck_volts[] = { ...@@ -245,7 +245,7 @@ static const struct regulator_linear_range bd718xx_4th_nodvs_buck_volts[] = {
* LDO1 * LDO1
* 3.0 to 3.3V (100mV step) * 3.0 to 3.3V (100mV step)
*/ */
static const struct regulator_linear_range bd718xx_ldo1_volts[] = { static const struct linear_range bd718xx_ldo1_volts[] = {
REGULATOR_LINEAR_RANGE(3000000, 0x00, 0x03, 100000), REGULATOR_LINEAR_RANGE(3000000, 0x00, 0x03, 100000),
REGULATOR_LINEAR_RANGE(1600000, 0x00, 0x03, 100000), REGULATOR_LINEAR_RANGE(1600000, 0x00, 0x03, 100000),
}; };
...@@ -264,7 +264,7 @@ static const unsigned int ldo_2_volts[] = { ...@@ -264,7 +264,7 @@ static const unsigned int ldo_2_volts[] = {
* LDO3 * LDO3
* 1.8 to 3.3V (100mV step) * 1.8 to 3.3V (100mV step)
*/ */
static const struct regulator_linear_range bd718xx_ldo3_volts[] = { static const struct linear_range bd718xx_ldo3_volts[] = {
REGULATOR_LINEAR_RANGE(1800000, 0x00, 0x0F, 100000), REGULATOR_LINEAR_RANGE(1800000, 0x00, 0x0F, 100000),
}; };
...@@ -272,7 +272,7 @@ static const struct regulator_linear_range bd718xx_ldo3_volts[] = { ...@@ -272,7 +272,7 @@ static const struct regulator_linear_range bd718xx_ldo3_volts[] = {
* LDO4 * LDO4
* 0.9 to 1.8V (100mV step) * 0.9 to 1.8V (100mV step)
*/ */
static const struct regulator_linear_range bd718xx_ldo4_volts[] = { static const struct linear_range bd718xx_ldo4_volts[] = {
REGULATOR_LINEAR_RANGE(900000, 0x00, 0x09, 100000), REGULATOR_LINEAR_RANGE(900000, 0x00, 0x09, 100000),
}; };
...@@ -280,7 +280,7 @@ static const struct regulator_linear_range bd718xx_ldo4_volts[] = { ...@@ -280,7 +280,7 @@ static const struct regulator_linear_range bd718xx_ldo4_volts[] = {
* LDO5 for BD71837 * LDO5 for BD71837
* 1.8 to 3.3V (100mV step) * 1.8 to 3.3V (100mV step)
*/ */
static const struct regulator_linear_range bd71837_ldo5_volts[] = { static const struct linear_range bd71837_ldo5_volts[] = {
REGULATOR_LINEAR_RANGE(1800000, 0x00, 0x0F, 100000), REGULATOR_LINEAR_RANGE(1800000, 0x00, 0x0F, 100000),
}; };
...@@ -288,7 +288,7 @@ static const struct regulator_linear_range bd71837_ldo5_volts[] = { ...@@ -288,7 +288,7 @@ static const struct regulator_linear_range bd71837_ldo5_volts[] = {
* LDO5 for BD71837 * LDO5 for BD71837
* 1.8 to 3.3V (100mV step) * 1.8 to 3.3V (100mV step)
*/ */
static const struct regulator_linear_range bd71847_ldo5_volts[] = { static const struct linear_range bd71847_ldo5_volts[] = {
REGULATOR_LINEAR_RANGE(1800000, 0x00, 0x0F, 100000), REGULATOR_LINEAR_RANGE(1800000, 0x00, 0x0F, 100000),
REGULATOR_LINEAR_RANGE(800000, 0x00, 0x0F, 100000), REGULATOR_LINEAR_RANGE(800000, 0x00, 0x0F, 100000),
}; };
...@@ -299,7 +299,7 @@ static const unsigned int bd71847_ldo5_volt_range_sel[] = { 0x0, 0x20 }; ...@@ -299,7 +299,7 @@ static const unsigned int bd71847_ldo5_volt_range_sel[] = { 0x0, 0x20 };
* LDO6 * LDO6
* 0.9 to 1.8V (100mV step) * 0.9 to 1.8V (100mV step)
*/ */
static const struct regulator_linear_range bd718xx_ldo6_volts[] = { static const struct linear_range bd718xx_ldo6_volts[] = {
REGULATOR_LINEAR_RANGE(900000, 0x00, 0x09, 100000), REGULATOR_LINEAR_RANGE(900000, 0x00, 0x09, 100000),
}; };
...@@ -307,7 +307,7 @@ static const struct regulator_linear_range bd718xx_ldo6_volts[] = { ...@@ -307,7 +307,7 @@ static const struct regulator_linear_range bd718xx_ldo6_volts[] = {
* LDO7 * LDO7
* 1.8 to 3.3V (100mV step) * 1.8 to 3.3V (100mV step)
*/ */
static const struct regulator_linear_range bd71837_ldo7_volts[] = { static const struct linear_range bd71837_ldo7_volts[] = {
REGULATOR_LINEAR_RANGE(1800000, 0x00, 0x0F, 100000), REGULATOR_LINEAR_RANGE(1800000, 0x00, 0x0F, 100000),
}; };
......
...@@ -248,7 +248,7 @@ static int da9034_set_dvc_voltage_sel(struct regulator_dev *rdev, ...@@ -248,7 +248,7 @@ static int da9034_set_dvc_voltage_sel(struct regulator_dev *rdev,
return ret; return ret;
} }
static const struct regulator_linear_range da9034_ldo12_ranges[] = { static const struct linear_range da9034_ldo12_ranges[] = {
REGULATOR_LINEAR_RANGE(1700000, 0, 7, 50000), REGULATOR_LINEAR_RANGE(1700000, 0, 7, 50000),
REGULATOR_LINEAR_RANGE(2700000, 8, 15, 50000), REGULATOR_LINEAR_RANGE(2700000, 8, 15, 50000),
}; };
......
...@@ -131,10 +131,11 @@ int regulator_get_voltage_sel_pickable_regmap(struct regulator_dev *rdev) ...@@ -131,10 +131,11 @@ int regulator_get_voltage_sel_pickable_regmap(struct regulator_dev *rdev)
unsigned int r_val; unsigned int r_val;
int range; int range;
unsigned int val; unsigned int val;
int ret, i; int ret;
unsigned int voltages_in_range = 0; unsigned int voltages = 0;
const struct linear_range *r = rdev->desc->linear_ranges;
if (!rdev->desc->linear_ranges) if (!r)
return -EINVAL; return -EINVAL;
ret = regmap_read(rdev->regmap, rdev->desc->vsel_reg, &val); ret = regmap_read(rdev->regmap, rdev->desc->vsel_reg, &val);
...@@ -152,11 +153,9 @@ int regulator_get_voltage_sel_pickable_regmap(struct regulator_dev *rdev) ...@@ -152,11 +153,9 @@ int regulator_get_voltage_sel_pickable_regmap(struct regulator_dev *rdev)
if (range < 0) if (range < 0)
return -EINVAL; return -EINVAL;
for (i = 0; i < range; i++) voltages = linear_range_values_in_range_array(r, range);
voltages_in_range += (rdev->desc->linear_ranges[i].max_sel -
rdev->desc->linear_ranges[i].min_sel) + 1;
return val + voltages_in_range; return val + voltages;
} }
EXPORT_SYMBOL_GPL(regulator_get_voltage_sel_pickable_regmap); EXPORT_SYMBOL_GPL(regulator_get_voltage_sel_pickable_regmap);
...@@ -179,8 +178,11 @@ int regulator_set_voltage_sel_pickable_regmap(struct regulator_dev *rdev, ...@@ -179,8 +178,11 @@ int regulator_set_voltage_sel_pickable_regmap(struct regulator_dev *rdev,
unsigned int voltages_in_range = 0; unsigned int voltages_in_range = 0;
for (i = 0; i < rdev->desc->n_linear_ranges; i++) { for (i = 0; i < rdev->desc->n_linear_ranges; i++) {
voltages_in_range = (rdev->desc->linear_ranges[i].max_sel - const struct linear_range *r;
rdev->desc->linear_ranges[i].min_sel) + 1;
r = &rdev->desc->linear_ranges[i];
voltages_in_range = linear_range_values_in_range(r);
if (sel < voltages_in_range) if (sel < voltages_in_range)
break; break;
sel -= voltages_in_range; sel -= voltages_in_range;
...@@ -405,8 +407,10 @@ EXPORT_SYMBOL_GPL(regulator_map_voltage_linear); ...@@ -405,8 +407,10 @@ EXPORT_SYMBOL_GPL(regulator_map_voltage_linear);
int regulator_map_voltage_linear_range(struct regulator_dev *rdev, int regulator_map_voltage_linear_range(struct regulator_dev *rdev,
int min_uV, int max_uV) int min_uV, int max_uV)
{ {
const struct regulator_linear_range *range; const struct linear_range *range;
int ret = -EINVAL; int ret = -EINVAL;
unsigned int sel;
bool found;
int voltage, i; int voltage, i;
if (!rdev->desc->n_linear_ranges) { if (!rdev->desc->n_linear_ranges) {
...@@ -415,35 +419,19 @@ int regulator_map_voltage_linear_range(struct regulator_dev *rdev, ...@@ -415,35 +419,19 @@ int regulator_map_voltage_linear_range(struct regulator_dev *rdev,
} }
for (i = 0; i < rdev->desc->n_linear_ranges; i++) { for (i = 0; i < rdev->desc->n_linear_ranges; i++) {
int linear_max_uV;
range = &rdev->desc->linear_ranges[i]; range = &rdev->desc->linear_ranges[i];
linear_max_uV = range->min_uV +
(range->max_sel - range->min_sel) * range->uV_step;
if (!(min_uV <= linear_max_uV && max_uV >= range->min_uV)) ret = linear_range_get_selector_high(range, min_uV, &sel,
&found);
if (ret)
continue; continue;
ret = sel;
if (min_uV <= range->min_uV)
min_uV = range->min_uV;
/* range->uV_step == 0 means fixed voltage range */
if (range->uV_step == 0) {
ret = 0;
} else {
ret = DIV_ROUND_UP(min_uV - range->min_uV,
range->uV_step);
if (ret < 0)
return ret;
}
ret += range->min_sel;
/* /*
* Map back into a voltage to verify we're still in bounds. * Map back into a voltage to verify we're still in bounds.
* If we are not, then continue checking rest of the ranges. * If we are not, then continue checking rest of the ranges.
*/ */
voltage = rdev->desc->ops->list_voltage(rdev, ret); voltage = rdev->desc->ops->list_voltage(rdev, sel);
if (voltage >= min_uV && voltage <= max_uV) if (voltage >= min_uV && voltage <= max_uV)
break; break;
} }
...@@ -468,7 +456,7 @@ EXPORT_SYMBOL_GPL(regulator_map_voltage_linear_range); ...@@ -468,7 +456,7 @@ EXPORT_SYMBOL_GPL(regulator_map_voltage_linear_range);
int regulator_map_voltage_pickable_linear_range(struct regulator_dev *rdev, int regulator_map_voltage_pickable_linear_range(struct regulator_dev *rdev,
int min_uV, int max_uV) int min_uV, int max_uV)
{ {
const struct regulator_linear_range *range; const struct linear_range *range;
int ret = -EINVAL; int ret = -EINVAL;
int voltage, i; int voltage, i;
unsigned int selector = 0; unsigned int selector = 0;
...@@ -480,30 +468,25 @@ int regulator_map_voltage_pickable_linear_range(struct regulator_dev *rdev, ...@@ -480,30 +468,25 @@ int regulator_map_voltage_pickable_linear_range(struct regulator_dev *rdev,
for (i = 0; i < rdev->desc->n_linear_ranges; i++) { for (i = 0; i < rdev->desc->n_linear_ranges; i++) {
int linear_max_uV; int linear_max_uV;
bool found;
unsigned int sel;
range = &rdev->desc->linear_ranges[i]; range = &rdev->desc->linear_ranges[i];
linear_max_uV = range->min_uV + linear_max_uV = linear_range_get_max_value(range);
(range->max_sel - range->min_sel) * range->uV_step;
if (!(min_uV <= linear_max_uV && max_uV >= range->min_uV)) { if (!(min_uV <= linear_max_uV && max_uV >= range->min)) {
selector += (range->max_sel - range->min_sel + 1); selector += linear_range_values_in_range(range);
continue; continue;
} }
if (min_uV <= range->min_uV) ret = linear_range_get_selector_high(range, min_uV, &sel,
min_uV = range->min_uV; &found);
if (ret) {
/* range->uV_step == 0 means fixed voltage range */ selector += linear_range_values_in_range(range);
if (range->uV_step == 0) { continue;
ret = 0;
} else {
ret = DIV_ROUND_UP(min_uV - range->min_uV,
range->uV_step);
if (ret < 0)
return ret;
} }
ret += selector; ret = selector + sel;
voltage = rdev->desc->ops->list_voltage(rdev, ret); voltage = rdev->desc->ops->list_voltage(rdev, ret);
...@@ -513,7 +496,7 @@ int regulator_map_voltage_pickable_linear_range(struct regulator_dev *rdev, ...@@ -513,7 +496,7 @@ int regulator_map_voltage_pickable_linear_range(struct regulator_dev *rdev,
* exit but retry until we have checked all ranges. * exit but retry until we have checked all ranges.
*/ */
if (voltage < min_uV || voltage > max_uV) if (voltage < min_uV || voltage > max_uV)
selector += (range->max_sel - range->min_sel + 1); selector += linear_range_values_in_range(range);
else else
break; break;
} }
...@@ -561,7 +544,7 @@ EXPORT_SYMBOL_GPL(regulator_list_voltage_linear); ...@@ -561,7 +544,7 @@ EXPORT_SYMBOL_GPL(regulator_list_voltage_linear);
int regulator_list_voltage_pickable_linear_range(struct regulator_dev *rdev, int regulator_list_voltage_pickable_linear_range(struct regulator_dev *rdev,
unsigned int selector) unsigned int selector)
{ {
const struct regulator_linear_range *range; const struct linear_range *range;
int i; int i;
unsigned int all_sels = 0; unsigned int all_sels = 0;
...@@ -571,18 +554,28 @@ int regulator_list_voltage_pickable_linear_range(struct regulator_dev *rdev, ...@@ -571,18 +554,28 @@ int regulator_list_voltage_pickable_linear_range(struct regulator_dev *rdev,
} }
for (i = 0; i < rdev->desc->n_linear_ranges; i++) { for (i = 0; i < rdev->desc->n_linear_ranges; i++) {
unsigned int sels_in_range; unsigned int sel_indexes;
range = &rdev->desc->linear_ranges[i]; range = &rdev->desc->linear_ranges[i];
sels_in_range = range->max_sel - range->min_sel; sel_indexes = linear_range_values_in_range(range) - 1;
if (all_sels + sels_in_range >= selector) { if (all_sels + sel_indexes >= selector) {
selector -= all_sels; selector -= all_sels;
return range->min_uV + (range->uV_step * selector); /*
* As we see here, pickable ranges work only as
* long as the first selector for each pickable
* range is 0, and the each subsequent range for
* this 'pick' follow immediately at next unused
* selector (Eg. there is no gaps between ranges).
* I think this is fine but it probably should be
* documented. OTOH, whole pickable range stuff
* might benefit from some documentation
*/
return range->min + (range->step * selector);
} }
all_sels += (sels_in_range + 1); all_sels += (sel_indexes + 1);
} }
return -EINVAL; return -EINVAL;
...@@ -604,27 +597,18 @@ EXPORT_SYMBOL_GPL(regulator_list_voltage_pickable_linear_range); ...@@ -604,27 +597,18 @@ EXPORT_SYMBOL_GPL(regulator_list_voltage_pickable_linear_range);
int regulator_desc_list_voltage_linear_range(const struct regulator_desc *desc, int regulator_desc_list_voltage_linear_range(const struct regulator_desc *desc,
unsigned int selector) unsigned int selector)
{ {
const struct regulator_linear_range *range; unsigned int val;
int i; int ret;
if (!desc->n_linear_ranges) {
BUG_ON(!desc->n_linear_ranges);
return -EINVAL;
}
for (i = 0; i < desc->n_linear_ranges; i++) {
range = &desc->linear_ranges[i];
if (!(selector >= range->min_sel &&
selector <= range->max_sel))
continue;
selector -= range->min_sel; BUG_ON(!desc->n_linear_ranges);
return range->min_uV + (range->uV_step * selector); ret = linear_range_get_value_array(desc->linear_ranges,
} desc->n_linear_ranges, selector,
&val);
if (ret)
return ret;
return -EINVAL; return val;
} }
EXPORT_SYMBOL_GPL(regulator_desc_list_voltage_linear_range); EXPORT_SYMBOL_GPL(regulator_desc_list_voltage_linear_range);
......
...@@ -87,7 +87,7 @@ static const unsigned int ldo_8_voltages[] = { ...@@ -87,7 +87,7 @@ static const unsigned int ldo_8_voltages[] = {
}; };
/* Ranges are sorted in ascending order. */ /* Ranges are sorted in ascending order. */
static const struct regulator_linear_range ldo_audio_volt_range[] = { static const struct linear_range ldo_audio_volt_range[] = {
REGULATOR_LINEAR_RANGE(2800000, 0, 3, 50000), REGULATOR_LINEAR_RANGE(2800000, 0, 3, 50000),
REGULATOR_LINEAR_RANGE(3000000, 4, 7, 100000), REGULATOR_LINEAR_RANGE(3000000, 4, 7, 100000),
}; };
...@@ -195,7 +195,7 @@ static const struct regulator_ops hi6421_buck345_ops; ...@@ -195,7 +195,7 @@ static const struct regulator_ops hi6421_buck345_ops;
* _id - LDO id name string * _id - LDO id name string
* _match - of match name string * _match - of match name string
* n_volt - number of votages available * n_volt - number of votages available
* volt_ranges - array of regulator_linear_range * volt_ranges - array of linear_range
* vstep - voltage increase in each linear step in uV * vstep - voltage increase in each linear step in uV
* vreg - voltage select register * vreg - voltage select register
* vmask - voltage select mask * vmask - voltage select mask
......
...@@ -36,7 +36,7 @@ static const struct regulator_ops lochnagar_micvdd_ops = { ...@@ -36,7 +36,7 @@ static const struct regulator_ops lochnagar_micvdd_ops = {
.set_voltage_sel = regulator_set_voltage_sel_regmap, .set_voltage_sel = regulator_set_voltage_sel_regmap,
}; };
static const struct regulator_linear_range lochnagar_micvdd_ranges[] = { static const struct linear_range lochnagar_micvdd_ranges[] = {
REGULATOR_LINEAR_RANGE(1000000, 0, 0xC, 50000), REGULATOR_LINEAR_RANGE(1000000, 0, 0xC, 50000),
REGULATOR_LINEAR_RANGE(1700000, 0xD, 0x1F, 100000), REGULATOR_LINEAR_RANGE(1700000, 0xD, 0x1F, 100000),
}; };
...@@ -97,7 +97,7 @@ static const struct regulator_ops lochnagar_vddcore_ops = { ...@@ -97,7 +97,7 @@ static const struct regulator_ops lochnagar_vddcore_ops = {
.set_voltage_sel = regulator_set_voltage_sel_regmap, .set_voltage_sel = regulator_set_voltage_sel_regmap,
}; };
static const struct regulator_linear_range lochnagar_vddcore_ranges[] = { static const struct linear_range lochnagar_vddcore_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, 0x8, 0x41, 12500), REGULATOR_LINEAR_RANGE(600000, 0x8, 0x41, 12500),
}; };
......
...@@ -54,14 +54,14 @@ struct lp873x_regulator { ...@@ -54,14 +54,14 @@ struct lp873x_regulator {
static const struct lp873x_regulator regulators[]; static const struct lp873x_regulator regulators[];
static const struct regulator_linear_range buck0_buck1_ranges[] = { static const struct linear_range buck0_buck1_ranges[] = {
REGULATOR_LINEAR_RANGE(0, 0x0, 0x13, 0), REGULATOR_LINEAR_RANGE(0, 0x0, 0x13, 0),
REGULATOR_LINEAR_RANGE(700000, 0x14, 0x17, 10000), REGULATOR_LINEAR_RANGE(700000, 0x14, 0x17, 10000),
REGULATOR_LINEAR_RANGE(735000, 0x18, 0x9d, 5000), REGULATOR_LINEAR_RANGE(735000, 0x18, 0x9d, 5000),
REGULATOR_LINEAR_RANGE(1420000, 0x9e, 0xff, 20000), REGULATOR_LINEAR_RANGE(1420000, 0x9e, 0xff, 20000),
}; };
static const struct regulator_linear_range ldo0_ldo1_ranges[] = { static const struct linear_range ldo0_ldo1_ranges[] = {
REGULATOR_LINEAR_RANGE(800000, 0x0, 0x19, 100000), REGULATOR_LINEAR_RANGE(800000, 0x0, 0x19, 100000),
}; };
......
...@@ -46,7 +46,7 @@ struct lp87565_regulator { ...@@ -46,7 +46,7 @@ struct lp87565_regulator {
static const struct lp87565_regulator regulators[]; static const struct lp87565_regulator regulators[];
static const struct regulator_linear_range buck0_1_2_3_ranges[] = { static const struct linear_range buck0_1_2_3_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, 0xA, 0x17, 10000), REGULATOR_LINEAR_RANGE(600000, 0xA, 0x17, 10000),
REGULATOR_LINEAR_RANGE(735000, 0x18, 0x9d, 5000), REGULATOR_LINEAR_RANGE(735000, 0x18, 0x9d, 5000),
REGULATOR_LINEAR_RANGE(1420000, 0x9e, 0xff, 20000), REGULATOR_LINEAR_RANGE(1420000, 0x9e, 0xff, 20000),
......
...@@ -92,7 +92,7 @@ struct lp8788_buck { ...@@ -92,7 +92,7 @@ struct lp8788_buck {
}; };
/* BUCK 1 ~ 4 voltage ranges */ /* BUCK 1 ~ 4 voltage ranges */
static const struct regulator_linear_range buck_volt_ranges[] = { static const struct linear_range buck_volt_ranges[] = {
REGULATOR_LINEAR_RANGE(500000, 0, 0, 0), REGULATOR_LINEAR_RANGE(500000, 0, 0, 0),
REGULATOR_LINEAR_RANGE(800000, 1, 25, 50000), REGULATOR_LINEAR_RANGE(800000, 1, 25, 50000),
}; };
......
...@@ -49,7 +49,7 @@ static const unsigned int max77651_sbb1_volt_range_sel[] = { ...@@ -49,7 +49,7 @@ static const unsigned int max77651_sbb1_volt_range_sel[] = {
0x0, 0x1, 0x2, 0x3 0x0, 0x1, 0x2, 0x3
}; };
static const struct regulator_linear_range max77651_sbb1_volt_ranges[] = { static const struct linear_range max77651_sbb1_volt_ranges[] = {
/* range index 0 */ /* range index 0 */
REGULATOR_LINEAR_RANGE(2400000, 0x00, 0x0f, 50000), REGULATOR_LINEAR_RANGE(2400000, 0x00, 0x0f, 50000),
/* range index 1 */ /* range index 1 */
......
...@@ -391,11 +391,11 @@ static const struct of_device_id mcp16502_ids[] = { ...@@ -391,11 +391,11 @@ static const struct of_device_id mcp16502_ids[] = {
}; };
MODULE_DEVICE_TABLE(of, mcp16502_ids); MODULE_DEVICE_TABLE(of, mcp16502_ids);
static const struct regulator_linear_range b1l12_ranges[] = { static const struct linear_range b1l12_ranges[] = {
REGULATOR_LINEAR_RANGE(1200000, VDD_LOW_SEL, VDD_HIGH_SEL, 50000), REGULATOR_LINEAR_RANGE(1200000, VDD_LOW_SEL, VDD_HIGH_SEL, 50000),
}; };
static const struct regulator_linear_range b234_ranges[] = { static const struct linear_range b234_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, VDD_LOW_SEL, VDD_HIGH_SEL, 25000), REGULATOR_LINEAR_RANGE(600000, VDD_LOW_SEL, VDD_HIGH_SEL, 25000),
}; };
......
...@@ -73,7 +73,7 @@ static int mp8859_get_voltage_sel(struct regulator_dev *rdev) ...@@ -73,7 +73,7 @@ static int mp8859_get_voltage_sel(struct regulator_dev *rdev)
return val; return val;
} }
static const struct regulator_linear_range mp8859_dcdc_ranges[] = { static const struct linear_range mp8859_dcdc_ranges[] = {
REGULATOR_LINEAR_RANGE(0, VOL_MIN_IDX, VOL_MAX_IDX, 10000), REGULATOR_LINEAR_RANGE(0, VOL_MIN_IDX, VOL_MAX_IDX, 10000),
}; };
......
...@@ -102,15 +102,15 @@ struct mt6323_regulator_info { ...@@ -102,15 +102,15 @@ struct mt6323_regulator_info {
.modeset_mask = _modeset_mask, \ .modeset_mask = _modeset_mask, \
} }
static const struct regulator_linear_range buck_volt_range1[] = { static const struct linear_range buck_volt_range1[] = {
REGULATOR_LINEAR_RANGE(700000, 0, 0x7f, 6250), REGULATOR_LINEAR_RANGE(700000, 0, 0x7f, 6250),
}; };
static const struct regulator_linear_range buck_volt_range2[] = { static const struct linear_range buck_volt_range2[] = {
REGULATOR_LINEAR_RANGE(1400000, 0, 0x7f, 12500), REGULATOR_LINEAR_RANGE(1400000, 0, 0x7f, 12500),
}; };
static const struct regulator_linear_range buck_volt_range3[] = { static const struct linear_range buck_volt_range3[] = {
REGULATOR_LINEAR_RANGE(500000, 0, 0x3f, 50000), REGULATOR_LINEAR_RANGE(500000, 0, 0x3f, 50000),
}; };
......
...@@ -137,19 +137,19 @@ struct mt6358_regulator_info { ...@@ -137,19 +137,19 @@ struct mt6358_regulator_info {
.qi = BIT(15), \ .qi = BIT(15), \
} }
static const struct regulator_linear_range buck_volt_range1[] = { static const struct linear_range buck_volt_range1[] = {
REGULATOR_LINEAR_RANGE(500000, 0, 0x7f, 6250), REGULATOR_LINEAR_RANGE(500000, 0, 0x7f, 6250),
}; };
static const struct regulator_linear_range buck_volt_range2[] = { static const struct linear_range buck_volt_range2[] = {
REGULATOR_LINEAR_RANGE(500000, 0, 0x7f, 12500), REGULATOR_LINEAR_RANGE(500000, 0, 0x7f, 12500),
}; };
static const struct regulator_linear_range buck_volt_range3[] = { static const struct linear_range buck_volt_range3[] = {
REGULATOR_LINEAR_RANGE(500000, 0, 0x3f, 50000), REGULATOR_LINEAR_RANGE(500000, 0, 0x3f, 50000),
}; };
static const struct regulator_linear_range buck_volt_range4[] = { static const struct linear_range buck_volt_range4[] = {
REGULATOR_LINEAR_RANGE(1000000, 0, 0x7f, 12500), REGULATOR_LINEAR_RANGE(1000000, 0, 0x7f, 12500),
}; };
......
...@@ -152,15 +152,15 @@ struct mt6380_regulator_info { ...@@ -152,15 +152,15 @@ struct mt6380_regulator_info {
.modeset_mask = _modeset_mask, \ .modeset_mask = _modeset_mask, \
} }
static const struct regulator_linear_range buck_volt_range1[] = { static const struct linear_range buck_volt_range1[] = {
REGULATOR_LINEAR_RANGE(600000, 0, 0xfe, 6250), REGULATOR_LINEAR_RANGE(600000, 0, 0xfe, 6250),
}; };
static const struct regulator_linear_range buck_volt_range2[] = { static const struct linear_range buck_volt_range2[] = {
REGULATOR_LINEAR_RANGE(600000, 0, 0xfe, 6250), REGULATOR_LINEAR_RANGE(600000, 0, 0xfe, 6250),
}; };
static const struct regulator_linear_range buck_volt_range3[] = { static const struct linear_range buck_volt_range3[] = {
REGULATOR_LINEAR_RANGE(1200000, 0, 0x3c, 25000), REGULATOR_LINEAR_RANGE(1200000, 0, 0x3c, 25000),
}; };
......
...@@ -102,15 +102,15 @@ struct mt6397_regulator_info { ...@@ -102,15 +102,15 @@ struct mt6397_regulator_info {
.qi = BIT(15), \ .qi = BIT(15), \
} }
static const struct regulator_linear_range buck_volt_range1[] = { static const struct linear_range buck_volt_range1[] = {
REGULATOR_LINEAR_RANGE(700000, 0, 0x7f, 6250), REGULATOR_LINEAR_RANGE(700000, 0, 0x7f, 6250),
}; };
static const struct regulator_linear_range buck_volt_range2[] = { static const struct linear_range buck_volt_range2[] = {
REGULATOR_LINEAR_RANGE(800000, 0, 0x7f, 6250), REGULATOR_LINEAR_RANGE(800000, 0, 0x7f, 6250),
}; };
static const struct regulator_linear_range buck_volt_range3[] = { static const struct linear_range buck_volt_range3[] = {
REGULATOR_LINEAR_RANGE(1500000, 0, 0x1f, 20000), REGULATOR_LINEAR_RANGE(1500000, 0, 0x1f, 20000),
}; };
......
...@@ -22,14 +22,14 @@ ...@@ -22,14 +22,14 @@
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/regulator/of_regulator.h> #include <linux/regulator/of_regulator.h>
static const struct regulator_linear_range smps_low_ranges[] = { static const struct linear_range smps_low_ranges[] = {
REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0), REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0),
REGULATOR_LINEAR_RANGE(500000, 0x1, 0x6, 0), REGULATOR_LINEAR_RANGE(500000, 0x1, 0x6, 0),
REGULATOR_LINEAR_RANGE(510000, 0x7, 0x79, 10000), REGULATOR_LINEAR_RANGE(510000, 0x7, 0x79, 10000),
REGULATOR_LINEAR_RANGE(1650000, 0x7A, 0x7f, 0), REGULATOR_LINEAR_RANGE(1650000, 0x7A, 0x7f, 0),
}; };
static const struct regulator_linear_range smps_high_ranges[] = { static const struct linear_range smps_high_ranges[] = {
REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0), REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0),
REGULATOR_LINEAR_RANGE(1000000, 0x1, 0x6, 0), REGULATOR_LINEAR_RANGE(1000000, 0x1, 0x6, 0),
REGULATOR_LINEAR_RANGE(1020000, 0x7, 0x79, 20000), REGULATOR_LINEAR_RANGE(1020000, 0x7, 0x79, 20000),
......
...@@ -86,7 +86,7 @@ enum rpmh_regulator_type { ...@@ -86,7 +86,7 @@ enum rpmh_regulator_type {
struct rpmh_vreg_hw_data { struct rpmh_vreg_hw_data {
enum rpmh_regulator_type regulator_type; enum rpmh_regulator_type regulator_type;
const struct regulator_ops *ops; const struct regulator_ops *ops;
const struct regulator_linear_range voltage_range; const struct linear_range voltage_range;
int n_voltages; int n_voltages;
int hpm_min_load_uA; int hpm_min_load_uA;
const int *pmic_mode_map; const int *pmic_mode_map;
......
...@@ -148,41 +148,41 @@ static const struct rpm_reg_parts rpm8960_ncp_parts = { ...@@ -148,41 +148,41 @@ static const struct rpm_reg_parts rpm8960_ncp_parts = {
/* /*
* Physically available PMIC regulator voltage ranges * Physically available PMIC regulator voltage ranges
*/ */
static const struct regulator_linear_range pldo_ranges[] = { static const struct linear_range pldo_ranges[] = {
REGULATOR_LINEAR_RANGE( 750000, 0, 59, 12500), REGULATOR_LINEAR_RANGE( 750000, 0, 59, 12500),
REGULATOR_LINEAR_RANGE(1500000, 60, 123, 25000), REGULATOR_LINEAR_RANGE(1500000, 60, 123, 25000),
REGULATOR_LINEAR_RANGE(3100000, 124, 160, 50000), REGULATOR_LINEAR_RANGE(3100000, 124, 160, 50000),
}; };
static const struct regulator_linear_range nldo_ranges[] = { static const struct linear_range nldo_ranges[] = {
REGULATOR_LINEAR_RANGE( 750000, 0, 63, 12500), REGULATOR_LINEAR_RANGE( 750000, 0, 63, 12500),
}; };
static const struct regulator_linear_range nldo1200_ranges[] = { static const struct linear_range nldo1200_ranges[] = {
REGULATOR_LINEAR_RANGE( 375000, 0, 59, 6250), REGULATOR_LINEAR_RANGE( 375000, 0, 59, 6250),
REGULATOR_LINEAR_RANGE( 750000, 60, 123, 12500), REGULATOR_LINEAR_RANGE( 750000, 60, 123, 12500),
}; };
static const struct regulator_linear_range smps_ranges[] = { static const struct linear_range smps_ranges[] = {
REGULATOR_LINEAR_RANGE( 375000, 0, 29, 12500), REGULATOR_LINEAR_RANGE( 375000, 0, 29, 12500),
REGULATOR_LINEAR_RANGE( 750000, 30, 89, 12500), REGULATOR_LINEAR_RANGE( 750000, 30, 89, 12500),
REGULATOR_LINEAR_RANGE(1500000, 90, 153, 25000), REGULATOR_LINEAR_RANGE(1500000, 90, 153, 25000),
}; };
static const struct regulator_linear_range ftsmps_ranges[] = { static const struct linear_range ftsmps_ranges[] = {
REGULATOR_LINEAR_RANGE( 350000, 0, 6, 50000), REGULATOR_LINEAR_RANGE( 350000, 0, 6, 50000),
REGULATOR_LINEAR_RANGE( 700000, 7, 63, 12500), REGULATOR_LINEAR_RANGE( 700000, 7, 63, 12500),
REGULATOR_LINEAR_RANGE(1500000, 64, 100, 50000), REGULATOR_LINEAR_RANGE(1500000, 64, 100, 50000),
}; };
static const struct regulator_linear_range smb208_ranges[] = { static const struct linear_range smb208_ranges[] = {
REGULATOR_LINEAR_RANGE( 375000, 0, 29, 12500), REGULATOR_LINEAR_RANGE( 375000, 0, 29, 12500),
REGULATOR_LINEAR_RANGE( 750000, 30, 89, 12500), REGULATOR_LINEAR_RANGE( 750000, 30, 89, 12500),
REGULATOR_LINEAR_RANGE(1500000, 90, 153, 25000), REGULATOR_LINEAR_RANGE(1500000, 90, 153, 25000),
REGULATOR_LINEAR_RANGE(3100000, 154, 234, 25000), REGULATOR_LINEAR_RANGE(3100000, 154, 234, 25000),
}; };
static const struct regulator_linear_range ncp_ranges[] = { static const struct linear_range ncp_ranges[] = {
REGULATOR_LINEAR_RANGE(1500000, 0, 31, 50000), REGULATOR_LINEAR_RANGE(1500000, 0, 31, 50000),
}; };
......
This diff is collapsed.
...@@ -165,14 +165,14 @@ static const int rk808_buck_config_regs[] = { ...@@ -165,14 +165,14 @@ static const int rk808_buck_config_regs[] = {
RK808_BUCK4_CONFIG_REG, RK808_BUCK4_CONFIG_REG,
}; };
static const struct regulator_linear_range rk808_ldo3_voltage_ranges[] = { static const struct linear_range rk808_ldo3_voltage_ranges[] = {
REGULATOR_LINEAR_RANGE(800000, 0, 13, 100000), REGULATOR_LINEAR_RANGE(800000, 0, 13, 100000),
REGULATOR_LINEAR_RANGE(2500000, 15, 15, 0), REGULATOR_LINEAR_RANGE(2500000, 15, 15, 0),
}; };
#define RK809_BUCK5_SEL_CNT (8) #define RK809_BUCK5_SEL_CNT (8)
static const struct regulator_linear_range rk809_buck5_voltage_ranges[] = { static const struct linear_range rk809_buck5_voltage_ranges[] = {
REGULATOR_LINEAR_RANGE(1500000, 0, 0, 0), REGULATOR_LINEAR_RANGE(1500000, 0, 0, 0),
REGULATOR_LINEAR_RANGE(1800000, 1, 3, 200000), REGULATOR_LINEAR_RANGE(1800000, 1, 3, 200000),
REGULATOR_LINEAR_RANGE(2800000, 4, 5, 200000), REGULATOR_LINEAR_RANGE(2800000, 4, 5, 200000),
...@@ -201,14 +201,14 @@ static const struct regulator_linear_range rk809_buck5_voltage_ranges[] = { ...@@ -201,14 +201,14 @@ static const struct regulator_linear_range rk809_buck5_voltage_ranges[] = {
#define RK817_BUCK1_SEL_CNT (RK817_BUCK1_SEL0 + RK817_BUCK1_SEL1 + 1) #define RK817_BUCK1_SEL_CNT (RK817_BUCK1_SEL0 + RK817_BUCK1_SEL1 + 1)
#define RK817_BUCK3_SEL_CNT (RK817_BUCK1_SEL0 + RK817_BUCK3_SEL1 + 1) #define RK817_BUCK3_SEL_CNT (RK817_BUCK1_SEL0 + RK817_BUCK3_SEL1 + 1)
static const struct regulator_linear_range rk817_buck1_voltage_ranges[] = { static const struct linear_range rk817_buck1_voltage_ranges[] = {
REGULATOR_LINEAR_RANGE(RK817_BUCK1_MIN0, 0, REGULATOR_LINEAR_RANGE(RK817_BUCK1_MIN0, 0,
RK817_BUCK1_SEL0, RK817_BUCK1_STP0), RK817_BUCK1_SEL0, RK817_BUCK1_STP0),
REGULATOR_LINEAR_RANGE(RK817_BUCK1_MIN1, RK817_BUCK1_SEL0 + 1, REGULATOR_LINEAR_RANGE(RK817_BUCK1_MIN1, RK817_BUCK1_SEL0 + 1,
RK817_BUCK1_SEL_CNT, RK817_BUCK1_STP1), RK817_BUCK1_SEL_CNT, RK817_BUCK1_STP1),
}; };
static const struct regulator_linear_range rk817_buck3_voltage_ranges[] = { static const struct linear_range rk817_buck3_voltage_ranges[] = {
REGULATOR_LINEAR_RANGE(RK817_BUCK1_MIN0, 0, REGULATOR_LINEAR_RANGE(RK817_BUCK1_MIN0, 0,
RK817_BUCK1_SEL0, RK817_BUCK1_STP0), RK817_BUCK1_SEL0, RK817_BUCK1_STP0),
REGULATOR_LINEAR_RANGE(RK817_BUCK1_MIN1, RK817_BUCK1_SEL0 + 1, REGULATOR_LINEAR_RANGE(RK817_BUCK1_MIN1, RK817_BUCK1_SEL0 + 1,
...@@ -665,7 +665,7 @@ static const struct regulator_ops rk808_switch_ops = { ...@@ -665,7 +665,7 @@ static const struct regulator_ops rk808_switch_ops = {
.set_suspend_disable = rk808_set_suspend_disable, .set_suspend_disable = rk808_set_suspend_disable,
}; };
static const struct regulator_linear_range rk805_buck_1_2_voltage_ranges[] = { static const struct linear_range rk805_buck_1_2_voltage_ranges[] = {
REGULATOR_LINEAR_RANGE(712500, 0, 59, 12500), REGULATOR_LINEAR_RANGE(712500, 0, 59, 12500),
REGULATOR_LINEAR_RANGE(1800000, 60, 62, 200000), REGULATOR_LINEAR_RANGE(1800000, 60, 62, 200000),
REGULATOR_LINEAR_RANGE(2300000, 63, 63, 0), REGULATOR_LINEAR_RANGE(2300000, 63, 63, 0),
......
...@@ -749,37 +749,37 @@ static const struct regulator_ops s2mps15_reg_buck_ops = { ...@@ -749,37 +749,37 @@ static const struct regulator_ops s2mps15_reg_buck_ops = {
} }
/* voltage range for s2mps15 LDO 3, 5, 15, 16, 18, 20, 23 and 27 */ /* voltage range for s2mps15 LDO 3, 5, 15, 16, 18, 20, 23 and 27 */
static const struct regulator_linear_range s2mps15_ldo_voltage_ranges1[] = { static const struct linear_range s2mps15_ldo_voltage_ranges1[] = {
REGULATOR_LINEAR_RANGE(1000000, 0xc, 0x38, 25000), REGULATOR_LINEAR_RANGE(1000000, 0xc, 0x38, 25000),
}; };
/* voltage range for s2mps15 LDO 2, 6, 14, 17, 19, 21, 24 and 25 */ /* voltage range for s2mps15 LDO 2, 6, 14, 17, 19, 21, 24 and 25 */
static const struct regulator_linear_range s2mps15_ldo_voltage_ranges2[] = { static const struct linear_range s2mps15_ldo_voltage_ranges2[] = {
REGULATOR_LINEAR_RANGE(1800000, 0x0, 0x3f, 25000), REGULATOR_LINEAR_RANGE(1800000, 0x0, 0x3f, 25000),
}; };
/* voltage range for s2mps15 LDO 4, 11, 12, 13, 22 and 26 */ /* voltage range for s2mps15 LDO 4, 11, 12, 13, 22 and 26 */
static const struct regulator_linear_range s2mps15_ldo_voltage_ranges3[] = { static const struct linear_range s2mps15_ldo_voltage_ranges3[] = {
REGULATOR_LINEAR_RANGE(700000, 0x0, 0x34, 12500), REGULATOR_LINEAR_RANGE(700000, 0x0, 0x34, 12500),
}; };
/* voltage range for s2mps15 LDO 7, 8, 9 and 10 */ /* voltage range for s2mps15 LDO 7, 8, 9 and 10 */
static const struct regulator_linear_range s2mps15_ldo_voltage_ranges4[] = { static const struct linear_range s2mps15_ldo_voltage_ranges4[] = {
REGULATOR_LINEAR_RANGE(700000, 0x10, 0x20, 25000), REGULATOR_LINEAR_RANGE(700000, 0x10, 0x20, 25000),
}; };
/* voltage range for s2mps15 LDO 1 */ /* voltage range for s2mps15 LDO 1 */
static const struct regulator_linear_range s2mps15_ldo_voltage_ranges5[] = { static const struct linear_range s2mps15_ldo_voltage_ranges5[] = {
REGULATOR_LINEAR_RANGE(500000, 0x0, 0x20, 12500), REGULATOR_LINEAR_RANGE(500000, 0x0, 0x20, 12500),
}; };
/* voltage range for s2mps15 BUCK 1, 2, 3, 4, 5, 6 and 7 */ /* voltage range for s2mps15 BUCK 1, 2, 3, 4, 5, 6 and 7 */
static const struct regulator_linear_range s2mps15_buck_voltage_ranges1[] = { static const struct linear_range s2mps15_buck_voltage_ranges1[] = {
REGULATOR_LINEAR_RANGE(500000, 0x20, 0xc0, 6250), REGULATOR_LINEAR_RANGE(500000, 0x20, 0xc0, 6250),
}; };
/* voltage range for s2mps15 BUCK 8, 9 and 10 */ /* voltage range for s2mps15 BUCK 8, 9 and 10 */
static const struct regulator_linear_range s2mps15_buck_voltage_ranges2[] = { static const struct linear_range s2mps15_buck_voltage_ranges2[] = {
REGULATOR_LINEAR_RANGE(1000000, 0x20, 0x78, 12500), REGULATOR_LINEAR_RANGE(1000000, 0x20, 0x78, 12500),
}; };
......
...@@ -32,7 +32,7 @@ static const struct regulator_ops sky81452_reg_ops = { ...@@ -32,7 +32,7 @@ static const struct regulator_ops sky81452_reg_ops = {
.is_enabled = regulator_is_enabled_regmap, .is_enabled = regulator_is_enabled_regmap,
}; };
static const struct regulator_linear_range sky81452_reg_ranges[] = { static const struct linear_range sky81452_reg_ranges[] = {
REGULATOR_LINEAR_RANGE(4500000, 0, 14, 250000), REGULATOR_LINEAR_RANGE(4500000, 0, 14, 250000),
REGULATOR_LINEAR_RANGE(9000000, 15, 31, 1000000), REGULATOR_LINEAR_RANGE(9000000, 15, 31, 1000000),
}; };
......
...@@ -57,13 +57,13 @@ enum { ...@@ -57,13 +57,13 @@ enum {
/* Ramp delay worst case is (2250uV/uS) */ /* Ramp delay worst case is (2250uV/uS) */
#define PMIC_RAMP_DELAY 2200 #define PMIC_RAMP_DELAY 2200
static const struct regulator_linear_range buck1_ranges[] = { static const struct linear_range buck1_ranges[] = {
REGULATOR_LINEAR_RANGE(725000, 0, 4, 0), REGULATOR_LINEAR_RANGE(725000, 0, 4, 0),
REGULATOR_LINEAR_RANGE(725000, 5, 36, 25000), REGULATOR_LINEAR_RANGE(725000, 5, 36, 25000),
REGULATOR_LINEAR_RANGE(1500000, 37, 63, 0), REGULATOR_LINEAR_RANGE(1500000, 37, 63, 0),
}; };
static const struct regulator_linear_range buck2_ranges[] = { static const struct linear_range buck2_ranges[] = {
REGULATOR_LINEAR_RANGE(1000000, 0, 17, 0), REGULATOR_LINEAR_RANGE(1000000, 0, 17, 0),
REGULATOR_LINEAR_RANGE(1050000, 18, 19, 0), REGULATOR_LINEAR_RANGE(1050000, 18, 19, 0),
REGULATOR_LINEAR_RANGE(1100000, 20, 21, 0), REGULATOR_LINEAR_RANGE(1100000, 20, 21, 0),
...@@ -77,7 +77,7 @@ static const struct regulator_linear_range buck2_ranges[] = { ...@@ -77,7 +77,7 @@ static const struct regulator_linear_range buck2_ranges[] = {
REGULATOR_LINEAR_RANGE(1500000, 36, 63, 0), REGULATOR_LINEAR_RANGE(1500000, 36, 63, 0),
}; };
static const struct regulator_linear_range buck3_ranges[] = { static const struct linear_range buck3_ranges[] = {
REGULATOR_LINEAR_RANGE(1000000, 0, 19, 0), REGULATOR_LINEAR_RANGE(1000000, 0, 19, 0),
REGULATOR_LINEAR_RANGE(1100000, 20, 23, 0), REGULATOR_LINEAR_RANGE(1100000, 20, 23, 0),
REGULATOR_LINEAR_RANGE(1200000, 24, 27, 0), REGULATOR_LINEAR_RANGE(1200000, 24, 27, 0),
...@@ -87,7 +87,7 @@ static const struct regulator_linear_range buck3_ranges[] = { ...@@ -87,7 +87,7 @@ static const struct regulator_linear_range buck3_ranges[] = {
REGULATOR_LINEAR_RANGE(3400000, 56, 63, 0), REGULATOR_LINEAR_RANGE(3400000, 56, 63, 0),
}; };
static const struct regulator_linear_range buck4_ranges[] = { static const struct linear_range buck4_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, 0, 27, 25000), REGULATOR_LINEAR_RANGE(600000, 0, 27, 25000),
REGULATOR_LINEAR_RANGE(1300000, 28, 29, 0), REGULATOR_LINEAR_RANGE(1300000, 28, 29, 0),
REGULATOR_LINEAR_RANGE(1350000, 30, 31, 0), REGULATOR_LINEAR_RANGE(1350000, 30, 31, 0),
...@@ -97,19 +97,19 @@ static const struct regulator_linear_range buck4_ranges[] = { ...@@ -97,19 +97,19 @@ static const struct regulator_linear_range buck4_ranges[] = {
REGULATOR_LINEAR_RANGE(3900000, 61, 63, 0), REGULATOR_LINEAR_RANGE(3900000, 61, 63, 0),
}; };
static const struct regulator_linear_range ldo1_ranges[] = { static const struct linear_range ldo1_ranges[] = {
REGULATOR_LINEAR_RANGE(1700000, 0, 7, 0), REGULATOR_LINEAR_RANGE(1700000, 0, 7, 0),
REGULATOR_LINEAR_RANGE(1700000, 8, 24, 100000), REGULATOR_LINEAR_RANGE(1700000, 8, 24, 100000),
REGULATOR_LINEAR_RANGE(3300000, 25, 31, 0), REGULATOR_LINEAR_RANGE(3300000, 25, 31, 0),
}; };
static const struct regulator_linear_range ldo2_ranges[] = { static const struct linear_range ldo2_ranges[] = {
REGULATOR_LINEAR_RANGE(1700000, 0, 7, 0), REGULATOR_LINEAR_RANGE(1700000, 0, 7, 0),
REGULATOR_LINEAR_RANGE(1700000, 8, 24, 100000), REGULATOR_LINEAR_RANGE(1700000, 8, 24, 100000),
REGULATOR_LINEAR_RANGE(3300000, 25, 30, 0), REGULATOR_LINEAR_RANGE(3300000, 25, 30, 0),
}; };
static const struct regulator_linear_range ldo3_ranges[] = { static const struct linear_range ldo3_ranges[] = {
REGULATOR_LINEAR_RANGE(1700000, 0, 7, 0), REGULATOR_LINEAR_RANGE(1700000, 0, 7, 0),
REGULATOR_LINEAR_RANGE(1700000, 8, 24, 100000), REGULATOR_LINEAR_RANGE(1700000, 8, 24, 100000),
REGULATOR_LINEAR_RANGE(3300000, 25, 30, 0), REGULATOR_LINEAR_RANGE(3300000, 25, 30, 0),
...@@ -117,13 +117,13 @@ static const struct regulator_linear_range ldo3_ranges[] = { ...@@ -117,13 +117,13 @@ static const struct regulator_linear_range ldo3_ranges[] = {
REGULATOR_LINEAR_RANGE(500000, 31, 31, 0), REGULATOR_LINEAR_RANGE(500000, 31, 31, 0),
}; };
static const struct regulator_linear_range ldo5_ranges[] = { static const struct linear_range ldo5_ranges[] = {
REGULATOR_LINEAR_RANGE(1700000, 0, 7, 0), REGULATOR_LINEAR_RANGE(1700000, 0, 7, 0),
REGULATOR_LINEAR_RANGE(1700000, 8, 30, 100000), REGULATOR_LINEAR_RANGE(1700000, 8, 30, 100000),
REGULATOR_LINEAR_RANGE(3900000, 31, 31, 0), REGULATOR_LINEAR_RANGE(3900000, 31, 31, 0),
}; };
static const struct regulator_linear_range ldo6_ranges[] = { static const struct linear_range ldo6_ranges[] = {
REGULATOR_LINEAR_RANGE(900000, 0, 24, 100000), REGULATOR_LINEAR_RANGE(900000, 0, 24, 100000),
REGULATOR_LINEAR_RANGE(3300000, 25, 31, 0), REGULATOR_LINEAR_RANGE(3300000, 25, 31, 0),
}; };
......
...@@ -71,23 +71,23 @@ struct tps65086_regulator { ...@@ -71,23 +71,23 @@ struct tps65086_regulator {
unsigned int decay_mask; unsigned int decay_mask;
}; };
static const struct regulator_linear_range tps65086_10mv_ranges[] = { static const struct linear_range tps65086_10mv_ranges[] = {
REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0), REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0),
REGULATOR_LINEAR_RANGE(410000, 0x1, 0x7F, 10000), REGULATOR_LINEAR_RANGE(410000, 0x1, 0x7F, 10000),
}; };
static const struct regulator_linear_range tps65086_buck126_25mv_ranges[] = { static const struct linear_range tps65086_buck126_25mv_ranges[] = {
REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0), REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0),
REGULATOR_LINEAR_RANGE(1000000, 0x1, 0x18, 0), REGULATOR_LINEAR_RANGE(1000000, 0x1, 0x18, 0),
REGULATOR_LINEAR_RANGE(1025000, 0x19, 0x7F, 25000), REGULATOR_LINEAR_RANGE(1025000, 0x19, 0x7F, 25000),
}; };
static const struct regulator_linear_range tps65086_buck345_25mv_ranges[] = { static const struct linear_range tps65086_buck345_25mv_ranges[] = {
REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0), REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0),
REGULATOR_LINEAR_RANGE(425000, 0x1, 0x7F, 25000), REGULATOR_LINEAR_RANGE(425000, 0x1, 0x7F, 25000),
}; };
static const struct regulator_linear_range tps65086_ldoa1_ranges[] = { static const struct linear_range tps65086_ldoa1_ranges[] = {
REGULATOR_LINEAR_RANGE(1350000, 0x0, 0x0, 0), REGULATOR_LINEAR_RANGE(1350000, 0x0, 0x0, 0),
REGULATOR_LINEAR_RANGE(1500000, 0x1, 0x7, 100000), REGULATOR_LINEAR_RANGE(1500000, 0x1, 0x7, 100000),
REGULATOR_LINEAR_RANGE(2300000, 0x8, 0xB, 100000), REGULATOR_LINEAR_RANGE(2300000, 0x8, 0xB, 100000),
...@@ -95,7 +95,7 @@ static const struct regulator_linear_range tps65086_ldoa1_ranges[] = { ...@@ -95,7 +95,7 @@ static const struct regulator_linear_range tps65086_ldoa1_ranges[] = {
REGULATOR_LINEAR_RANGE(3300000, 0xE, 0xE, 0), REGULATOR_LINEAR_RANGE(3300000, 0xE, 0xE, 0),
}; };
static const struct regulator_linear_range tps65086_ldoa23_ranges[] = { static const struct linear_range tps65086_ldoa23_ranges[] = {
REGULATOR_LINEAR_RANGE(700000, 0x0, 0xD, 50000), REGULATOR_LINEAR_RANGE(700000, 0x0, 0xD, 50000),
REGULATOR_LINEAR_RANGE(1400000, 0xE, 0xF, 100000), REGULATOR_LINEAR_RANGE(1400000, 0xE, 0xF, 100000),
}; };
......
...@@ -56,14 +56,14 @@ static const unsigned int LDO1_VSEL_table[] = { ...@@ -56,14 +56,14 @@ static const unsigned int LDO1_VSEL_table[] = {
2800000, 3000000, 3100000, 3300000, 2800000, 3000000, 3100000, 3300000,
}; };
static const struct regulator_linear_range tps65217_uv1_ranges[] = { static const struct linear_range tps65217_uv1_ranges[] = {
REGULATOR_LINEAR_RANGE(900000, 0, 24, 25000), REGULATOR_LINEAR_RANGE(900000, 0, 24, 25000),
REGULATOR_LINEAR_RANGE(1550000, 25, 52, 50000), REGULATOR_LINEAR_RANGE(1550000, 25, 52, 50000),
REGULATOR_LINEAR_RANGE(3000000, 53, 55, 100000), REGULATOR_LINEAR_RANGE(3000000, 53, 55, 100000),
REGULATOR_LINEAR_RANGE(3300000, 56, 63, 0), REGULATOR_LINEAR_RANGE(3300000, 56, 63, 0),
}; };
static const struct regulator_linear_range tps65217_uv2_ranges[] = { static const struct linear_range tps65217_uv2_ranges[] = {
REGULATOR_LINEAR_RANGE(1500000, 0, 8, 50000), REGULATOR_LINEAR_RANGE(1500000, 0, 8, 50000),
REGULATOR_LINEAR_RANGE(2000000, 9, 13, 100000), REGULATOR_LINEAR_RANGE(2000000, 9, 13, 100000),
REGULATOR_LINEAR_RANGE(2450000, 14, 31, 50000), REGULATOR_LINEAR_RANGE(2450000, 14, 31, 50000),
......
...@@ -56,17 +56,17 @@ ...@@ -56,17 +56,17 @@
.bypass_mask = _sm, \ .bypass_mask = _sm, \
} \ } \
static const struct regulator_linear_range dcdc1_dcdc2_ranges[] = { static const struct linear_range dcdc1_dcdc2_ranges[] = {
REGULATOR_LINEAR_RANGE(850000, 0x0, 0x32, 10000), REGULATOR_LINEAR_RANGE(850000, 0x0, 0x32, 10000),
REGULATOR_LINEAR_RANGE(1375000, 0x33, 0x3f, 25000), REGULATOR_LINEAR_RANGE(1375000, 0x33, 0x3f, 25000),
}; };
static const struct regulator_linear_range ldo1_dcdc3_ranges[] = { static const struct linear_range ldo1_dcdc3_ranges[] = {
REGULATOR_LINEAR_RANGE(900000, 0x0, 0x1a, 25000), REGULATOR_LINEAR_RANGE(900000, 0x0, 0x1a, 25000),
REGULATOR_LINEAR_RANGE(1600000, 0x1b, 0x3f, 50000), REGULATOR_LINEAR_RANGE(1600000, 0x1b, 0x3f, 50000),
}; };
static const struct regulator_linear_range dcdc4_ranges[] = { static const struct linear_range dcdc4_ranges[] = {
REGULATOR_LINEAR_RANGE(1175000, 0x0, 0xf, 25000), REGULATOR_LINEAR_RANGE(1175000, 0x0, 0xf, 25000),
REGULATOR_LINEAR_RANGE(1600000, 0x10, 0x34, 50000), REGULATOR_LINEAR_RANGE(1600000, 0x10, 0x34, 50000),
}; };
......
...@@ -46,11 +46,11 @@ enum tps65912_regulators { DCDC1, DCDC2, DCDC3, DCDC4, LDO1, LDO2, LDO3, ...@@ -46,11 +46,11 @@ enum tps65912_regulators { DCDC1, DCDC2, DCDC3, DCDC4, LDO1, LDO2, LDO3,
.n_linear_ranges = ARRAY_SIZE(_lr), \ .n_linear_ranges = ARRAY_SIZE(_lr), \
} }
static const struct regulator_linear_range tps65912_dcdc_ranges[] = { static const struct linear_range tps65912_dcdc_ranges[] = {
REGULATOR_LINEAR_RANGE(500000, 0x0, 0x3f, 50000), REGULATOR_LINEAR_RANGE(500000, 0x0, 0x3f, 50000),
}; };
static const struct regulator_linear_range tps65912_ldo_ranges[] = { static const struct linear_range tps65912_ldo_ranges[] = {
REGULATOR_LINEAR_RANGE(800000, 0x0, 0x20, 25000), REGULATOR_LINEAR_RANGE(800000, 0x0, 0x20, 25000),
REGULATOR_LINEAR_RANGE(1650000, 0x21, 0x3c, 50000), REGULATOR_LINEAR_RANGE(1650000, 0x21, 0x3c, 50000),
REGULATOR_LINEAR_RANGE(3100000, 0x3d, 0x3f, 100000), REGULATOR_LINEAR_RANGE(3100000, 0x3d, 0x3f, 100000),
......
...@@ -360,12 +360,12 @@ static const u16 VINTANA2_VSEL_table[] = { ...@@ -360,12 +360,12 @@ static const u16 VINTANA2_VSEL_table[] = {
}; };
/* 600mV to 1450mV in 12.5 mV steps */ /* 600mV to 1450mV in 12.5 mV steps */
static const struct regulator_linear_range VDD1_ranges[] = { static const struct linear_range VDD1_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, 0, 68, 12500) REGULATOR_LINEAR_RANGE(600000, 0, 68, 12500)
}; };
/* 600mV to 1450mV in 12.5 mV steps, everything above = 1500mV */ /* 600mV to 1450mV in 12.5 mV steps, everything above = 1500mV */
static const struct regulator_linear_range VDD2_ranges[] = { static const struct linear_range VDD2_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, 0, 68, 12500), REGULATOR_LINEAR_RANGE(600000, 0, 68, 12500),
REGULATOR_LINEAR_RANGE(1500000, 69, 69, 12500) REGULATOR_LINEAR_RANGE(1500000, 69, 69, 12500)
}; };
......
...@@ -495,7 +495,7 @@ static const struct regulator_ops twlsmps_ops = { ...@@ -495,7 +495,7 @@ static const struct regulator_ops twlsmps_ops = {
}; };
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
static const struct regulator_linear_range twl6030ldo_linear_range[] = { static const struct linear_range twl6030ldo_linear_range[] = {
REGULATOR_LINEAR_RANGE(0, 0, 0, 0), REGULATOR_LINEAR_RANGE(0, 0, 0, 0),
REGULATOR_LINEAR_RANGE(1000000, 1, 24, 100000), REGULATOR_LINEAR_RANGE(1000000, 1, 24, 100000),
REGULATOR_LINEAR_RANGE(2750000, 31, 31, 0), REGULATOR_LINEAR_RANGE(2750000, 31, 31, 0),
......
...@@ -204,7 +204,7 @@ static irqreturn_t wm831x_dcdc_oc_irq(int irq, void *data) ...@@ -204,7 +204,7 @@ static irqreturn_t wm831x_dcdc_oc_irq(int irq, void *data)
* BUCKV specifics * BUCKV specifics
*/ */
static const struct regulator_linear_range wm831x_buckv_ranges[] = { static const struct linear_range wm831x_buckv_ranges[] = {
REGULATOR_LINEAR_RANGE(600000, 0, 0x7, 0), REGULATOR_LINEAR_RANGE(600000, 0, 0x7, 0),
REGULATOR_LINEAR_RANGE(600000, 0x8, 0x68, 12500), REGULATOR_LINEAR_RANGE(600000, 0x8, 0x68, 12500),
}; };
......
...@@ -59,7 +59,7 @@ static irqreturn_t wm831x_ldo_uv_irq(int irq, void *data) ...@@ -59,7 +59,7 @@ static irqreturn_t wm831x_ldo_uv_irq(int irq, void *data)
* General purpose LDOs * General purpose LDOs
*/ */
static const struct regulator_linear_range wm831x_gp_ldo_ranges[] = { static const struct linear_range wm831x_gp_ldo_ranges[] = {
REGULATOR_LINEAR_RANGE(900000, 0, 14, 50000), REGULATOR_LINEAR_RANGE(900000, 0, 14, 50000),
REGULATOR_LINEAR_RANGE(1700000, 15, 31, 100000), REGULATOR_LINEAR_RANGE(1700000, 15, 31, 100000),
}; };
...@@ -312,7 +312,7 @@ static struct platform_driver wm831x_gp_ldo_driver = { ...@@ -312,7 +312,7 @@ static struct platform_driver wm831x_gp_ldo_driver = {
* Analogue LDOs * Analogue LDOs
*/ */
static const struct regulator_linear_range wm831x_aldo_ranges[] = { static const struct linear_range wm831x_aldo_ranges[] = {
REGULATOR_LINEAR_RANGE(1000000, 0, 12, 50000), REGULATOR_LINEAR_RANGE(1000000, 0, 12, 50000),
REGULATOR_LINEAR_RANGE(1700000, 13, 31, 100000), REGULATOR_LINEAR_RANGE(1700000, 13, 31, 100000),
}; };
......
...@@ -470,7 +470,7 @@ static int wm8350_dcdc_set_suspend_mode(struct regulator_dev *rdev, ...@@ -470,7 +470,7 @@ static int wm8350_dcdc_set_suspend_mode(struct regulator_dev *rdev,
return 0; return 0;
} }
static const struct regulator_linear_range wm8350_ldo_ranges[] = { static const struct linear_range wm8350_ldo_ranges[] = {
REGULATOR_LINEAR_RANGE(900000, 0, 15, 50000), REGULATOR_LINEAR_RANGE(900000, 0, 15, 50000),
REGULATOR_LINEAR_RANGE(1800000, 16, 31, 100000), REGULATOR_LINEAR_RANGE(1800000, 16, 31, 100000),
}; };
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include <linux/regulator/driver.h> #include <linux/regulator/driver.h>
#include <linux/mfd/wm8400-private.h> #include <linux/mfd/wm8400-private.h>
static const struct regulator_linear_range wm8400_ldo_ranges[] = { static const struct linear_range wm8400_ldo_ranges[] = {
REGULATOR_LINEAR_RANGE(900000, 0, 14, 50000), REGULATOR_LINEAR_RANGE(900000, 0, 14, 50000),
REGULATOR_LINEAR_RANGE(1700000, 15, 31, 100000), REGULATOR_LINEAR_RANGE(1700000, 15, 31, 100000),
}; };
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#define __LINUX_REGULATOR_DRIVER_H_ #define __LINUX_REGULATOR_DRIVER_H_
#include <linux/device.h> #include <linux/device.h>
#include <linux/linear_range.h>
#include <linux/notifier.h> #include <linux/notifier.h>
#include <linux/regulator/consumer.h> #include <linux/regulator/consumer.h>
#include <linux/ww_mutex.h> #include <linux/ww_mutex.h>
...@@ -39,31 +40,13 @@ enum regulator_status { ...@@ -39,31 +40,13 @@ enum regulator_status {
REGULATOR_STATUS_UNDEFINED, REGULATOR_STATUS_UNDEFINED,
}; };
/** /* Initialize struct linear_range for regulators */
* struct regulator_linear_range - specify linear voltage ranges
*
* Specify a range of voltages for regulator_map_linear_range() and
* regulator_list_linear_range().
*
* @min_uV: Lowest voltage in range
* @min_sel: Lowest selector for range
* @max_sel: Highest selector for range
* @uV_step: Step size
*/
struct regulator_linear_range {
unsigned int min_uV;
unsigned int min_sel;
unsigned int max_sel;
unsigned int uV_step;
};
/* Initialize struct regulator_linear_range */
#define REGULATOR_LINEAR_RANGE(_min_uV, _min_sel, _max_sel, _step_uV) \ #define REGULATOR_LINEAR_RANGE(_min_uV, _min_sel, _max_sel, _step_uV) \
{ \ { \
.min_uV = _min_uV, \ .min = _min_uV, \
.min_sel = _min_sel, \ .min_sel = _min_sel, \
.max_sel = _max_sel, \ .max_sel = _max_sel, \
.uV_step = _step_uV, \ .step = _step_uV, \
} }
/** /**
...@@ -348,7 +331,7 @@ struct regulator_desc { ...@@ -348,7 +331,7 @@ struct regulator_desc {
unsigned int ramp_delay; unsigned int ramp_delay;
int min_dropout_uV; int min_dropout_uV;
const struct regulator_linear_range *linear_ranges; const struct linear_range *linear_ranges;
const unsigned int *linear_range_selectors; const unsigned int *linear_range_selectors;
int n_linear_ranges; int n_linear_ranges;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment