mbox series

[v3,0/6] Add support for USB VBUS control for RZ/G2L SoCs

Message ID 20240611110402.58104-1-biju.das.jz@bp.renesas.com (mailing list archive)
Headers show
Series Add support for USB VBUS control for RZ/G2L SoCs | expand

Message

Biju Das June 11, 2024, 11:03 a.m. UTC
As per RZ/G2L HW manual, VBUS enable can be controlled by the VBOUT bit of
the VBUS Control Register(VBENCTL) register in the USBPHY Control. But
this IP is in the Reset block.

Reset driver exposes this register as regmap and instantiate the
USB VBUS regulator device. Consumers(phy device) can use regulator
driver's regmap to control VBUS as controlling is done in the atomic
context.

We need to have merge strategy which subsytem will apply this patches
as it involves multiple subsystems Reset, Regulator, PHY, DT and Renesas SoC??

v2->v3:
 * Documented regulator-vbus in the binding file.
 * Updated commit description and header for patch#2
 * Moved regulator device creation and instantiation at the end of probe().
 * Introduced new API regulator_set_hardware_enable_register() to enable/disable
   regulator in atomic context.
 * Dropped vbus_voltages table from patch#4
 * Added support for enabling/disabling regulator through regmap API's
 * Updated rzg2l_usb_vbus_rdesc with enable_{reg,mask}, fixed_uV and
   n_voltages
 * Updated of_node with child node of the parent device.
 * Replaced regulator's regmap API with newly introduced
   regulator_set_hardware_enable_register to enable/disable regulator
   in interrupt context in patch#5
 * Dropped using "usb_vbus-supply" in patch#5.
 * Upated vbus regulator label name in dts file.
 * Updated node and regulator name that matches with the binding documentation.
v1->v2:
 * Introduced a regulator driver to control VBUS

Biju Das (6):
  dt-bindings: reset: renesas,rzg2l-usbphy-ctrl: Document USB VBUS
    regulator
  reset: renesas: Add USB VBUS regulator device as child
  regulator: core: Add helper for allow access to enable register
  regulator: Add Renesas RZ/G2L USB VBUS regulator driver
  phy: renesas: phy-rcar-gen3-usb2: Control VBUS for RZ/G2L SoCs
  arm64: dts: renesas: rz-smarc: Replace fixed regulator for USB VBUS

 .../reset/renesas,rzg2l-usbphy-ctrl.yaml      | 12 ++++
 Documentation/power/regulator/consumer.rst    |  5 ++
 .../boot/dts/renesas/rz-smarc-common.dtsi     | 13 ++--
 drivers/phy/renesas/phy-rcar-gen3-usb2.c      |  3 +
 drivers/regulator/Kconfig                     |  9 +++
 drivers/regulator/Makefile                    |  1 +
 drivers/regulator/core.c                      | 32 +++++++++
 .../regulator/renesas-usb-vbus-regulator.c    | 67 +++++++++++++++++++
 drivers/reset/reset-rzg2l-usbphy-ctrl.c       | 37 ++++++++++
 include/linux/regulator/consumer.h            |  8 +++
 10 files changed, 179 insertions(+), 8 deletions(-)
 create mode 100644 drivers/regulator/renesas-usb-vbus-regulator.c