| /linux/drivers/pci/controller/ |
| H A D | pci-tegra.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * PCIe host controller driver for Tegra SoCs 8 * Based on NVIDIA PCIe driver 9 * Copyright (c) 2008-2009, NVIDIA Corporation. 11 * Bits taken from arch/arm/mach-dove/pcie.c 26 #include <linux/irqchip/irq-msi-lib.h> 88 #define AFI_CONFIGURATION_EN_FPCI (1 << 0) 89 #define AFI_CONFIGURATION_CLKEN_OVERRIDE (1 << 31) 94 #define AFI_INTR_MASK_INT_MASK (1 << 0) 95 #define AFI_INTR_MASK_MSI_MASK (1 << 8) [all …]
|
| H A D | pcie-altera.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright Altera Corporation (C) 2013-2015. All rights reserved 6 * Description: Altera PCIe host controller driver 45 #define S10_RP_CFG_ADDR(pcie, reg) \ argument 46 (((pcie)->hip_base) + (reg) + (1 << 20)) 47 #define S10_RP_SECONDARY(pcie) \ argument 48 readb(S10_RP_CFG_ADDR(pcie, PCI_SECONDARY_BUS)) 50 /* TLP configuration type 0 and 1 */ 53 #define TLP_FMTTYPE_CFGRD1 0x05 /* Configuration Read Type 1 */ 54 #define TLP_FMTTYPE_CFGWR1 0x45 /* Configuration Write Type 1 */ [all …]
|
| H A D | pci-aardvark.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Driver for the Aardvark PCIe controller, used on Marvell Armada 16 #include <linux/irqchip/irq-msi-lib.h> 21 #include <linux/pci-ecam.h> 30 #include "../pci-bridge-emul.h" 32 /* PCIe core registers */ 53 #define PIO_COMPLETION_STATUS_UR 1 73 #define SPEED_GEN_2 1 75 #define IS_RC_MSK 1 80 #define LANE_COUNT_2 (1 << LANE_CNT_SHIFT) [all …]
|
| H A D | pcie-brcmstb.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 /* Copyright (C) 2009 - 2019 Broadcom */ 15 #include <linux/irqchip/irq-msi-lib.h> 27 #include <linux/pci-ecam.h> 38 /* BRCM_PCIE_CAP_REGS - Offset for the mandatory capability config regs */ 41 /* Broadcom STB PCIe Register Offsets */ 166 /* PCIe parameters */ 171 #define BRCM_INT_PCI_MSI_MASK GENMASK(BRCM_INT_PCI_MSI_NR - 1, 0) 173 32 - BRCM_INT_PCI_MSI_LEGACY_NR) 189 #define MDIO_RD_DONE(x) (((x) & MDIO_DATA_DONE_MASK) ? 1 : 0) [all …]
|
| H A D | pcie-rcar-host.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCIe driver for Renesas R-Car SoCs 4 * Copyright (C) 2014-2020 Renesas Electronics Europe Ltd 7 * arch/sh/drivers/pci/pcie-sh7786.c 8 * arch/sh/drivers/pci/ops-sh7786.c 9 * Copyright (C) 2009 - 2011 Paul Mundt 17 #include <linux/clk-provider.h> 21 #include <linux/irqchip/irq-msi-lib.h> 36 #include "pcie-rcar.h" 47 /* Structure representing the PCIe interface */ [all …]
|
| H A D | pcie-rcar-ep.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCIe endpoint driver for Renesas R-Car SoCs 6 * Author: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> 13 #include <linux/pci-epc.h> 17 #include "pcie-rcar.h" 19 #define RCAR_EPC_MAX_FUNCTIONS 1 21 /* Structure representing the PCIe interface */ 23 struct rcar_pcie pcie; member 33 static void rcar_pcie_ep_hw_init(struct rcar_pcie *pcie) in rcar_pcie_ep_hw_init() argument 37 rcar_pci_write_reg(pcie, 0, PCIETCTLR); in rcar_pcie_ep_hw_init() [all …]
|
| H A D | pcie-mediatek-gen3.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * MediaTek PCIe host controller driver. 11 #include <linux/clk-provider.h> 15 #include <linux/irqchip/irq-msi-lib.h> 61 #define PCIE_PHY_RSTB BIT(1) 79 #define PCIE_MSI_ENABLE GENMASK(PCIE_MSI_SET_NUM + 8 - 1, 8) 83 GENMASK(PCIE_INTX_SHIFT + PCI_NUM_INTX - 1, PCIE_INTX_SHIFT) 87 #define PCIE_MSI_SET_ENABLE GENMASK(PCIE_MSI_SET_NUM - 1, 0) 112 #define PCIE_DISABLE_DVFSRC_VLT_REQ BIT(1) 124 (((((size) - 1) << 1) & GENMASK(6, 1)) | PCIE_ATR_EN) [all …]
|
| H A D | pcie-iproc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2014 Hauke Mehrtens <hauke@hauke-m.de> 9 #include <linux/pci-ecam.h> 17 #include <linux/irqchip/arm-gic-v3.h> 24 #include "pcie-iproc.h" 28 #define EP_MODE_SURVIVE_PERST_SHIFT 1 43 #define CFG_ADDR_CFG_TYPE_1 1 56 #define CFG_RD_UR 1 73 #define OARR_SIZE_CFG_SHIFT 1 91 * struct iproc_pcie_ob_map - iProc PCIe outbound mapping controller-specific [all …]
|
| H A D | pcie-xilinx-nwl.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * PCIe host controller driver for NWL PCIe Bridge 4 * Based on pcie-xilinx.c, pci-tegra.c 6 * (C) Copyright 2014 - 2015, Xilinx, Inc. 13 #include <linux/irqchip/irq-msi-lib.h> 22 #include <linux/pci-ecam.h> 35 /* Egress - Bridge translation registers */ 45 /* Ingress - address translations */ 53 /* Rxed msg fifo - Interrupt status registers */ 64 #define CFG_ENABLE_PM_MSG_FWD BIT(1) [all …]
|
| /linux/drivers/pci/controller/cadence/ |
| H A D | pcie-cadence-ep.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Cadence PCIe endpoint controller driver. 4 // Author: Cyrille Pitchen <cyrille.pitchen@free-electrons.com> 11 #include <linux/pci-epc.h> 15 #include "pcie-cadence.h" 22 static u8 cdns_pcie_get_fn_from_vfn(struct cdns_pcie *pcie, u8 fn, u8 vfn) in cdns_pcie_get_fn_from_vfn() argument 30 cap = cdns_pcie_find_ext_capability(pcie, PCI_EXT_CAP_ID_SRIOV); in cdns_pcie_get_fn_from_vfn() 31 first_vf_offset = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_SRIOV_VF_OFFSET); in cdns_pcie_get_fn_from_vfn() 32 stride = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_SRIOV_VF_STRIDE); in cdns_pcie_get_fn_from_vfn() 33 fn = fn + first_vf_offset + ((vfn - 1) * stride); in cdns_pcie_get_fn_from_vfn() [all …]
|
| H A D | pci-j721e.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * pci-j721e - PCIe controller driver for TI's J721E SoCs 5 * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com 10 #include <linux/clk-provider.h> 26 #include "pcie-cadence.h" 28 #define cdns_pcie_to_rc(p) container_of(p, struct cdns_pcie_rc, pcie) 34 #define LINK_DOWN BIT(1) 41 #define LINK_STATUS GENMASK(1, 0) 53 #define ACSPCIE_PAD_DISABLE_MASK GENMASK(1, 0) 54 #define GENERATION_SEL_MASK GENMASK(1, 0) [all …]
|
| H A D | pcie-cadence.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 // Cadence PCIe controller driver. 4 // Author: Cyrille Pitchen <cyrille.pitchen@free-electrons.com> 11 #include <linux/pci-epf.h> 117 (((aperture) - 2) << ((bar) * 8)) 145 /* Region r Outbound AXI to PCIe Address Translation Register 0 */ 150 (((nbits) - 1) & CDNS_PCIE_AT_OB_REGION_PCI_ADDR0_NBITS_MASK) 158 /* Region r Outbound AXI to PCIe Address Translation Register 1 */ 162 /* Region r Outbound PCIe Descriptor Register 0 */ 178 /* Region r Outbound PCIe Descriptor Register 1 */ [all …]
|
| /linux/Documentation/devicetree/bindings/phy/ |
| H A D | qcom,sc8280xp-qmp-pcie-phy.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-pcie-phy.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Qualcomm QMP PHY controller (PCIe, SC8280XP) 10 - Vinod Koul <vkoul@kernel.org> 14 controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 19 - qcom,qcs615-qmp-gen3x1-pcie-phy 20 - qcom,qcs8300-qmp-gen4x2-pcie-phy 21 - qcom,sa8775p-qmp-gen4x2-pcie-phy [all …]
|
| /linux/drivers/pci/controller/mobiveil/ |
| H A D | pcie-mobiveil-host.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCIe host controller driver for Mobiveil PCIe Host controller 6 * Copyright 2019-2020 NXP 15 #include <linux/irqchip/irq-msi-lib.h> 26 #include "pcie-mobiveil.h" 38 if ((bus->primary == to_pci_host_bridge(bus->bridge)->busnr) && (PCI_SLOT(devfn) > 0)) in mobiveil_pcie_valid_device() 45 * mobiveil_pcie_map_bus - routine to get the configuration base of either 51 struct mobiveil_pcie *pcie = bus->sysdata; in mobiveil_pcie_map_bus() local 52 struct mobiveil_root_port *rp = &pcie->rp; in mobiveil_pcie_map_bus() 60 return pcie->csr_axi_slave_base + where; in mobiveil_pcie_map_bus() [all …]
|
| H A D | pcie-mobiveil.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCIe host controller driver for Mobiveil PCIe Host controller 18 #include "pcie-mobiveil.h" 21 * mobiveil_pcie_sel_page - routine to access paged register 28 static void mobiveil_pcie_sel_page(struct mobiveil_pcie *pcie, u8 pg_idx) in mobiveil_pcie_sel_page() argument 32 val = readl(pcie->csr_axi_slave_base + PAB_CTRL); in mobiveil_pcie_sel_page() 36 writel(val, pcie->csr_axi_slave_base + PAB_CTRL); in mobiveil_pcie_sel_page() 39 static void __iomem *mobiveil_pcie_comp_addr(struct mobiveil_pcie *pcie, in mobiveil_pcie_comp_addr() argument 44 mobiveil_pcie_sel_page(pcie, 0); in mobiveil_pcie_comp_addr() 45 return pcie->csr_axi_slave_base + off; in mobiveil_pcie_comp_addr() [all …]
|
| /linux/Documentation/devicetree/bindings/pci/ |
| H A D | qcom,pcie.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/pci/qcom,pcie.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Bjorn Andersson <bjorn.andersson@linaro.org> 11 - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 14 Qualcomm PCIe root complex controller is based on the Synopsys DesignWare 15 PCIe IP. 20 - enum: 21 - qcom,pcie-apq8064 [all …]
|
| H A D | fsl,layerscape-pcie.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/pci/fsl,layerscape-pcie.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Freescale Layerscape PCIe Root Complex(RC) controller 10 - Frank Li <Frank.Li@nxp.com> 13 This PCIe RC controller is based on the Synopsys DesignWare PCIe IP 16 which is used to describe the PLL settings at the time of chip-reset. 19 register available in the Freescale PCIe controller register set, 20 which can allow determining the underlying DesignWare PCIe controller version [all …]
|
| H A D | mediatek-pcie.txt | 1 MediaTek Gen2 PCIe controller 4 - compatible: Should contain one of the following strings: 5 "mediatek,mt2701-pcie" 6 "mediatek,mt2712-pcie" 7 "mediatek,mt7622-pcie" 8 "mediatek,mt7623-pcie" 9 "mediatek,mt7629-pcie" 10 "airoha,en7523-pcie" 11 - device_type: Must be "pci" 12 - reg: Base addresses and lengths of the root ports. [all …]
|
| H A D | ti,j721e-pci-ep.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 # Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/ 4 --- 5 $id: http://devicetree.org/schemas/pci/ti,j721e-pci-ep.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: TI J721E PCI EP (PCIe Wrapper) 11 - Kishon Vijay Abraham I <kishon@ti.com> 16 - const: ti,j721e-pcie-ep 17 - const: ti,j784s4-pcie-ep 18 - description: PCIe EP controller in AM64 [all …]
|
| H A D | rcar-pci-host.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 4 --- 5 $id: http://devicetree.org/schemas/pci/rcar-pci-host.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: Renesas R-Car PCIe Host 11 - Marek Vasut <marek.vasut+renesas@gmail.com> 12 - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> 15 - $ref: /schemas/pci/pci-host-bridge.yaml# 20 - const: renesas,pcie-r8a7779 # R-Car H1 21 - items: [all …]
|
| H A D | mediatek-pcie-gen3.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/pci/mediatek-pcie-gen3.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Gen3 PCIe controller on MediaTek SoCs 10 - Jianjun Wang <jianjun.wang@mediatek.com> 13 PCIe Gen3 MAC controller for MediaTek SoCs, it supports Gen3 speed 16 This PCIe controller supports up to 256 MSI vectors, the MSI hardware 19 +-----+ 21 +-----+ [all …]
|
| H A D | nvidia,tegra20-pcie.txt | 1 NVIDIA Tegra PCIe controller 4 - compatible: Must be: 5 - "nvidia,tegra20-pcie": for Tegra20 6 - "nvidia,tegra30-pcie": for Tegra30 7 - "nvidia,tegra124-pcie": for Tegra124 and Tegra132 8 - "nvidia,tegra210-pcie": for Tegra210 9 - "nvidia,tegra186-pcie": for Tegra186 10 - power-domains: To ungate power partition by BPMP powergate driver. Must 11 contain BPMP phandle and PCIe power partition ID. This is required only 13 - device_type: Must be "pci" [all …]
|
| /linux/drivers/pci/controller/plda/ |
| H A D | pcie-starfive.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * PCIe host controller driver for StarFive JH7110 Soc. 27 #include "pcie-plda.h" 67 * JH7110 PCIe port BAR0/1 can be configured as 64-bit prefetchable memory 68 * space. PCIe read and write requests targeting BAR0/1 are routed to so called 105 static int starfive_pcie_parse_dt(struct starfive_jh7110_pcie *pcie, in starfive_pcie_parse_dt() argument 110 pcie->num_clks = devm_clk_bulk_get_all(dev, &pcie->clks); in starfive_pcie_parse_dt() 111 if (pcie->num_clks < 0) in starfive_pcie_parse_dt() 112 return dev_err_probe(dev, pcie->num_clks, in starfive_pcie_parse_dt() 113 "failed to get pcie clocks\n"); in starfive_pcie_parse_dt() [all …]
|
| /linux/drivers/pci/controller/dwc/ |
| H A D | pcie-tegra194.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * PCIe host controller driver for the following SoCs 7 * Copyright (C) 2019-2022 NVIDIA Corporation. 33 #include "pcie-designware.h" 35 #include <soc/tegra/bpmp-abi.h> 52 #define APPL_CTRL_HW_HOT_RST_MODE_MASK GENMASK(1, 0) 74 #define APPL_INTR_EN_L1_0_0_LINK_REQ_RST_NOT_INT_EN BIT(1) 79 #define APPL_INTR_STATUS_L1_0_0_LINK_REQ_RST_NOT_CHGED BIT(1) 88 #define APPL_INTR_STATUS_L1_15_CFG_BME_CHGED BIT(1) 111 #define APPL_INTR_EN_L1_18_CDM_REG_CHK_CMP_ERR BIT(1) [all …]
|
| /linux/drivers/net/can/kvaser_pciefd/ |
| H A D | kvaser_pciefd_core.c | 1 // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 4 * - Kvaser linux pciefd driver (version 5.42) 5 * - PEAK linux canfd driver 25 MODULE_DESCRIPTION("CAN driver for Kvaser CAN/PCIe devices"); 53 /* Altera SerDes Enable 64-bit DMA address translation */ 96 #define KVASER_PCIEFD_SYSID_BUILD_SEQ_MASK GENMASK(15, 1) 98 /* Reset DMA buffer 0, 1 and FIFO offset */ 103 /* DMA underflow, buffer 0 and 1 */ 106 /* DMA overflow, buffer 0 and 1 */ 109 /* DMA packet done, buffer 0 and 1 */ [all …]
|