Re: [PATCH v4 6/6] PCI: spacemit-k1: Add Spacemit K3 PCIe host controller support

From: Inochi Amaoto

Date: Sun Jul 12 2026 - 01:46:22 EST


On Thu, Jul 09, 2026 at 10:21:18AM +0300, Andy Shevchenko wrote:
> On Thu, Jul 09, 2026 at 12:00:26PM +0800, Inochi Amaoto wrote:
> > The PCIe controller on Spacemit K3 is almost a standard Synopsys
> > DesignWare PCIe IP with extra link and reset control. Unlike
> > the PCIe controller on K1, this controller supports external MSI
> > interrupt controller and can use multiple PHYs at the same time.
> >
> > Add driver to support PCIe controller on Spacemit K3 PCIe.
>
> ...
>
> > + /* K3: Set IGNORE_PERSTN and drive PERSTN_OE high (assert reset) */
> > + regmap_set_bits(k1->pmu, k1->pmu_off + PCIE_CONTROL_LOGIC,
> > + PCIE_IGNORE_PERSTN | PCIE_PERSTN_OE | PCIE_PERSTN_OUT);
> > + usleep_range(1000, 2000);
>
> fsleep(1 * USEC_PER_MSEC)
>
> > + regmap_clear_bits(k1->pmu, k1->pmu_off + PCIE_CONTROL_LOGIC, PCIE_PERSTN_OUT);
> > +
> > + msleep(PCIE_T_PVPERL_MS);
>
> If PCIE_T_PVPERL_MS is too small, msleep() maybe not a good choice,
> perhaps
>
> fsleep(PCIE_T_PVPERL_MS * USEC_PER_MSEC)
>
> ...
>
> > + val = u32_replace_bits(val, BIT(7),
> > + GEN3_EQ_CONTROL_OFF_PSET_REQ_VEC);
>
> It's perfectly a single line.
>
> ...
>
> > static const struct of_device_id k1_pcie_of_match_table[] = {
> > { .compatible = "spacemit,k1-pcie", .data = &k1_pcie_device_data},
> > + { .compatible = "spacemit,k3-pcie", .data = &k3_pcie_device_data},
>
> Missed space.
>
> > { }
> > };
>
> I don't see (and haven't checked) the context, do you have
> MODULE_DEVICE_TABLE() for this?
>

IIRC there is already a patch for adding this, so I won't add
MODULE_DEVICE_TABLE there.

I will take other advice, thanks.

> --
> With Best Regards,
> Andy Shevchenko
>
>

Regards,
Inochi