# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pci/spacemit,k1-pcie-host.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: SpacemiT K1 PCI Express Host Controller maintainers: - Alex Elder description: > The SpacemiT K1 SoC PCIe host controller is based on the Synopsys DesignWare PCIe IP. The controller uses the DesignWare built-in MSI interrupt controller, and supports 256 MSIs. allOf: - $ref: /schemas/pci/snps,dw-pcie.yaml# properties: compatible: const: spacemit,k1-pcie reg: items: - description: DesignWare PCIe registers - description: ATU address space - description: PCIe configuration space - description: Link control registers reg-names: items: - const: dbi - const: atu - const: config - const: link clocks: items: - description: DWC PCIe Data Bus Interface (DBI) clock - description: DWC PCIe application AXI-bus master interface clock - description: DWC PCIe application AXI-bus slave interface clock clock-names: items: - const: dbi - const: mstr - const: slv resets: items: - description: DWC PCIe Data Bus Interface (DBI) reset - description: DWC PCIe application AXI-bus master interface reset - description: DWC PCIe application AXI-bus slave interface reset reset-names: items: - const: dbi - const: mstr - const: slv interrupts: items: - description: Interrupt used for MSIs interrupt-names: const: msi spacemit,apmu: $ref: /schemas/types.yaml#/definitions/phandle-array description: A phandle that refers to the APMU system controller, whose regmap is used in managing resets and link state, along with and offset of its reset control register. items: - items: - description: phandle to APMU system controller - description: register offset patternProperties: '^pcie@': type: object $ref: /schemas/pci/pci-pci-bridge.yaml# properties: phys: maxItems: 1 vpcie3v3-supply: description: A phandle for 3.3v regulator to use for PCIe required: - phys - vpcie3v3-supply unevaluatedProperties: false required: - clocks - clock-names - resets - reset-names - interrupts - interrupt-names - spacemit,apmu unevaluatedProperties: false examples: - | #include pcie@ca400000 { device_type = "pci"; compatible = "spacemit,k1-pcie"; reg = <0xca400000 0x00001000>, <0xca700000 0x0001ff24>, <0x9f000000 0x00002000>, <0xc0c20000 0x00001000>; reg-names = "dbi", "atu", "config", "link"; #address-cells = <3>; #size-cells = <2>; ranges = <0x01000000 0x0 0x00000000 0x9f002000 0x0 0x00100000>, <0x02000000 0x0 0x90000000 0x90000000 0x0 0x0f000000>; interrupts = <142>; interrupt-names = "msi"; clocks = <&syscon_apmu CLK_PCIE1_DBI>, <&syscon_apmu CLK_PCIE1_MASTER>, <&syscon_apmu CLK_PCIE1_SLAVE>; clock-names = "dbi", "mstr", "slv"; resets = <&syscon_apmu RESET_PCIE1_DBI>, <&syscon_apmu RESET_PCIE1_MASTER>, <&syscon_apmu RESET_PCIE1_SLAVE>; reset-names = "dbi", "mstr", "slv"; pinctrl-names = "default"; pinctrl-0 = <&pcie1_3_cfg>; spacemit,apmu = <&syscon_apmu 0x3d4>; pcie@0 { device_type = "pci"; compatible = "pciclass,0604"; reg = <0x0 0x0 0x0 0x0 0x0>; bus-range = <0x01 0xff>; #address-cells = <3>; #size-cells = <2>; ranges; phys = <&pcie1_phy>; vpcie3v3-supply = <&pcie_vcc_3v3>; }; };