Re: [PATCH v5 4/7] PCI: dwc: Add support for ELBI resource mapping
From: Manivannan Sadhasivam
Date: Fri Mar 28 2025 - 07:53:55 EST
On Sun, Mar 09, 2025 at 11:15:26AM +0530, Krishna Chaitanya Chundru wrote:
> External Local Bus Interface(ELBI) registers are optional registers in
> dwc which has vendor specific registers.
s/dwc which has/DWC IPs having
>
> As these are part of dwc add the mapping support in dwc itself.
>
'Since ELBI register space is applicable for all DWC based controllers, move the
resource get code to DWC core and make it optional.'
> Suggested-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>
> Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@xxxxxxxxxxxxxxxx>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>
- Mani
> ---
> drivers/pci/controller/dwc/pcie-designware.c | 9 +++++++++
> drivers/pci/controller/dwc/pcie-designware.h | 1 +
> 2 files changed, 10 insertions(+)
>
> diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c
> index 145e7f579072..874fd31a6079 100644
> --- a/drivers/pci/controller/dwc/pcie-designware.c
> +++ b/drivers/pci/controller/dwc/pcie-designware.c
> @@ -157,6 +157,15 @@ int dw_pcie_get_resources(struct dw_pcie *pci)
> }
> }
>
> + if (!pci->elbi_base) {
> + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "elbi");
> + if (res) {
> + pci->elbi_base = devm_ioremap_resource(pci->dev, res);
> + if (IS_ERR(pci->elbi_base))
> + return PTR_ERR(pci->elbi_base);
> + }
> + }
> +
> /* LLDD is supposed to manually switch the clocks and resets state */
> if (dw_pcie_cap_is(pci, REQ_RES)) {
> ret = dw_pcie_get_clocks(pci);
> diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h
> index 501d9ddfea16..3248318d3edd 100644
> --- a/drivers/pci/controller/dwc/pcie-designware.h
> +++ b/drivers/pci/controller/dwc/pcie-designware.h
> @@ -443,6 +443,7 @@ struct dw_pcie {
> resource_size_t dbi_phys_addr;
> void __iomem *dbi_base2;
> void __iomem *atu_base;
> + void __iomem *elbi_base;
> resource_size_t atu_phys_addr;
> size_t atu_size;
> u32 num_ib_windows;
>
> --
> 2.34.1
>
--
மணிவண்ணன் சதாசிவம்