Re: [PATCH v2 6/8] dt-bindings: usb: convert mediatek,mtk-xhci.txt to YAML schema
On Fri, 2020-10-16 at 12:14 -0500, Rob Herring wrote: > On Tue, Oct 13, 2020 at 04:52:05PM +0800, Chunfeng Yun wrote: > > Convert mediatek,mtk-xhci.txt to YAML schema mediatek,mtk-xhci.yaml > > > > There's some refactoring of usb-hcd.yaml and XHCI schema under review > and this may need some refactoring on top of it. Ok, will do it > > > Signed-off-by: Chunfeng Yun > > --- > > v2: new patch > > --- > > .../bindings/usb/mediatek,mtk-xhci.txt| 121 > > .../bindings/usb/mediatek,mtk-xhci.yaml | 180 ++ > > 2 files changed, 180 insertions(+), 121 deletions(-) > > delete mode 100644 > > Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt > > create mode 100644 > > Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml > > > > diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml > > b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml > > new file mode 100644 > > index ..ea696c8f1269 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml > > @@ -0,0 +1,180 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +# Copyright (c) 2020 MediaTek > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/usb/mediatek,mtk-xhci.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: MediaTek USB3 xHCI Device Tree Bindings > > + > > +maintainers: > > + - Chunfeng Yun > > + > > +allOf: > > + - $ref: "usb-hcd.yaml" > > + > > +description: | > > + There are two scenarios: > > + case 1: only supports xHCI driver; > > + case 2: supports dual-role mode, and the host is based on xHCI driver. > > + > > +properties: > > + #common properties for both case 1 and case 2 > > + compatible: > > +items: > > + - enum: > > + - mediatek,mt2712-xhci > > + - mediatek,mt7622-xhci > > + - mediatek,mt7629-xhci > > + - mediatek,mt8173-xhci > > + - mediatek,mt8183-xhci > > + - const: mediatek,mtk-xhci > > + > > + reg: > > +minItems: 1 > > +maxItems: 2 > > +items: > > + - description: the registers of xHCI MAC > > + - description: the registers of IP Port Control > > + > > + reg-names: > > +minItems: 1 > > +maxItems: 2 > > +items: > > + - const: mac > > + - const: ippc #optional, only needed for case 1. > > + > > + interrupts: > > +maxItems: 1 > > + > > + power-domains: > > +description: A phandle to USB power domain node to control USB's MTCMOS > > +maxItems: 1 > > + > > + clocks: > > +minItems: 1 > > +maxItems: 5 > > +items: > > + - description: Controller clock used by normal mode > > + - description: Reference clock used by low power mode etc > > + - description: Mcu bus clock for register access > > + - description: DMA bus clock for data transfer > > + - description: controller clock > > + > > + clock-names: > > +minItems: 1 > > +maxItems: 5 > > +items: > > + - const: sys_ck #required, the following ones are optional > > + - const: ref_ck > > + - const: mcu_ck > > + - const: dma_ck > > + - const: xhci_ck > > + > > + phys: > > +$ref: /usb/usb-hcd.yaml# > > That doesn't look right... No need refer to it again? usb-hcd.yaml describes how to use phys/phy-names > > > + > > + vusb33-supply: > > +description: Regulator of USB AVDD3.3v > > + > > + vbus-supply: > > +description: Regulator of USB VBUS5v > > + > > + usb3-lpm-capable: > > +description: supports USB3.0 LPM > > +type: boolean > > + > > + imod-interval-ns: > > +$ref: /schemas/types.yaml#/definitions/uint32 > > +description: | > > + Interrupt moderation interval value, it is 8 times as much as that > > + defined in the xHCI spec on MTK's controller. > > +default: 5000 > > + > > + #the following properties are only used for case 1 > > + pinctrl-0: > > +description: A phandle to the default pinctrl state. > > + > > + pinctrl-names: > > +description: A pinctrl state named "default" must be defined. > > + See pinctrl/pinctrl-bindings.txt > > +const: default > > Don't need pinctrl-* properties. They are always allowed. Ok > > > + > > + wakeup-source: > > +description: enable USB remote wakeup, see power/wakeup-source.txt > > +type: boolean > > + > > + mediatek,syscon-wakeup: > > +$ref: /schemas/types.yaml#/definitions/phandle-array > > +maxItems: 1 > > +description: | > > + A phandle to syscon used to access the register of the USB wakeup > > glue > > + layer between xHCI and SPM, the field should always be a multiple of > > + 3 cells long. > > A multiple of 3? Seems wrong, only support one, will modify it > How would there be more than 3 cells? others will be ignored > > > + > > + items: > > +- description: > > +The first cell represents a phandle to syscon > > +
Re: [PATCH v2 6/8] dt-bindings: usb: convert mediatek,mtk-xhci.txt to YAML schema
On Tue, Oct 13, 2020 at 04:52:05PM +0800, Chunfeng Yun wrote: > Convert mediatek,mtk-xhci.txt to YAML schema mediatek,mtk-xhci.yaml > There's some refactoring of usb-hcd.yaml and XHCI schema under review and this may need some refactoring on top of it. > Signed-off-by: Chunfeng Yun > --- > v2: new patch > --- > .../bindings/usb/mediatek,mtk-xhci.txt| 121 > .../bindings/usb/mediatek,mtk-xhci.yaml | 180 ++ > 2 files changed, 180 insertions(+), 121 deletions(-) > delete mode 100644 > Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt > create mode 100644 > Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml > diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml > b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml > new file mode 100644 > index ..ea696c8f1269 > --- /dev/null > +++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml > @@ -0,0 +1,180 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +# Copyright (c) 2020 MediaTek > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/usb/mediatek,mtk-xhci.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: MediaTek USB3 xHCI Device Tree Bindings > + > +maintainers: > + - Chunfeng Yun > + > +allOf: > + - $ref: "usb-hcd.yaml" > + > +description: | > + There are two scenarios: > + case 1: only supports xHCI driver; > + case 2: supports dual-role mode, and the host is based on xHCI driver. > + > +properties: > + #common properties for both case 1 and case 2 > + compatible: > +items: > + - enum: > + - mediatek,mt2712-xhci > + - mediatek,mt7622-xhci > + - mediatek,mt7629-xhci > + - mediatek,mt8173-xhci > + - mediatek,mt8183-xhci > + - const: mediatek,mtk-xhci > + > + reg: > +minItems: 1 > +maxItems: 2 > +items: > + - description: the registers of xHCI MAC > + - description: the registers of IP Port Control > + > + reg-names: > +minItems: 1 > +maxItems: 2 > +items: > + - const: mac > + - const: ippc #optional, only needed for case 1. > + > + interrupts: > +maxItems: 1 > + > + power-domains: > +description: A phandle to USB power domain node to control USB's MTCMOS > +maxItems: 1 > + > + clocks: > +minItems: 1 > +maxItems: 5 > +items: > + - description: Controller clock used by normal mode > + - description: Reference clock used by low power mode etc > + - description: Mcu bus clock for register access > + - description: DMA bus clock for data transfer > + - description: controller clock > + > + clock-names: > +minItems: 1 > +maxItems: 5 > +items: > + - const: sys_ck #required, the following ones are optional > + - const: ref_ck > + - const: mcu_ck > + - const: dma_ck > + - const: xhci_ck > + > + phys: > +$ref: /usb/usb-hcd.yaml# That doesn't look right... > + > + vusb33-supply: > +description: Regulator of USB AVDD3.3v > + > + vbus-supply: > +description: Regulator of USB VBUS5v > + > + usb3-lpm-capable: > +description: supports USB3.0 LPM > +type: boolean > + > + imod-interval-ns: > +$ref: /schemas/types.yaml#/definitions/uint32 > +description: | > + Interrupt moderation interval value, it is 8 times as much as that > + defined in the xHCI spec on MTK's controller. > +default: 5000 > + > + #the following properties are only used for case 1 > + pinctrl-0: > +description: A phandle to the default pinctrl state. > + > + pinctrl-names: > +description: A pinctrl state named "default" must be defined. > + See pinctrl/pinctrl-bindings.txt > +const: default Don't need pinctrl-* properties. They are always allowed. > + > + wakeup-source: > +description: enable USB remote wakeup, see power/wakeup-source.txt > +type: boolean > + > + mediatek,syscon-wakeup: > +$ref: /schemas/types.yaml#/definitions/phandle-array > +maxItems: 1 > +description: | > + A phandle to syscon used to access the register of the USB wakeup glue > + layer between xHCI and SPM, the field should always be a multiple of > + 3 cells long. A multiple of 3? How would there be more than 3 cells? > + > + items: > +- description: > +The first cell represents a phandle to syscon > +- description: > +The second cell represents the register base address of the glue > +layer in syscon > +- description: > +The third cell represents the hardware version of the glue layer, > +1 is used by mt8173 etc, 2 is used by mt2712 etc > + enum: [1, 2] > + > + mediatek,u3p-dis-msk: > +$ref: /schemas/types.yaml#/definitions/uint32 > +description: The mask to disable u3ports, bit0 for u3port0, > + bit1 for u3port1, ... etc > + > +
[PATCH v2 6/8] dt-bindings: usb: convert mediatek, mtk-xhci.txt to YAML schema
Convert mediatek,mtk-xhci.txt to YAML schema mediatek,mtk-xhci.yaml Signed-off-by: Chunfeng Yun --- v2: new patch --- .../bindings/usb/mediatek,mtk-xhci.txt| 121 .../bindings/usb/mediatek,mtk-xhci.yaml | 180 ++ 2 files changed, 180 insertions(+), 121 deletions(-) delete mode 100644 Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt create mode 100644 Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt deleted file mode 100644 index 42d8814f903a.. --- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt +++ /dev/null @@ -1,121 +0,0 @@ -MT8173 xHCI - -The device node for Mediatek SOC USB3.0 host controller - -There are two scenarios: the first one only supports xHCI driver; -the second one supports dual-role mode, and the host is based on xHCI -driver. Take account of backward compatibility, we divide bindings -into two parts. - -1st: only supports xHCI driver - - -Required properties: - - compatible : should be "mediatek,-xhci", "mediatek,mtk-xhci", - soc-model is the name of SoC, such as mt8173, mt2712 etc, when using - "mediatek,mtk-xhci" compatible string, you need SoC specific ones in - addition, one of: - - "mediatek,mt8173-xhci" - - reg : specifies physical base address and size of the registers - - reg-names: should be "mac" for xHCI MAC and "ippc" for IP port control - - interrupts : interrupt used by the controller - - power-domains : a phandle to USB power domain node to control USB's - mtcmos - - vusb33-supply : regulator of USB avdd3.3v - - - clocks : a list of phandle + clock-specifier pairs, one for each - entry in clock-names - - clock-names : must contain - "sys_ck": controller clock used by normal mode, - the following ones are optional: - "ref_ck": reference clock used by low power mode etc, - "mcu_ck": mcu_bus clock for register access, - "dma_ck": dma_bus clock for data transfer by DMA, - "xhci_ck": controller clock - - - phys : see usb-hcd.yaml in the current directory - -Optional properties: - - wakeup-source : enable USB remote wakeup; - - mediatek,syscon-wakeup : phandle to syscon used to access the register - of the USB wakeup glue layer between xHCI and SPM; it depends on - "wakeup-source", and has two arguments: - - the first one : register base address of the glue layer in syscon; - - the second one : hardware version of the glue layer - - 1 : used by mt8173 etc - - 2 : used by mt2712 etc - - mediatek,u3p-dis-msk : mask to disable u3ports, bit0 for u3port0, - bit1 for u3port1, ... etc; - - vbus-supply : reference to the VBUS regulator; - - usb3-lpm-capable : supports USB3.0 LPM - - pinctrl-names : a pinctrl state named "default" must be defined - - pinctrl-0 : pin control group - See: Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt - - imod-interval-ns: default interrupt moderation interval is 5000ns - -additionally the properties from usb-hcd.yaml (in the current directory) are -supported. - -Example: -usb30: usb@1127 { - compatible = "mediatek,mt8173-xhci"; - reg = <0 0x1127 0 0x1000>, - <0 0x11280700 0 0x0100>; - reg-names = "mac", "ippc"; - interrupts = ; - power-domains = < MT8173_POWER_DOMAIN_USB>; - clocks = < CLK_TOP_USB30_SEL>, <>, -< CLK_PERI_USB0>, -< CLK_PERI_USB1>; - clock-names = "sys_ck", "ref_ck"; - phys = <_port0 PHY_TYPE_USB3>, - <_port1 PHY_TYPE_USB2>; - vusb33-supply = <_vusb_reg>; - vbus-supply = <_p1_vbus>; - usb3-lpm-capable; - mediatek,syscon-wakeup = < 0x400 1>; - wakeup-source; - imod-interval-ns = <1>; -}; - -2nd: dual-role mode with xHCI driver - - -In the case, xhci is added as subnode to mtu3. An example and the DT binding -details of mtu3 can be found in: -Documentation/devicetree/bindings/usb/mediatek,mtu3.txt - -Required properties: - - compatible : should be "mediatek,-xhci", "mediatek,mtk-xhci", - soc-model is the name of SoC, such as mt8173, mt2712 etc, when using - "mediatek,mtk-xhci" compatible string, you need SoC specific ones in - addition, one of: - - "mediatek,mt8173-xhci" - - reg : specifies physical base address and size of the registers - - reg-names: should be "mac" for xHCI MAC - - interrupts : interrupt used by the host controller - - power-domains : a phandle to USB power domain node to control USB's - mtcmos - - vusb33-supply : regulator of USB avdd3.3v - - - clocks : a list of phandle + clock-specifier pairs, one for each - entry