Merge tag 'regulator-v5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator updates from Mark Brown: "The biggest chunk of the regulator changes for this release outside of the new drivers is the conversion of the fixed regulator to use the GPIO descriptor API, there's a small addition to the GPIO API plus a bunch of updates to board files to implement it. This is some really welcome work from Linus Walleij that's had a bunch of review and has been sitting in -next for a while so I'm fairly happy there's no major issues. - Helpers for overlapping linear ranges. - Display opmode and consumer requested load in the regualtor_summary file in debugfs, plus a fix there. - Support for the fun and entertaining power off mechanism that the pfuze100 hardware implements. - Conversion of the fixed regulator API to use GPIO descriptors, including pulling in a bunch of patches to a bunch of board files. - New drivers for Cirrus Logic Lochnagar, Qualcomm PMS405, Rohm BD71847, ST PMIC1, and TI LM363x devices" * tag 'regulator-v5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (36 commits) regulator: lochnagar: Use a consisent comment style for SPDX header regulator: bd718x7: Remove struct bd718xx_pmic regulator: Fetch enable gpiods nonexclusive regulator/gpio: Allow nonexclusive GPIO access regulator: lochnagar: Add support for the Cirrus Logic Lochnagar regulator: stpmic1: Return REGULATOR_MODE_INVALID for invalid mode regulator: stpmic1: add stpmic1 regulator driver dt-bindings: regulator: document stpmic1 pmic regulators regulator: axp20x: Mark expected switch fall-throughs regulator: bd718xx: fix build warning on x86_64 regulator: fixed: Default enable high on DT regulators regulator: bd718xx: rename bd71837 to 718xx regulator: bd718XX use pickable ranges regulator/mfd: bd718xx: rename bd71837/bd71847 common instances regulator: Support regulators where voltage ranges are selectable mfd: dt bindings: add BD71847 device-tree binding documentation regulator: dt bindings: add BD71847 device-tree binding documentation regulator/mfd: Support ROHM BD71847 power management IC regulator: da905{2,5}: Remove unnecessary array check regulator: qcom: Add PMS405 regulators ...
这个提交包含在:
@@ -984,7 +984,6 @@ static struct fixed_voltage_config camera_dummy_config = {
|
||||
.supply_name = "camera_vdd",
|
||||
.input_supply = "vcc cam",
|
||||
.microvolts = 2800000,
|
||||
.gpio = -1,
|
||||
.enable_high = 0,
|
||||
.init_data = &camera_dummy_initdata,
|
||||
};
|
||||
|
@@ -21,6 +21,7 @@
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio/machine.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/leds-lp3944.h>
|
||||
#include <linux/platform_data/i2c-pxa.h>
|
||||
@@ -698,31 +699,39 @@ static struct pxa27x_keypad_platform_data e2_keypad_platform_data = {
|
||||
|
||||
#if defined(CONFIG_MACH_EZX_A780) || defined(CONFIG_MACH_EZX_A910)
|
||||
/* camera */
|
||||
static struct regulator_consumer_supply camera_dummy_supplies[] = {
|
||||
static struct regulator_consumer_supply camera_regulator_supplies[] = {
|
||||
REGULATOR_SUPPLY("vdd", "0-005d"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data camera_dummy_initdata = {
|
||||
.consumer_supplies = camera_dummy_supplies,
|
||||
.num_consumer_supplies = ARRAY_SIZE(camera_dummy_supplies),
|
||||
static struct regulator_init_data camera_regulator_initdata = {
|
||||
.consumer_supplies = camera_regulator_supplies,
|
||||
.num_consumer_supplies = ARRAY_SIZE(camera_regulator_supplies),
|
||||
.constraints = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
};
|
||||
|
||||
static struct fixed_voltage_config camera_dummy_config = {
|
||||
static struct fixed_voltage_config camera_regulator_config = {
|
||||
.supply_name = "camera_vdd",
|
||||
.microvolts = 2800000,
|
||||
.gpio = GPIO50_nCAM_EN,
|
||||
.enable_high = 0,
|
||||
.init_data = &camera_dummy_initdata,
|
||||
.init_data = &camera_regulator_initdata,
|
||||
};
|
||||
|
||||
static struct platform_device camera_supply_dummy_device = {
|
||||
static struct platform_device camera_supply_regulator_device = {
|
||||
.name = "reg-fixed-voltage",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &camera_dummy_config,
|
||||
.platform_data = &camera_regulator_config,
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpiod_lookup_table camera_supply_gpiod_table = {
|
||||
.dev_id = "reg-fixed-voltage.1",
|
||||
.table = {
|
||||
GPIO_LOOKUP("gpio-pxa", GPIO50_nCAM_EN,
|
||||
NULL, GPIO_ACTIVE_HIGH),
|
||||
{ },
|
||||
},
|
||||
};
|
||||
#endif
|
||||
@@ -800,7 +809,7 @@ static struct i2c_board_info a780_i2c_board_info[] = {
|
||||
|
||||
static struct platform_device *a780_devices[] __initdata = {
|
||||
&a780_gpio_keys,
|
||||
&camera_supply_dummy_device,
|
||||
&camera_supply_regulator_device,
|
||||
};
|
||||
|
||||
static void __init a780_init(void)
|
||||
@@ -823,6 +832,7 @@ static void __init a780_init(void)
|
||||
if (a780_camera_init() == 0)
|
||||
pxa_set_camera_info(&a780_pxacamera_platform_data);
|
||||
|
||||
gpiod_add_lookup_table(&camera_supply_gpiod_table);
|
||||
pwm_add_table(ezx_pwm_lookup, ARRAY_SIZE(ezx_pwm_lookup));
|
||||
platform_add_devices(ARRAY_AND_SIZE(ezx_devices));
|
||||
platform_add_devices(ARRAY_AND_SIZE(a780_devices));
|
||||
@@ -1098,7 +1108,7 @@ static struct i2c_board_info __initdata a910_i2c_board_info[] = {
|
||||
|
||||
static struct platform_device *a910_devices[] __initdata = {
|
||||
&a910_gpio_keys,
|
||||
&camera_supply_dummy_device,
|
||||
&camera_supply_regulator_device,
|
||||
};
|
||||
|
||||
static void __init a910_init(void)
|
||||
@@ -1121,6 +1131,7 @@ static void __init a910_init(void)
|
||||
if (a910_camera_init() == 0)
|
||||
pxa_set_camera_info(&a910_pxacamera_platform_data);
|
||||
|
||||
gpiod_add_lookup_table(&camera_supply_gpiod_table);
|
||||
pwm_add_table(ezx_pwm_lookup, ARRAY_SIZE(ezx_pwm_lookup));
|
||||
platform_add_devices(ARRAY_AND_SIZE(ezx_devices));
|
||||
platform_add_devices(ARRAY_AND_SIZE(a910_devices));
|
||||
|
@@ -18,6 +18,7 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio/machine.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/mfd/htc-pasic3.h>
|
||||
@@ -696,7 +697,6 @@ static struct regulator_init_data vads7846_regulator = {
|
||||
static struct fixed_voltage_config vads7846 = {
|
||||
.supply_name = "vads7846",
|
||||
.microvolts = 3300000, /* probably */
|
||||
.gpio = -EINVAL,
|
||||
.startup_delay = 0,
|
||||
.init_data = &vads7846_regulator,
|
||||
};
|
||||
|
@@ -886,7 +886,6 @@ static struct regulator_init_data audio_va_initdata = {
|
||||
static struct fixed_voltage_config audio_va_config = {
|
||||
.supply_name = "audio_va",
|
||||
.microvolts = 5000000,
|
||||
.gpio = GPIO_AUDIO_VA_ENABLE,
|
||||
.enable_high = 1,
|
||||
.enabled_at_boot = 0,
|
||||
.init_data = &audio_va_initdata,
|
||||
@@ -900,6 +899,15 @@ static struct platform_device audio_va_device = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpiod_lookup_table audio_va_gpiod_table = {
|
||||
.dev_id = "reg-fixed-voltage.0",
|
||||
.table = {
|
||||
GPIO_LOOKUP("gpio-pxa", GPIO_AUDIO_VA_ENABLE,
|
||||
NULL, GPIO_ACTIVE_HIGH),
|
||||
{ },
|
||||
},
|
||||
};
|
||||
|
||||
/* Dummy supplies for Codec's VD/VLC */
|
||||
|
||||
static struct regulator_consumer_supply audio_dummy_supplies[] = {
|
||||
@@ -918,7 +926,6 @@ static struct regulator_init_data audio_dummy_initdata = {
|
||||
static struct fixed_voltage_config audio_dummy_config = {
|
||||
.supply_name = "audio_vd",
|
||||
.microvolts = 3300000,
|
||||
.gpio = -1,
|
||||
.init_data = &audio_dummy_initdata,
|
||||
};
|
||||
|
||||
@@ -1033,6 +1040,7 @@ static void __init raumfeld_audio_init(void)
|
||||
else
|
||||
gpio_direction_output(GPIO_MCLK_RESET, 1);
|
||||
|
||||
gpiod_add_lookup_table(&audio_va_gpiod_table);
|
||||
platform_add_devices(ARRAY_AND_SIZE(audio_regulator_devices));
|
||||
}
|
||||
|
||||
|
@@ -17,6 +17,7 @@
|
||||
#include <linux/irq.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio/machine.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/dm9000.h>
|
||||
#include <linux/mmc/host.h>
|
||||
@@ -410,7 +411,6 @@ static struct regulator_init_data can_regulator_init_data = {
|
||||
static struct fixed_voltage_config can_regulator_pdata = {
|
||||
.supply_name = "CAN_SHDN",
|
||||
.microvolts = 3300000,
|
||||
.gpio = ZEUS_CAN_SHDN_GPIO,
|
||||
.init_data = &can_regulator_init_data,
|
||||
};
|
||||
|
||||
@@ -422,6 +422,15 @@ static struct platform_device can_regulator_device = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpiod_lookup_table can_regulator_gpiod_table = {
|
||||
.dev_id = "reg-fixed-voltage.0",
|
||||
.table = {
|
||||
GPIO_LOOKUP("gpio-pxa", ZEUS_CAN_SHDN_GPIO,
|
||||
NULL, GPIO_ACTIVE_HIGH),
|
||||
{ },
|
||||
},
|
||||
};
|
||||
|
||||
static struct mcp251x_platform_data zeus_mcp2515_pdata = {
|
||||
.oscillator_frequency = 16*1000*1000,
|
||||
};
|
||||
@@ -538,7 +547,6 @@ static struct regulator_init_data zeus_ohci_regulator_data = {
|
||||
static struct fixed_voltage_config zeus_ohci_regulator_config = {
|
||||
.supply_name = "vbus2",
|
||||
.microvolts = 5000000, /* 5.0V */
|
||||
.gpio = ZEUS_USB2_PWREN_GPIO,
|
||||
.enable_high = 1,
|
||||
.startup_delay = 0,
|
||||
.init_data = &zeus_ohci_regulator_data,
|
||||
@@ -552,6 +560,15 @@ static struct platform_device zeus_ohci_regulator_device = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpiod_lookup_table zeus_ohci_regulator_gpiod_table = {
|
||||
.dev_id = "reg-fixed-voltage.0",
|
||||
.table = {
|
||||
GPIO_LOOKUP("gpio-pxa", ZEUS_USB2_PWREN_GPIO,
|
||||
NULL, GPIO_ACTIVE_HIGH),
|
||||
{ },
|
||||
},
|
||||
};
|
||||
|
||||
static struct pxaohci_platform_data zeus_ohci_platform_data = {
|
||||
.port_mode = PMM_NPS_MODE,
|
||||
/* Clear Power Control Polarity Low and set Power Sense
|
||||
@@ -855,6 +872,8 @@ static void __init zeus_init(void)
|
||||
|
||||
pxa2xx_mfp_config(ARRAY_AND_SIZE(zeus_pin_config));
|
||||
|
||||
gpiod_add_lookup_table(&can_regulator_gpiod_table);
|
||||
gpiod_add_lookup_table(&zeus_ohci_regulator_gpiod_table);
|
||||
platform_add_devices(zeus_devices, ARRAY_SIZE(zeus_devices));
|
||||
|
||||
zeus_register_ohci();
|
||||
|
在新工单中引用
屏蔽一个用户