Re: [RFC PATCH 0/4] espi: introduce eSPI bus framework

Andrew Jeffery <[email protected]> Wed, 05 Aug 2026 10:12:34 +0930
Newsgroups org.ozlabs.lists.linux-aspeed,dev.linux.lists.chrome-platform,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-spi,org.ozlabs.lists.openbmc
Message-ID <83210c6e2a7b203bd5913b455ea45cfddf3d29ec.camel@codeconstruct.com.au>
Hi Greg, Krishnamoorthi,

YH Chung has been working on eSPI support for ASPEED's BMC SoCs, so
I've included them in the To line.

On Tue, 2026-08-04 at 14:18 +0200, Greg KH wrote:
> On Tue, Aug 04, 2026 at 05:22:55PM +0530, Krishnamoorthi M wrote:
> > Feedback Requested
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >=20
> > =C2=A0 1. We chose a dedicated bus_type for the reasons described above
> > =C2=A0=C2=A0=C2=A0=C2=A0 (capability negotiation, four independent chan=
nels, asynchronous
> > =C2=A0=C2=A0=C2=A0=C2=A0 ALERT#). Does the community agree this is the =
right direction, or
> > =C2=A0=C2=A0=C2=A0=C2=A0 is there a strong preference to extend the SPI=
 subsystem instead?
>=20
> That's up to the SPI maintainers and developers...

There's concurrent discussion from YH regarding device-side eSPI
support in the thread ending here:

https://lore.kernel.org/all/KL1PR0601MB4276FA2C6347192CC45826E490ED2@KL1PR0=
601MB4276.apcprd06.prod.outlook.com/

So far it's arrived at a matching proposal for drivers/espi.

>=20
> > =C2=A0 3. Any concerns with the ops table design or the -EOPNOTSUPP fal=
lback?
> > =C2=A0 4. Naming and structure of the public API in include/linux/espi/=
espi.h.
>=20
> What specifically are you asking for for this?=C2=A0 Do you have userspac=
e
> code you want to integrate, if so, does it work with this?=C2=A0 And wher=
e
> does it live?

I've seen your follow-up realisation Greg, however, regarding
userspace, the thread above suggests that we should be able to back
existing subsystems (GPIO for VW, MCTP for OOB, MTD for some flash
functionality) onto eSPI to minimise eSPI-specific interfaces:

https://lore.kernel.org/all/KL1PR0601MB4276B5BE3B96C18E3A66AD709049A@KL1PR0=
601MB4276.apcprd06.prod.outlook.com/

That doesn't cover the peripheral channel, as that's dealt with in
hardware on the device side, but for the purpose of the controller the
devices on the peripheral channel should all be driven by the kernel
anyway.

Andrew