mbox series

[v7,0/5] arm64: meson: Add support for USB on Amlogic A1

Message ID 1579489086-157767-1-git-send-email-hanjie.lin@amlogic.com (mailing list archive)
Headers show
Series arm64: meson: Add support for USB on Amlogic A1 | expand

Message

Hanjie Lin Jan. 20, 2020, 2:58 a.m. UTC
This patchset adds support for USB on Amlogic A1 SoCs.

This patchset is composed with :
- bindings of the PHY
- bindings of the USB Control Glue
- PHY Driver
- USB Control Glue driver
- dts of the PHY
- dts of the USB Controller

The Amlogic A1 USB Complex is composed of :
- 1 DWC3 USB controller for USB2 Host functionality
- 1 USB2 PHY for USB2 Host functionality

The USB Control Glue setups the clocks and the reset about DWC3 USB
controller, and binds to the USB2 PHY. It also configures the 8bit
UTMI interfaces for the USB2 PHY, including setting USB2 phy mode.

The USB2 PHY driver initializes the phy analog settings, phy PLL 
setup and phy tuning.

This patchset is based on A1 clock/power domain/reset series at [0].

Changes since v1:[1]
 - integrate glue and phy drivers into g12a's
 
Changes since v2:[2]
 - modify amlogic,meson-g12a-usb-ctrl.yaml with dt_binding_check tool
 - phy/glue driver use of_device_get_match_data to distinguish A1 from G12A

Changes since v3:[3]
 - fix bindings mistakes of the PHY according Rob's comments
 - fix bindings mistakes of the USB Control Glue according Rob's comments
 - phy driver add xtal_usb_phy clock which moved from glue driver
 - glue driver use otg_mode instead of soc_id to support otg function

Changes since v4:[4]
 - phy driver revert reset-names changes
 - phy driver change clock name to "xtal" to consistent with g12a
 - glue driver add drvdata otg_switch_supported

Changes since v5:[5]
 - integrate phy bindings into g12a
 - modify glue bindings format according to martin's advices
 - glue driver add dwc3_meson_g12a_otg_init() do otg related work
 - glue driver add clk_bulk_disable_unprepare() in remove

Changes since v6:[6]
 - fix glue bindings dt_check_bindings error.
 - squash phy and glue dts patches and set usb status to disabled default
 
[0]
https://patchwork.kernel.org/project/linux-amlogic/list/?series=185477
https://patchwork.kernel.org/project/linux-amlogic/list/?series=180055
https://patchwork.kernel.org/project/linux-amlogic/list/?series=189643

[1] : https://lore.kernel.org/linux-amlogic/1574405757-76184-1-git-send-email-hanjie.lin@amlogic.com

[2] : https://lore.kernel.org/linux-amlogic/1576636944-196192-1-git-send-email-hanjie.lin@amlogic.com

[3] : https://lore.kernel.org/linux-amlogic/1577428606-69855-1-git-send-email-hanjie.lin@amlogic.com

[4] : https://lore.kernel.org/linux-amlogic/1578537045-23260-1-git-send-email-hanjie.lin@amlogic.com

[5] : https://lore.kernel.org/linux-amlogic/1578634957-54826-1-git-send-email-hanjie.lin@amlogic.com

[6] : https://lore.kernel.org/linux-amlogic/1579220504-110067-1-git-send-email-hanjie.lin@amlogic.com

Hanjie Lin (5):
  dt-bindings: phy: Add Amlogic A1 USB2 PHY Bindings
  dt-bindings: usb: dwc3: Add the Amlogic A1 Family DWC3 Glue Bindings
  phy: amlogic: Add Amlogic A1 USB2 PHY Driver
  usb: dwc3: Add Amlogic A1 DWC3 glue
  arm64: dts: meson: a1: Enable USB2 PHY and DWC3 controller

 .../bindings/phy/amlogic,meson-g12a-usb2-phy.yaml  |  15 ++
 .../bindings/usb/amlogic,meson-g12a-usb-ctrl.yaml  |  23 +++
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi          |  43 ++++++
 drivers/phy/amlogic/phy-meson-g12a-usb2.c          |  85 ++++++----
 drivers/usb/dwc3/dwc3-meson-g12a.c                 | 172 ++++++++++++++-------
 5 files changed, 256 insertions(+), 82 deletions(-)

Comments

Felipe Balbi Jan. 31, 2020, 1:33 p.m. UTC | #1
Hanjie Lin <hanjie.lin@amlogic.com> writes:

> This patchset adds support for USB on Amlogic A1 SoCs.
>
> This patchset is composed with :
> - bindings of the PHY
> - bindings of the USB Control Glue
> - PHY Driver
> - USB Control Glue driver
> - dts of the PHY
> - dts of the USB Controller
>
> The Amlogic A1 USB Complex is composed of :
> - 1 DWC3 USB controller for USB2 Host functionality
> - 1 USB2 PHY for USB2 Host functionality
>
> The USB Control Glue setups the clocks and the reset about DWC3 USB
> controller, and binds to the USB2 PHY. It also configures the 8bit
> UTMI interfaces for the USB2 PHY, including setting USB2 phy mode.
>
> The USB2 PHY driver initializes the phy analog settings, phy PLL 
> setup and phy tuning.
>
> This patchset is based on A1 clock/power domain/reset series at [0].
>
> Changes since v1:[1]
>  - integrate glue and phy drivers into g12a's
>  
> Changes since v2:[2]
>  - modify amlogic,meson-g12a-usb-ctrl.yaml with dt_binding_check tool
>  - phy/glue driver use of_device_get_match_data to distinguish A1 from G12A
>
> Changes since v3:[3]
>  - fix bindings mistakes of the PHY according Rob's comments
>  - fix bindings mistakes of the USB Control Glue according Rob's comments
>  - phy driver add xtal_usb_phy clock which moved from glue driver
>  - glue driver use otg_mode instead of soc_id to support otg function
>
> Changes since v4:[4]
>  - phy driver revert reset-names changes
>  - phy driver change clock name to "xtal" to consistent with g12a
>  - glue driver add drvdata otg_switch_supported
>
> Changes since v5:[5]
>  - integrate phy bindings into g12a
>  - modify glue bindings format according to martin's advices
>  - glue driver add dwc3_meson_g12a_otg_init() do otg related work
>  - glue driver add clk_bulk_disable_unprepare() in remove
>
> Changes since v6:[6]
>  - fix glue bindings dt_check_bindings error.
>  - squash phy and glue dts patches and set usb status to disabled default
>  
> [0]
> https://patchwork.kernel.org/project/linux-amlogic/list/?series=185477
> https://patchwork.kernel.org/project/linux-amlogic/list/?series=180055
> https://patchwork.kernel.org/project/linux-amlogic/list/?series=189643
>
> [1] : https://lore.kernel.org/linux-amlogic/1574405757-76184-1-git-send-email-hanjie.lin@amlogic.com
>
> [2] : https://lore.kernel.org/linux-amlogic/1576636944-196192-1-git-send-email-hanjie.lin@amlogic.com
>
> [3] : https://lore.kernel.org/linux-amlogic/1577428606-69855-1-git-send-email-hanjie.lin@amlogic.com
>
> [4] : https://lore.kernel.org/linux-amlogic/1578537045-23260-1-git-send-email-hanjie.lin@amlogic.com
>
> [5] : https://lore.kernel.org/linux-amlogic/1578634957-54826-1-git-send-email-hanjie.lin@amlogic.com
>
> [6] : https://lore.kernel.org/linux-amlogic/1579220504-110067-1-git-send-email-hanjie.lin@amlogic.com
>
> Hanjie Lin (5):
>   dt-bindings: phy: Add Amlogic A1 USB2 PHY Bindings
>   dt-bindings: usb: dwc3: Add the Amlogic A1 Family DWC3 Glue Bindings
>   phy: amlogic: Add Amlogic A1 USB2 PHY Driver
>   usb: dwc3: Add Amlogic A1 DWC3 glue
>   arm64: dts: meson: a1: Enable USB2 PHY and DWC3 controller

I have taken dwc3 bindings and dwc3 patch. PHY parts should go via Kishon