[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BY1PR11MB043915C88A0E9331EB28FDB6ECB80@BY1PR11MB0439.namprd11.prod.outlook.com>
Date: Fri, 21 Dec 2018 00:48:39 +0000
From: <Tristram.Ha@...rochip.com>
To: <marex@...x.de>
CC: <vivien.didelot@...oirfairelinux.com>,
<UNGLinuxDriver@...rochip.com>, <netdev@...r.kernel.org>,
<sergio.paracuellos@...il.com>, <andrew@...n.ch>,
<dan.carpenter@...cle.com>, <pavel@....cz>, <f.fainelli@...il.com>
Subject: RE: [PATCH v1 net-next] net: dsa: microchip: add KSZ9477 I2C driver
> >> Well, I just did 'git grep regmap_i2c drivers' and 'git grep regmap_spi
> >> drivers/' and found eg.
> >> drivers/iio/pressure/zpa2326_i2c.c
> >> drivers/iio/pressure/zpa2326_spi.c
> >>
> >> There's plenty of drivers using regmap in drivers/ to demonstrate how to
> >> use it. And there's always include/linux/regmap.h .
> >>
> >> In this specific (DSA) case, register either regmap_spi or regmap_i2c in
> >> the ksz_switch_register(), pop the regmap pointer into ksz_device and
> >> then use it in ksz_read*()/ksz_write*(). You can then, in a subsequent
> >> patch, massage the regmap accesses directly into the code instead and
> >> drop the ksz_read*()/ksz_write*() functions altogether, since those
> >> would be just regmap function wrappers.
> >>
> >> And if you're still lost, I can start on the conversion myself.
> >
> > Actually, wait a few hours, I'll try to prepare a regmap patchset.
>
> Try this [1], it should be a start. The last two patches might need some
> adjustments, so please test and let me know how that works (or better
> yet, provide fixes). Adding i2c regmap should then be trivial :)
>
> [1] https://patchwork.ozlabs.org/cover/1016432/
I did look at the code in regmap_i2c.c and regmap_spi.c.
So the assumption is there is a regmap_read function that automatically
maps to regmap_i2c_read or regmap_spi_read depending on the device.
But the SPI access does not use the register directly. It has to convert it
into a special format recognized by the chip. The size used by SPI is 4, while
I2C access uses the standard way and the size is 2.
Powered by blists - more mailing lists