Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: usb: Add RZ/V2M USB3DRD binding

Add device tree bindings for the RZ/V2{M, MA} USB3DRD module.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230121145853.4792-5-biju.das.jz@bp.renesas.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Biju Das and committed by
Greg Kroah-Hartman
9486e56c 2c5502a4

+129
+129
Documentation/devicetree/bindings/usb/renesas,rzv2m-usb3drd.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/usb/renesas,rzv2m-usb3drd.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas RZ/V2M USB 3.1 DRD controller 8 + 9 + maintainers: 10 + - Biju Das <biju.das.jz@bp.renesas.com> 11 + 12 + description: | 13 + The RZ/V2{M, MA} USB3.1 DRD module supports the following functions 14 + * Role swapping function by the ID pin of the Micro-AB receptacle 15 + * Battery Charging Specification Revision 1.2 16 + 17 + properties: 18 + compatible: 19 + items: 20 + - enum: 21 + - renesas,r9a09g011-usb3drd # RZ/V2M 22 + - renesas,r9a09g055-usb3drd # RZ/V2MA 23 + - const: renesas,rzv2m-usb3drd 24 + 25 + reg: 26 + maxItems: 1 27 + 28 + interrupts: 29 + items: 30 + - description: Dual Role Device (DRD) 31 + - description: Battery Charging 32 + - description: Global Purpose Input 33 + 34 + interrupt-names: 35 + items: 36 + - const: drd 37 + - const: bc 38 + - const: gpi 39 + 40 + clocks: 41 + items: 42 + - description: Peripheral AXI clock 43 + - description: APB clock 44 + 45 + clock-names: 46 + items: 47 + - const: axi 48 + - const: reg 49 + 50 + power-domains: 51 + maxItems: 1 52 + 53 + resets: 54 + maxItems: 1 55 + 56 + ranges: true 57 + 58 + '#address-cells': 59 + enum: [ 1, 2 ] 60 + 61 + '#size-cells': 62 + enum: [ 1, 2 ] 63 + 64 + patternProperties: 65 + "^usb3peri@[0-9a-f]+$": 66 + type: object 67 + $ref: /schemas/usb/renesas,usb3-peri.yaml 68 + 69 + "^usb@[0-9a-f]+$": 70 + type: object 71 + $ref: renesas,usb-xhci.yaml# 72 + 73 + required: 74 + - compatible 75 + - reg 76 + - interrupts 77 + - interrupt-names 78 + - clocks 79 + - clock-names 80 + - power-domains 81 + - resets 82 + 83 + additionalProperties: false 84 + 85 + examples: 86 + - | 87 + #include <dt-bindings/clock/r9a09g011-cpg.h> 88 + #include <dt-bindings/interrupt-controller/arm-gic.h> 89 + 90 + usb3drd: usb@85070400 { 91 + compatible = "renesas,r9a09g011-usb3drd", "renesas,rzv2m-usb3drd"; 92 + reg = <0x85070400 0x100>; 93 + interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>, 94 + <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>, 95 + <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>; 96 + interrupt-names = "drd", "bc", "gpi"; 97 + clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_P>, 98 + <&cpg CPG_MOD R9A09G011_USB_PCLK>; 99 + clock-names = "axi", "reg"; 100 + power-domains = <&cpg>; 101 + resets = <&cpg R9A09G011_USB_DRD_RESET>; 102 + ranges; 103 + #address-cells = <1>; 104 + #size-cells = <1>; 105 + 106 + usb3host: usb@85060000 { 107 + compatible = "renesas,r9a09g011-xhci", 108 + "renesas,rzv2m-xhci"; 109 + reg = <0x85060000 0x2000>; 110 + interrupts = <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>; 111 + clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_H>, 112 + <&cpg CPG_MOD R9A09G011_USB_PCLK>; 113 + clock-names = "axi", "reg"; 114 + power-domains = <&cpg>; 115 + resets = <&cpg R9A09G011_USB_ARESETN_H>; 116 + }; 117 + 118 + usb3peri: usb3peri@85070000 { 119 + compatible = "renesas,r9a09g011-usb3-peri", 120 + "renesas,rzv2m-usb3-peri"; 121 + reg = <0x85070000 0x400>; 122 + interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 123 + clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_P>, 124 + <&cpg CPG_MOD R9A09G011_USB_PCLK>; 125 + clock-names = "axi", "reg"; 126 + power-domains = <&cpg>; 127 + resets = <&cpg R9A09G011_USB_ARESETN_P>; 128 + }; 129 + };