Commit b1464dec authored by Maxime Ripard's avatar Maxime Ripard Committed by Greg Kroah-Hartman
Browse files

dt-bindings: usb: Convert SMSC USB3503 binding to a schema



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
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20210927073514.14334-1-maxime@cerno.tech


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2abc8657
Loading
Loading
Loading
Loading
+108 −0
Original line number Diff line number Diff line
# 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>;
      };

...
+0 −39
Original line number Diff line number Diff line
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";
	};