This patchset is a third one in the series created in the framework of
my Baikal-T1 PCIe/eDMA-related work:
[1: Done v5] PCI: dwc: Various fixes and cleanups
Link: https://lore.kernel.org/linux-pci/[email protected]/
Merged: kernel 6.0-rc1
[2: Done v4] PCI: dwc: Add hw version and dma-ranges support
Link: https://lore.kernel.org/linux-pci/[email protected]
Merged: kernel 6.0-rc1
[3: In-review v5] PCI: dwc: Add generic resources and Baikal-T1 support
Link: ---you are looking at it---
[4: Done v4] dmaengine: dw-edma: Add RP/EP local DMA support
Link: https://lore.kernel.org/linux-pci/[email protected]/
Note it is very recommended to merge the patchsets in the same order as
they are listed in the set above in order to have them applied smoothly.
Nothing prevents them from being reviewed synchronously though.
Originally the patches submitted in this patchset were a part of the series:
Link: https://lore.kernel.org/linux-pci/[email protected]/
but due to the reviewers requests the series was expanded to about 30
patches which made it too bulky for a comfortable review. So I decided to
split it up into two patchsets: 2. and 3. in the table above.
Regarding the series content. This patchset is mainly about adding new DW
PCIe platform support - Baikal-T1 PCIe of DW PCIe v4.60a IP-core. But a
set of feature-reach preparations are done first. It starts from
converting the currently available DT-schema into a more flexible schemas
hierarchy with separately defined regs, clocks, resets and interrupts
properties. As a result the common schema can be easily re-used by all the
currently available platforms while the named properties above can be
either re-defined or used as is if the platforms support they. In the
framework of that modification we also suggest to add a set of generic
regs, clocks, resets and interrupts resource names in accordance with what
the DW PCIe hardware reference manual describes and what the DW PCIe core
driver already expects to be specified. Thus the new platform driver will
be able to re-use the common resources infrastructure.
Link: https://lore.kernel.org/linux-pci/[email protected]/
Changelog v2:
- Rename 'syscon' property to 'baikal,bt1-syscon'. (@Rob)
- Move the iATU region selection procedure into a helper function (@Rob).
- Rebase from kernel v5.17 onto v5.18-rc3 since the later kernel has
already DT bindings converted. (@Rob)
- Use 'definitions' property instead of the '$defs' one. It fixes the
dt-validate error: 'X is not of type array.'
- Drop 'interrupts' and 'interrupt-names' property from being required
for the native DW PCIe host.
- Evaluate the 'snps,dw-pcie-common.yaml' schema in the
'socionext,uniphier-pcie-ep.yaml' DT-bindings since the later has
platform-specific names defined.
Link: https://lore.kernel.org/linux-pci/[email protected]
Changelog v3:
- Split up the patch "dt-bindings: PCI: dwc: Define common and native DT
bindings" into a series of modifications. (@Rob)
- Detach this series of the patches into a dedicated patchset.
- Add a new feature patch: "PCI: dwc: Introduce generic controller
capabilities interface".
- Add a new feature patch: "PCI: dwc: Introduce generic resources getter".
- Add a new cleanup patch: "PCI: dwc: Combine iATU detection procedures".
- Add a method to at least request the generic clocks and resets. (@Rob)
- Add GPIO-based PERST# signal support to the core module.
- Redefine Baikal-T1 PCIe host bridge config space accessors with the
pci_generic_config_read32() and pci_generic_config_write32() methods.
(@Rob)
- Drop synonymous from the names list in the common DT-schema since the
device sub-schemas create their own enumerations anyway.
- Rebase onto kernel v5.18.
Link: https://lore.kernel.org/linux-pci/[email protected]/
Changelog v4:
- Drop PCIBIOS_* macros usage. (@Rob)
- Add "static const" to the dw_pcie_ops and dw_pcie_host_ops structure
instances. (@Bjorn)
- Rename bt1_pcie_dw_ops to bt1_pcie_ops. (@Bjorn)
- Rename bt1_pcie_ops to bt1_pci_ops. (@Bjorn)
- Use start_link/stop_link suffixes in the Baikal-T1 PCIe
start/stop link callbacks. (@Bjorn)
- Change the get_res() method suffix to being get_resources(). (@Bjorn)
- Change *_{add,del}_dw_port() method to *_{add,del}_port(). (@Bjorn)
- Drop dma_coerce_mask_and_coherent() applied to the PCI host bridge
kernel device instance. (@Bjorn)
- Add the comment above the dma_set_mask_and_coherent() method usage
regarding the controller eDMA feature. (@Bjorn)
- Fix the comment above the core reset controls assertion. (@Bjorn)
- Replace delays and timeout numeric literals with macros. (@Bjorn)
- Convert the method name from dw_pcie_get_res() to
dw_pcie_get_resources(). (@Bjorn)
- Rebase onto the kernel v5.19-rcX.
Link: https://lore.kernel.org/linux-pci/[email protected]/
Changelog v5:
- Add a note about having line-based PHY phandles order. (@Rob)
- Prefer 'pcie[0-9]+' PHY-names over the rest of the cases. (@Rob)
- Drop generic fallback names from the Baikal-T1 compatible property
constraints. (@Rob)
- Define ordered {reg,interrupt,clock,reset}-names Baikal-T1 PCIe
properties. (@Rob)
- Drop minItems from the Baikal-T1 PCIe clocks and reset properties,
since it equals to the maxItems for them.
- Drop num-ob-windows and num-ib-windows properties constraint from
Baikal-T1 PCIe bindings. (@Rob)
- Add a note about having line-based PHY phandles order. (@Rob)
- Prefer 'pcie[0-9]+' PHY-names over the rest of the cases. (@Rob)
- Add platform-specific reg/interrupt/clock/reset names to the generic
schema, but mark them as deprecated.
- Add new patches:
dt-bindings: visconti-pcie: Fix interrupts array max constraints
dt-bindings: imx6q-pcie: Fix clock names for imx6sx and imx8mq
- Move the patch:
PCI: dwc: Introduce dma-ranges property support for RC-host
from the previous patchset in here. (@Bjorn)
- Rebase onto the kernel v6.0-rc2.
Signed-off-by: Serge Semin <[email protected]>
Cc: Alexey Malahov <[email protected]>
Cc: Pavel Parkhomenko <[email protected]>
Cc: "Krzysztof Wilczyński" <[email protected]>
Cc: Frank Li <[email protected]>
Cc: Manivannan Sadhasivam <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Serge Semin (20):
dt-bindings: imx6q-pcie: Fix clock names for imx6sx and imx8mq
dt-bindings: visconti-pcie: Fix interrupts array max constraints
dt-bindings: PCI: dwc: Detach common RP/EP DT bindings
dt-bindings: PCI: dwc: Remove bus node from the examples
dt-bindings: PCI: dwc: Add phys/phy-names common properties
dt-bindings: PCI: dwc: Add max-link-speed common property
dt-bindings: PCI: dwc: Apply generic schema for generic device only
dt-bindings: PCI: dwc: Add max-functions EP property
dt-bindings: PCI: dwc: Add interrupts/interrupt-names common
properties
dt-bindings: PCI: dwc: Add reg/reg-names common properties
dt-bindings: PCI: dwc: Add clocks/resets common properties
dt-bindings: PCI: dwc: Add dma-coherent property
dt-bindings: PCI: dwc: Apply common schema to Rockchip DW PCIe nodes
dt-bindings: PCI: dwc: Add Baikal-T1 PCIe Root Port bindings
PCI: dwc: Introduce dma-ranges property support for RC-host
PCI: dwc: Introduce generic controller capabilities interface
PCI: dwc: Introduce generic resources getter
PCI: dwc: Combine iATU detection procedures
PCI: dwc: Introduce generic platform clocks and resets
PCI: dwc: Add Baikal-T1 PCIe controller support
.../bindings/pci/baikal,bt1-pcie.yaml | 153 ++++
.../bindings/pci/fsl,imx6q-pcie.yaml | 47 +-
.../bindings/pci/rockchip-dw-pcie.yaml | 4 +-
.../bindings/pci/snps,dw-pcie-common.yaml | 327 +++++++++
.../bindings/pci/snps,dw-pcie-ep.yaml | 169 +++--
.../devicetree/bindings/pci/snps,dw-pcie.yaml | 236 +++++--
.../bindings/pci/toshiba,visconti-pcie.yaml | 7 +-
drivers/pci/controller/dwc/Kconfig | 9 +
drivers/pci/controller/dwc/Makefile | 1 +
drivers/pci/controller/dwc/pcie-bt1.c | 653 ++++++++++++++++++
.../pci/controller/dwc/pcie-designware-ep.c | 30 +-
.../pci/controller/dwc/pcie-designware-host.c | 47 +-
drivers/pci/controller/dwc/pcie-designware.c | 262 +++++--
drivers/pci/controller/dwc/pcie-designware.h | 63 +-
14 files changed, 1785 insertions(+), 223 deletions(-)
create mode 100644 Documentation/devicetree/bindings/pci/baikal,bt1-pcie.yaml
create mode 100644 Documentation/devicetree/bindings/pci/snps,dw-pcie-common.yaml
create mode 100644 drivers/pci/controller/dwc/pcie-bt1.c
--
2.35.1
Since the iATU CSR region is now retrieved in the DW PCIe resources getter
there is no much benefits in the iATU detection procedures splitting up.
Therefore let's join the iATU unroll/viewport detection procedure with the
rest of the iATU parameters detection code. The resultant method will be
as coherent as before, while the redundant functions will be eliminated
thus producing more readable code.
Signed-off-by: Serge Semin <[email protected]>
Reviewed-by: Rob Herring <[email protected]>
---
Changelog v3:
- This is a new patch created on v3 lap of the series.
---
drivers/pci/controller/dwc/pcie-designware.c | 39 +++++---------------
1 file changed, 10 insertions(+), 29 deletions(-)
diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c
index a8436027434d..d31f9d41d5cb 100644
--- a/drivers/pci/controller/dwc/pcie-designware.c
+++ b/drivers/pci/controller/dwc/pcie-designware.c
@@ -628,26 +628,21 @@ static void dw_pcie_link_set_max_speed(struct dw_pcie *pci, u32 link_gen)
}
-static bool dw_pcie_iatu_unroll_enabled(struct dw_pcie *pci)
-{
- u32 val;
-
- val = dw_pcie_readl_dbi(pci, PCIE_ATU_VIEWPORT);
- if (val == 0xffffffff)
- return true;
-
- return false;
-}
-
-static void dw_pcie_iatu_detect_regions(struct dw_pcie *pci)
+void dw_pcie_iatu_detect(struct dw_pcie *pci)
{
int max_region, ob, ib;
u32 val, min, dir;
u64 max;
- if (dw_pcie_cap_is(pci, IATU_UNROLL)) {
+ val = dw_pcie_readl_dbi(pci, PCIE_ATU_VIEWPORT);
+ if (val == 0xFFFFFFFF) {
+ dw_pcie_cap_set(pci, IATU_UNROLL);
+
max_region = min((int)pci->atu_size / 512, 256);
} else {
+ pci->atu_base = pci->dbi_base + PCIE_ATU_VIEWPORT_BASE;
+ pci->atu_size = PCIE_ATU_VIEWPORT_SIZE;
+
dw_pcie_writel_dbi(pci, PCIE_ATU_VIEWPORT, 0xFF);
max_region = dw_pcie_readl_dbi(pci, PCIE_ATU_VIEWPORT) + 1;
}
@@ -689,23 +684,9 @@ static void dw_pcie_iatu_detect_regions(struct dw_pcie *pci)
pci->num_ib_windows = ib;
pci->region_align = 1 << fls(min);
pci->region_limit = (max << 32) | (SZ_4G - 1);
-}
-
-void dw_pcie_iatu_detect(struct dw_pcie *pci)
-{
- if (dw_pcie_iatu_unroll_enabled(pci)) {
- dw_pcie_cap_set(pci, IATU_UNROLL);
- } else {
- pci->atu_base = pci->dbi_base + PCIE_ATU_VIEWPORT_BASE;
- pci->atu_size = PCIE_ATU_VIEWPORT_SIZE;
- }
-
- dw_pcie_iatu_detect_regions(pci);
-
- dev_info(pci->dev, "iATU unroll: %s\n", dw_pcie_cap_is(pci, IATU_UNROLL) ?
- "enabled" : "disabled");
- dev_info(pci->dev, "iATU regions: %u ob, %u ib, align %uK, limit %lluG\n",
+ dev_info(pci->dev, "iATU: unroll %s, %u ob, %u ib, align %uK, limit %lluG\n",
+ dw_pcie_cap_is(pci, IATU_UNROLL) ? "T" : "F",
pci->num_ob_windows, pci->num_ib_windows,
pci->region_align / SZ_1K, (pci->region_limit + 1) / SZ_1G);
}
--
2.35.1
On Mon, Aug 22, 2022 at 09:46:41PM +0300, Serge Semin wrote:
> This patchset is a third one in the series created in the framework of
> my Baikal-T1 PCIe/eDMA-related work:
>
> [1: Done v5] PCI: dwc: Various fixes and cleanups
> Link: https://lore.kernel.org/linux-pci/[email protected]/
> Merged: kernel 6.0-rc1
> [2: Done v4] PCI: dwc: Add hw version and dma-ranges support
> Link: https://lore.kernel.org/linux-pci/[email protected]
> Merged: kernel 6.0-rc1
> [3: In-review v5] PCI: dwc: Add generic resources and Baikal-T1 support
> Link: ---you are looking at it---
> [4: Done v4] dmaengine: dw-edma: Add RP/EP local DMA support
> Link: https://lore.kernel.org/linux-pci/[email protected]/
>
> Note it is very recommended to merge the patchsets in the same order as
> they are listed in the set above in order to have them applied smoothly.
> Nothing prevents them from being reviewed synchronously though.
>
> Originally the patches submitted in this patchset were a part of the series:
> Link: https://lore.kernel.org/linux-pci/[email protected]/
> but due to the reviewers requests the series was expanded to about 30
> patches which made it too bulky for a comfortable review. So I decided to
> split it up into two patchsets: 2. and 3. in the table above.
>
> Regarding the series content. This patchset is mainly about adding new DW
> PCIe platform support - Baikal-T1 PCIe of DW PCIe v4.60a IP-core. But a
> set of feature-reach preparations are done first. It starts from
> converting the currently available DT-schema into a more flexible schemas
> hierarchy with separately defined regs, clocks, resets and interrupts
> properties. As a result the common schema can be easily re-used by all the
> currently available platforms while the named properties above can be
> either re-defined or used as is if the platforms support they. In the
> framework of that modification we also suggest to add a set of generic
> regs, clocks, resets and interrupts resource names in accordance with what
> the DW PCIe hardware reference manual describes and what the DW PCIe core
> driver already expects to be specified. Thus the new platform driver will
> be able to re-use the common resources infrastructure.
>
> Link: https://lore.kernel.org/linux-pci/[email protected]/
> Changelog v2:
> - Rename 'syscon' property to 'baikal,bt1-syscon'. (@Rob)
> - Move the iATU region selection procedure into a helper function (@Rob).
> - Rebase from kernel v5.17 onto v5.18-rc3 since the later kernel has
> already DT bindings converted. (@Rob)
> - Use 'definitions' property instead of the '$defs' one. It fixes the
> dt-validate error: 'X is not of type array.'
> - Drop 'interrupts' and 'interrupt-names' property from being required
> for the native DW PCIe host.
> - Evaluate the 'snps,dw-pcie-common.yaml' schema in the
> 'socionext,uniphier-pcie-ep.yaml' DT-bindings since the later has
> platform-specific names defined.
>
> Link: https://lore.kernel.org/linux-pci/[email protected]
> Changelog v3:
> - Split up the patch "dt-bindings: PCI: dwc: Define common and native DT
> bindings" into a series of modifications. (@Rob)
> - Detach this series of the patches into a dedicated patchset.
> - Add a new feature patch: "PCI: dwc: Introduce generic controller
> capabilities interface".
> - Add a new feature patch: "PCI: dwc: Introduce generic resources getter".
> - Add a new cleanup patch: "PCI: dwc: Combine iATU detection procedures".
> - Add a method to at least request the generic clocks and resets. (@Rob)
> - Add GPIO-based PERST# signal support to the core module.
> - Redefine Baikal-T1 PCIe host bridge config space accessors with the
> pci_generic_config_read32() and pci_generic_config_write32() methods.
> (@Rob)
> - Drop synonymous from the names list in the common DT-schema since the
> device sub-schemas create their own enumerations anyway.
> - Rebase onto kernel v5.18.
>
> Link: https://lore.kernel.org/linux-pci/[email protected]/
> Changelog v4:
> - Drop PCIBIOS_* macros usage. (@Rob)
> - Add "static const" to the dw_pcie_ops and dw_pcie_host_ops structure
> instances. (@Bjorn)
> - Rename bt1_pcie_dw_ops to bt1_pcie_ops. (@Bjorn)
> - Rename bt1_pcie_ops to bt1_pci_ops. (@Bjorn)
> - Use start_link/stop_link suffixes in the Baikal-T1 PCIe
> start/stop link callbacks. (@Bjorn)
> - Change the get_res() method suffix to being get_resources(). (@Bjorn)
> - Change *_{add,del}_dw_port() method to *_{add,del}_port(). (@Bjorn)
> - Drop dma_coerce_mask_and_coherent() applied to the PCI host bridge
> kernel device instance. (@Bjorn)
> - Add the comment above the dma_set_mask_and_coherent() method usage
> regarding the controller eDMA feature. (@Bjorn)
> - Fix the comment above the core reset controls assertion. (@Bjorn)
> - Replace delays and timeout numeric literals with macros. (@Bjorn)
> - Convert the method name from dw_pcie_get_res() to
> dw_pcie_get_resources(). (@Bjorn)
> - Rebase onto the kernel v5.19-rcX.
>
> Link: https://lore.kernel.org/linux-pci/[email protected]/
> Changelog v5:
> - Add a note about having line-based PHY phandles order. (@Rob)
> - Prefer 'pcie[0-9]+' PHY-names over the rest of the cases. (@Rob)
> - Drop generic fallback names from the Baikal-T1 compatible property
> constraints. (@Rob)
> - Define ordered {reg,interrupt,clock,reset}-names Baikal-T1 PCIe
> properties. (@Rob)
> - Drop minItems from the Baikal-T1 PCIe clocks and reset properties,
> since it equals to the maxItems for them.
> - Drop num-ob-windows and num-ib-windows properties constraint from
> Baikal-T1 PCIe bindings. (@Rob)
> - Add a note about having line-based PHY phandles order. (@Rob)
> - Prefer 'pcie[0-9]+' PHY-names over the rest of the cases. (@Rob)
> - Add platform-specific reg/interrupt/clock/reset names to the generic
> schema, but mark them as deprecated.
> - Add new patches:
> dt-bindings: visconti-pcie: Fix interrupts array max constraints
> dt-bindings: imx6q-pcie: Fix clock names for imx6sx and imx8mq
Are these two new patches linked to the remainder of the series ?
Thanks,
Lorenzo
> - Move the patch:
> PCI: dwc: Introduce dma-ranges property support for RC-host
> from the previous patchset in here. (@Bjorn)
> - Rebase onto the kernel v6.0-rc2.
>
> Signed-off-by: Serge Semin <[email protected]>
> Cc: Alexey Malahov <[email protected]>
> Cc: Pavel Parkhomenko <[email protected]>
> Cc: "Krzysztof Wilczyński" <[email protected]>
> Cc: Frank Li <[email protected]>
> Cc: Manivannan Sadhasivam <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
>
> Serge Semin (20):
> dt-bindings: imx6q-pcie: Fix clock names for imx6sx and imx8mq
> dt-bindings: visconti-pcie: Fix interrupts array max constraints
> dt-bindings: PCI: dwc: Detach common RP/EP DT bindings
> dt-bindings: PCI: dwc: Remove bus node from the examples
> dt-bindings: PCI: dwc: Add phys/phy-names common properties
> dt-bindings: PCI: dwc: Add max-link-speed common property
> dt-bindings: PCI: dwc: Apply generic schema for generic device only
> dt-bindings: PCI: dwc: Add max-functions EP property
> dt-bindings: PCI: dwc: Add interrupts/interrupt-names common
> properties
> dt-bindings: PCI: dwc: Add reg/reg-names common properties
> dt-bindings: PCI: dwc: Add clocks/resets common properties
> dt-bindings: PCI: dwc: Add dma-coherent property
> dt-bindings: PCI: dwc: Apply common schema to Rockchip DW PCIe nodes
> dt-bindings: PCI: dwc: Add Baikal-T1 PCIe Root Port bindings
> PCI: dwc: Introduce dma-ranges property support for RC-host
> PCI: dwc: Introduce generic controller capabilities interface
> PCI: dwc: Introduce generic resources getter
> PCI: dwc: Combine iATU detection procedures
> PCI: dwc: Introduce generic platform clocks and resets
> PCI: dwc: Add Baikal-T1 PCIe controller support
>
> .../bindings/pci/baikal,bt1-pcie.yaml | 153 ++++
> .../bindings/pci/fsl,imx6q-pcie.yaml | 47 +-
> .../bindings/pci/rockchip-dw-pcie.yaml | 4 +-
> .../bindings/pci/snps,dw-pcie-common.yaml | 327 +++++++++
> .../bindings/pci/snps,dw-pcie-ep.yaml | 169 +++--
> .../devicetree/bindings/pci/snps,dw-pcie.yaml | 236 +++++--
> .../bindings/pci/toshiba,visconti-pcie.yaml | 7 +-
> drivers/pci/controller/dwc/Kconfig | 9 +
> drivers/pci/controller/dwc/Makefile | 1 +
> drivers/pci/controller/dwc/pcie-bt1.c | 653 ++++++++++++++++++
> .../pci/controller/dwc/pcie-designware-ep.c | 30 +-
> .../pci/controller/dwc/pcie-designware-host.c | 47 +-
> drivers/pci/controller/dwc/pcie-designware.c | 262 +++++--
> drivers/pci/controller/dwc/pcie-designware.h | 63 +-
> 14 files changed, 1785 insertions(+), 223 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/pci/baikal,bt1-pcie.yaml
> create mode 100644 Documentation/devicetree/bindings/pci/snps,dw-pcie-common.yaml
> create mode 100644 drivers/pci/controller/dwc/pcie-bt1.c
>
> --
> 2.35.1
>
On Mon, Aug 29, 2022 at 12:09:24PM +0200, Lorenzo Pieralisi wrote:
> On Mon, Aug 22, 2022 at 09:46:41PM +0300, Serge Semin wrote:
> > This patchset is a third one in the series created in the framework of
> > my Baikal-T1 PCIe/eDMA-related work:
> >
> > [1: Done v5] PCI: dwc: Various fixes and cleanups
> > Link: https://lore.kernel.org/linux-pci/[email protected]/
> > Merged: kernel 6.0-rc1
> > [2: Done v4] PCI: dwc: Add hw version and dma-ranges support
> > Link: https://lore.kernel.org/linux-pci/[email protected]
> > Merged: kernel 6.0-rc1
> > [3: In-review v5] PCI: dwc: Add generic resources and Baikal-T1 support
> > Link: ---you are looking at it---
> > [4: Done v4] dmaengine: dw-edma: Add RP/EP local DMA support
> > Link: https://lore.kernel.org/linux-pci/[email protected]/
> >
> > Note it is very recommended to merge the patchsets in the same order as
> > they are listed in the set above in order to have them applied smoothly.
> > Nothing prevents them from being reviewed synchronously though.
> >
> > Originally the patches submitted in this patchset were a part of the series:
> > Link: https://lore.kernel.org/linux-pci/[email protected]/
> > but due to the reviewers requests the series was expanded to about 30
> > patches which made it too bulky for a comfortable review. So I decided to
> > split it up into two patchsets: 2. and 3. in the table above.
> >
> > Regarding the series content. This patchset is mainly about adding new DW
> > PCIe platform support - Baikal-T1 PCIe of DW PCIe v4.60a IP-core. But a
> > set of feature-reach preparations are done first. It starts from
> > converting the currently available DT-schema into a more flexible schemas
> > hierarchy with separately defined regs, clocks, resets and interrupts
> > properties. As a result the common schema can be easily re-used by all the
> > currently available platforms while the named properties above can be
> > either re-defined or used as is if the platforms support they. In the
> > framework of that modification we also suggest to add a set of generic
> > regs, clocks, resets and interrupts resource names in accordance with what
> > the DW PCIe hardware reference manual describes and what the DW PCIe core
> > driver already expects to be specified. Thus the new platform driver will
> > be able to re-use the common resources infrastructure.
> >
> > Link: https://lore.kernel.org/linux-pci/[email protected]/
> > Changelog v2:
> > - Rename 'syscon' property to 'baikal,bt1-syscon'. (@Rob)
> > - Move the iATU region selection procedure into a helper function (@Rob).
> > - Rebase from kernel v5.17 onto v5.18-rc3 since the later kernel has
> > already DT bindings converted. (@Rob)
> > - Use 'definitions' property instead of the '$defs' one. It fixes the
> > dt-validate error: 'X is not of type array.'
> > - Drop 'interrupts' and 'interrupt-names' property from being required
> > for the native DW PCIe host.
> > - Evaluate the 'snps,dw-pcie-common.yaml' schema in the
> > 'socionext,uniphier-pcie-ep.yaml' DT-bindings since the later has
> > platform-specific names defined.
> >
> > Link: https://lore.kernel.org/linux-pci/[email protected]
> > Changelog v3:
> > - Split up the patch "dt-bindings: PCI: dwc: Define common and native DT
> > bindings" into a series of modifications. (@Rob)
> > - Detach this series of the patches into a dedicated patchset.
> > - Add a new feature patch: "PCI: dwc: Introduce generic controller
> > capabilities interface".
> > - Add a new feature patch: "PCI: dwc: Introduce generic resources getter".
> > - Add a new cleanup patch: "PCI: dwc: Combine iATU detection procedures".
> > - Add a method to at least request the generic clocks and resets. (@Rob)
> > - Add GPIO-based PERST# signal support to the core module.
> > - Redefine Baikal-T1 PCIe host bridge config space accessors with the
> > pci_generic_config_read32() and pci_generic_config_write32() methods.
> > (@Rob)
> > - Drop synonymous from the names list in the common DT-schema since the
> > device sub-schemas create their own enumerations anyway.
> > - Rebase onto kernel v5.18.
> >
> > Link: https://lore.kernel.org/linux-pci/[email protected]/
> > Changelog v4:
> > - Drop PCIBIOS_* macros usage. (@Rob)
> > - Add "static const" to the dw_pcie_ops and dw_pcie_host_ops structure
> > instances. (@Bjorn)
> > - Rename bt1_pcie_dw_ops to bt1_pcie_ops. (@Bjorn)
> > - Rename bt1_pcie_ops to bt1_pci_ops. (@Bjorn)
> > - Use start_link/stop_link suffixes in the Baikal-T1 PCIe
> > start/stop link callbacks. (@Bjorn)
> > - Change the get_res() method suffix to being get_resources(). (@Bjorn)
> > - Change *_{add,del}_dw_port() method to *_{add,del}_port(). (@Bjorn)
> > - Drop dma_coerce_mask_and_coherent() applied to the PCI host bridge
> > kernel device instance. (@Bjorn)
> > - Add the comment above the dma_set_mask_and_coherent() method usage
> > regarding the controller eDMA feature. (@Bjorn)
> > - Fix the comment above the core reset controls assertion. (@Bjorn)
> > - Replace delays and timeout numeric literals with macros. (@Bjorn)
> > - Convert the method name from dw_pcie_get_res() to
> > dw_pcie_get_resources(). (@Bjorn)
> > - Rebase onto the kernel v5.19-rcX.
> >
> > Link: https://lore.kernel.org/linux-pci/[email protected]/
> > Changelog v5:
> > - Add a note about having line-based PHY phandles order. (@Rob)
> > - Prefer 'pcie[0-9]+' PHY-names over the rest of the cases. (@Rob)
> > - Drop generic fallback names from the Baikal-T1 compatible property
> > constraints. (@Rob)
> > - Define ordered {reg,interrupt,clock,reset}-names Baikal-T1 PCIe
> > properties. (@Rob)
> > - Drop minItems from the Baikal-T1 PCIe clocks and reset properties,
> > since it equals to the maxItems for them.
> > - Drop num-ob-windows and num-ib-windows properties constraint from
> > Baikal-T1 PCIe bindings. (@Rob)
> > - Add a note about having line-based PHY phandles order. (@Rob)
> > - Prefer 'pcie[0-9]+' PHY-names over the rest of the cases. (@Rob)
> > - Add platform-specific reg/interrupt/clock/reset names to the generic
> > schema, but mark them as deprecated.
> > - Add new patches:
> > dt-bindings: visconti-pcie: Fix interrupts array max constraints
> > dt-bindings: imx6q-pcie: Fix clock names for imx6sx and imx8mq
>
> Are these two new patches linked to the remainder of the series ?
If they weren't I would have submitted them separately. They are
required for the DW PCIe DT-part of the series to work correctly.
-Sergey
>
> Thanks,
> Lorenzo
>
> > - Move the patch:
> > PCI: dwc: Introduce dma-ranges property support for RC-host
> > from the previous patchset in here. (@Bjorn)
> > - Rebase onto the kernel v6.0-rc2.
> >
> > Signed-off-by: Serge Semin <[email protected]>
> > Cc: Alexey Malahov <[email protected]>
> > Cc: Pavel Parkhomenko <[email protected]>
> > Cc: "Krzysztof Wilczyński" <[email protected]>
> > Cc: Frank Li <[email protected]>
> > Cc: Manivannan Sadhasivam <[email protected]>
> > Cc: [email protected]
> > Cc: [email protected]
> > Cc: [email protected]
> >
> > Serge Semin (20):
> > dt-bindings: imx6q-pcie: Fix clock names for imx6sx and imx8mq
> > dt-bindings: visconti-pcie: Fix interrupts array max constraints
> > dt-bindings: PCI: dwc: Detach common RP/EP DT bindings
> > dt-bindings: PCI: dwc: Remove bus node from the examples
> > dt-bindings: PCI: dwc: Add phys/phy-names common properties
> > dt-bindings: PCI: dwc: Add max-link-speed common property
> > dt-bindings: PCI: dwc: Apply generic schema for generic device only
> > dt-bindings: PCI: dwc: Add max-functions EP property
> > dt-bindings: PCI: dwc: Add interrupts/interrupt-names common
> > properties
> > dt-bindings: PCI: dwc: Add reg/reg-names common properties
> > dt-bindings: PCI: dwc: Add clocks/resets common properties
> > dt-bindings: PCI: dwc: Add dma-coherent property
> > dt-bindings: PCI: dwc: Apply common schema to Rockchip DW PCIe nodes
> > dt-bindings: PCI: dwc: Add Baikal-T1 PCIe Root Port bindings
> > PCI: dwc: Introduce dma-ranges property support for RC-host
> > PCI: dwc: Introduce generic controller capabilities interface
> > PCI: dwc: Introduce generic resources getter
> > PCI: dwc: Combine iATU detection procedures
> > PCI: dwc: Introduce generic platform clocks and resets
> > PCI: dwc: Add Baikal-T1 PCIe controller support
> >
> > .../bindings/pci/baikal,bt1-pcie.yaml | 153 ++++
> > .../bindings/pci/fsl,imx6q-pcie.yaml | 47 +-
> > .../bindings/pci/rockchip-dw-pcie.yaml | 4 +-
> > .../bindings/pci/snps,dw-pcie-common.yaml | 327 +++++++++
> > .../bindings/pci/snps,dw-pcie-ep.yaml | 169 +++--
> > .../devicetree/bindings/pci/snps,dw-pcie.yaml | 236 +++++--
> > .../bindings/pci/toshiba,visconti-pcie.yaml | 7 +-
> > drivers/pci/controller/dwc/Kconfig | 9 +
> > drivers/pci/controller/dwc/Makefile | 1 +
> > drivers/pci/controller/dwc/pcie-bt1.c | 653 ++++++++++++++++++
> > .../pci/controller/dwc/pcie-designware-ep.c | 30 +-
> > .../pci/controller/dwc/pcie-designware-host.c | 47 +-
> > drivers/pci/controller/dwc/pcie-designware.c | 262 +++++--
> > drivers/pci/controller/dwc/pcie-designware.h | 63 +-
> > 14 files changed, 1785 insertions(+), 223 deletions(-)
> > create mode 100644 Documentation/devicetree/bindings/pci/baikal,bt1-pcie.yaml
> > create mode 100644 Documentation/devicetree/bindings/pci/snps,dw-pcie-common.yaml
> > create mode 100644 drivers/pci/controller/dwc/pcie-bt1.c
> >
> > --
> > 2.35.1
> >