> -----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

Reply via email to