1*b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*b97ee269SEmmanuel Vadot%YAML 1.2 3*b97ee269SEmmanuel Vadot--- 4*b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/pci/renesas,pci-rcar-gen2.yaml# 5*b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*b97ee269SEmmanuel Vadot 7*b97ee269SEmmanuel Vadottitle: Renesas AHB to PCI bridge 8*b97ee269SEmmanuel Vadot 9*b97ee269SEmmanuel Vadotmaintainers: 10*b97ee269SEmmanuel Vadot - Marek Vasut <marek.vasut+renesas@gmail.com> 11*b97ee269SEmmanuel Vadot - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> 12*b97ee269SEmmanuel Vadot 13*b97ee269SEmmanuel Vadotdescription: | 14*b97ee269SEmmanuel Vadot This is the bridge used internally to connect the USB controllers to the 15*b97ee269SEmmanuel Vadot AHB. There is one bridge instance per USB port connected to the internal 16*b97ee269SEmmanuel Vadot OHCI and EHCI controllers. 17*b97ee269SEmmanuel Vadot 18*b97ee269SEmmanuel Vadotproperties: 19*b97ee269SEmmanuel Vadot compatible: 20*b97ee269SEmmanuel Vadot oneOf: 21*b97ee269SEmmanuel Vadot - items: 22*b97ee269SEmmanuel Vadot - enum: 23*b97ee269SEmmanuel Vadot - renesas,pci-r8a7742 # RZ/G1H 24*b97ee269SEmmanuel Vadot - renesas,pci-r8a7743 # RZ/G1M 25*b97ee269SEmmanuel Vadot - renesas,pci-r8a7744 # RZ/G1N 26*b97ee269SEmmanuel Vadot - renesas,pci-r8a7745 # RZ/G1E 27*b97ee269SEmmanuel Vadot - renesas,pci-r8a7790 # R-Car H2 28*b97ee269SEmmanuel Vadot - renesas,pci-r8a7791 # R-Car M2-W 29*b97ee269SEmmanuel Vadot - renesas,pci-r8a7793 # R-Car M2-N 30*b97ee269SEmmanuel Vadot - renesas,pci-r8a7794 # R-Car E2 31*b97ee269SEmmanuel Vadot - const: renesas,pci-rcar-gen2 # R-Car Gen2 and RZ/G1 32*b97ee269SEmmanuel Vadot - items: 33*b97ee269SEmmanuel Vadot - enum: 34*b97ee269SEmmanuel Vadot - renesas,pci-r9a06g032 # RZ/N1D 35*b97ee269SEmmanuel Vadot - const: renesas,pci-rzn1 # RZ/N1 36*b97ee269SEmmanuel Vadot 37*b97ee269SEmmanuel Vadot reg: 38*b97ee269SEmmanuel Vadot items: 39*b97ee269SEmmanuel Vadot - description: Operational registers for the OHCI/EHCI controllers. 40*b97ee269SEmmanuel Vadot - description: Bridge configuration and control registers. 41*b97ee269SEmmanuel Vadot 42*b97ee269SEmmanuel Vadot interrupts: 43*b97ee269SEmmanuel Vadot maxItems: 1 44*b97ee269SEmmanuel Vadot 45*b97ee269SEmmanuel Vadot clocks: true 46*b97ee269SEmmanuel Vadot 47*b97ee269SEmmanuel Vadot clock-names: true 48*b97ee269SEmmanuel Vadot 49*b97ee269SEmmanuel Vadot resets: 50*b97ee269SEmmanuel Vadot maxItems: 1 51*b97ee269SEmmanuel Vadot 52*b97ee269SEmmanuel Vadot power-domains: 53*b97ee269SEmmanuel Vadot maxItems: 1 54*b97ee269SEmmanuel Vadot 55*b97ee269SEmmanuel Vadot bus-range: 56*b97ee269SEmmanuel Vadot description: | 57*b97ee269SEmmanuel Vadot The PCI bus number range; as this is a single bus, the range 58*b97ee269SEmmanuel Vadot should be specified as the same value twice. 59*b97ee269SEmmanuel Vadot 60*b97ee269SEmmanuel Vadot dma-ranges: 61*b97ee269SEmmanuel Vadot description: | 62*b97ee269SEmmanuel Vadot A single range for the inbound memory region. If not supplied, 63*b97ee269SEmmanuel Vadot defaults to 1GiB at 0x40000000. Note there are hardware restrictions on 64*b97ee269SEmmanuel Vadot the allowed combinations of address and size. 65*b97ee269SEmmanuel Vadot maxItems: 1 66*b97ee269SEmmanuel Vadot 67*b97ee269SEmmanuel VadotpatternProperties: 68*b97ee269SEmmanuel Vadot 'usb@[0-1],0': 69*b97ee269SEmmanuel Vadot type: object 70*b97ee269SEmmanuel Vadot 71*b97ee269SEmmanuel Vadot description: 72*b97ee269SEmmanuel Vadot This a USB controller PCI device 73*b97ee269SEmmanuel Vadot 74*b97ee269SEmmanuel Vadot properties: 75*b97ee269SEmmanuel Vadot reg: 76*b97ee269SEmmanuel Vadot description: 77*b97ee269SEmmanuel Vadot Identify the correct bus, device and function number in the 78*b97ee269SEmmanuel Vadot form <bdf 0 0 0 0>. 79*b97ee269SEmmanuel Vadot 80*b97ee269SEmmanuel Vadot items: 81*b97ee269SEmmanuel Vadot minItems: 5 82*b97ee269SEmmanuel Vadot maxItems: 5 83*b97ee269SEmmanuel Vadot 84*b97ee269SEmmanuel Vadot phys: 85*b97ee269SEmmanuel Vadot description: 86*b97ee269SEmmanuel Vadot Reference to the USB phy 87*b97ee269SEmmanuel Vadot maxItems: 1 88*b97ee269SEmmanuel Vadot 89*b97ee269SEmmanuel Vadot phy-names: 90*b97ee269SEmmanuel Vadot maxItems: 1 91*b97ee269SEmmanuel Vadot 92*b97ee269SEmmanuel Vadot required: 93*b97ee269SEmmanuel Vadot - reg 94*b97ee269SEmmanuel Vadot - phys 95*b97ee269SEmmanuel Vadot - phy-names 96*b97ee269SEmmanuel Vadot 97*b97ee269SEmmanuel Vadot unevaluatedProperties: false 98*b97ee269SEmmanuel Vadot 99*b97ee269SEmmanuel Vadotrequired: 100*b97ee269SEmmanuel Vadot - compatible 101*b97ee269SEmmanuel Vadot - reg 102*b97ee269SEmmanuel Vadot - interrupts 103*b97ee269SEmmanuel Vadot - interrupt-map 104*b97ee269SEmmanuel Vadot - interrupt-map-mask 105*b97ee269SEmmanuel Vadot - clocks 106*b97ee269SEmmanuel Vadot - power-domains 107*b97ee269SEmmanuel Vadot - bus-range 108*b97ee269SEmmanuel Vadot - "#address-cells" 109*b97ee269SEmmanuel Vadot - "#size-cells" 110*b97ee269SEmmanuel Vadot - "#interrupt-cells" 111*b97ee269SEmmanuel Vadot 112*b97ee269SEmmanuel VadotallOf: 113*b97ee269SEmmanuel Vadot - $ref: /schemas/pci/pci-bus.yaml# 114*b97ee269SEmmanuel Vadot 115*b97ee269SEmmanuel Vadot - if: 116*b97ee269SEmmanuel Vadot properties: 117*b97ee269SEmmanuel Vadot compatible: 118*b97ee269SEmmanuel Vadot contains: 119*b97ee269SEmmanuel Vadot enum: 120*b97ee269SEmmanuel Vadot - renesas,pci-rzn1 121*b97ee269SEmmanuel Vadot then: 122*b97ee269SEmmanuel Vadot properties: 123*b97ee269SEmmanuel Vadot clocks: 124*b97ee269SEmmanuel Vadot items: 125*b97ee269SEmmanuel Vadot - description: Internal bus clock (AHB) for HOST 126*b97ee269SEmmanuel Vadot - description: Internal bus clock (AHB) Power Management 127*b97ee269SEmmanuel Vadot - description: PCI clock for USB subsystem 128*b97ee269SEmmanuel Vadot clock-names: 129*b97ee269SEmmanuel Vadot items: 130*b97ee269SEmmanuel Vadot - const: hclkh 131*b97ee269SEmmanuel Vadot - const: hclkpm 132*b97ee269SEmmanuel Vadot - const: pciclk 133*b97ee269SEmmanuel Vadot required: 134*b97ee269SEmmanuel Vadot - clock-names 135*b97ee269SEmmanuel Vadot else: 136*b97ee269SEmmanuel Vadot properties: 137*b97ee269SEmmanuel Vadot clocks: 138*b97ee269SEmmanuel Vadot items: 139*b97ee269SEmmanuel Vadot - description: Device clock 140*b97ee269SEmmanuel Vadot clock-names: 141*b97ee269SEmmanuel Vadot items: 142*b97ee269SEmmanuel Vadot - const: pclk 143*b97ee269SEmmanuel Vadot required: 144*b97ee269SEmmanuel Vadot - resets 145*b97ee269SEmmanuel Vadot 146*b97ee269SEmmanuel VadotunevaluatedProperties: false 147*b97ee269SEmmanuel Vadot 148*b97ee269SEmmanuel Vadotexamples: 149*b97ee269SEmmanuel Vadot - | 150*b97ee269SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 151*b97ee269SEmmanuel Vadot #include <dt-bindings/clock/r8a7790-cpg-mssr.h> 152*b97ee269SEmmanuel Vadot #include <dt-bindings/power/r8a7790-sysc.h> 153*b97ee269SEmmanuel Vadot 154*b97ee269SEmmanuel Vadot pci@ee090000 { 155*b97ee269SEmmanuel Vadot compatible = "renesas,pci-r8a7790", "renesas,pci-rcar-gen2"; 156*b97ee269SEmmanuel Vadot device_type = "pci"; 157*b97ee269SEmmanuel Vadot reg = <0xee090000 0xc00>, 158*b97ee269SEmmanuel Vadot <0xee080000 0x1100>; 159*b97ee269SEmmanuel Vadot clocks = <&cpg CPG_MOD 703>; 160*b97ee269SEmmanuel Vadot power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 161*b97ee269SEmmanuel Vadot resets = <&cpg 703>; 162*b97ee269SEmmanuel Vadot interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 163*b97ee269SEmmanuel Vadot 164*b97ee269SEmmanuel Vadot bus-range = <0 0>; 165*b97ee269SEmmanuel Vadot #address-cells = <3>; 166*b97ee269SEmmanuel Vadot #size-cells = <2>; 167*b97ee269SEmmanuel Vadot #interrupt-cells = <1>; 168*b97ee269SEmmanuel Vadot ranges = <0x02000000 0 0xee080000 0xee080000 0 0x00010000>; 169*b97ee269SEmmanuel Vadot dma-ranges = <0x42000000 0 0x40000000 0x40000000 0 0x40000000>; 170*b97ee269SEmmanuel Vadot interrupt-map-mask = <0xf800 0 0 0x7>; 171*b97ee269SEmmanuel Vadot interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, 172*b97ee269SEmmanuel Vadot <0x0800 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, 173*b97ee269SEmmanuel Vadot <0x1000 0 0 2 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 174*b97ee269SEmmanuel Vadot 175*b97ee269SEmmanuel Vadot usb@1,0 { 176*b97ee269SEmmanuel Vadot reg = <0x800 0 0 0 0>; 177*b97ee269SEmmanuel Vadot phys = <&usb0 0>; 178*b97ee269SEmmanuel Vadot phy-names = "usb"; 179*b97ee269SEmmanuel Vadot }; 180*b97ee269SEmmanuel Vadot 181*b97ee269SEmmanuel Vadot usb@2,0 { 182*b97ee269SEmmanuel Vadot reg = <0x1000 0 0 0 0>; 183*b97ee269SEmmanuel Vadot phys = <&usb0 0>; 184*b97ee269SEmmanuel Vadot phy-names = "usb"; 185*b97ee269SEmmanuel Vadot }; 186*b97ee269SEmmanuel Vadot }; 187