All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/13] Add support for X86/ACPI camera sensor/PMIC setup with clk and regulator platform data
@ 2021-10-09 16:05 Hans de Goede
  2021-10-09 16:05 ` [PATCH v2 01/13] ACPI: Add a honor_deps flag to struct acpi_device Hans de Goede
                   ` (12 more replies)
  0 siblings, 13 replies; 16+ messages in thread
From: Hans de Goede @ 2021-10-09 16:05 UTC (permalink / raw)
  To: Rafael J . Wysocki, Mark Gross, Andy Shevchenko, Daniel Scally,
	Laurent Pinchart, Mauro Carvalho Chehab, Liam Girdwood,
	Mark Brown, Michael Turquette, Stephen Boyd
  Cc: Hans de Goede, Len Brown, linux-acpi, platform-driver-x86,
	linux-kernel, Sakari Ailus, Kate Hsuan, linux-media, linux-clk

Hi All,

Here is v2 of my patch-set adding support for camera sensor connected to a
TPS68470 PMIC on x86/ACPI devices.

The big change in v2 is that I've reworked how to defer the binding of the
camera-sensor drivers till all clk/regulator/gpio consumer/lookup info has
been registered. See the new patch 1 + 2 (replacing the old patch 1 - 3)
in this version. There are also some small other changes, mostly as
a result of this change and patch 12 + 13 are new patches.

###

The clk and regulator frameworks expect clk/regulator consumer-devices
to have info about the consumed clks/regulators described in the device's
fw_node, but on ACPI this info is missing.

This series worksaround this by providing platform_data with the info to
the TPS68470 clk/regulator MFD cells.

Patches 1 - 2 + 13 deal with a probe-ordering problem this introduces,
since the lookups are only registered when the provider-driver binds,
trying to get these clks/regulators before then results in a -ENOENT
error for clks and a dummy regulator for regulators. See the patches
for more details.

Patch 3 adds a header file which adds tps68470_clk_platform_data and
tps68470_regulator_platform_data structs. The futher patches depend on
this new header file.

Patch 4 + 5 add the TPS68470 clk and regulator drivers

Patches 6 - 11 Modify the INT3472 driver which instantiates the MFD cells to
provide the necessary platform-data.

Assuming this series is acceptable to everyone, we need to talk about how
to merge this.

Patches 1 + 2 can be merged into linux-pm by Rafael, independent of the
rest of the series.

For "[PATCH 03/13] platform_data: Add linux/platform_data/tps68470.h file",
which all further patches depend on I plan to provide an immutable branch
myself (once it has been reviewed), which the clk / regulator maintainers
can then merge before merging the clk / regulator driver which depends on
this.

And patches 12 + 13 can be merged independently into the media tree. 

Regards,

Hans


Daniel Scally (2):
  platform/x86: int3472: Enable I2c daisy chain
  media: ipu3-cio2: Add INT347A to cio2-bridge

Hans de Goede (11):
  ACPI: Add a honor_deps flag to struct acpi_device
  ACPI: honor dependencies for devices with a _DEP pointing to an
    INT3472 device
  platform_data: Add linux/platform_data/tps68470.h file
  regulator: Introduce tps68470-regulator driver
  clk: Introduce clk-tps68470 driver
  platform/x86: int3472: Split into 2 drivers
  platform/x86: int3472: Add get_sensor_adev_and_name() helper
  platform/x86: int3472: Pass tps68470_clk_platform_data to the
    tps68470-regulator MFD-cell
  platform/x86: int3472: Pass tps68470_regulator_platform_data to the
    tps68470-regulator MFD-cell
  platform/x86: int3472: Deal with probe ordering issues
  media: ipu3-cio2: Add module soft-deps for the INT3472 drivers

 drivers/acpi/bus.c                            |   4 +-
 drivers/acpi/scan.c                           |  20 +-
 drivers/clk/Kconfig                           |   6 +
 drivers/clk/Makefile                          |   1 +
 drivers/clk/clk-tps68470.c                    | 256 ++++++++++++++++++
 drivers/media/pci/intel/ipu3/cio2-bridge.c    |   2 +
 drivers/media/pci/intel/ipu3/ipu3-cio2-main.c |   6 +
 drivers/platform/x86/intel/int3472/Makefile   |   9 +-
 ...lk_and_regulator.c => clk_and_regulator.c} |   2 +-
 drivers/platform/x86/intel/int3472/common.c   |  82 ++++++
 .../{intel_skl_int3472_common.h => common.h}  |   6 +-
 ...ntel_skl_int3472_discrete.c => discrete.c} |  51 ++--
 .../intel/int3472/intel_skl_int3472_common.c  | 106 --------
 ...ntel_skl_int3472_tps68470.c => tps68470.c} |  97 ++++++-
 drivers/platform/x86/intel/int3472/tps68470.h |  25 ++
 .../x86/intel/int3472/tps68470_board_data.c   | 118 ++++++++
 drivers/regulator/Kconfig                     |   9 +
 drivers/regulator/Makefile                    |   1 +
 drivers/regulator/tps68470-regulator.c        | 193 +++++++++++++
 include/acpi/acpi_bus.h                       |   2 +
 include/linux/mfd/tps68470.h                  |  11 +
 include/linux/platform_data/tps68470.h        |  35 +++
 22 files changed, 892 insertions(+), 150 deletions(-)
 create mode 100644 drivers/clk/clk-tps68470.c
 rename drivers/platform/x86/intel/int3472/{intel_skl_int3472_clk_and_regulator.c => clk_and_regulator.c} (99%)
 create mode 100644 drivers/platform/x86/intel/int3472/common.c
 rename drivers/platform/x86/intel/int3472/{intel_skl_int3472_common.h => common.h} (94%)
 rename drivers/platform/x86/intel/int3472/{intel_skl_int3472_discrete.c => discrete.c} (91%)
 delete mode 100644 drivers/platform/x86/intel/int3472/intel_skl_int3472_common.c
 rename drivers/platform/x86/intel/int3472/{intel_skl_int3472_tps68470.c => tps68470.c} (55%)
 create mode 100644 drivers/platform/x86/intel/int3472/tps68470.h
 create mode 100644 drivers/platform/x86/intel/int3472/tps68470_board_data.c
 create mode 100644 drivers/regulator/tps68470-regulator.c
 create mode 100644 include/linux/platform_data/tps68470.h

-- 
2.31.1


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

end of thread, other threads:[~2021-10-11 11:02 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-09 16:05 [PATCH v2 00/13] Add support for X86/ACPI camera sensor/PMIC setup with clk and regulator platform data Hans de Goede
2021-10-09 16:05 ` [PATCH v2 01/13] ACPI: Add a honor_deps flag to struct acpi_device Hans de Goede
2021-10-09 16:05 ` [PATCH v2 02/13] ACPI: honor dependencies for devices with a _DEP pointing to an INT3472 device Hans de Goede
2021-10-10 15:10   ` Hans de Goede
2021-10-09 16:05 ` [PATCH v2 03/13] platform_data: Add linux/platform_data/tps68470.h file Hans de Goede
2021-10-09 16:05 ` [PATCH v2 04/13] regulator: Introduce tps68470-regulator driver Hans de Goede
2021-10-11 11:02   ` Mark Brown
2021-10-09 16:05 ` [PATCH v2 05/13] clk: Introduce clk-tps68470 driver Hans de Goede
2021-10-09 16:05 ` [PATCH v2 06/13] platform/x86: int3472: Enable I2c daisy chain Hans de Goede
2021-10-09 16:05 ` [PATCH v2 07/13] platform/x86: int3472: Split into 2 drivers Hans de Goede
2021-10-09 16:05 ` [PATCH v2 08/13] platform/x86: int3472: Add get_sensor_adev_and_name() helper Hans de Goede
2021-10-09 16:05 ` [PATCH v2 09/13] platform/x86: int3472: Pass tps68470_clk_platform_data to the tps68470-regulator MFD-cell Hans de Goede
2021-10-09 16:05 ` [PATCH v2 10/13] platform/x86: int3472: Pass tps68470_regulator_platform_data " Hans de Goede
2021-10-09 16:05 ` [PATCH v2 11/13] platform/x86: int3472: Deal with probe ordering issues Hans de Goede
2021-10-09 16:05 ` [PATCH v2 12/13] media: ipu3-cio2: Add INT347A to cio2-bridge Hans de Goede
2021-10-09 16:05 ` [PATCH v2 13/13] media: ipu3-cio2: Add module soft-deps for the INT3472 drivers Hans de Goede

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.