Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,11 @@ allOf:
- $ref: /schemas/pci/snps,dw-pcie-common.yaml#
- if:
not:
required:
- msi-map
anyOf:
- required:
- msi-map
- required:
- msi-parent
then:
properties:
interrupt-names:
Expand Down
135 changes: 135 additions & 0 deletions Documentation/devicetree/bindings/pci/spacemit,k3-pcie-host.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/spacemit,k3-pcie-host.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: SpacemiT K3 PCI Express Host Controller

maintainers:
- Inochi Amaoto <inochiama@gmail.com>

description:
The SpacemiT K3 SoC PCIe host controller is based on the Synopsys
DesignWare PCIe IP. The controller uses the external MSI interrupt
controller.

allOf:
- $ref: /schemas/pci/pci-host-bridge.yaml#
- $ref: /schemas/pci/snps,dw-pcie.yaml#

properties:
compatible:
const: spacemit,k3-pcie

reg:
items:
- description: DesignWare PCIe registers
- description: Data Bus Interface (DBI) shadow registers
- description: ATU address space
- description: PCIe configuration space
- description: Link control registers

reg-names:
items:
- const: dbi
- const: dbi2
- 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

msi-parent: true

phys:
description:
PHY phandle from the Combo PHY, the lane number does not depends
on this, since the number of lanes provided by Combo PHY can be
1 or 2.
minItems: 1
maxItems: 6

phy-names:
minItems: 1
maxItems: 6

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

required:
- clocks
- clock-names
- resets
- reset-names
- msi-parent
- spacemit,apmu

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>

soc {
#address-cells = <2>;
#size-cells = <2>;

pcie@80000000 {
compatible = "spacemit,k3-pcie";
reg = <0x0 0x80000000 0x0 0x00001000>,
<0x0 0x80100000 0x0 0x00001000>,
<0x0 0x80300000 0x0 0x00003f20>,
<0x11 0x00000000 0x0 0x00010000>,
<0x0 0x82900000 0x0 0x00001000>;
reg-names = "dbi", "dbi2", "atu", "config", "link";
device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
clocks = <&syscon_apmu 89>,
<&syscon_apmu 56>,
<&syscon_apmu 57>;
clock-names = "dbi", "mstr", "slv";
msi-parent = <&simsic>;
ranges = <0x01000000 0x00 0x00010000 0x11 0x00010000 0x0 0x00100000>,
<0x02000000 0x0 0x00110000 0x11 0x00110000 0x0 0x7fef0000>,
<0x43000000 0x18 0x00000000 0x18 0x00000000 0x1 0x00000000>;
resets = <&syscon_apmu 76>,
<&syscon_apmu 78>,
<&syscon_apmu 77>;
reset-names = "dbi", "mstr", "slv";
linux,pci-domain = <0>;
spacemit,apmu = <&syscon_apmu 0x1f0>;
};
};

4 changes: 2 additions & 2 deletions drivers/pci/controller/dwc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -439,15 +439,15 @@ config PCIE_SOPHGO_DW
Sophgo SoCs.

config PCIE_SPACEMIT_K1
tristate "SpacemiT K1 PCIe controller (host mode)"
tristate "SpacemiT K1/K3 PCIe controller (host mode)"
depends on ARCH_SPACEMIT || COMPILE_TEST
depends on HAS_IOMEM
select PCIE_DW_HOST
select PCI_PWRCTRL_GENERIC
default ARCH_SPACEMIT
help
Enables support for the DesignWare based PCIe controller in
the SpacemiT K1 SoC operating in host mode. Three controllers
the SpacemiT K1/K3 SoC operating in host mode. Three controllers
are available on the K1 SoC; the first of these shares a PHY
with a USB 3.0 host controller (one or the other can be used).

Expand Down
Loading
Loading