Linux Media Controller development
 help / color / mirror / Atom feed
* [PATCH v4 0/9] platform/x86: int3472: Add handshake pin support
@ 2025-04-17 11:13 Hans de Goede
  2025-04-17 11:13 ` [PATCH v4 1/9] platform/x86: int3472: Add skl_int3472_register_clock() helper Hans de Goede
                   ` (10 more replies)
  0 siblings, 11 replies; 18+ messages in thread
From: Hans de Goede @ 2025-04-17 11:13 UTC (permalink / raw)
  To: Ilpo Järvinen, Andy Shevchenko
  Cc: Hans de Goede, Dan Scally, Alan Stern, Sakari Ailus, Hao Yao,
	Bingbu Cao, Duane, platform-driver-x86, linux-media

Hi All,

New Intel Meteor Lake based laptops with IPU6 cameras have a new type 0x12
pin defined in the INT3472 sensor companion device which describes
the sensor's GPIOs.

This pin is primarily used on designs with a Lattice FPGA chip which is
capable of running the sensor independently of the main CPU for features
like presence detection. This pin needs to be driven high to make the FPGA
run the power-on sequence of the sensor. After driving the pin high
the FPGA "firmware" needs 25ms to comlpete the power-on sequence.

This series implements support for this by modelling the handshake GPIO
as a GPIO driven 'dvdd' regulator with an enable-time of 25 ms, also see:

https://lore.kernel.org/platform-driver-x86/59f672c3-6d87-4ec7-9b7f-f44fe2cce934@redhat.com/

Patch   1   Is an unrelated cleanup which I had lying around
Patches 2-8 Prepare + Implement the handshake GPIO
Patch   9   Is a small patch adding some extra debugging to GPIO remapping

Changes in v4:
- Add Andy's Reviewed-by to a few more patches
- At static_assert(GPIO_REGULATOR_SUPPLY_MAP_COUNT == 2) since the code
  assumes that
- Use unique error messages for power-enable vs handshake
  skl_int3472_register_regulator() failures
- Drop setting of constraints.enable_time. enable_time already gets set
  in struct regulator_desc (missed left-over from an older patch version)

Changes in v3:
- Add Andy's Reviewed-by to a few more patches
- Some comment & commit-message tweaks
- Add comment explaining value of 12 in GPIO_REGULATOR_NAME_LENGTH
- Add a comment to int3472/common.h explaining where the 2 ms comes from
- s/n_regulators/n_regulator_gpios/

Changes in v2:
- Add Andy's Reviewed-by to patches 1-3
- Address Andy's review remarks on patch 5
- Add 2 Tested-by tags to patch 8/9

This series applies on top of Torvald's latest master, for testing with
6.14 this patch needs to be cherry-picked first:
https://web.git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/commit/?id=81b251c66bdfe263fb5e7a16838512ddaeed77df

Regards,

Hans


Hans de Goede (9):
  platform/x86: int3472: Add skl_int3472_register_clock() helper
  platform/x86: int3472: Stop setting a supply-name for GPIO regulators
  platform/x86: int3472: Drop unused gpio field from struct
    int3472_gpio_regulator
  platform/x86: int3472: Rework AVDD second sensor quirk handling
  platform/x86: int3472: Make regulator supply name configurable
  platform/x86: int3472: Avoid GPIO regulator spikes
  platform/x86: int3472: Prepare for registering more than 1 GPIO
    regulator
  platform/x86: int3472: Add handshake pin support
  platform/x86: int3472: Debug log when remapping pins

 drivers/platform/x86/intel/int3472/Makefile   |   3 +-
 .../x86/intel/int3472/clk_and_regulator.c     | 167 ++++++------------
 drivers/platform/x86/intel/int3472/common.h   |  57 ++++--
 drivers/platform/x86/intel/int3472/discrete.c |  41 ++++-
 .../x86/intel/int3472/discrete_quirks.c       |  22 +++
 5 files changed, 158 insertions(+), 132 deletions(-)
 create mode 100644 drivers/platform/x86/intel/int3472/discrete_quirks.c

-- 
2.49.0


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2025-04-25  9:06 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-17 11:13 [PATCH v4 0/9] platform/x86: int3472: Add handshake pin support Hans de Goede
2025-04-17 11:13 ` [PATCH v4 1/9] platform/x86: int3472: Add skl_int3472_register_clock() helper Hans de Goede
2025-04-17 12:59   ` Ilpo Järvinen
2025-04-17 11:13 ` [PATCH v4 2/9] platform/x86: int3472: Stop setting a supply-name for GPIO regulators Hans de Goede
2025-04-17 11:13 ` [PATCH v4 3/9] platform/x86: int3472: Drop unused gpio field from struct int3472_gpio_regulator Hans de Goede
2025-04-17 11:13 ` [PATCH v4 4/9] platform/x86: int3472: Rework AVDD second sensor quirk handling Hans de Goede
2025-04-17 11:13 ` [PATCH v4 5/9] platform/x86: int3472: Make regulator supply name configurable Hans de Goede
2025-04-17 16:25   ` Andy Shevchenko
2025-04-23 13:58     ` Ilpo Järvinen
2025-04-23 15:38       ` Andy Shevchenko
2025-04-24 14:06   ` Ilpo Järvinen
2025-04-25  9:06     ` Hans de Goede
2025-04-17 11:13 ` [PATCH v4 6/9] platform/x86: int3472: Avoid GPIO regulator spikes Hans de Goede
2025-04-17 11:13 ` [PATCH v4 7/9] platform/x86: int3472: Prepare for registering more than 1 GPIO regulator Hans de Goede
2025-04-17 11:13 ` [PATCH v4 8/9] platform/x86: int3472: Add handshake pin support Hans de Goede
2025-04-17 11:13 ` [PATCH v4 9/9] platform/x86: int3472: Debug log when remapping pins Hans de Goede
2025-04-18 15:47 ` [PATCH v4 0/9] platform/x86: int3472: Add handshake pin support David Heidelberg
2025-04-23  9:46 ` Sakari Ailus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox