[PATCH v5 0/2] Add driver support for ESWIN EIC7700 SoC USB controller

caohang
2025-11-04T06:51:26Z

From: Hang Cao <caohang@eswincomputing.com>

Add support for ESWIN EIC7700 USB driver controller.

Changes in v5->v4:
- Updates:
- Rebase kernel source to usb-testing branch of gregkh/usb.git.

- Updates: eswin,eic7700-usb.yaml
- Remove the unnecessary properties about quirks.

- Updates: dwc3-generic-plat.c
- Add eic7700 pre init in probe function.
- Removed .data
- Link to V4:https://lore.kernel.org/all/20251016094654.708-1-caohang@eswincomputing.com/
- Link to gregkh/usb.git:https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/tree/?h=usb-next

Changes in v4->v3:
- Updates:
- Removed config option patch dependency from cover letter, because the patch
was applied.
- Remove dwc3-eic7700.c instead of dwc3-generic-plat.c.

- Updates: eswin,eic7700-usb.yaml
- Add usb_en clock.
- Add usb_rst reset.
- Update eswin,hsp-sp-csr description.
- Remove the last two unused items of eswin,hsp-sp-csr.

- Updates: dwc3-generic-plat.c
- Add eswin,eic7700-dwc3 to the compatible table.
- Add the dwc3_generic_match_data structure.
- Add the eic7700_dwc3_bus_init function to initialize the bus.
- Add the init_ops callback in the probe function.
- Link to V3: https://lore.kernel.org/all/20250915085329.2058-1-caohang@eswincomputing.com/

Changes in v3->v2:
- Updates: eswin,eic7700-usb.yaml
- Sort the attributes according to the DTS coding style.
- Remove the #address-cells and #size-cells attributes.
- Fold the child node into the parent.
- Update commit message.

- Updates: dwc3-eic7700.c
- Use dwc3 core as a library.
- Add system and runtime pm.
- Use pm_ptr and remove the __maybe_unused tags.
- Add new author name
- Add prepare and complete function
- Update commit message.
- Link to V2: https://lore.kernel.org/lkml/20250730073953.1623-1-zhangsenchuan@eswincomputing.com/

Changes in v2->v1:
- Updates: eswin,eic7700-usb.yaml
- Drop the redundant descriptions.
- Supplement the constraints of resets.
- Replace "eswin,hsp_sp_csr" with "eswin,hsp-sp-csr"
and add items description.
- Drop numa-node-id, This is not necessary.
- Add patternProperties and match the rules defined
in the "snps,dwc3.yaml" file.
- Add "#address-cells" "#size-cells".
- Update the space indentation, remove the redundant labels,
and sort the attributes according to the DTS encoding style.
- Drop the "status = "disabled" attribute.
- Update the common usb node names and fold the child
nodes into the parent nodes.
- The warning detected by the robot has been resolved.

- Updates: dwc3-eic7700.c
- Remove dwc3_mode_show dwc3_mode_store dwc3_eswin_get_extcon_dev,
dwc3_eswin_device_notifier and dwc3_eswin_host_notifier, usb role
detection and switching are not supported.
- Remove the hub-rst attribute, remove the dwc3_hub_rst_show and
dwc3_hub_rst_store functions, this feature is not supported.
- Use syscon_regmap_lookup_by_phandle_args instead of the
syscon_regmap_lookup_by_phandle function.
- Use dev_err_probe in probe function.
- Drop mutex_lock, which is not required.
- Remove clk_prepare_enable and of_clk_get, and manage multiple
clocks using devm_clk_bulk_get_all_enabled.
- Remove the device_init_wakeup related functions, which were
used incorrectly.
- Remove MODULE_ALIAS, which is used incorrectly.
- The warning detected by the robot has been resolved.
- Link to V1: https://lore.kernel.org/lkml/20250516095237.1516-1-zhangsenchuan@eswincomputing.com/

Hang Cao (2):
dt-bindings: usb: Add ESWIN EIC7700 USB controller
usb: dwc3: eic7700: Add EIC7700 USB driver

.../bindings/usb/eswin,eic7700-usb.yaml | 94 +++++++++++++++++++
drivers/usb/dwc3/dwc3-generic-plat.c | 43 +++++++++
2 files changed, 137 insertions(+)
create mode 100644 Documentation/devicetree/bindings/usb/eswin,eic7700-usb.yaml

--
2.34.1