From: Antti Laakso Date: Wed, 11 Mar 2026 13:19:10 +0000 (+0200) Subject: platform: int3472: Add MSI prestige board data X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be653ae8110b078cae7cb50646a080f17d35fdb2;p=thirdparty%2Fkernel%2Fstable.git platform: int3472: Add MSI prestige board data Define regulators and gpio for ov5675 in MSI Prestige 14 AI EVO+ laptop. Signed-off-by: Antti Laakso Acked-by: Ilpo Järvinen Reviewed-by: Daniel Scally Reviewed-by: Bartosz Golaszewski Reviewed-by: Hans de Goede [Sakari Ailus: Drop redundant initialisation to 0 and NULL.] Signed-off-by: Sakari Ailus Signed-off-by: Hans Verkuil --- diff --git a/drivers/platform/x86/intel/int3472/tps68470_board_data.c b/drivers/platform/x86/intel/int3472/tps68470_board_data.c index 71357a036292..6bec5a910396 100644 --- a/drivers/platform/x86/intel/int3472/tps68470_board_data.c +++ b/drivers/platform/x86/intel/int3472/tps68470_board_data.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include "tps68470.h" @@ -232,6 +233,70 @@ static const struct tps68470_regulator_platform_data dell_7212_tps68470_pdata = }, }; +/* Settings for MSI Prestige 14 AI+ Evo C2VMG laptop. */ +static struct regulator_consumer_supply ovti5675_avdd_consumer_supplies[] = { + REGULATOR_SUPPLY("avdd", "i2c-OVTI5675:00"), +}; + +static struct regulator_consumer_supply ovti5675_dovdd_consumer_supplies[] = { + REGULATOR_SUPPLY("dovdd", "i2c-OVTI5675:00"), +}; + +static struct regulator_consumer_supply ovti5675_dvdd_consumer_supplies[] = { + REGULATOR_SUPPLY("dvdd", "i2c-OVTI5675:00"), +}; + +static const struct regulator_init_data msi_p14_ai_evo_tps68470_core_reg_init_data = { + .constraints = { + .min_uV = 1200000, + .max_uV = 1200000, + .apply_uV = 1, + .valid_ops_mask = REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies = ARRAY_SIZE(ovti5675_dvdd_consumer_supplies), + .consumer_supplies = ovti5675_dvdd_consumer_supplies, +}; + +static const struct regulator_init_data msi_p14_ai_evo_tps68470_ana_reg_init_data = { + .constraints = { + .min_uV = 2815200, + .max_uV = 2815200, + .apply_uV = 1, + .valid_ops_mask = REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies = ARRAY_SIZE(ovti5675_avdd_consumer_supplies), + .consumer_supplies = ovti5675_avdd_consumer_supplies, +}; + +static const struct regulator_init_data msi_p14_ai_evo_tps68470_vio_reg_init_data = { + .constraints = { + .min_uV = 1800600, + .max_uV = 1800600, + .apply_uV = 1, + .valid_ops_mask = REGULATOR_CHANGE_STATUS, + }, +}; + +static const struct regulator_init_data msi_p14_ai_evo_tps68470_vsio_reg_init_data = { + .constraints = { + .min_uV = 1800600, + .max_uV = 1800600, + .apply_uV = 1, + .valid_ops_mask = REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies = ARRAY_SIZE(ovti5675_dovdd_consumer_supplies), + .consumer_supplies = ovti5675_dovdd_consumer_supplies, +}; + +static const struct tps68470_regulator_platform_data msi_p14_ai_evo_tps68470_pdata = { + .reg_init_data = { + [TPS68470_CORE] = &msi_p14_ai_evo_tps68470_core_reg_init_data, + [TPS68470_ANA] = &msi_p14_ai_evo_tps68470_ana_reg_init_data, + [TPS68470_VIO] = &msi_p14_ai_evo_tps68470_vio_reg_init_data, + [TPS68470_VSIO] = &msi_p14_ai_evo_tps68470_vsio_reg_init_data, + }, +}; + static struct gpiod_lookup_table surface_go_int347a_gpios = { .dev_id = "i2c-INT347A:00", .table = { @@ -258,6 +323,23 @@ static struct gpiod_lookup_table dell_7212_int3479_gpios = { } }; +static struct gpiod_lookup_table msi_p14_ai_evo_ovti5675_gpios = { + .dev_id = "i2c-OVTI5675:00", + .table = { + GPIO_LOOKUP("tps68470-gpio", 9, "reset", GPIO_ACTIVE_LOW), + { } + } +}; + +static const struct property_entry msi_p14_ai_evo_gpio_props[] = { + PROPERTY_ENTRY_BOOL("daisy-chain-enable"), + { } +}; + +static const struct software_node msi_p14_ai_evo_tps68470_gpio_swnode = { + .properties = msi_p14_ai_evo_gpio_props, +}; + static const struct int3472_tps68470_board_data surface_go_tps68470_board_data = { .dev_name = "i2c-INT3472:05", .tps68470_regulator_pdata = &surface_go_tps68470_pdata, @@ -287,6 +369,16 @@ static const struct int3472_tps68470_board_data dell_7212_tps68470_board_data = }, }; +static const struct int3472_tps68470_board_data msi_p14_ai_evo_tps68470_board_data = { + .dev_name = "i2c-INT3472:06", + .tps68470_regulator_pdata = &msi_p14_ai_evo_tps68470_pdata, + .tps68470_gpio_swnode = &msi_p14_ai_evo_tps68470_gpio_swnode, + .n_gpiod_lookups = 1, + .tps68470_gpio_lookup_tables = { + &msi_p14_ai_evo_ovti5675_gpios, + }, +}; + static const struct dmi_system_id int3472_tps68470_board_data_table[] = { { .matches = { @@ -316,6 +408,13 @@ static const struct dmi_system_id int3472_tps68470_board_data_table[] = { }, .driver_data = (void *)&dell_7212_tps68470_board_data, }, + { + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Micro-Star International Co., Ltd."), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Prestige 14 AI+ Evo C2VMG"), + }, + .driver_data = (void *)&msi_p14_ai_evo_tps68470_board_data, + }, { } };