Re: [PATCH 1/3] i2c: add <pbl/eeprom.h> for PBL use

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06.06.2023 13:21:48, Sascha Hauer wrote:
> On Tue, Jun 06, 2023 at 12:50:02PM +0200, Marc Kleine-Budde wrote:
> > Add a small helper to read a single page of EEPROM data.
> > 
> > Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
> > ---
> >  include/pbl/eeprom.h | 34 ++++++++++++++++++++++++++++++++++
> >  1 file changed, 34 insertions(+)
> > 
> > diff --git a/include/pbl/eeprom.h b/include/pbl/eeprom.h
> > new file mode 100644
> > index 000000000000..b713cf154c99
> > --- /dev/null
> > +++ b/include/pbl/eeprom.h
> > @@ -0,0 +1,34 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +#ifndef __PBL_EEPROM_H_
> > +#define __PBL_EEPROM_H_
> > +
> > +#include <common.h>
> > +#include <pbl/i2c.h>
> > +
> > +static inline void eeprom_read(struct pbl_i2c *i2c, u16 client_addr, u32 addr, void *buf, u16 count)
> > +{
> > +	u8 msgbuf[2];
> > +	struct i2c_msg msg[] = {
> > +		{
> > +			.addr = client_addr,
> > +			.buf = msgbuf,
> > +		}, {
> > +			.addr = client_addr,
> > +			.flags = I2C_M_RD,
> > +			.buf = buf,
> > +			.len = count,
> > +		},
> > +	};
> > +	int ret, i = 0;
> > +
> > +	if (addr & I2C_ADDR_16_BIT)
> > +		msgbuf[i++] = addr >> 8;
> > +	msgbuf[i++] = addr;
> > +	msg->len = i;
> 
> I wasn't aware that an array can be accessed as a pointer.

It's C, that's all just syntactic sugar :)

> I would prefer msg[0].len = i here.

That's copied from i2c_read_reg(), will change, though.

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde          |
Embedded Linux                   | https://www.pengutronix.de |
Vertretung Nürnberg              | Phone: +49-5121-206917-129 |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-9   |

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux