mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "T, Arun" <arun.t@intel.com>
To: "sakari.ailus@linux.intel.com" <sakari.ailus@linux.intel.com>
Cc: "johannes.goede@oss.qualcomm.com"
	<johannes.goede@oss.qualcomm.com>,
	"Kao, Arec" <arec.kao@intel.com>,
	"ilpo.jarvinen@linux.intel.com" <ilpo.jarvinen@linux.intel.com>,
	"dan.scally@ideasonboard.com" <dan.scally@ideasonboard.com>,
	"platform-driver-x86@vger.kernel.org"
	<platform-driver-x86@vger.kernel.org>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Djait, Mehdi" <mehdi.djait@intel.com>
Subject: RE: [PATCH v4 1/2] platform/x86: int3472: Add TPS68470 board data for Intel nvl
Date: Tue, 24 Mar 2026 08:27:32 +0000	[thread overview]
Message-ID: <SA3PR11MB802232540AF3AA7ACC64E00D9D48A@SA3PR11MB8022.namprd11.prod.outlook.com> (raw)
In-Reply-To: <acEY6_sFAnb3aHY6@kekkonen.localdomain>

Hi Sakari, 

The TPS68470 is providing multiple regulators. The VIO regulator is enabled as default ON. The Core, Ana, VCM, and VSIO regulators are enabled to provide power to the ov13b10 sensor. These regulators only get enabled after adding the always_on=true flag.

The sensor does not get powered on without the always_on=true flag. I think there is some issue in driver/regulator/tps68470-regulator.c for configuring the regulator through regulator_enable(). I think always_on=true is good for this case. Please let me know if anything needs to be done on this.
-
Regards,
Arun T

-----Original Message-----
From: sakari.ailus@linux.intel.com <sakari.ailus@linux.intel.com> 
Sent: 23 March 2026 04:12 PM
To: T, Arun <arun.t@intel.com>
Cc: johannes.goede@oss.qualcomm.com; Kao, Arec <arec.kao@intel.com>; ilpo.jarvinen@linux.intel.com; dan.scally@ideasonboard.com; platform-driver-x86@vger.kernel.org; linux-media@vger.kernel.org; linux-kernel@vger.kernel.org; Djait, Mehdi <mehdi.djait@intel.com>
Subject: Re: [PATCH v4 1/2] platform/x86: int3472: Add TPS68470 board data for Intel nvl

Hi Arun,

On Mon, Mar 23, 2026 at 06:12:29AM +0000, T, Arun wrote:
> Hi All,
> 
> There has been no reply to these below patches for quite some time. 
> Could you please provide any feedback, comments, or suggestions on 
> these below patches
> 
> https://lore.kernel.org/linux-media/20260306163019.1619490-2-arun.t@in
> tel.com/ 
> https://lore.kernel.org/all/20260306163019.1619490-3-arun.t@intel.com/

Could you reply to my earlier reviews?

First and foremost, we still have eight regulators configured for a device that uses three. Some of them have been declared as always_on, too, for no apparent reason.

> 
> -
> Regards,
> Arun T
> 
> -----Original Message-----
> From: T, Arun <arun.t@intel.com>
> Sent: 06 March 2026 10:00 PM
> To: T, Arun <arun.t@intel.com>; johannes.goede@oss.qualcomm.com
> Cc: sakari.ailus@linux.intel.com; Kao, Arec <arec.kao@intel.com>; 
> ilpo.jarvinen@linux.intel.com; dan.scally@ideasonboard.com; 
> platform-driver-x86@vger.kernel.org; linux-media@vger.kernel.org; 
> linux-kernel@vger.kernel.org; Djait, Mehdi <mehdi.djait@intel.com>
> Subject: [PATCH v4 1/2] platform/x86: int3472: Add TPS68470 board data 
> for Intel nvl
> 
> The Intel NVL platform uses IPU8 is powered by a TPS68470 PMIC,requiring board data to configure the GPIOs and regulators for proper camera sensor operation.
> 
> Signed-off-by: Arun T <arun.t@intel.com>
> ---
>  .../x86/intel/int3472/tps68470_board_data.c   | 150 ++++++++++++++++++
>  1 file changed, 150 insertions(+)
> 
> diff --git a/drivers/platform/x86/intel/int3472/tps68470_board_data.c 
> b/drivers/platform/x86/intel/int3472/tps68470_board_data.c
> index 71357a036292..8ae5e01f6660 100644
> --- a/drivers/platform/x86/intel/int3472/tps68470_board_data.c
> +++ b/drivers/platform/x86/intel/int3472/tps68470_board_data.c
> @@ -143,6 +143,34 @@ static struct regulator_consumer_supply int3479_aux2_consumer_supplies[] = {
>  	REGULATOR_SUPPLY("dovdd", "i2c-INT3479:00"),  };
>  
> +/* Settings for Intel NVL platform */
> +
> +static struct regulator_consumer_supply int3472_core_consumer_supplies[] = {
> +	REGULATOR_SUPPLY("dvdd", "i2c-OVTI13B1:01"), };
> +
> +static struct regulator_consumer_supply int3472_ana_consumer_supplies[] = {
> +	REGULATOR_SUPPLY("avdd", "i2c-OVTI13B1:01"), };
> +
> +static struct regulator_consumer_supply int3472_vcm_consumer_supplies[] = {
> +	REGULATOR_SUPPLY("vdd", "i2c-OVTI13B1:01"), };
> +
> +static struct regulator_consumer_supply int3472_vsio_consumer_supplies[] = {
> +	REGULATOR_SUPPLY("dovdd", "i2c-OVTI13B1:01"),
> +	REGULATOR_SUPPLY("vsio", "i2c-OVTI13B1:01"),
> +	REGULATOR_SUPPLY("vddd", "i2c-OVTI13B1:01"), };
> +
> +static struct regulator_consumer_supply int3472_aux1_consumer_supplies[] = {
> +	REGULATOR_SUPPLY("vdda", "i2c-OVTI13B1:01"), };
> +
> +static struct regulator_consumer_supply int3472_aux2_consumer_supplies[] = {
> +	REGULATOR_SUPPLY("vdddo", "i2c-OVTI13B1:01"), };
> +
>  static const struct regulator_init_data dell_7212_tps68470_core_reg_init_data = {
>  	.constraints = {
>  		.min_uV = 1200000,
> @@ -220,6 +248,82 @@ static const struct regulator_init_data dell_7212_tps68470_aux2_reg_init_data =
>  	.consumer_supplies = int3479_aux2_consumer_supplies,  };
>  
> +static const struct regulator_init_data intel_nvl_tps68470_core_reg_init_data = {
> +	.constraints = {
> +		.min_uV = 1200000,
> +		.max_uV = 1200000,
> +		.apply_uV = true,
> +		.always_on = true,
> +	},
> +	.num_consumer_supplies = ARRAY_SIZE(int3472_core_consumer_supplies),
> +	.consumer_supplies = int3472_core_consumer_supplies, };
> +
> +static const struct regulator_init_data intel_nvl_tps68470_ana_reg_init_data = {
> +	.constraints = {
> +		.min_uV = 2815200,
> +		.max_uV = 2815200,
> +		.apply_uV = true,
> +		.always_on = true,
> +	},
> +	.num_consumer_supplies = ARRAY_SIZE(int3472_ana_consumer_supplies),
> +	.consumer_supplies = int3472_ana_consumer_supplies, };
> +
> +static const struct regulator_init_data intel_nvl_tps68470_vcm_reg_init_data = {
> +	.constraints = {
> +		.min_uV = 2815200,
> +		.max_uV = 2815200,
> +		.apply_uV = true,
> +		.always_on = true,
> +	},
> +	.num_consumer_supplies = ARRAY_SIZE(int3472_vcm_consumer_supplies),
> +	.consumer_supplies = int3472_vcm_consumer_supplies, };
> +
> +/* Ensure the always-on VIO regulator has the same voltage as VSIO */ 
> +static const struct regulator_init_data intel_nvl_tps68470_vio_reg_init_data = {
> +	.constraints = {
> +		.min_uV = 1800600,
> +		.max_uV = 1800600,
> +		.apply_uV = true,
> +		.always_on = true,
> +	},
> +};
> +
> +static const struct regulator_init_data intel_nvl_tps68470_vsio_reg_init_data = {
> +	.constraints = {
> +		.min_uV = 1800600,
> +		.max_uV = 1800600,
> +		.apply_uV = true,
> +		.always_on = true,
> +	},
> +	.num_consumer_supplies = ARRAY_SIZE(int3472_vsio_consumer_supplies),
> +	.consumer_supplies = int3472_vsio_consumer_supplies, };
> +
> +static const struct regulator_init_data intel_nvl_tps68470_aux1_reg_init_data = {
> +	.constraints = {
> +		.min_uV = 2815200,
> +		.max_uV = 2815200,
> +		.apply_uV = 1,
> +		.valid_ops_mask = REGULATOR_CHANGE_STATUS,
> +	},
> +	.num_consumer_supplies = ARRAY_SIZE(int3472_aux1_consumer_supplies),
> +	.consumer_supplies = int3472_aux1_consumer_supplies, };
> +
> +static const struct regulator_init_data intel_nvl_tps68470_aux2_reg_init_data = {
> +	.constraints = {
> +		.min_uV = 1800600,
> +		.max_uV = 1800600,
> +		.apply_uV = 1,
> +		.valid_ops_mask = REGULATOR_CHANGE_STATUS,
> +	},
> +	.num_consumer_supplies = ARRAY_SIZE(int3472_aux2_consumer_supplies),
> +	.consumer_supplies = int3472_aux2_consumer_supplies, };
> +
>  static const struct tps68470_regulator_platform_data dell_7212_tps68470_pdata = {
>  	.reg_init_data = {
>  		[TPS68470_CORE] = &dell_7212_tps68470_core_reg_init_data,
> @@ -232,6 +336,18 @@ static const struct tps68470_regulator_platform_data dell_7212_tps68470_pdata =
>  	},
>  };
>  
> +static const struct tps68470_regulator_platform_data intel_nvl_tps68470_pdata = {
> +	.reg_init_data = {
> +		[TPS68470_CORE] = &intel_nvl_tps68470_core_reg_init_data,
> +		[TPS68470_ANA]  = &intel_nvl_tps68470_ana_reg_init_data,
> +		[TPS68470_VCM]  = &intel_nvl_tps68470_vcm_reg_init_data,
> +		[TPS68470_VIO] = &intel_nvl_tps68470_vio_reg_init_data,
> +		[TPS68470_VSIO] = &intel_nvl_tps68470_vsio_reg_init_data,
> +		[TPS68470_AUX1] = &intel_nvl_tps68470_aux1_reg_init_data,
> +		[TPS68470_AUX2] = &intel_nvl_tps68470_aux2_reg_init_data,
> +	},
> +};
> +
>  static struct gpiod_lookup_table surface_go_int347a_gpios = {
>  	.dev_id = "i2c-INT347A:00",
>  	.table = {
> @@ -258,6 +374,23 @@ static struct gpiod_lookup_table dell_7212_int3479_gpios = {
>  	}
>  };
>  
> +static struct gpiod_lookup_table intel_nvl_int347a_gpios = {
> +	.dev_id = "i2c-OVTI13B1:01",
> +	.table = {
> +		GPIO_LOOKUP("tps68470-gpio", 9, "reset", GPIO_ACTIVE_LOW),
> +		GPIO_LOOKUP("tps68470-gpio", 8, "s_idle", GPIO_ACTIVE_LOW),
> +		{ }
> +	}
> +};
> +
> +static struct gpiod_lookup_table intel_nvl_int347e_gpios = {
> +	.dev_id = "i2c-OVTI13B1:01",
> +	.table = {
> +	GPIO_LOOKUP("tps68470-gpio", 7, "s_enable", GPIO_ACTIVE_LOW),
> +		{ }
> +	}
> +};
> +
>  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 +420,16 @@ static const struct int3472_tps68470_board_data dell_7212_tps68470_board_data =
>  	},
>  };
>  
> +static const struct int3472_tps68470_board_data intel_nvl_tps68470_board_data = {
> +	.dev_name = "i2c-INT3472:04",
> +	.tps68470_regulator_pdata = &intel_nvl_tps68470_pdata,
> +	.n_gpiod_lookups = 2,
> +	.tps68470_gpio_lookup_tables = {
> +		&intel_nvl_int347a_gpios,
> +		&intel_nvl_int347e_gpios,
> +	},
> +};
> +
>  static const struct dmi_system_id int3472_tps68470_board_data_table[] = {
>  	{
>  		.matches = {
> @@ -316,6 +459,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, "Intel Corporation"),
> +			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Nova Lake Client Platform"),
> +		},
> +	       .driver_data = (void *)&intel_nvl_tps68470_board_data,
> +	},
>  	{ }
>  };
>  

--
Regards,

Sakari Ailus

  reply	other threads:[~2026-03-24  8:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-06 16:30 [PATCH v4 0/2] Add TPS68470 power supply support for ov13b10 sensor Arun T
2026-03-06 16:30 ` [PATCH v4 1/2] platform/x86: int3472: Add TPS68470 board data for Intel nvl Arun T
2026-03-23  6:12   ` T, Arun
2026-03-23 10:41     ` sakari.ailus
2026-03-24  8:27       ` T, Arun [this message]
2026-03-25 10:09   ` Dan Scally
2026-03-27 13:45     ` T, Arun
2026-03-06 16:30 ` [PATCH v4 2/2] media: i2c: ov13b10: support tps68470 regulator and gpio Arun T

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=SA3PR11MB802232540AF3AA7ACC64E00D9D48A@SA3PR11MB8022.namprd11.prod.outlook.com \
    --to=arun.t@intel.com \
    --cc=arec.kao@intel.com \
    --cc=dan.scally@ideasonboard.com \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=johannes.goede@oss.qualcomm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mehdi.djait@intel.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox