mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-28 11:24:07 -05:00
platform/x86: x86-android-tablets: replace bat_swnode with swnode_group
Now that we are using software-nodes are used in more places it is useful to have a more generic mechanism to have the core code register software-nodes. Replace the bat_swnode registration mechanism with a more generic swnode_group registration mechanism. Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Reviewed-by: Andy Shevchenko <andy@kernel.org> Signed-off-by: Hans de Goede <hansg@kernel.org> Link: https://patch.msgid.link/20250920200713.20193-13-hansg@kernel.org Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
This commit is contained in:
committed by
Ilpo Järvinen
parent
6564e5d2ea
commit
a0133db5cd
@@ -190,7 +190,7 @@ const struct x86_dev_info asus_me176c_info __initconst = {
|
||||
.serdev_info = asus_me176c_serdevs,
|
||||
.serdev_count = ARRAY_SIZE(asus_me176c_serdevs),
|
||||
.gpio_button_swnodes = asus_me176c_tf103c_lid_swnodes,
|
||||
.bat_swnode = &generic_lipo_hv_4v35_battery_node,
|
||||
.swnode_group = generic_lipo_hv_4v35_battery_swnodes,
|
||||
.modules = bq24190_modules,
|
||||
.gpiochip_type = X86_GPIOCHIP_BAYTRAIL,
|
||||
};
|
||||
@@ -313,7 +313,7 @@ const struct x86_dev_info asus_tf103c_info __initconst = {
|
||||
.pdev_info = asus_me176c_tf103c_pdevs,
|
||||
.pdev_count = ARRAY_SIZE(asus_me176c_tf103c_pdevs),
|
||||
.gpio_button_swnodes = asus_me176c_tf103c_lid_swnodes,
|
||||
.bat_swnode = &generic_lipo_4v2_battery_node,
|
||||
.swnode_group = generic_lipo_4v2_battery_swnodes,
|
||||
.modules = bq24190_modules,
|
||||
.gpiochip_type = X86_GPIOCHIP_BAYTRAIL,
|
||||
};
|
||||
|
||||
@@ -153,7 +153,7 @@ static struct spi_device **spi_devs;
|
||||
static struct platform_device **pdevs;
|
||||
static struct serdev_device **serdevs;
|
||||
static const struct software_node **gpio_button_swnodes;
|
||||
static const struct software_node *bat_swnode;
|
||||
static const struct software_node **swnode_group;
|
||||
static const struct software_node **gpiochip_node_group;
|
||||
static void (*exit_handler)(void);
|
||||
|
||||
@@ -390,8 +390,8 @@ static void x86_android_tablet_remove(struct platform_device *pdev)
|
||||
if (gpio_button_swnodes)
|
||||
software_node_unregister_node_group(gpio_button_swnodes);
|
||||
|
||||
if (bat_swnode)
|
||||
software_node_unregister(bat_swnode);
|
||||
if (swnode_group)
|
||||
software_node_unregister_node_group(swnode_group);
|
||||
|
||||
if (gpiochip_node_group)
|
||||
software_node_unregister_node_group(gpiochip_node_group);
|
||||
@@ -436,13 +436,13 @@ static __init int x86_android_tablet_probe(struct platform_device *pdev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (dev_info->bat_swnode) {
|
||||
ret = software_node_register(dev_info->bat_swnode);
|
||||
if (dev_info->swnode_group) {
|
||||
ret = software_node_register_node_group(dev_info->swnode_group);
|
||||
if (ret) {
|
||||
x86_android_tablet_remove(pdev);
|
||||
return ret;
|
||||
}
|
||||
bat_swnode = dev_info->bat_swnode;
|
||||
swnode_group = dev_info->swnode_group;
|
||||
}
|
||||
|
||||
if (dev_info->init) {
|
||||
|
||||
@@ -448,7 +448,7 @@ const struct x86_dev_info lenovo_yoga_tab2_830_1050_info __initconst = {
|
||||
.pdev_info = lenovo_yoga_tab2_830_1050_pdevs,
|
||||
.pdev_count = ARRAY_SIZE(lenovo_yoga_tab2_830_1050_pdevs),
|
||||
.gpio_button_swnodes = lenovo_yoga_tab2_830_1050_lid_swnodes,
|
||||
.bat_swnode = &generic_lipo_hv_4v35_battery_node,
|
||||
.swnode_group = generic_lipo_hv_4v35_battery_swnodes,
|
||||
.modules = bq24190_modules,
|
||||
.gpiochip_type = X86_GPIOCHIP_BAYTRAIL,
|
||||
.init = lenovo_yoga_tab2_830_1050_init,
|
||||
@@ -812,7 +812,7 @@ const struct x86_dev_info lenovo_yoga_tab2_1380_info __initconst = {
|
||||
.pdev_info = lenovo_yoga_tab2_1380_pdevs,
|
||||
.pdev_count = ARRAY_SIZE(lenovo_yoga_tab2_1380_pdevs),
|
||||
.gpio_button_swnodes = lenovo_yoga_tab2_830_1050_lid_swnodes,
|
||||
.bat_swnode = &generic_lipo_hv_4v35_battery_node,
|
||||
.swnode_group = generic_lipo_hv_4v35_battery_swnodes,
|
||||
.modules = lenovo_yoga_tab2_1380_modules,
|
||||
.gpiochip_type = X86_GPIOCHIP_BAYTRAIL,
|
||||
.init = lenovo_yoga_tab2_1380_init,
|
||||
|
||||
@@ -113,6 +113,11 @@ const struct software_node generic_lipo_4v2_battery_node = {
|
||||
.properties = generic_lipo_4v2_battery_props,
|
||||
};
|
||||
|
||||
const struct software_node *generic_lipo_4v2_battery_swnodes[] = {
|
||||
&generic_lipo_4v2_battery_node,
|
||||
NULL
|
||||
};
|
||||
|
||||
/* LiPo HighVoltage (max 4.35V) settings used by most devs with a HV battery */
|
||||
static const struct property_entry generic_lipo_hv_4v35_battery_props[] = {
|
||||
PROPERTY_ENTRY_STRING("compatible", "simple-battery"),
|
||||
@@ -133,6 +138,11 @@ const struct software_node generic_lipo_hv_4v35_battery_node = {
|
||||
.properties = generic_lipo_hv_4v35_battery_props,
|
||||
};
|
||||
|
||||
const struct software_node *generic_lipo_hv_4v35_battery_swnodes[] = {
|
||||
&generic_lipo_hv_4v35_battery_node,
|
||||
NULL
|
||||
};
|
||||
|
||||
/* For enabling the bq24190 5V boost based on id-pin */
|
||||
static struct regulator_consumer_supply intel_int3496_consumer = {
|
||||
.supply = "vbus",
|
||||
|
||||
@@ -20,8 +20,12 @@ extern const char * const bq25890_psy[];
|
||||
|
||||
extern const struct software_node fg_bq24190_supply_node;
|
||||
extern const struct software_node fg_bq25890_supply_node;
|
||||
|
||||
extern const struct software_node generic_lipo_4v2_battery_node;
|
||||
extern const struct software_node *generic_lipo_4v2_battery_swnodes[];
|
||||
|
||||
extern const struct software_node generic_lipo_hv_4v35_battery_node;
|
||||
extern const struct software_node *generic_lipo_hv_4v35_battery_swnodes[];
|
||||
|
||||
extern struct bq24190_platform_data bq24190_pdata;
|
||||
extern const char * const bq24190_modules[];
|
||||
|
||||
@@ -82,7 +82,7 @@ struct x86_serdev_info {
|
||||
|
||||
struct x86_dev_info {
|
||||
const char * const *modules;
|
||||
const struct software_node *bat_swnode;
|
||||
const struct software_node **swnode_group;
|
||||
const struct x86_i2c_client_info *i2c_client_info;
|
||||
const struct x86_spi_dev_info *spi_dev_info;
|
||||
const struct platform_device_info *pdev_info;
|
||||
|
||||
Reference in New Issue
Block a user