> -----Original Message-----
> From: Andrew Lunn <[email protected]>
> Sent: Friday, October 10, 2025 2:32 PM
> To: Shenwei Wang <[email protected]>
> Cc: Bjorn Andersson <[email protected]>; Mathieu Poirier
> <[email protected]>; Rob Herring <[email protected]>; Krzysztof
> Kozlowski <[email protected]>; Conor Dooley <[email protected]>; Shawn
> Guo <[email protected]>; Sascha Hauer <[email protected]>; Linus
> Walleij <[email protected]>; Bartosz Golaszewski <[email protected]>;
> Pengutronix Kernel Team <[email protected]>; Fabio Estevam
> <[email protected]>; Peng Fan <[email protected]>; linux-
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected];
> dl-linux-imx
> <[email protected]>
> Subject: [EXT] Re: [PATCH v3 3/4] gpio: imx-rpmsg: add imx-rpmsg GPIO driver
> > The only platform-specific part is the message format exchanged between
> Linux and the remote processors.
> > As long as the remote processor follows the same message protocol, the
> > driver
> should work as expected.
> >
> > Here's the layout of the message packets:
> >
> > +--------+--------+--------+--------+--------+----------------+--------+--------+----------
> -----+---------------+
> > |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A
> > |0x0B |0x0C
> |0x0D |
> > |cate |major |minor |type |cmd |reserved[5] |pin_idx
> |port_idx|out:{evt/rc/v} |in:{wkup/val} |
> > +--------+--------+--------+--------+--------+----------------+--------+--------+----------
> -----+---------------+
> >
> > Cate (Category field ): can be GPIO /I2C/PMIC/AUDIO ... etc Major :
> > Major version number
> > Minor: Minor version number
> > Type (Message Type): Can be SETUP / REPLY /NOTIFY for GPIO category
> > Cmd (Command): Can be Input INIT / Output INIT / Input GET for GPIO
> > category
> > Pin_idx: The GPIO line index
> > Port_idx: The GPIO controller index
> >
> > For Out packet:
> > if it is OUPUT INIT, the out field value is the gpio output level.
> > If it is INPUT INIT, the out filed is 0.
> >
> > For In packet:
> > If it is a REPLY message, the out field is return code. 0 means
> > success.
> > If it is a REPLY of INPUT GET, the in field is the value of GPIO line
> > level.
> > If it is an NOTIFY type of message, it simulates an interrupt event
> > from the
> remote processor.
> >
> > I can add above comments in the commit log or the beginning of the driver
> source file.
>
> Maybe Documentation/admin-guide/gpio-rpmsg.rst would be better. You should
> also document how to handle features the device does not support. e.g. i
> _think_
> your hardware supports all 4 interrupt types. But maybe other hardware needs
> to
> return something meaning -EOPNOTSUP?
>
That should be one type of the error return code in the out field of REPLY
message.
The return code of 0 means success, and the others are error codes.
I will add a gpio-rpmsg.rst file in the next patches.
Thanks,
Shenwei
> Andrew