Message ID | 20250320130054.4804-8-ansuelsmth@gmail.com |
---|---|
State | New |
Headers | show |
Series | airoha: en7581: clk cleanup + USB support | expand |
On Thu, Mar 20, 2025 at 02:00:30PM +0100, Christian Marangi wrote: > Add documentation for Airoha AN7581 USB PHY that describe the USB PHY > for the USB controller. > > Airoha AN7581 SoC support a maximum of 2 USB port. The USB 2.0 mode is > always supported. The USB 3.0 mode is optional and depends on the Serdes > mode currently configured on the system for the USB port. > > If the airoha,serdes-port property is not declared, it's assumed USB 3.0 > mode is not supported, as the Serdes mode can't be validated. > > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> > --- > .../bindings/phy/airoha,an7581-usb-phy.yaml | 83 +++++++++++++++++++ > MAINTAINERS | 7 ++ > .../dt-bindings/phy/airoha,an7581-usb-phy.h | 11 +++ > 3 files changed, 101 insertions(+) > create mode 100644 Documentation/devicetree/bindings/phy/airoha,an7581-usb-phy.yaml > create mode 100644 include/dt-bindings/phy/airoha,an7581-usb-phy.h > > diff --git a/Documentation/devicetree/bindings/phy/airoha,an7581-usb-phy.yaml b/Documentation/devicetree/bindings/phy/airoha,an7581-usb-phy.yaml > new file mode 100644 > index 000000000000..39ceaded5d0e > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/airoha,an7581-usb-phy.yaml > @@ -0,0 +1,83 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/phy/airoha,an7581-usb-phy.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Airoha AN7581 SoC USB PHY > + > +maintainers: > + - Christian Marangi <ansuelsmth@gmail.com> > + > +description: > > + The Airoha AN7581 SoC USB PHY describes the USB PHY for the USB controller. > + > + Airoha AN7581 SoC support a maximum of 2 USB port. The USB 2.0 mode is > + always supported. The USB 3.0 mode is optional and depends on the Serdes > + mode currently configured on the system for the USB port. > + > + If the airoha,serdes-port property is not declared, it's assumed USB 3.0 > + mode is not supported, as the Serdes mode can't be validated. > + > +properties: > + compatible: > + const: airoha,an7581-usb-phy > + > + reg: > + maxItems: 1 > + > + > + airoha,usb2-monitor-clk-sel: > + description: Describe what oscillator across the available 4 > + should be selected for USB 2.0 Slew Rate calibration. > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + > + airoha,serdes-port: > + description: Describe what Serdes Port is attached to the USB 3.0 port. > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] Since you only have a single value here, does that mean only only one of the 2 ports/phys supports USB3? > + > + airoha,scu: > + description: Phandle to the SCU node for USB 3.0 Serdes mode validation. > + $ref: /schemas/types.yaml#/definitions/phandle A bit unusual, but you could use the phys binding here instead of these 2 properties. The phy for the phy... > + > + '#phy-cells': > + const: 1 Please add a description of what's in the cell. > + > +required: > + - compatible > + - reg > + - airoha,usb2-monitor-clk-sel > + - '#phy-cells' > + > +dependentRequired: > + airoha,serdes-port: [ 'airoha,scu' ] > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/phy/airoha,an7581-usb-phy.h> > + #include <dt-bindings/soc/airoha,scu-ssr.h> > + > + phy@1fac0000 { > + compatible = "airoha,an7581-usb-phy"; > + reg = <0x1fac0000 0x10000>; > + > + airoha,usb2-monitor-clk-sel = <AIROHA_USB2_MONCLK_SEL1>; > + airoha,scu = <&scu>; > + airoha,serdes-port = <AIROHA_SCU_SERDES_USB1>; > + > + #phy-cells = <1>; > + }; > + > + phy@1fae0000 { > + compatible = "airoha,an7581-usb-phy"; > + reg = <0x1fae0000 0x10000>; > + > + airoha,usb2-monitor-clk-sel = <AIROHA_USB2_MONCLK_SEL2>; > + > + #phy-cells = <1>; > + }; Drop the 2nd example. Rob
diff --git a/Documentation/devicetree/bindings/phy/airoha,an7581-usb-phy.yaml b/Documentation/devicetree/bindings/phy/airoha,an7581-usb-phy.yaml new file mode 100644 index 000000000000..39ceaded5d0e --- /dev/null +++ b/Documentation/devicetree/bindings/phy/airoha,an7581-usb-phy.yaml @@ -0,0 +1,83 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/airoha,an7581-usb-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Airoha AN7581 SoC USB PHY + +maintainers: + - Christian Marangi <ansuelsmth@gmail.com> + +description: > + The Airoha AN7581 SoC USB PHY describes the USB PHY for the USB controller. + + Airoha AN7581 SoC support a maximum of 2 USB port. The USB 2.0 mode is + always supported. The USB 3.0 mode is optional and depends on the Serdes + mode currently configured on the system for the USB port. + + If the airoha,serdes-port property is not declared, it's assumed USB 3.0 + mode is not supported, as the Serdes mode can't be validated. + +properties: + compatible: + const: airoha,an7581-usb-phy + + reg: + maxItems: 1 + + + airoha,usb2-monitor-clk-sel: + description: Describe what oscillator across the available 4 + should be selected for USB 2.0 Slew Rate calibration. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + + airoha,serdes-port: + description: Describe what Serdes Port is attached to the USB 3.0 port. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + + airoha,scu: + description: Phandle to the SCU node for USB 3.0 Serdes mode validation. + $ref: /schemas/types.yaml#/definitions/phandle + + '#phy-cells': + const: 1 + +required: + - compatible + - reg + - airoha,usb2-monitor-clk-sel + - '#phy-cells' + +dependentRequired: + airoha,serdes-port: [ 'airoha,scu' ] + +additionalProperties: false + +examples: + - | + #include <dt-bindings/phy/airoha,an7581-usb-phy.h> + #include <dt-bindings/soc/airoha,scu-ssr.h> + + phy@1fac0000 { + compatible = "airoha,an7581-usb-phy"; + reg = <0x1fac0000 0x10000>; + + airoha,usb2-monitor-clk-sel = <AIROHA_USB2_MONCLK_SEL1>; + airoha,scu = <&scu>; + airoha,serdes-port = <AIROHA_SCU_SERDES_USB1>; + + #phy-cells = <1>; + }; + + phy@1fae0000 { + compatible = "airoha,an7581-usb-phy"; + reg = <0x1fae0000 0x10000>; + + airoha,usb2-monitor-clk-sel = <AIROHA_USB2_MONCLK_SEL2>; + + #phy-cells = <1>; + }; + diff --git a/MAINTAINERS b/MAINTAINERS index 7cd54c70aeed..c4a374da2b12 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -754,6 +754,13 @@ S: Maintained F: Documentation/devicetree/bindings/spi/airoha,en7581-snand.yaml F: drivers/spi/spi-airoha-snfi.c +AIROHA USB PHY DRIVER +M: Christian Marangi <ansuelsmth@gmail.com> +L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) +S: Maintained +F: Documentation/devicetree/bindings/phy/airoha,an7581-usb-phy.yaml +F: include/dt-bindings/phy/airoha,an7581-usb-phy.h + AIRSPY MEDIA DRIVER L: linux-media@vger.kernel.org S: Orphan diff --git a/include/dt-bindings/phy/airoha,an7581-usb-phy.h b/include/dt-bindings/phy/airoha,an7581-usb-phy.h new file mode 100644 index 000000000000..efbb0ae75e3a --- /dev/null +++ b/include/dt-bindings/phy/airoha,an7581-usb-phy.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */ + +#ifndef _DT_BINDINGS_AIROHA_AN7581_USB_PHY_H_ +#define _DT_BINDINGS_AIROHA_AN7581_USB_PHY_H_ + +#define AIROHA_USB2_MONCLK_SEL0 0 +#define AIROHA_USB2_MONCLK_SEL1 1 +#define AIROHA_USB2_MONCLK_SEL2 2 +#define AIROHA_USB2_MONCLK_SEL3 3 + +#endif
Add documentation for Airoha AN7581 USB PHY that describe the USB PHY for the USB controller. Airoha AN7581 SoC support a maximum of 2 USB port. The USB 2.0 mode is always supported. The USB 3.0 mode is optional and depends on the Serdes mode currently configured on the system for the USB port. If the airoha,serdes-port property is not declared, it's assumed USB 3.0 mode is not supported, as the Serdes mode can't be validated. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> --- .../bindings/phy/airoha,an7581-usb-phy.yaml | 83 +++++++++++++++++++ MAINTAINERS | 7 ++ .../dt-bindings/phy/airoha,an7581-usb-phy.h | 11 +++ 3 files changed, 101 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/airoha,an7581-usb-phy.yaml create mode 100644 include/dt-bindings/phy/airoha,an7581-usb-phy.h