[PATCH 2/4] devicetree/bindings: add support for CP110 UTMI driver
Lubomir Rintel
lkundrak at v3.sk
Fri Jan 29 04:38:23 EST 2021
Hi,
On Wed, Jan 27, 2021 at 01:27:17PM +0200, kostap at marvell.com wrote:
> From: Konstantin Porotchkin <kostap at marvell.com>
>
> Add DTS binding for Marvell CP110 UTMI driver
>
> Signed-off-by: Konstantin Porotchkin <kostap at marvell.com>
Any chance you could convert the document to YAML so that it could be
used for automatic validation?
> ---
> Documentation/devicetree/bindings/phy/phy-mvebu-utmi.txt | 69 ++++++++++++++++++--
> 1 file changed, 63 insertions(+), 6 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/phy/phy-mvebu-utmi.txt b/Documentation/devicetree/bindings/phy/phy-mvebu-utmi.txt
> index aa99ceec73b0..109888ba9d2d 100644
> --- a/Documentation/devicetree/bindings/phy/phy-mvebu-utmi.txt
> +++ b/Documentation/devicetree/bindings/phy/phy-mvebu-utmi.txt
> @@ -1,30 +1,61 @@
> -MVEBU A3700 UTMI PHY
> ---------------------
> +MVEBU UTMI PHY
> +---------------
>
> USB2 UTMI+ PHY controllers can be found on the following Marvell MVEBU SoCs:
> * Armada 3700
> +* Armada 7k/8k (on the CP110)
> +* Armada CN913x (on the CP115)
>
> On Armada 3700, there are two USB controllers, one is compatible with the USB2
> and USB3 specifications and supports OTG. The other one is USB2 compliant and
> only supports host mode. Both of these controllers come with a slightly
> different UTMI PHY.
>
> +On Armada 7k/8k and CN913x, there are two host and one device USB controllers.
> +Each of two exiting UTMI PHYs could be connected to either USB host or USB device
> +controller.
> +The USB device controller can only be connected to a single UTMI PHY port:
> + 0.H----- USB HOST0
> +UTMI PHY0 --------/
> + 0.D-----0
> + \------ USB DEVICE
> + 1.D-----1
> +UTMI PHY1 --------\
> + 1.H----- USB HOST1
> +
> +
> Required Properties:
>
> - compatible: Should be one of:
> * "marvell,a3700-utmi-host-phy" for the PHY connected to
> - the USB2 host-only controller.
> + the USB2 host-only controller (for Armada3700 only).
> * "marvell,a3700-utmi-otg-phy" for the PHY connected to
> - the USB3 and USB2 OTG capable controller.
> + the USB3 and USB2 OTG capable controller (for Armada3700 only.
> + * "marvell,cp110-utmi-phy" (for Armada 7k/8k or CN913x only).
> - reg: PHY IP register range.
> - marvell,usb-misc-reg: handle on the "USB miscellaneous registers" shared
> region covering registers related to both the host
> - controller and the PHY.
> -- #phy-cells: Standard property (Documentation: phy-bindings.txt) Should be 0.
> + controller and the PHY (for Armada3700 only).
> +- marvell,system-controller: should contain a phandle to the system
> + controller node (for Armada 7k/8k or CN913x only)
I guess this is okay, but referring to a syscon is done in a multitude
ways across various other bindings; with the most popular being just:
syscon = <&syscon>;
Perhaps consider doing that?
> +- #phy-cells: Standard property (Documentation: phy-bindings.txt.
> + Should be 0 (for Armada3700 only).
> +
> +
> +Required properties (child nodes, for Armada 7k/8k/CN913x only):
> +
> +- reg: UTMI PHY port ID (0 or 1).
> +- #phy-cells : Should be 0.
> +
> +
> +Optional Properties (child nodes, for Armada 7k/8k/CN913x only)::
>
> +- marvell,cp110-utmi-device-mode: request the driver to connect the UTMI PHY
> + port to USB device controller.
Do you need a separate property for this? Could the driver look at
"dr_mode" property of the USB controller node to see if it's supposed
to be in device/peripheral mode?
> Example:
>
> +Armada3700
> usb2_utmi_host_phy: phy at 5f000 {
> compatible = "marvell,armada-3700-utmi-host-phy";
> reg = <0x5f000 0x800>;
> @@ -36,3 +67,29 @@ Example:
> compatible = "marvell,armada-3700-usb2-host-misc", "syscon";
> reg = <0x5f800 0x800>;
> };
> +
> +Armada 7k/8k/CN913x
> +
> + CP11X_LABEL(utmi): utmi at 580000 {
> + compatible = "marvell,cp110-utmi-phy";
> + reg = <0x580000 0x2000>;
> + marvell,system-controller = <&CP11X_LABEL(syscon0)>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> +
> + CP11X_LABEL(utmi0): phy at 0 {
> + /* UTMI PHY port-0 is connected to USB Host controller-0 */
> + reg = <0>;
> + #phy-cells = <0>;
> + };
> +
> + CP11X_LABEL(utmi1): phy at 1 {
> + /* UTMI PHY port-1 is connected to USB device controller */
> + reg = <1>;
> + #phy-cells = <0>;
> + marvell,cp110-utmi-device-mode;
> + };
> + };
> +
> +
> --
> 2.17.1
>
More information about the linux-arm-kernel
mailing list