1c66ec88fSEmmanuel VadotAmlogic Meson AXG DWC PCIE SoC controller 2c66ec88fSEmmanuel Vadot 3c66ec88fSEmmanuel VadotAmlogic Meson PCIe host controller is based on the Synopsys DesignWare PCI core. 4c66ec88fSEmmanuel VadotIt shares common functions with the PCIe DesignWare core driver and 5c66ec88fSEmmanuel Vadotinherits common properties defined in 6*354d7675SEmmanuel VadotDocumentation/devicetree/bindings/pci/snps,dw-pcie.yaml. 7c66ec88fSEmmanuel Vadot 8c66ec88fSEmmanuel VadotAdditional properties are described here: 9c66ec88fSEmmanuel Vadot 10c66ec88fSEmmanuel VadotRequired properties: 11c66ec88fSEmmanuel Vadot- compatible: 12c66ec88fSEmmanuel Vadot should contain : 13c66ec88fSEmmanuel Vadot - "amlogic,axg-pcie" for AXG SoC Family 14c66ec88fSEmmanuel Vadot - "amlogic,g12a-pcie" for G12A SoC Family 15c66ec88fSEmmanuel Vadot to identify the core. 16c66ec88fSEmmanuel Vadot- reg: 17c66ec88fSEmmanuel Vadot should contain the configuration address space. 18c66ec88fSEmmanuel Vadot- reg-names: Must be 19c66ec88fSEmmanuel Vadot - "elbi" External local bus interface registers 20c66ec88fSEmmanuel Vadot - "cfg" Meson specific registers 21c66ec88fSEmmanuel Vadot - "config" PCIe configuration space 22c66ec88fSEmmanuel Vadot- reset-gpios: The GPIO to generate PCIe PERST# assert and deassert signal. 23c66ec88fSEmmanuel Vadot- clocks: Must contain an entry for each entry in clock-names. 24c66ec88fSEmmanuel Vadot- clock-names: Must include the following entries: 25c66ec88fSEmmanuel Vadot - "pclk" PCIe GEN 100M PLL clock 26c66ec88fSEmmanuel Vadot - "port" PCIe_x(A or B) RC clock gate 27c66ec88fSEmmanuel Vadot - "general" PCIe Phy clock 28c66ec88fSEmmanuel Vadot- resets: phandle to the reset lines. 29c66ec88fSEmmanuel Vadot- reset-names: must contain "port" and "apb" 30c66ec88fSEmmanuel Vadot - "port" Port A or B reset 31c66ec88fSEmmanuel Vadot - "apb" Share APB reset 32c66ec88fSEmmanuel Vadot- phys: should contain a phandle to the PCIE phy 33c66ec88fSEmmanuel Vadot- phy-names: must contain "pcie" 34c66ec88fSEmmanuel Vadot 35c66ec88fSEmmanuel Vadot- device_type: 36*354d7675SEmmanuel Vadot should be "pci". As specified in snps,dw-pcie.yaml 37c66ec88fSEmmanuel Vadot 38c66ec88fSEmmanuel Vadot 39c66ec88fSEmmanuel VadotExample configuration: 40c66ec88fSEmmanuel Vadot 41c66ec88fSEmmanuel Vadot pcie: pcie@f9800000 { 42c66ec88fSEmmanuel Vadot compatible = "amlogic,axg-pcie", "snps,dw-pcie"; 43c66ec88fSEmmanuel Vadot reg = <0x0 0xf9800000 0x0 0x400000 44c66ec88fSEmmanuel Vadot 0x0 0xff646000 0x0 0x2000 45c66ec88fSEmmanuel Vadot 0x0 0xf9f00000 0x0 0x100000>; 46c66ec88fSEmmanuel Vadot reg-names = "elbi", "cfg", "config"; 47c66ec88fSEmmanuel Vadot reset-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>; 48c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>; 49c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 50c66ec88fSEmmanuel Vadot interrupt-map-mask = <0 0 0 0>; 51c66ec88fSEmmanuel Vadot interrupt-map = <0 0 0 0 &gic GIC_SPI 179 IRQ_TYPE_EDGE_RISING>; 52c66ec88fSEmmanuel Vadot bus-range = <0x0 0xff>; 53c66ec88fSEmmanuel Vadot #address-cells = <3>; 54c66ec88fSEmmanuel Vadot #size-cells = <2>; 55c66ec88fSEmmanuel Vadot device_type = "pci"; 56c66ec88fSEmmanuel Vadot ranges = <0x82000000 0 0 0x0 0xf9c00000 0 0x00300000>; 57c66ec88fSEmmanuel Vadot 58c66ec88fSEmmanuel Vadot clocks = <&clkc CLKID_USB 59c66ec88fSEmmanuel Vadot &clkc CLKID_PCIE_A 60c66ec88fSEmmanuel Vadot &clkc CLKID_PCIE_CML_EN0>; 61c66ec88fSEmmanuel Vadot clock-names = "general", 62c66ec88fSEmmanuel Vadot "pclk", 63c66ec88fSEmmanuel Vadot "port"; 64c66ec88fSEmmanuel Vadot resets = <&reset RESET_PCIE_A>, 65c66ec88fSEmmanuel Vadot <&reset RESET_PCIE_APB>; 66c66ec88fSEmmanuel Vadot reset-names = "port", 67c66ec88fSEmmanuel Vadot "apb"; 68c66ec88fSEmmanuel Vadot phys = <&pcie_phy>; 69c66ec88fSEmmanuel Vadot phy-names = "pcie"; 70c66ec88fSEmmanuel Vadot }; 71