linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 36/52] dt-bindings: usb: Convert SMSC USB3503 binding to a schema
       [not found] <20210901091852.479202-1-maxime@cerno.tech>
@ 2021-09-01  9:18 ` Maxime Ripard
  2021-09-03 19:47   ` Rob Herring
  2021-09-01  9:18 ` [PATCH v2 37/52] dt-bindings: usb: dwc3: Fix usb-phy check Maxime Ripard
  1 sibling, 1 reply; 6+ messages in thread
From: Maxime Ripard @ 2021-09-01  9:18 UTC (permalink / raw)
  To: devicetree, Rob Herring, Frank Rowand, Chen-Yu Tsai,
	Maxime Ripard, Jernej Škrabec
  Cc: linux-arm-kernel, linux-sunxi, Dongjin Kim, Greg Kroah-Hartman,
	linux-usb

The SMSC USB3503 USB Hub Controller is supported by Linux thanks to
its device tree binding.

Now that we have the DT validation in place, let's convert the device
tree bindings for that driver over to a YAML schema.

Cc: Dongjin Kim <tobetter@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Signed-off-by: Maxime Ripard <maxime@cerno.tech>

---

Changes from v1:
  - Added maximum number of items for clocks and gpios
  - Fixed the example node name
---
 .../devicetree/bindings/usb/smsc,usb3503.yaml | 108 ++++++++++++++++++
 .../devicetree/bindings/usb/usb3503.txt       |  39 -------
 2 files changed, 108 insertions(+), 39 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/usb/smsc,usb3503.yaml
 delete mode 100644 Documentation/devicetree/bindings/usb/usb3503.txt

diff --git a/Documentation/devicetree/bindings/usb/smsc,usb3503.yaml b/Documentation/devicetree/bindings/usb/smsc,usb3503.yaml
new file mode 100644
index 000000000000..39228a506b93
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/smsc,usb3503.yaml
@@ -0,0 +1,108 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/smsc,usb3503.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SMSC USB3503 High-Speed Hub Controller Device Tree Bindings
+
+maintainers:
+  - Dongjin Kim <tobetter@gmail.com>
+
+properties:
+  compatible:
+    enum:
+      - smsc,usb3503
+      - smsc,usb3503a
+
+  reg:
+    maxItems: 1
+
+  connect-gpios:
+    maxItems: 1
+    description: >
+      GPIO for connect
+
+  intn-gpios:
+    maxItems: 1
+    description: >
+      GPIO for interrupt
+
+  reset-gpios:
+    maxItems: 1
+    description: >
+      GPIO for reset
+
+  disabled-ports:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 1
+    maxItems: 3
+    items:
+      minimum: 1
+      maximum: 3
+    description: >
+      Specifies the ports unused using their port number. Do not describe this
+      property if all ports have to be enabled.
+
+  initial-mode:
+    enum: [1, 2]
+    description: >
+      Specifies initial mode. 1 for Hub mode, 2 for standby mode.
+
+  clocks:
+    maxItems: 1
+    description: >
+      Clock used for driving REFCLK signal. If not provided the driver assumes
+      that clock signal is always available, its rate is specified by REF_SEL
+      pins and a value from the primary reference clock frequencies table is
+      used.
+
+  clock-names:
+    const: refclk
+
+  refclk-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: >
+      Frequency of the REFCLK signal as defined by REF_SEL pins. If not
+      provided, driver will not set rate of the REFCLK signal and assume that a
+      value from the primary reference clock frequencies table is used.
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+      i2c {
+          #address-cells = <1>;
+          #size-cells = <0>;
+        
+          usb-hub@8 {
+              compatible = "smsc,usb3503";
+              reg = <0x08>;
+              connect-gpios = <&gpx3 0 1>;
+              disabled-ports = <2 3>;
+              intn-gpios = <&gpx3 4 1>;
+              reset-gpios = <&gpx3 5 1>;
+              initial-mode = <1>;
+              clocks = <&clks 80>;
+              clock-names = "refclk";
+          };
+      };
+
+  - |
+      #include <dt-bindings/gpio/gpio.h>
+
+      usb-hub {
+          /* I2C is not connected */
+          compatible = "smsc,usb3503";
+          initial-mode = <1>; /* initialize in HUB mode */
+          disabled-ports = <1>;
+          intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
+          reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */
+          connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
+          refclk-frequency = <19200000>;
+      };
+
+...
diff --git a/Documentation/devicetree/bindings/usb/usb3503.txt b/Documentation/devicetree/bindings/usb/usb3503.txt
deleted file mode 100644
index 057dd384d473..000000000000
--- a/Documentation/devicetree/bindings/usb/usb3503.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-SMSC USB3503 High-Speed Hub Controller
-
-Required properties:
-- compatible: Should be "smsc,usb3503" or "smsc,usb3503a".
-
-Optional properties:
-- reg: Specifies the i2c slave address, it is required and should be 0x08
-       if I2C is used.
-- connect-gpios: Should specify GPIO for connect.
-- disabled-ports: Should specify the ports unused.
-	'1' or '2' or '3' are available for this property to describe the port
-	number. 1~3 property values are possible to be described.
-	Do not describe this property if all ports have to be enabled.
-- intn-gpios: Should specify GPIO for interrupt.
-- reset-gpios: Should specify GPIO for reset.
-- initial-mode: Should specify initial mode.
-                (1 for HUB mode, 2 for STANDBY mode)
-- refclk: Clock used for driving REFCLK signal (optional, if not provided
-	the driver assumes that clock signal is always available, its
-	rate is specified by REF_SEL pins and a value from the primary
-	reference clock frequencies table is used). Use clocks and
-	clock-names in order to assign it
-- refclk-frequency: Frequency of the REFCLK signal as defined by REF_SEL
-	pins (optional, if not provided, driver will not set rate of the
-	REFCLK signal and assume that a value from the primary reference
-	clock frequencies table is used)
-
-Examples:
-	usb3503@8 {
-		compatible = "smsc,usb3503";
-		reg = <0x08>;
-		connect-gpios = <&gpx3 0 1>;
-		disabled-ports = <2 3>;
-		intn-gpios = <&gpx3 4 1>;
-		reset-gpios = <&gpx3 5 1>;
-		initial-mode = <1>;
-		clocks = <&clks 80>;
-		clock-names = "refclk";
-	};
-- 
2.31.1


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

* [PATCH v2 37/52] dt-bindings: usb: dwc3: Fix usb-phy check
       [not found] <20210901091852.479202-1-maxime@cerno.tech>
  2021-09-01  9:18 ` [PATCH v2 36/52] dt-bindings: usb: Convert SMSC USB3503 binding to a schema Maxime Ripard
@ 2021-09-01  9:18 ` Maxime Ripard
  2021-09-01 12:36   ` Felipe Balbi
  2021-09-03 19:50   ` Rob Herring
  1 sibling, 2 replies; 6+ messages in thread
From: Maxime Ripard @ 2021-09-01  9:18 UTC (permalink / raw)
  To: devicetree, Rob Herring, Frank Rowand, Chen-Yu Tsai,
	Maxime Ripard, Jernej Škrabec
  Cc: linux-arm-kernel, linux-sunxi, Felipe Balbi, Greg Kroah-Hartman,
	linux-usb

The original binding was allowing any combination of usb2-phy and
usb3-phy in the phys and phy-names properties.

However, the current binding enforces that those properties must be a
list of usb2-phy and usb3-phy, with exactly one element, effectively
making usb2-phy the only value being valid.

Let's rework the properties description to allow either one or two
element picked with values either usb2-phy or usb3-phy. The rest of the
tooling makes sure that we don't get any duplicate value, so this should
be what we want.

Cc: Felipe Balbi <balbi@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
index 078fb7889593..c1c970073681 100644
--- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
@@ -73,15 +73,15 @@ properties:
 
   phys:
     minItems: 1
-    items:
-      - description: USB2/HS PHY
-      - description: USB3/SS PHY
+    maxItems: 2
 
   phy-names:
     minItems: 1
+    maxItems: 2
     items:
-      - const: usb2-phy
-      - const: usb3-phy
+      enum:
+        - usb2-phy
+        - usb3-phy
 
   resets:
     minItems: 1
-- 
2.31.1


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

* Re: [PATCH v2 37/52] dt-bindings: usb: dwc3: Fix usb-phy check
  2021-09-01  9:18 ` [PATCH v2 37/52] dt-bindings: usb: dwc3: Fix usb-phy check Maxime Ripard
@ 2021-09-01 12:36   ` Felipe Balbi
  2021-09-03 19:49     ` Rob Herring
  2021-09-03 19:50   ` Rob Herring
  1 sibling, 1 reply; 6+ messages in thread
From: Felipe Balbi @ 2021-09-01 12:36 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: devicetree, Rob Herring, Frank Rowand, Chen-Yu Tsai,
	Jernej Škrabec, linux-arm-kernel, linux-sunxi,
	Greg Kroah-Hartman, linux-usb


Maxime Ripard <maxime@cerno.tech> writes:

> The original binding was allowing any combination of usb2-phy and
> usb3-phy in the phys and phy-names properties.
>
> However, the current binding enforces that those properties must be a
> list of usb2-phy and usb3-phy, with exactly one element, effectively
> making usb2-phy the only value being valid.
>
> Let's rework the properties description to allow either one or two
> element picked with values either usb2-phy or usb3-phy. The rest of the
> tooling makes sure that we don't get any duplicate value, so this should
> be what we want.
>
> Cc: Felipe Balbi <balbi@kernel.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: linux-usb@vger.kernel.org
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> ---
>  Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> index 078fb7889593..c1c970073681 100644
> --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> @@ -73,15 +73,15 @@ properties:
>  
>    phys:
>      minItems: 1
> -    items:
> -      - description: USB2/HS PHY
> -      - description: USB3/SS PHY
> +    maxItems: 2

I'm not sure you should enforce a maximum of 2 PHYs. Some systems may
use more than one USB2 PHY to take care of different parts of the USB
link.

IIRC N900 was a USB2-only system which shipped with two USB2 PHYs: one
handling the communication proper and one handling charger detection and
the like.

-- 
balbi

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

* Re: [PATCH v2 36/52] dt-bindings: usb: Convert SMSC USB3503 binding to a schema
  2021-09-01  9:18 ` [PATCH v2 36/52] dt-bindings: usb: Convert SMSC USB3503 binding to a schema Maxime Ripard
@ 2021-09-03 19:47   ` Rob Herring
  0 siblings, 0 replies; 6+ messages in thread
From: Rob Herring @ 2021-09-03 19:47 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Dongjin Kim, devicetree, linux-usb, linux-sunxi,
	Jernej Škrabec, Rob Herring, Chen-Yu Tsai,
	Greg Kroah-Hartman, linux-arm-kernel, Frank Rowand

On Wed, 01 Sep 2021 11:18:36 +0200, Maxime Ripard wrote:
> The SMSC USB3503 USB Hub Controller is supported by Linux thanks to
> its device tree binding.
> 
> Now that we have the DT validation in place, let's convert the device
> tree bindings for that driver over to a YAML schema.
> 
> Cc: Dongjin Kim <tobetter@gmail.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: linux-usb@vger.kernel.org
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> 
> ---
> 
> Changes from v1:
>   - Added maximum number of items for clocks and gpios
>   - Fixed the example node name
> ---
>  .../devicetree/bindings/usb/smsc,usb3503.yaml | 108 ++++++++++++++++++
>  .../devicetree/bindings/usb/usb3503.txt       |  39 -------
>  2 files changed, 108 insertions(+), 39 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/usb/smsc,usb3503.yaml
>  delete mode 100644 Documentation/devicetree/bindings/usb/usb3503.txt
> 

Reviewed-by: Rob Herring <robh@kernel.org>

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

* Re: [PATCH v2 37/52] dt-bindings: usb: dwc3: Fix usb-phy check
  2021-09-01 12:36   ` Felipe Balbi
@ 2021-09-03 19:49     ` Rob Herring
  0 siblings, 0 replies; 6+ messages in thread
From: Rob Herring @ 2021-09-03 19:49 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: Maxime Ripard, devicetree, Frank Rowand, Chen-Yu Tsai,
	Jernej Škrabec, linux-arm-kernel, linux-sunxi,
	Greg Kroah-Hartman, linux-usb

On Wed, Sep 01, 2021 at 03:36:35PM +0300, Felipe Balbi wrote:
> 
> Maxime Ripard <maxime@cerno.tech> writes:
> 
> > The original binding was allowing any combination of usb2-phy and
> > usb3-phy in the phys and phy-names properties.
> >
> > However, the current binding enforces that those properties must be a
> > list of usb2-phy and usb3-phy, with exactly one element, effectively
> > making usb2-phy the only value being valid.
> >
> > Let's rework the properties description to allow either one or two
> > element picked with values either usb2-phy or usb3-phy. The rest of the
> > tooling makes sure that we don't get any duplicate value, so this should
> > be what we want.
> >
> > Cc: Felipe Balbi <balbi@kernel.org>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Cc: linux-usb@vger.kernel.org
> > Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> > ---
> >  Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 10 +++++-----
> >  1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> > index 078fb7889593..c1c970073681 100644
> > --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> > +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> > @@ -73,15 +73,15 @@ properties:
> >  
> >    phys:
> >      minItems: 1
> > -    items:
> > -      - description: USB2/HS PHY
> > -      - description: USB3/SS PHY
> > +    maxItems: 2
> 
> I'm not sure you should enforce a maximum of 2 PHYs. Some systems may
> use more than one USB2 PHY to take care of different parts of the USB
> link.

It was already limited to 2. This change doesn't change that.

Rob

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

* Re: [PATCH v2 37/52] dt-bindings: usb: dwc3: Fix usb-phy check
  2021-09-01  9:18 ` [PATCH v2 37/52] dt-bindings: usb: dwc3: Fix usb-phy check Maxime Ripard
  2021-09-01 12:36   ` Felipe Balbi
@ 2021-09-03 19:50   ` Rob Herring
  1 sibling, 0 replies; 6+ messages in thread
From: Rob Herring @ 2021-09-03 19:50 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Frank Rowand, Greg Kroah-Hartman, linux-arm-kernel, devicetree,
	Jernej Škrabec, linux-sunxi, linux-usb, Felipe Balbi,
	Chen-Yu Tsai, Rob Herring

On Wed, 01 Sep 2021 11:18:37 +0200, Maxime Ripard wrote:
> The original binding was allowing any combination of usb2-phy and
> usb3-phy in the phys and phy-names properties.
> 
> However, the current binding enforces that those properties must be a
> list of usb2-phy and usb3-phy, with exactly one element, effectively
> making usb2-phy the only value being valid.
> 
> Let's rework the properties description to allow either one or two
> element picked with values either usb2-phy or usb3-phy. The rest of the
> tooling makes sure that we don't get any duplicate value, so this should
> be what we want.
> 
> Cc: Felipe Balbi <balbi@kernel.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: linux-usb@vger.kernel.org
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> ---
>  Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 

Reviewed-by: Rob Herring <robh@kernel.org>

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

end of thread, other threads:[~2021-09-03 19:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20210901091852.479202-1-maxime@cerno.tech>
2021-09-01  9:18 ` [PATCH v2 36/52] dt-bindings: usb: Convert SMSC USB3503 binding to a schema Maxime Ripard
2021-09-03 19:47   ` Rob Herring
2021-09-01  9:18 ` [PATCH v2 37/52] dt-bindings: usb: dwc3: Fix usb-phy check Maxime Ripard
2021-09-01 12:36   ` Felipe Balbi
2021-09-03 19:49     ` Rob Herring
2021-09-03 19:50   ` Rob Herring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).