1*c66ec88fSEmmanuel VadotRenesas AHB to PCI bridge 2*c66ec88fSEmmanuel Vadot------------------------- 3*c66ec88fSEmmanuel Vadot 4*c66ec88fSEmmanuel VadotThis is the bridge used internally to connect the USB controllers to the 5*c66ec88fSEmmanuel VadotAHB. There is one bridge instance per USB port connected to the internal 6*c66ec88fSEmmanuel VadotOHCI and EHCI controllers. 7*c66ec88fSEmmanuel Vadot 8*c66ec88fSEmmanuel VadotRequired properties: 9*c66ec88fSEmmanuel Vadot- compatible: "renesas,pci-r8a7742" for the R8A7742 SoC; 10*c66ec88fSEmmanuel Vadot "renesas,pci-r8a7743" for the R8A7743 SoC; 11*c66ec88fSEmmanuel Vadot "renesas,pci-r8a7744" for the R8A7744 SoC; 12*c66ec88fSEmmanuel Vadot "renesas,pci-r8a7745" for the R8A7745 SoC; 13*c66ec88fSEmmanuel Vadot "renesas,pci-r8a7790" for the R8A7790 SoC; 14*c66ec88fSEmmanuel Vadot "renesas,pci-r8a7791" for the R8A7791 SoC; 15*c66ec88fSEmmanuel Vadot "renesas,pci-r8a7793" for the R8A7793 SoC; 16*c66ec88fSEmmanuel Vadot "renesas,pci-r8a7794" for the R8A7794 SoC; 17*c66ec88fSEmmanuel Vadot "renesas,pci-rcar-gen2" for a generic R-Car Gen2 or 18*c66ec88fSEmmanuel Vadot RZ/G1 compatible device. 19*c66ec88fSEmmanuel Vadot 20*c66ec88fSEmmanuel Vadot 21*c66ec88fSEmmanuel Vadot When compatible with the generic version, nodes must list the 22*c66ec88fSEmmanuel Vadot SoC-specific version corresponding to the platform first 23*c66ec88fSEmmanuel Vadot followed by the generic version. 24*c66ec88fSEmmanuel Vadot 25*c66ec88fSEmmanuel Vadot- reg: A list of physical regions to access the device: the first is 26*c66ec88fSEmmanuel Vadot the operational registers for the OHCI/EHCI controllers and the 27*c66ec88fSEmmanuel Vadot second is for the bridge configuration and control registers. 28*c66ec88fSEmmanuel Vadot- interrupts: interrupt for the device. 29*c66ec88fSEmmanuel Vadot- clocks: The reference to the device clock. 30*c66ec88fSEmmanuel Vadot- bus-range: The PCI bus number range; as this is a single bus, the range 31*c66ec88fSEmmanuel Vadot should be specified as the same value twice. 32*c66ec88fSEmmanuel Vadot- #address-cells: must be 3. 33*c66ec88fSEmmanuel Vadot- #size-cells: must be 2. 34*c66ec88fSEmmanuel Vadot- #interrupt-cells: must be 1. 35*c66ec88fSEmmanuel Vadot- interrupt-map: standard property used to define the mapping of the PCI 36*c66ec88fSEmmanuel Vadot interrupts to the GIC interrupts. 37*c66ec88fSEmmanuel Vadot- interrupt-map-mask: standard property that helps to define the interrupt 38*c66ec88fSEmmanuel Vadot mapping. 39*c66ec88fSEmmanuel Vadot 40*c66ec88fSEmmanuel VadotOptional properties: 41*c66ec88fSEmmanuel Vadot- dma-ranges: a single range for the inbound memory region. If not supplied, 42*c66ec88fSEmmanuel Vadot defaults to 1GiB at 0x40000000. Note there are hardware restrictions on the 43*c66ec88fSEmmanuel Vadot allowed combinations of address and size. 44*c66ec88fSEmmanuel Vadot 45*c66ec88fSEmmanuel VadotExample SoC configuration: 46*c66ec88fSEmmanuel Vadot 47*c66ec88fSEmmanuel Vadot pci0: pci@ee090000 { 48*c66ec88fSEmmanuel Vadot compatible = "renesas,pci-r8a7790", "renesas,pci-rcar-gen2"; 49*c66ec88fSEmmanuel Vadot clocks = <&mstp7_clks R8A7790_CLK_EHCI>; 50*c66ec88fSEmmanuel Vadot reg = <0x0 0xee090000 0x0 0xc00>, 51*c66ec88fSEmmanuel Vadot <0x0 0xee080000 0x0 0x1100>; 52*c66ec88fSEmmanuel Vadot interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; 53*c66ec88fSEmmanuel Vadot status = "disabled"; 54*c66ec88fSEmmanuel Vadot 55*c66ec88fSEmmanuel Vadot bus-range = <0 0>; 56*c66ec88fSEmmanuel Vadot #address-cells = <3>; 57*c66ec88fSEmmanuel Vadot #size-cells = <2>; 58*c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 59*c66ec88fSEmmanuel Vadot dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x40000000>; 60*c66ec88fSEmmanuel Vadot interrupt-map-mask = <0xff00 0 0 0x7>; 61*c66ec88fSEmmanuel Vadot interrupt-map = <0x0000 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH 62*c66ec88fSEmmanuel Vadot 0x0800 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH 63*c66ec88fSEmmanuel Vadot 0x1000 0 0 2 &gic 0 108 IRQ_TYPE_LEVEL_HIGH>; 64*c66ec88fSEmmanuel Vadot 65*c66ec88fSEmmanuel Vadot usb@1,0 { 66*c66ec88fSEmmanuel Vadot reg = <0x800 0 0 0 0>; 67*c66ec88fSEmmanuel Vadot phys = <&usb0 0>; 68*c66ec88fSEmmanuel Vadot phy-names = "usb"; 69*c66ec88fSEmmanuel Vadot }; 70*c66ec88fSEmmanuel Vadot 71*c66ec88fSEmmanuel Vadot usb@2,0 { 72*c66ec88fSEmmanuel Vadot reg = <0x1000 0 0 0 0>; 73*c66ec88fSEmmanuel Vadot phys = <&usb0 0>; 74*c66ec88fSEmmanuel Vadot phy-names = "usb"; 75*c66ec88fSEmmanuel Vadot }; 76*c66ec88fSEmmanuel Vadot }; 77*c66ec88fSEmmanuel Vadot 78*c66ec88fSEmmanuel VadotExample board setup: 79*c66ec88fSEmmanuel Vadot 80*c66ec88fSEmmanuel Vadot&pci0 { 81*c66ec88fSEmmanuel Vadot status = "okay"; 82*c66ec88fSEmmanuel Vadot pinctrl-0 = <&usb0_pins>; 83*c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 84*c66ec88fSEmmanuel Vadot}; 85