Hi Kate, On 2/13/23 13:45, Kate Hsuan wrote: > Add MFD cell for tps68470-led. > > Signed-off-by: Kate Hsuan <hpa@xxxxxxxxxx> > --- > drivers/platform/x86/intel/int3472/tps68470.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c > index 5b8d1a9620a5..9dceb6507a01 100644 > --- a/drivers/platform/x86/intel/int3472/tps68470.c > +++ b/drivers/platform/x86/intel/int3472/tps68470.c > @@ -17,7 +17,7 @@ > #define DESIGNED_FOR_CHROMEOS 1 > #define DESIGNED_FOR_WINDOWS 2 > > -#define TPS68470_WIN_MFD_CELL_COUNT 3 > +#define TPS68470_WIN_MFD_CELL_COUNT 4 > > static const struct mfd_cell tps68470_cros[] = { > { .name = "tps68470-gpio" }, > @@ -194,6 +194,7 @@ static int skl_int3472_tps68470_probe(struct i2c_client *client) > cells[1].platform_data = (void *)board_data->tps68470_regulator_pdata; > cells[1].pdata_size = sizeof(struct tps68470_regulator_platform_data); > cells[2].name = "tps68470-gpio"; > + cells[3].name = "tps68470-led"; As the comment a few lines above states, the gpio cell must be last because the GPIO driver ends up calling acpi_dev_clear_dependencies() which will cause the ACPI code to instantiate the i2c_client-s for the camera sensors and we want all the cells to be instantiated before this happens, so this needs to become: cells[2].name = "tps68470-led"; cells[3].name = "tps68470-gpio"; And for the sensor to actually be able to use the LEDA output as privacy LED, we also need to add a led lookup-table entry linking the sensor and the LEDA LED-class-device. I'll write a patch for this and submit that upstream soonish. For v2 of this patch-set, please include my patch with the lookup as a 4th patch. Regards, Hans > > for (i = 0; i < board_data->n_gpiod_lookups; i++) > gpiod_add_lookup_table(board_data->tps68470_gpio_lookup_tables[i]);