* [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver
@ 2016-07-18 9:40 Mugunthan V N
2016-07-18 9:40 ` [U-Boot] [PATCH 01/14] omap4: i2c: correct register offset for sync register Mugunthan V N
` (13 more replies)
0 siblings, 14 replies; 32+ messages in thread
From: Mugunthan V N @ 2016-07-18 9:40 UTC (permalink / raw)
To: u-boot
This patch series adopts driver model for usb ether gadget
driver. This series is tested with follwoing commands on am335x,
am437x, dra74x, dra72x and am57xx evms. Pushed a branch [1] for
refference.
=> i2c dev 0
=> i2c probe
=> i2c md <valid device> 0
With this patch series, I observe a warning as below. The i2c
compat driver is needed as pmic drivers are not converted to i2c
dt/dm frame work yet. Once the client drivers are adopted to
dm-i2c, we can get rid of this warning.
#
# configuration written to .config
#
===================== WARNING ======================
This board uses CONFIG_DM_I2C_COMPAT. Please remove
(possibly in a subsequent patch in your series)
before sending patches to the mailing list.
====================================================
[1] - git://git.ti.com/~mugunthanvnm/ti-u-boot/mugunth-ti-u-boot.git dm-i2c
Mugunthan V N (14):
omap4: i2c: correct register offset for sync register
omap5/dra7: i2c: correct register offset for sync register
drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL
is enable
ti_armv7_common: i2c: do not define DM_I2C for spl
drivers: i2c: omap24xx_i2c: prepare driver for DM conversion
drivers: i2c: omap24xx_i2c: adopt omap_i2c driver to driver model
defconfig: am335x_boneblack_vboot: enable i2c driver model
defconfig: am335x_evm: enable i2c driver model
defconfig: am43xx_evm: enable i2c driver model
defconfig: am43xx_hs_evm: enable i2c driver model
defconfig: dra7xx_evm: enable i2c driver model
defconfig: dra7xx_hs_evm: enable i2c driver model
defconfig: am57xx_evm: enable i2c driver model
defconfig: am57xx_hs_evm: enable i2c driver model
arch/arm/include/asm/arch-omap4/i2c.h | 6 +-
arch/arm/include/asm/arch-omap5/i2c.h | 6 +-
configs/am335x_boneblack_vboot_defconfig | 1 +
configs/am335x_evm_defconfig | 1 +
configs/am43xx_evm_defconfig | 1 +
configs/am43xx_hs_evm_defconfig | 1 +
configs/am57xx_evm_defconfig | 1 +
configs/am57xx_hs_evm_defconfig | 1 +
configs/dra7xx_evm_defconfig | 1 +
configs/dra7xx_hs_evm_defconfig | 1 +
drivers/i2c/i2c-uclass.c | 14 ++
drivers/i2c/omap24xx_i2c.c | 407 +++++++++++++++++++++----------
include/configs/ti_armv7_common.h | 16 ++
13 files changed, 318 insertions(+), 139 deletions(-)
--
2.9.1.200.gb1ec08f
^ permalink raw reply [flat|nested] 32+ messages in thread* [U-Boot] [PATCH 01/14] omap4: i2c: correct register offset for sync register 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N @ 2016-07-18 9:40 ` Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:40 ` [U-Boot] [PATCH 02/14] omap5/dra7: " Mugunthan V N ` (12 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:40 UTC (permalink / raw) To: u-boot The register offset of i2c_sysc offset is not correct as per omap4 TRM [1], correct the offsets as per the documentation. [1] - http://www.ti.com/lit/ug/swpu235ab/swpu235ab.pdf Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- arch/arm/include/asm/arch-omap4/i2c.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/include/asm/arch-omap4/i2c.h b/arch/arm/include/asm/arch-omap4/i2c.h index adc8eb2..463e979 100644 --- a/arch/arm/include/asm/arch-omap4/i2c.h +++ b/arch/arm/include/asm/arch-omap4/i2c.h @@ -14,9 +14,9 @@ struct i2c { unsigned short revnb_lo; /* 0x00 */ unsigned short res1; unsigned short revnb_hi; /* 0x04 */ - unsigned short res2[13]; - unsigned short sysc; /* 0x20 */ - unsigned short res3; + unsigned short res2[5]; + unsigned short sysc; /* 0x10 */ + unsigned short res3[9]; unsigned short irqstatus_raw; /* 0x24 */ unsigned short res4; unsigned short stat; /* 0x28 */ -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 01/14] omap4: i2c: correct register offset for sync register 2016-07-18 9:40 ` [U-Boot] [PATCH 01/14] omap4: i2c: correct register offset for sync register Mugunthan V N @ 2016-07-18 14:27 ` Tom Rini 0 siblings, 0 replies; 32+ messages in thread From: Tom Rini @ 2016-07-18 14:27 UTC (permalink / raw) To: u-boot On Mon, Jul 18, 2016 at 03:10:56PM +0530, Mugunthan V N wrote: > The register offset of i2c_sysc offset is not correct as per > omap4 TRM [1], correct the offsets as per the documentation. > > [1] - http://www.ti.com/lit/ug/swpu235ab/swpu235ab.pdf > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/79685e6c/attachment.sig> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 02/14] omap5/dra7: i2c: correct register offset for sync register 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N 2016-07-18 9:40 ` [U-Boot] [PATCH 01/14] omap4: i2c: correct register offset for sync register Mugunthan V N @ 2016-07-18 9:40 ` Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:40 ` [U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable Mugunthan V N ` (11 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:40 UTC (permalink / raw) To: u-boot The register offset of i2c_sysc offset is not correct as per omap5[1]/dra7[2] TRM, correct the offsets as per the documentation. [1] - http://www.ti.com/lit/pdf/swpu249 [2] - http://www.ti.com/lit/pdf/spruhz6 Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- arch/arm/include/asm/arch-omap5/i2c.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/include/asm/arch-omap5/i2c.h b/arch/arm/include/asm/arch-omap5/i2c.h index d875cfe..2b55edf 100644 --- a/arch/arm/include/asm/arch-omap5/i2c.h +++ b/arch/arm/include/asm/arch-omap5/i2c.h @@ -14,9 +14,9 @@ struct i2c { unsigned short revnb_lo; /* 0x00 */ unsigned short res1; unsigned short revnb_hi; /* 0x04 */ - unsigned short res2[13]; - unsigned short sysc; /* 0x20 */ - unsigned short res3; + unsigned short res2[5]; + unsigned short sysc; /* 0x10 */ + unsigned short res3[9]; unsigned short irqstatus_raw; /* 0x24 */ unsigned short res4; unsigned short stat; /* 0x28 */ -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 02/14] omap5/dra7: i2c: correct register offset for sync register 2016-07-18 9:40 ` [U-Boot] [PATCH 02/14] omap5/dra7: " Mugunthan V N @ 2016-07-18 14:27 ` Tom Rini 0 siblings, 0 replies; 32+ messages in thread From: Tom Rini @ 2016-07-18 14:27 UTC (permalink / raw) To: u-boot On Mon, Jul 18, 2016 at 03:10:57PM +0530, Mugunthan V N wrote: > The register offset of i2c_sysc offset is not correct as per > omap5[1]/dra7[2] TRM, correct the offsets as per the > documentation. > > [1] - http://www.ti.com/lit/pdf/swpu249 > [2] - http://www.ti.com/lit/pdf/spruhz6 > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/923f92ce/attachment.sig> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N 2016-07-18 9:40 ` [U-Boot] [PATCH 01/14] omap4: i2c: correct register offset for sync register Mugunthan V N 2016-07-18 9:40 ` [U-Boot] [PATCH 02/14] omap5/dra7: " Mugunthan V N @ 2016-07-18 9:40 ` Mugunthan V N 2016-07-22 3:21 ` Simon Glass 2016-07-18 9:40 ` [U-Boot] [PATCH 04/14] ti_armv7_common: i2c: do not define DM_I2C for spl Mugunthan V N ` (10 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:40 UTC (permalink / raw) To: u-boot parse dt parameter of i2c devices only when CONFIG_OF_CONTROL is enabled. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- drivers/i2c/i2c-uclass.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c index 50b99ea..20b30ff 100644 --- a/drivers/i2c/i2c-uclass.c +++ b/drivers/i2c/i2c-uclass.c @@ -467,6 +467,7 @@ int i2c_deblock(struct udevice *bus) return ops->deblock(bus); } +#if CONFIG_IS_ENABLED(OF_CONTROL) int i2c_chip_ofdata_to_platdata(const void *blob, int node, struct dm_i2c_chip *chip) { @@ -482,31 +483,44 @@ int i2c_chip_ofdata_to_platdata(const void *blob, int node, return 0; } +#endif static int i2c_post_probe(struct udevice *dev) { +#if CONFIG_IS_ENABLED(OF_CONTROL) struct dm_i2c_bus *i2c = dev_get_uclass_priv(dev); i2c->speed_hz = fdtdec_get_int(gd->fdt_blob, dev->of_offset, "clock-frequency", 100000); return dm_i2c_set_bus_speed(dev, i2c->speed_hz); +#else + return 0; +#endif } static int i2c_post_bind(struct udevice *dev) { +#if CONFIG_IS_ENABLED(OF_CONTROL) /* Scan the bus for devices */ return dm_scan_fdt_node(dev, gd->fdt_blob, dev->of_offset, false); +#else + return 0; +#endif } static int i2c_child_post_bind(struct udevice *dev) { +#if CONFIG_IS_ENABLED(OF_CONTROL) struct dm_i2c_chip *plat = dev_get_parent_platdata(dev); if (dev->of_offset == -1) return 0; return i2c_chip_ofdata_to_platdata(gd->fdt_blob, dev->of_offset, plat); +#else + return 0; +#endif } UCLASS_DRIVER(i2c) = { -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable 2016-07-18 9:40 ` [U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable Mugunthan V N @ 2016-07-22 3:21 ` Simon Glass 2016-07-22 7:35 ` Mugunthan V N 0 siblings, 1 reply; 32+ messages in thread From: Simon Glass @ 2016-07-22 3:21 UTC (permalink / raw) To: u-boot Hi Mugunthan, On 18 July 2016 at 03:40, Mugunthan V N <mugunthanvnm@ti.com> wrote: > parse dt parameter of i2c devices only when CONFIG_OF_CONTROL > is enabled. > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> > --- > drivers/i2c/i2c-uclass.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) Reviewed-by: Simon Glass <sjg@chromium.org> Please see below. > > diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c > index 50b99ea..20b30ff 100644 > --- a/drivers/i2c/i2c-uclass.c > +++ b/drivers/i2c/i2c-uclass.c > @@ -467,6 +467,7 @@ int i2c_deblock(struct udevice *bus) > return ops->deblock(bus); > } > > +#if CONFIG_IS_ENABLED(OF_CONTROL) > int i2c_chip_ofdata_to_platdata(const void *blob, int node, > struct dm_i2c_chip *chip) > { > @@ -482,31 +483,44 @@ int i2c_chip_ofdata_to_platdata(const void *blob, int node, > > return 0; > } > +#endif > > static int i2c_post_probe(struct udevice *dev) > { > +#if CONFIG_IS_ENABLED(OF_CONTROL) > struct dm_i2c_bus *i2c = dev_get_uclass_priv(dev); > > i2c->speed_hz = fdtdec_get_int(gd->fdt_blob, dev->of_offset, > "clock-frequency", 100000); The above should be moved into i2c_chip_ofdata_to_platdata(), which will only be called if there is a device tree. > > return dm_i2c_set_bus_speed(dev, i2c->speed_hz); I'm not sure about this one. In principle there should be a value i2c->speed_hz even if OF_CONTROL is not used. But I suppose it's OK to retain this #ifdef. > +#else > + return 0; > +#endif > } > > static int i2c_post_bind(struct udevice *dev) > { > +#if CONFIG_IS_ENABLED(OF_CONTROL) > /* Scan the bus for devices */ > return dm_scan_fdt_node(dev, gd->fdt_blob, dev->of_offset, false); > +#else > + return 0; > +#endif > } > > static int i2c_child_post_bind(struct udevice *dev) > { > +#if CONFIG_IS_ENABLED(OF_CONTROL) > struct dm_i2c_chip *plat = dev_get_parent_platdata(dev); > > if (dev->of_offset == -1) > return 0; > > return i2c_chip_ofdata_to_platdata(gd->fdt_blob, dev->of_offset, plat); > +#else > + return 0; > +#endif > } > > UCLASS_DRIVER(i2c) = { > -- > 2.9.1.200.gb1ec08f > Regards, Simon ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable 2016-07-22 3:21 ` Simon Glass @ 2016-07-22 7:35 ` Mugunthan V N 2016-07-22 14:16 ` Simon Glass 0 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-22 7:35 UTC (permalink / raw) To: u-boot On Friday 22 July 2016 08:51 AM, Simon Glass wrote: > Hi Mugunthan, > > On 18 July 2016 at 03:40, Mugunthan V N <mugunthanvnm@ti.com> wrote: >> parse dt parameter of i2c devices only when CONFIG_OF_CONTROL >> is enabled. >> >> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> >> --- >> drivers/i2c/i2c-uclass.c | 14 ++++++++++++++ >> 1 file changed, 14 insertions(+) > > Reviewed-by: Simon Glass <sjg@chromium.org> > > Please see below. > >> >> diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c >> index 50b99ea..20b30ff 100644 >> --- a/drivers/i2c/i2c-uclass.c >> +++ b/drivers/i2c/i2c-uclass.c >> @@ -467,6 +467,7 @@ int i2c_deblock(struct udevice *bus) >> return ops->deblock(bus); >> } >> >> +#if CONFIG_IS_ENABLED(OF_CONTROL) >> int i2c_chip_ofdata_to_platdata(const void *blob, int node, >> struct dm_i2c_chip *chip) >> { >> @@ -482,31 +483,44 @@ int i2c_chip_ofdata_to_platdata(const void *blob, int node, >> >> return 0; >> } >> +#endif >> >> static int i2c_post_probe(struct udevice *dev) >> { >> +#if CONFIG_IS_ENABLED(OF_CONTROL) >> struct dm_i2c_bus *i2c = dev_get_uclass_priv(dev); >> >> i2c->speed_hz = fdtdec_get_int(gd->fdt_blob, dev->of_offset, >> "clock-frequency", 100000); > > The above should be moved into i2c_chip_ofdata_to_platdata(), which > will only be called if there is a device tree. This cannot be moved to i2c_chip_ofdata_to_platdata() as it is called from post_bind where uclass_priv will not be allocated. uclass_priv will be allocated in device probe. Regards Mugunthan V N > >> >> return dm_i2c_set_bus_speed(dev, i2c->speed_hz); > > I'm not sure about this one. In principle there should be a value > i2c->speed_hz even if OF_CONTROL is not used. But I suppose it's OK to > retain this #ifdef. > >> +#else >> + return 0; >> +#endif >> } >> >> static int i2c_post_bind(struct udevice *dev) >> { >> +#if CONFIG_IS_ENABLED(OF_CONTROL) >> /* Scan the bus for devices */ >> return dm_scan_fdt_node(dev, gd->fdt_blob, dev->of_offset, false); >> +#else >> + return 0; >> +#endif >> } >> >> static int i2c_child_post_bind(struct udevice *dev) >> { >> +#if CONFIG_IS_ENABLED(OF_CONTROL) >> struct dm_i2c_chip *plat = dev_get_parent_platdata(dev); >> >> if (dev->of_offset == -1) >> return 0; >> >> return i2c_chip_ofdata_to_platdata(gd->fdt_blob, dev->of_offset, plat); >> +#else >> + return 0; >> +#endif >> } >> >> UCLASS_DRIVER(i2c) = { >> -- >> 2.9.1.200.gb1ec08f >> > > Regards, > Simon > ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable 2016-07-22 7:35 ` Mugunthan V N @ 2016-07-22 14:16 ` Simon Glass 2016-07-25 14:35 ` Mugunthan V N 0 siblings, 1 reply; 32+ messages in thread From: Simon Glass @ 2016-07-22 14:16 UTC (permalink / raw) To: u-boot Hi Muganthan, On 22 July 2016 at 01:35, Mugunthan V N <mugunthanvnm@ti.com> wrote: > On Friday 22 July 2016 08:51 AM, Simon Glass wrote: >> Hi Mugunthan, >> >> On 18 July 2016 at 03:40, Mugunthan V N <mugunthanvnm@ti.com> wrote: >>> parse dt parameter of i2c devices only when CONFIG_OF_CONTROL >>> is enabled. >>> >>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> >>> --- >>> drivers/i2c/i2c-uclass.c | 14 ++++++++++++++ >>> 1 file changed, 14 insertions(+) >> >> Reviewed-by: Simon Glass <sjg@chromium.org> >> >> Please see below. >> >>> >>> diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c >>> index 50b99ea..20b30ff 100644 >>> --- a/drivers/i2c/i2c-uclass.c >>> +++ b/drivers/i2c/i2c-uclass.c >>> @@ -467,6 +467,7 @@ int i2c_deblock(struct udevice *bus) >>> return ops->deblock(bus); >>> } >>> >>> +#if CONFIG_IS_ENABLED(OF_CONTROL) >>> int i2c_chip_ofdata_to_platdata(const void *blob, int node, >>> struct dm_i2c_chip *chip) >>> { >>> @@ -482,31 +483,44 @@ int i2c_chip_ofdata_to_platdata(const void *blob, int node, >>> >>> return 0; >>> } >>> +#endif >>> >>> static int i2c_post_probe(struct udevice *dev) >>> { >>> +#if CONFIG_IS_ENABLED(OF_CONTROL) >>> struct dm_i2c_bus *i2c = dev_get_uclass_priv(dev); >>> >>> i2c->speed_hz = fdtdec_get_int(gd->fdt_blob, dev->of_offset, >>> "clock-frequency", 100000); >> >> The above should be moved into i2c_chip_ofdata_to_platdata(), which >> will only be called if there is a device tree. > > This cannot be moved to i2c_chip_ofdata_to_platdata() as it is called > from post_bind where uclass_priv will not be allocated. uclass_priv will > be allocated in device probe. OK I see. Then why do we need to support i2c without OF_CONTROL? Would it not be better to enable OF_CONTROL? Regards, Simon ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable 2016-07-22 14:16 ` Simon Glass @ 2016-07-25 14:35 ` Mugunthan V N 2016-08-01 1:01 ` Simon Glass 0 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-25 14:35 UTC (permalink / raw) To: u-boot On Friday 22 July 2016 07:46 PM, Simon Glass wrote: > Hi Muganthan, > > On 22 July 2016 at 01:35, Mugunthan V N <mugunthanvnm@ti.com> wrote: >> On Friday 22 July 2016 08:51 AM, Simon Glass wrote: >>> Hi Mugunthan, >>> >>> On 18 July 2016 at 03:40, Mugunthan V N <mugunthanvnm@ti.com> wrote: >>>> parse dt parameter of i2c devices only when CONFIG_OF_CONTROL >>>> is enabled. >>>> >>>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> >>>> --- >>>> drivers/i2c/i2c-uclass.c | 14 ++++++++++++++ >>>> 1 file changed, 14 insertions(+) >>> >>> Reviewed-by: Simon Glass <sjg@chromium.org> >>> >>> Please see below. >>> >>>> >>>> diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c >>>> index 50b99ea..20b30ff 100644 >>>> --- a/drivers/i2c/i2c-uclass.c >>>> +++ b/drivers/i2c/i2c-uclass.c >>>> @@ -467,6 +467,7 @@ int i2c_deblock(struct udevice *bus) >>>> return ops->deblock(bus); >>>> } >>>> >>>> +#if CONFIG_IS_ENABLED(OF_CONTROL) >>>> int i2c_chip_ofdata_to_platdata(const void *blob, int node, >>>> struct dm_i2c_chip *chip) >>>> { >>>> @@ -482,31 +483,44 @@ int i2c_chip_ofdata_to_platdata(const void *blob, int node, >>>> >>>> return 0; >>>> } >>>> +#endif >>>> >>>> static int i2c_post_probe(struct udevice *dev) >>>> { >>>> +#if CONFIG_IS_ENABLED(OF_CONTROL) >>>> struct dm_i2c_bus *i2c = dev_get_uclass_priv(dev); >>>> >>>> i2c->speed_hz = fdtdec_get_int(gd->fdt_blob, dev->of_offset, >>>> "clock-frequency", 100000); >>> >>> The above should be moved into i2c_chip_ofdata_to_platdata(), which >>> will only be called if there is a device tree. >> >> This cannot be moved to i2c_chip_ofdata_to_platdata() as it is called >> from post_bind where uclass_priv will not be allocated. uclass_priv will >> be allocated in device probe. > > OK I see. Then why do we need to support i2c without OF_CONTROL? Would > it not be better to enable OF_CONTROL? > Due to the memory size issue in OMAP SoCs, enabling OF_CONTROL for spl is not possible. So having an option of enabling i2c uclass without OF_CONTROL will be a good option. Regards Mugunthan V N ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable 2016-07-25 14:35 ` Mugunthan V N @ 2016-08-01 1:01 ` Simon Glass 0 siblings, 0 replies; 32+ messages in thread From: Simon Glass @ 2016-08-01 1:01 UTC (permalink / raw) To: u-boot Hi Mugunthan, On 25 July 2016 at 08:35, Mugunthan V N <mugunthanvnm@ti.com> wrote: > On Friday 22 July 2016 07:46 PM, Simon Glass wrote: >> Hi Muganthan, >> >> On 22 July 2016 at 01:35, Mugunthan V N <mugunthanvnm@ti.com> wrote: >>> On Friday 22 July 2016 08:51 AM, Simon Glass wrote: >>>> Hi Mugunthan, >>>> >>>> On 18 July 2016 at 03:40, Mugunthan V N <mugunthanvnm@ti.com> wrote: >>>>> parse dt parameter of i2c devices only when CONFIG_OF_CONTROL >>>>> is enabled. >>>>> >>>>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> >>>>> --- >>>>> drivers/i2c/i2c-uclass.c | 14 ++++++++++++++ >>>>> 1 file changed, 14 insertions(+) >>>> >>>> Reviewed-by: Simon Glass <sjg@chromium.org> >>>> >>>> Please see below. >>>> >>>>> >>>>> diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c >>>>> index 50b99ea..20b30ff 100644 >>>>> --- a/drivers/i2c/i2c-uclass.c >>>>> +++ b/drivers/i2c/i2c-uclass.c >>>>> @@ -467,6 +467,7 @@ int i2c_deblock(struct udevice *bus) >>>>> return ops->deblock(bus); >>>>> } >>>>> >>>>> +#if CONFIG_IS_ENABLED(OF_CONTROL) >>>>> int i2c_chip_ofdata_to_platdata(const void *blob, int node, >>>>> struct dm_i2c_chip *chip) >>>>> { >>>>> @@ -482,31 +483,44 @@ int i2c_chip_ofdata_to_platdata(const void *blob, int node, >>>>> >>>>> return 0; >>>>> } >>>>> +#endif >>>>> >>>>> static int i2c_post_probe(struct udevice *dev) >>>>> { >>>>> +#if CONFIG_IS_ENABLED(OF_CONTROL) >>>>> struct dm_i2c_bus *i2c = dev_get_uclass_priv(dev); >>>>> >>>>> i2c->speed_hz = fdtdec_get_int(gd->fdt_blob, dev->of_offset, >>>>> "clock-frequency", 100000); >>>> >>>> The above should be moved into i2c_chip_ofdata_to_platdata(), which >>>> will only be called if there is a device tree. >>> >>> This cannot be moved to i2c_chip_ofdata_to_platdata() as it is called >>> from post_bind where uclass_priv will not be allocated. uclass_priv will >>> be allocated in device probe. >> >> OK I see. Then why do we need to support i2c without OF_CONTROL? Would >> it not be better to enable OF_CONTROL? >> > > Due to the memory size issue in OMAP SoCs, enabling OF_CONTROL for spl > is not possible. So having an option of enabling i2c uclass without > OF_CONTROL will be a good option. How does I2C work without OF_CONTROL? I thought it required it... Regards, Simon ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 04/14] ti_armv7_common: i2c: do not define DM_I2C for spl 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (2 preceding siblings ...) 2016-07-18 9:40 ` [U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable Mugunthan V N @ 2016-07-18 9:40 ` Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 05/14] drivers: i2c: omap24xx_i2c: prepare driver for DM conversion Mugunthan V N ` (9 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:40 UTC (permalink / raw) To: u-boot Since omap's spl doesn't support DM currently, do not define DM_I2C for spl build. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- include/configs/ti_armv7_common.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h index ba7cf15..b996f35 100644 --- a/include/configs/ti_armv7_common.h +++ b/include/configs/ti_armv7_common.h @@ -108,6 +108,14 @@ /* Timer information. */ #define CONFIG_SYS_PTV 2 /* Divisor: 2^(PTV+1) => 8 */ +/* + * Disable DM_* for SPL build and can be re-enabled after adding + * DM support in SPL + */ +#ifdef CONFIG_SPL_BUILD +#undef CONFIG_DM_I2C +#endif + /* I2C IP block */ #define CONFIG_I2C #define CONFIG_SYS_I2C -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 04/14] ti_armv7_common: i2c: do not define DM_I2C for spl 2016-07-18 9:40 ` [U-Boot] [PATCH 04/14] ti_armv7_common: i2c: do not define DM_I2C for spl Mugunthan V N @ 2016-07-18 14:27 ` Tom Rini 0 siblings, 0 replies; 32+ messages in thread From: Tom Rini @ 2016-07-18 14:27 UTC (permalink / raw) To: u-boot On Mon, Jul 18, 2016 at 03:10:59PM +0530, Mugunthan V N wrote: > Since omap's spl doesn't support DM currently, do not define > DM_I2C for spl build. > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/4cebfecc/attachment.sig> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 05/14] drivers: i2c: omap24xx_i2c: prepare driver for DM conversion 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (3 preceding siblings ...) 2016-07-18 9:40 ` [U-Boot] [PATCH 04/14] ti_armv7_common: i2c: do not define DM_I2C for spl Mugunthan V N @ 2016-07-18 9:41 ` Mugunthan V N 2016-07-20 14:19 ` Simon Glass 2016-07-18 9:41 ` [U-Boot] [PATCH 06/14] drivers: i2c: omap24xx_i2c: adopt omap_i2c driver to driver model Mugunthan V N ` (8 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:41 UTC (permalink / raw) To: u-boot Prepare the driver for DM conversion. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- drivers/i2c/omap24xx_i2c.c | 308 +++++++++++++++++++++++++-------------------- 1 file changed, 175 insertions(+), 133 deletions(-) diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c index a7f3fb4..8dea5fa 100644 --- a/drivers/i2c/omap24xx_i2c.c +++ b/drivers/i2c/omap24xx_i2c.c @@ -53,10 +53,6 @@ DECLARE_GLOBAL_DATA_PTR; /* Absolutely safe for status update at 100 kHz I2C: */ #define I2C_WAIT 200 -static int wait_for_bb(struct i2c_adapter *adap); -static struct i2c *omap24_get_base(struct i2c_adapter *adap); -static u16 wait_for_event(struct i2c_adapter *adap); -static void flush_fifo(struct i2c_adapter *adap); static int omap24_i2c_findpsc(u32 *pscl, u32 *psch, uint speed) { unsigned int sampleclk, prescaler; @@ -90,9 +86,96 @@ static int omap24_i2c_findpsc(u32 *pscl, u32 *psch, uint speed) } return -1; } -static uint omap24_i2c_setspeed(struct i2c_adapter *adap, uint speed) + +/* + * Wait for the bus to be free by checking the Bus Busy (BB) + * bit to become clear + */ +static int wait_for_bb(struct i2c *i2c_base, int waitdelay) +{ + int timeout = I2C_TIMEOUT; + u16 stat; + + writew(0xFFFF, &i2c_base->stat); /* clear current interrupts...*/ +#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) + while ((stat = readw(&i2c_base->stat) & I2C_STAT_BB) && timeout--) { +#else + /* Read RAW status */ + while ((stat = readw(&i2c_base->irqstatus_raw) & + I2C_STAT_BB) && timeout--) { +#endif + writew(stat, &i2c_base->stat); + udelay(waitdelay); + } + + if (timeout <= 0) { + printf("Timed out in wait_for_bb: status=%04x\n", + stat); + return 1; + } + writew(0xFFFF, &i2c_base->stat); /* clear delayed stuff*/ + return 0; +} + +/* + * Wait for the I2C controller to complete current action + * and update status + */ +static u16 wait_for_event(struct i2c *i2c_base, int waitdelay) +{ + u16 status; + int timeout = I2C_TIMEOUT; + + do { + udelay(waitdelay); +#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) + status = readw(&i2c_base->stat); +#else + /* Read RAW status */ + status = readw(&i2c_base->irqstatus_raw); +#endif + } while (!(status & + (I2C_STAT_ROVR | I2C_STAT_XUDF | I2C_STAT_XRDY | + I2C_STAT_RRDY | I2C_STAT_ARDY | I2C_STAT_NACK | + I2C_STAT_AL)) && timeout--); + + if (timeout <= 0) { + printf("Timed out in wait_for_event: status=%04x\n", + status); + /* + * If status is still 0 here, probably the bus pads have + * not been configured for I2C, and/or pull-ups are missing. + */ + printf("Check if pads/pull-ups of bus are properly configured\n"); + writew(0xFFFF, &i2c_base->stat); + status = 0; + } + + return status; +} + +static void flush_fifo(struct i2c *i2c_base) +{ + u16 stat; + + /* + * note: if you try and read data when its not there or ready + * you get a bus error + */ + while (1) { + stat = readw(&i2c_base->stat); + if (stat == I2C_STAT_RRDY) { + readb(&i2c_base->data); + writew(I2C_STAT_RRDY, &i2c_base->stat); + udelay(1000); + } else + break; + } +} + +static int __omap24_i2c_setspeed(struct i2c *i2c_base, uint speed, + int *waitdelay) { - struct i2c *i2c_base = omap24_get_base(adap); int psc, fsscll = 0, fssclh = 0; int hsscll = 0, hssclh = 0; u32 scll = 0, sclh = 0; @@ -142,8 +225,7 @@ static uint omap24_i2c_setspeed(struct i2c_adapter *adap, uint speed) } } - adap->speed = speed; - adap->waitdelay = (10000000 / speed) * 2; /* wait for 20 clkperiods */ + *waitdelay = (10000000 / speed) * 2; /* wait for 20 clkperiods */ writew(0, &i2c_base->con); writew(psc, &i2c_base->psc); writew(scll, &i2c_base->scll); @@ -154,9 +236,8 @@ static uint omap24_i2c_setspeed(struct i2c_adapter *adap, uint speed) return 0; } -static void omap24_i2c_deblock(struct i2c_adapter *adap) +static void omap24_i2c_deblock(struct i2c *i2c_base) { - struct i2c *i2c_base = omap24_get_base(adap); int i; u16 systest; u16 orgsystest; @@ -200,9 +281,9 @@ static void omap24_i2c_deblock(struct i2c_adapter *adap) writew(orgsystest, &i2c_base->systest); } -static void omap24_i2c_init(struct i2c_adapter *adap, int speed, int slaveadd) +static void __omap24_i2c_init(struct i2c *i2c_base, int speed, int slaveadd, + int *waitdelay) { - struct i2c *i2c_base = omap24_get_base(adap); int timeout = I2C_TIMEOUT; int deblock = 1; @@ -224,7 +305,7 @@ retry: udelay(1000); } - if (0 != omap24_i2c_setspeed(adap, speed)) { + if (0 != __omap24_i2c_setspeed(i2c_base, speed, waitdelay)) { printf("ERROR: failed to setup I2C bus-speed!\n"); return; } @@ -241,45 +322,24 @@ retry: I2C_IE_NACK_IE | I2C_IE_AL_IE, &i2c_base->ie); #endif udelay(1000); - flush_fifo(adap); + flush_fifo(i2c_base); writew(0xFFFF, &i2c_base->stat); /* Handle possible failed I2C state */ - if (wait_for_bb(adap)) + if (wait_for_bb(i2c_base, *waitdelay)) if (deblock == 1) { - omap24_i2c_deblock(adap); + omap24_i2c_deblock(i2c_base); deblock = 0; goto retry; } } -static void flush_fifo(struct i2c_adapter *adap) -{ - struct i2c *i2c_base = omap24_get_base(adap); - u16 stat; - - /* - * note: if you try and read data when its not there or ready - * you get a bus error - */ - while (1) { - stat = readw(&i2c_base->stat); - if (stat == I2C_STAT_RRDY) { - readb(&i2c_base->data); - writew(I2C_STAT_RRDY, &i2c_base->stat); - udelay(1000); - } else - break; - } -} - /* * i2c_probe: Use write access. Allows to identify addresses that are * write-only (like the config register of dual-port EEPROMs) */ -static int omap24_i2c_probe(struct i2c_adapter *adap, uchar chip) +static int __omap24_i2c_probe(struct i2c *i2c_base, int waitdelay, uchar chip) { - struct i2c *i2c_base = omap24_get_base(adap); u16 status; int res = 1; /* default = fail */ @@ -287,7 +347,7 @@ static int omap24_i2c_probe(struct i2c_adapter *adap, uchar chip) return res; /* Wait until bus is free */ - if (wait_for_bb(adap)) + if (wait_for_bb(i2c_base, waitdelay)) return res; /* No data transfer, slave addr only */ @@ -296,7 +356,7 @@ static int omap24_i2c_probe(struct i2c_adapter *adap, uchar chip) writew(I2C_CON_EN | I2C_CON_MST | I2C_CON_STT | I2C_CON_TRX | I2C_CON_STP, &i2c_base->con); - status = wait_for_event(adap); + status = wait_for_event(i2c_base, waitdelay); if ((status & ~I2C_STAT_XRDY) == 0 || (status & I2C_STAT_AL)) { /* @@ -306,8 +366,8 @@ static int omap24_i2c_probe(struct i2c_adapter *adap, uchar chip) * following 'if' section: */ if (status == I2C_STAT_XRDY) - printf("i2c_probe: pads on bus %d probably not configured (status=0x%x)\n", - adap->hwadapnr, status); + printf("i2c_probe: pads on bus probably not configured (status=0x%x)\n", + status); goto pr_exit; } @@ -315,7 +375,7 @@ static int omap24_i2c_probe(struct i2c_adapter *adap, uchar chip) /* Check for ACK (!NAK) */ if (!(status & I2C_STAT_NACK)) { res = 0; /* Device found */ - udelay(adap->waitdelay);/* Required by AM335X in SPL */ + udelay(waitdelay);/* Required by AM335X in SPL */ /* Abort transfer (force idle state) */ writew(I2C_CON_MST | I2C_CON_TRX, &i2c_base->con); /* Reset */ udelay(1000); @@ -323,7 +383,7 @@ static int omap24_i2c_probe(struct i2c_adapter *adap, uchar chip) I2C_CON_STP, &i2c_base->con); /* STP */ } pr_exit: - flush_fifo(adap); + flush_fifo(i2c_base); writew(0xFFFF, &i2c_base->stat); return res; } @@ -341,10 +401,9 @@ pr_exit: * or that do not need a register address at all (such as some clock * distributors). */ -static int omap24_i2c_read(struct i2c_adapter *adap, uchar chip, uint addr, - int alen, uchar *buffer, int len) +static int __omap24_i2c_read(struct i2c *i2c_base, int waitdelay, uchar chip, + uint addr, int alen, uchar *buffer, int len) { - struct i2c *i2c_base = omap24_get_base(adap); int i2c_error = 0; u16 status; @@ -389,7 +448,7 @@ static int omap24_i2c_read(struct i2c_adapter *adap, uchar chip, uint addr, #endif /* Wait until bus not busy */ - if (wait_for_bb(adap)) + if (wait_for_bb(i2c_base, waitdelay)) return 1; /* Zero, one or two bytes reg address (offset) */ @@ -410,12 +469,12 @@ static int omap24_i2c_read(struct i2c_adapter *adap, uchar chip, uint addr, #endif /* Send register offset */ while (1) { - status = wait_for_event(adap); + status = wait_for_event(i2c_base, waitdelay); /* Try to identify bus that is not padconf'd for I2C */ if (status == I2C_STAT_XRDY) { i2c_error = 2; - printf("i2c_read (addr phase): pads on bus %d probably not configured (status=0x%x)\n", - adap->hwadapnr, status); + printf("i2c_read (addr phase): pads on bus probably not configured (status=0x%x)\n", + status); goto rd_exit; } if (status == 0 || (status & I2C_STAT_NACK)) { @@ -450,7 +509,7 @@ static int omap24_i2c_read(struct i2c_adapter *adap, uchar chip, uint addr, /* Receive data */ while (1) { - status = wait_for_event(adap); + status = wait_for_event(i2c_base, waitdelay); /* * Try to identify bus that is not padconf'd for I2C. This * state could be left over from previous transactions if @@ -458,8 +517,8 @@ static int omap24_i2c_read(struct i2c_adapter *adap, uchar chip, uint addr, */ if (status == I2C_STAT_XRDY) { i2c_error = 2; - printf("i2c_read (data phase): pads on bus %d probably not configured (status=0x%x)\n", - adap->hwadapnr, status); + printf("i2c_read (data phase): pads on bus probably not configured (status=0x%x)\n", + status); goto rd_exit; } if (status == 0 || (status & I2C_STAT_NACK)) { @@ -477,16 +536,15 @@ static int omap24_i2c_read(struct i2c_adapter *adap, uchar chip, uint addr, } rd_exit: - flush_fifo(adap); + flush_fifo(i2c_base); writew(0xFFFF, &i2c_base->stat); return i2c_error; } /* i2c_write: Address (reg offset) may be 0, 1 or 2 bytes long. */ -static int omap24_i2c_write(struct i2c_adapter *adap, uchar chip, uint addr, - int alen, uchar *buffer, int len) +static int __omap24_i2c_write(struct i2c *i2c_base, int waitdelay, uchar chip, + uint addr, int alen, uchar *buffer, int len) { - struct i2c *i2c_base = omap24_get_base(adap); int i; u16 status; int i2c_error = 0; @@ -536,7 +594,7 @@ static int omap24_i2c_write(struct i2c_adapter *adap, uchar chip, uint addr, #endif /* Wait until bus not busy */ - if (wait_for_bb(adap)) + if (wait_for_bb(i2c_base, waitdelay)) return 1; /* Start address phase - will write regoffset + len bytes data */ @@ -549,12 +607,12 @@ static int omap24_i2c_write(struct i2c_adapter *adap, uchar chip, uint addr, while (alen) { /* Must write reg offset (one or two bytes) */ - status = wait_for_event(adap); + status = wait_for_event(i2c_base, waitdelay); /* Try to identify bus that is not padconf'd for I2C */ if (status == I2C_STAT_XRDY) { i2c_error = 2; - printf("i2c_write: pads on bus %d probably not configured (status=0x%x)\n", - adap->hwadapnr, status); + printf("i2c_write: pads on bus probably not configured (status=0x%x)\n", + status); goto wr_exit; } if (status == 0 || (status & I2C_STAT_NACK)) { @@ -576,7 +634,7 @@ static int omap24_i2c_write(struct i2c_adapter *adap, uchar chip, uint addr, } /* Address phase is over, now write data */ for (i = 0; i < len; i++) { - status = wait_for_event(adap); + status = wait_for_event(i2c_base, waitdelay); if (status == 0 || (status & I2C_STAT_NACK)) { i2c_error = 1; printf("i2c_write: error waiting for data ACK (status=0x%x)\n", @@ -598,87 +656,21 @@ static int omap24_i2c_write(struct i2c_adapter *adap, uchar chip, uint addr, * transferred on the bus. */ do { - status = wait_for_event(adap); + status = wait_for_event(i2c_base, waitdelay); } while (!(status & I2C_STAT_ARDY) && timeout--); if (timeout <= 0) printf("i2c_write: timed out writig last byte!\n"); wr_exit: - flush_fifo(adap); + flush_fifo(i2c_base); writew(0xFFFF, &i2c_base->stat); return i2c_error; } /* - * Wait for the bus to be free by checking the Bus Busy (BB) - * bit to become clear - */ -static int wait_for_bb(struct i2c_adapter *adap) -{ - struct i2c *i2c_base = omap24_get_base(adap); - int timeout = I2C_TIMEOUT; - u16 stat; - - writew(0xFFFF, &i2c_base->stat); /* clear current interrupts...*/ -#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) - while ((stat = readw(&i2c_base->stat) & I2C_STAT_BB) && timeout--) { -#else - /* Read RAW status */ - while ((stat = readw(&i2c_base->irqstatus_raw) & - I2C_STAT_BB) && timeout--) { -#endif - writew(stat, &i2c_base->stat); - udelay(adap->waitdelay); - } - - if (timeout <= 0) { - printf("Timed out in wait_for_bb: status=%04x\n", - stat); - return 1; - } - writew(0xFFFF, &i2c_base->stat); /* clear delayed stuff*/ - return 0; -} - -/* - * Wait for the I2C controller to complete current action - * and update status + * The legacy I2C functions. These need to get removed once + * all users of this driver are converted to DM. */ -static u16 wait_for_event(struct i2c_adapter *adap) -{ - struct i2c *i2c_base = omap24_get_base(adap); - u16 status; - int timeout = I2C_TIMEOUT; - - do { - udelay(adap->waitdelay); -#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) - status = readw(&i2c_base->stat); -#else - /* Read RAW status */ - status = readw(&i2c_base->irqstatus_raw); -#endif - } while (!(status & - (I2C_STAT_ROVR | I2C_STAT_XUDF | I2C_STAT_XRDY | - I2C_STAT_RRDY | I2C_STAT_ARDY | I2C_STAT_NACK | - I2C_STAT_AL)) && timeout--); - - if (timeout <= 0) { - printf("Timed out in wait_for_event: status=%04x\n", - status); - /* - * If status is still 0 here, probably the bus pads have - * not been configured for I2C, and/or pull-ups are missing. - */ - printf("Check if pads/pull-ups of bus %d are properly configured\n", - adap->hwadapnr); - writew(0xFFFF, &i2c_base->stat); - status = 0; - } - - return status; -} - static struct i2c *omap24_get_base(struct i2c_adapter *adap) { switch (adap->hwadapnr) { @@ -710,6 +702,56 @@ static struct i2c *omap24_get_base(struct i2c_adapter *adap) return NULL; } + +static int omap24_i2c_read(struct i2c_adapter *adap, uchar chip, uint addr, + int alen, uchar *buffer, int len) +{ + struct i2c *i2c_base = omap24_get_base(adap); + + return __omap24_i2c_read(i2c_base, adap->waitdelay, chip, addr, + alen, buffer, len); +} + + +static int omap24_i2c_write(struct i2c_adapter *adap, uchar chip, uint addr, + int alen, uchar *buffer, int len) +{ + struct i2c *i2c_base = omap24_get_base(adap); + + return __omap24_i2c_write(i2c_base, adap->waitdelay, chip, addr, + alen, buffer, len); +} + +static uint omap24_i2c_setspeed(struct i2c_adapter *adap, uint speed) +{ + struct i2c *i2c_base = omap24_get_base(adap); + int ret; + + ret = __omap24_i2c_setspeed(i2c_base, speed, &adap->waitdelay); + if (ret) { + error("%s: set i2c speed failed\n", __func__); + return ret; + } + + adap->speed = speed; + + return 0; +} + +static void omap24_i2c_init(struct i2c_adapter *adap, int speed, int slaveadd) +{ + struct i2c *i2c_base = omap24_get_base(adap); + + return __omap24_i2c_init(i2c_base, speed, slaveadd, &adap->waitdelay); +} + +static int omap24_i2c_probe(struct i2c_adapter *adap, uchar chip) +{ + struct i2c *i2c_base = omap24_get_base(adap); + + return __omap24_i2c_probe(i2c_base, adap->waitdelay, chip); +} + #if !defined(CONFIG_SYS_OMAP24_I2C_SPEED1) #define CONFIG_SYS_OMAP24_I2C_SPEED1 CONFIG_SYS_OMAP24_I2C_SPEED #endif -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 05/14] drivers: i2c: omap24xx_i2c: prepare driver for DM conversion 2016-07-18 9:41 ` [U-Boot] [PATCH 05/14] drivers: i2c: omap24xx_i2c: prepare driver for DM conversion Mugunthan V N @ 2016-07-20 14:19 ` Simon Glass 0 siblings, 0 replies; 32+ messages in thread From: Simon Glass @ 2016-07-20 14:19 UTC (permalink / raw) To: u-boot On 18 July 2016 at 03:41, Mugunthan V N <mugunthanvnm@ti.com> wrote: > Prepare the driver for DM conversion. > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> > --- > drivers/i2c/omap24xx_i2c.c | 308 +++++++++++++++++++++++++-------------------- > 1 file changed, 175 insertions(+), 133 deletions(-) Reviewed-by: Simon Glass <sjg@chromium.org> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 06/14] drivers: i2c: omap24xx_i2c: adopt omap_i2c driver to driver model 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (4 preceding siblings ...) 2016-07-18 9:41 ` [U-Boot] [PATCH 05/14] drivers: i2c: omap24xx_i2c: prepare driver for DM conversion Mugunthan V N @ 2016-07-18 9:41 ` Mugunthan V N 2016-07-20 14:19 ` Simon Glass 2016-07-18 9:41 ` [U-Boot] [PATCH 07/14] defconfig: am335x_boneblack_vboot: enable i2c " Mugunthan V N ` (7 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:41 UTC (permalink / raw) To: u-boot Convert omap i2c driver to adopt i2c driver model Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- drivers/i2c/omap24xx_i2c.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c index 8dea5fa..0006343 100644 --- a/drivers/i2c/omap24xx_i2c.c +++ b/drivers/i2c/omap24xx_i2c.c @@ -39,6 +39,7 @@ */ #include <common.h> +#include <dm.h> #include <i2c.h> #include <asm/arch/i2c.h> @@ -53,6 +54,14 @@ DECLARE_GLOBAL_DATA_PTR; /* Absolutely safe for status update at 100 kHz I2C: */ #define I2C_WAIT 200 +struct omap_i2c { + struct udevice *clk; + struct i2c *regs; + unsigned int speed; + int waitdelay; + int clk_id; +}; + static int omap24_i2c_findpsc(u32 *pscl, u32 *psch, uint speed) { unsigned int sampleclk, prescaler; @@ -667,6 +676,7 @@ wr_exit: return i2c_error; } +#ifndef CONFIG_DM_I2C /* * The legacy I2C functions. These need to get removed once * all users of this driver are converted to DM. @@ -811,3 +821,92 @@ U_BOOT_I2C_ADAP_COMPLETE(omap24_4, omap24_i2c_init, omap24_i2c_probe, #endif #endif #endif + +#else /* CONFIG_DM_I2C */ + +static int omap_i2c_xfer(struct udevice *bus, struct i2c_msg *msg, int nmsgs) +{ + struct omap_i2c *priv = dev_get_priv(bus); + int ret; + + debug("i2c_xfer: %d messages\n", nmsgs); + for (; nmsgs > 0; nmsgs--, msg++) { + debug("i2c_xfer: chip=0x%x, len=0x%x\n", msg->addr, msg->len); + if (msg->flags & I2C_M_RD) { + ret = __omap24_i2c_read(priv->regs, priv->waitdelay, + msg->addr, 0, 0, msg->buf, + msg->len); + } else { + ret = __omap24_i2c_write(priv->regs, priv->waitdelay, + msg->addr, 0, 0, msg->buf, + msg->len); + } + if (ret) { + debug("i2c_write: error sending\n"); + return -EREMOTEIO; + } + } + + return 0; +} + +static int omap_i2c_set_bus_speed(struct udevice *bus, unsigned int speed) +{ + struct omap_i2c *priv = dev_get_priv(bus); + + priv->speed = speed; + + return __omap24_i2c_setspeed(priv->regs, speed, &priv->waitdelay); +} + +static int omap_i2c_probe_chip(struct udevice *bus, uint chip_addr, + uint chip_flags) +{ + struct omap_i2c *priv = dev_get_priv(bus); + + return __omap24_i2c_probe(priv->regs, priv->waitdelay, chip_addr); +} + +static int omap_i2c_probe(struct udevice *bus) +{ + struct omap_i2c *priv = dev_get_priv(bus); + + __omap24_i2c_init(priv->regs, priv->speed, 0, &priv->waitdelay); + + return 0; +} + +static int omap_i2c_ofdata_to_platdata(struct udevice *bus) +{ + struct omap_i2c *priv = dev_get_priv(bus); + + priv->regs = map_physmem(dev_get_addr(bus), sizeof(void *), + MAP_NOCACHE); + priv->speed = CONFIG_SYS_OMAP24_I2C_SPEED; + + return 0; +} + +static const struct dm_i2c_ops omap_i2c_ops = { + .xfer = omap_i2c_xfer, + .probe_chip = omap_i2c_probe_chip, + .set_bus_speed = omap_i2c_set_bus_speed, +}; + +static const struct udevice_id omap_i2c_ids[] = { + { .compatible = "ti,omap4-i2c" }, + { } +}; + +U_BOOT_DRIVER(i2c_omap) = { + .name = "i2c_omap", + .id = UCLASS_I2C, + .of_match = omap_i2c_ids, + .ofdata_to_platdata = omap_i2c_ofdata_to_platdata, + .probe = omap_i2c_probe, + .priv_auto_alloc_size = sizeof(struct omap_i2c), + .ops = &omap_i2c_ops, + .flags = DM_FLAG_PRE_RELOC, +}; + +#endif /* CONFIG_DM_I2C */ -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 06/14] drivers: i2c: omap24xx_i2c: adopt omap_i2c driver to driver model 2016-07-18 9:41 ` [U-Boot] [PATCH 06/14] drivers: i2c: omap24xx_i2c: adopt omap_i2c driver to driver model Mugunthan V N @ 2016-07-20 14:19 ` Simon Glass 0 siblings, 0 replies; 32+ messages in thread From: Simon Glass @ 2016-07-20 14:19 UTC (permalink / raw) To: u-boot On 18 July 2016 at 03:41, Mugunthan V N <mugunthanvnm@ti.com> wrote: > Convert omap i2c driver to adopt i2c driver model > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> > --- > drivers/i2c/omap24xx_i2c.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 99 insertions(+) Reviewed-by: Simon Glass <sjg@chromium.org> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 07/14] defconfig: am335x_boneblack_vboot: enable i2c driver model 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (5 preceding siblings ...) 2016-07-18 9:41 ` [U-Boot] [PATCH 06/14] drivers: i2c: omap24xx_i2c: adopt omap_i2c driver to driver model Mugunthan V N @ 2016-07-18 9:41 ` Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 08/14] defconfig: am335x_evm: " Mugunthan V N ` (6 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:41 UTC (permalink / raw) To: u-boot Enable i2c driver model for am335x_boneblack_vboot as omap i2c supports driver model. Also enable CONFIG_DM_I2C_COMPAT for legacy drivers of i2c devices. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- configs/am335x_boneblack_vboot_defconfig | 1 + include/configs/ti_armv7_common.h | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig index 903f518..c2f09cb 100644 --- a/configs/am335x_boneblack_vboot_defconfig +++ b/configs/am335x_boneblack_vboot_defconfig @@ -49,3 +49,4 @@ CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="Texas Instruments" CONFIG_G_DNL_VENDOR_NUM=0x0451 CONFIG_G_DNL_PRODUCT_NUM=0xd022 +CONFIG_DM_I2C=y diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h index b996f35..9f947ee 100644 --- a/include/configs/ti_armv7_common.h +++ b/include/configs/ti_armv7_common.h @@ -118,7 +118,15 @@ /* I2C IP block */ #define CONFIG_I2C +#ifndef CONFIG_DM_I2C #define CONFIG_SYS_I2C +#else +/* + * Enable CONFIG_DM_I2C_COMPAT temporarily until all the i2c client + * devices are adopted to DM + */ +#define CONFIG_DM_I2C_COMPAT +#endif /* MMC/SD IP block */ #define CONFIG_MMC -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 07/14] defconfig: am335x_boneblack_vboot: enable i2c driver model 2016-07-18 9:41 ` [U-Boot] [PATCH 07/14] defconfig: am335x_boneblack_vboot: enable i2c " Mugunthan V N @ 2016-07-18 14:27 ` Tom Rini 0 siblings, 0 replies; 32+ messages in thread From: Tom Rini @ 2016-07-18 14:27 UTC (permalink / raw) To: u-boot On Mon, Jul 18, 2016 at 03:11:02PM +0530, Mugunthan V N wrote: > Enable i2c driver model for am335x_boneblack_vboot as omap i2c > supports driver model. Also enable CONFIG_DM_I2C_COMPAT for > legacy drivers of i2c devices. > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/b299fa66/attachment.sig> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 08/14] defconfig: am335x_evm: enable i2c driver model 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (6 preceding siblings ...) 2016-07-18 9:41 ` [U-Boot] [PATCH 07/14] defconfig: am335x_boneblack_vboot: enable i2c " Mugunthan V N @ 2016-07-18 9:41 ` Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 09/14] defconfig: am43xx_evm: " Mugunthan V N ` (5 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:41 UTC (permalink / raw) To: u-boot Enable i2c driver model for am335x_evm as omap i2c supports driver model. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- configs/am335x_evm_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig index 696024c..6885230 100644 --- a/configs/am335x_evm_defconfig +++ b/configs/am335x_evm_defconfig @@ -49,3 +49,4 @@ CONFIG_FIT=y CONFIG_SPL_OF_LIBFDT=y CONFIG_SPL_LOAD_FIT=y CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2" +CONFIG_DM_I2C=y -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 08/14] defconfig: am335x_evm: enable i2c driver model 2016-07-18 9:41 ` [U-Boot] [PATCH 08/14] defconfig: am335x_evm: " Mugunthan V N @ 2016-07-18 14:27 ` Tom Rini 0 siblings, 0 replies; 32+ messages in thread From: Tom Rini @ 2016-07-18 14:27 UTC (permalink / raw) To: u-boot On Mon, Jul 18, 2016 at 03:11:03PM +0530, Mugunthan V N wrote: > Enable i2c driver model for am335x_evm as omap i2c > supports driver model. > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/8f36fad2/attachment.sig> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 09/14] defconfig: am43xx_evm: enable i2c driver model 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (7 preceding siblings ...) 2016-07-18 9:41 ` [U-Boot] [PATCH 08/14] defconfig: am335x_evm: " Mugunthan V N @ 2016-07-18 9:41 ` Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 10/14] defconfig: am43xx_hs_evm: " Mugunthan V N ` (4 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:41 UTC (permalink / raw) To: u-boot Enable i2c driver model for am43xx_evm as omap i2c supports driver model. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- configs/am43xx_evm_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/am43xx_evm_defconfig b/configs/am43xx_evm_defconfig index cb3de11..0eab4ad 100644 --- a/configs/am43xx_evm_defconfig +++ b/configs/am43xx_evm_defconfig @@ -54,3 +54,4 @@ CONFIG_G_DNL_MANUFACTURER="Texas Instruments" CONFIG_G_DNL_VENDOR_NUM=0x0403 CONFIG_G_DNL_PRODUCT_NUM=0xbd00 CONFIG_SPL_OF_LIBFDT=y +CONFIG_DM_I2C=y -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 09/14] defconfig: am43xx_evm: enable i2c driver model 2016-07-18 9:41 ` [U-Boot] [PATCH 09/14] defconfig: am43xx_evm: " Mugunthan V N @ 2016-07-18 14:27 ` Tom Rini 0 siblings, 0 replies; 32+ messages in thread From: Tom Rini @ 2016-07-18 14:27 UTC (permalink / raw) To: u-boot On Mon, Jul 18, 2016 at 03:11:04PM +0530, Mugunthan V N wrote: > Enable i2c driver model for am43xx_evm as omap i2c > supports driver model. > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/3f8f0662/attachment.sig> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 10/14] defconfig: am43xx_hs_evm: enable i2c driver model 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (8 preceding siblings ...) 2016-07-18 9:41 ` [U-Boot] [PATCH 09/14] defconfig: am43xx_evm: " Mugunthan V N @ 2016-07-18 9:41 ` Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 11/14] defconfig: dra7xx_evm: " Mugunthan V N ` (3 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:41 UTC (permalink / raw) To: u-boot Enable i2c driver model for am43xx_hs_evm as omap i2c supports driver model. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- configs/am43xx_hs_evm_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/am43xx_hs_evm_defconfig b/configs/am43xx_hs_evm_defconfig index 68dfb6c..c8ce723 100644 --- a/configs/am43xx_hs_evm_defconfig +++ b/configs/am43xx_hs_evm_defconfig @@ -58,3 +58,4 @@ CONFIG_G_DNL_MANUFACTURER="Texas Instruments" CONFIG_G_DNL_VENDOR_NUM=0x0403 CONFIG_G_DNL_PRODUCT_NUM=0xbd00 CONFIG_SPL_OF_LIBFDT=y +CONFIG_DM_I2C=y -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 10/14] defconfig: am43xx_hs_evm: enable i2c driver model 2016-07-18 9:41 ` [U-Boot] [PATCH 10/14] defconfig: am43xx_hs_evm: " Mugunthan V N @ 2016-07-18 14:27 ` Tom Rini 0 siblings, 0 replies; 32+ messages in thread From: Tom Rini @ 2016-07-18 14:27 UTC (permalink / raw) To: u-boot On Mon, Jul 18, 2016 at 03:11:05PM +0530, Mugunthan V N wrote: > Enable i2c driver model for am43xx_hs_evm as omap i2c > supports driver model. > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/c7877737/attachment.sig> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 11/14] defconfig: dra7xx_evm: enable i2c driver model 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (9 preceding siblings ...) 2016-07-18 9:41 ` [U-Boot] [PATCH 10/14] defconfig: am43xx_hs_evm: " Mugunthan V N @ 2016-07-18 9:41 ` Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 12/14] defconfig: dra7xx_hs_evm: " Mugunthan V N ` (2 subsequent siblings) 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:41 UTC (permalink / raw) To: u-boot Enable i2c driver model for dra7xx_evm as omap i2c supports driver model. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- configs/dra7xx_evm_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/dra7xx_evm_defconfig b/configs/dra7xx_evm_defconfig index 756af63..1d27e52 100644 --- a/configs/dra7xx_evm_defconfig +++ b/configs/dra7xx_evm_defconfig @@ -57,3 +57,4 @@ CONFIG_FIT=y CONFIG_SPL_OF_LIBFDT=y CONFIG_SPL_LOAD_FIT=y CONFIG_OF_LIST="dra7-evm dra72-evm" +CONFIG_DM_I2C=y -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 11/14] defconfig: dra7xx_evm: enable i2c driver model 2016-07-18 9:41 ` [U-Boot] [PATCH 11/14] defconfig: dra7xx_evm: " Mugunthan V N @ 2016-07-18 14:27 ` Tom Rini 0 siblings, 0 replies; 32+ messages in thread From: Tom Rini @ 2016-07-18 14:27 UTC (permalink / raw) To: u-boot On Mon, Jul 18, 2016 at 03:11:06PM +0530, Mugunthan V N wrote: > Enable i2c driver model for dra7xx_evm as omap i2c > supports driver model. > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/8eab4a23/attachment.sig> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 12/14] defconfig: dra7xx_hs_evm: enable i2c driver model 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (10 preceding siblings ...) 2016-07-18 9:41 ` [U-Boot] [PATCH 11/14] defconfig: dra7xx_evm: " Mugunthan V N @ 2016-07-18 9:41 ` Mugunthan V N 2016-07-18 14:28 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 13/14] defconfig: am57xx_evm: " Mugunthan V N 2016-07-18 9:41 ` [U-Boot] [PATCH 14/14] defconfig: am57xx_hs_evm: " Mugunthan V N 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:41 UTC (permalink / raw) To: u-boot Enable i2c driver model for dra7xx_hs_evm as omap i2c supports driver model. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- configs/dra7xx_hs_evm_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/dra7xx_hs_evm_defconfig b/configs/dra7xx_hs_evm_defconfig index eb01f41..faf9cd5 100644 --- a/configs/dra7xx_hs_evm_defconfig +++ b/configs/dra7xx_hs_evm_defconfig @@ -60,3 +60,4 @@ CONFIG_SPL_OF_LIBFDT=y CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y CONFIG_OF_LIST="dra7-evm dra72-evm" +CONFIG_DM_I2C=y -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 12/14] defconfig: dra7xx_hs_evm: enable i2c driver model 2016-07-18 9:41 ` [U-Boot] [PATCH 12/14] defconfig: dra7xx_hs_evm: " Mugunthan V N @ 2016-07-18 14:28 ` Tom Rini 0 siblings, 0 replies; 32+ messages in thread From: Tom Rini @ 2016-07-18 14:28 UTC (permalink / raw) To: u-boot On Mon, Jul 18, 2016 at 03:11:07PM +0530, Mugunthan V N wrote: > Enable i2c driver model for dra7xx_hs_evm as omap i2c > supports driver model. > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/3ea1d10e/attachment.sig> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 13/14] defconfig: am57xx_evm: enable i2c driver model 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (11 preceding siblings ...) 2016-07-18 9:41 ` [U-Boot] [PATCH 12/14] defconfig: dra7xx_hs_evm: " Mugunthan V N @ 2016-07-18 9:41 ` Mugunthan V N 2016-07-18 14:28 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 14/14] defconfig: am57xx_hs_evm: " Mugunthan V N 13 siblings, 1 reply; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:41 UTC (permalink / raw) To: u-boot Enable i2c driver model for am57xx_evm as omap i2c supports driver model. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- configs/am57xx_evm_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig index c29a05a..8a8a4c9 100644 --- a/configs/am57xx_evm_defconfig +++ b/configs/am57xx_evm_defconfig @@ -40,3 +40,4 @@ CONFIG_FIT=y CONFIG_SPL_OF_LIBFDT=y CONFIG_SPL_LOAD_FIT=y CONFIG_OF_LIST="am57xx-beagle-x15 am572x-idk" +CONFIG_DM_I2C=y -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 13/14] defconfig: am57xx_evm: enable i2c driver model 2016-07-18 9:41 ` [U-Boot] [PATCH 13/14] defconfig: am57xx_evm: " Mugunthan V N @ 2016-07-18 14:28 ` Tom Rini 0 siblings, 0 replies; 32+ messages in thread From: Tom Rini @ 2016-07-18 14:28 UTC (permalink / raw) To: u-boot On Mon, Jul 18, 2016 at 03:11:08PM +0530, Mugunthan V N wrote: > Enable i2c driver model for am57xx_evm as omap i2c > supports driver model. > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/6f25c76d/attachment.sig> ^ permalink raw reply [flat|nested] 32+ messages in thread
* [U-Boot] [PATCH 14/14] defconfig: am57xx_hs_evm: enable i2c driver model 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N ` (12 preceding siblings ...) 2016-07-18 9:41 ` [U-Boot] [PATCH 13/14] defconfig: am57xx_evm: " Mugunthan V N @ 2016-07-18 9:41 ` Mugunthan V N 13 siblings, 0 replies; 32+ messages in thread From: Mugunthan V N @ 2016-07-18 9:41 UTC (permalink / raw) To: u-boot Enable i2c driver model for am57xx_hs_evm as omap i2c supports driver model. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- configs/am57xx_hs_evm_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/am57xx_hs_evm_defconfig b/configs/am57xx_hs_evm_defconfig index 01a4701..2ccb332 100644 --- a/configs/am57xx_hs_evm_defconfig +++ b/configs/am57xx_hs_evm_defconfig @@ -42,3 +42,4 @@ CONFIG_SPL_OF_LIBFDT=y CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y CONFIG_OF_LIST="am57xx-beagle-x15" +CONFIG_DM_I2C=y -- 2.9.1.200.gb1ec08f ^ permalink raw reply related [flat|nested] 32+ messages in thread
end of thread, other threads:[~2016-08-01 1:01 UTC | newest] Thread overview: 32+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-07-18 9:40 [U-Boot] [PATCH 00/14] DM conversion of omap i2c driver Mugunthan V N 2016-07-18 9:40 ` [U-Boot] [PATCH 01/14] omap4: i2c: correct register offset for sync register Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:40 ` [U-Boot] [PATCH 02/14] omap5/dra7: " Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:40 ` [U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable Mugunthan V N 2016-07-22 3:21 ` Simon Glass 2016-07-22 7:35 ` Mugunthan V N 2016-07-22 14:16 ` Simon Glass 2016-07-25 14:35 ` Mugunthan V N 2016-08-01 1:01 ` Simon Glass 2016-07-18 9:40 ` [U-Boot] [PATCH 04/14] ti_armv7_common: i2c: do not define DM_I2C for spl Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 05/14] drivers: i2c: omap24xx_i2c: prepare driver for DM conversion Mugunthan V N 2016-07-20 14:19 ` Simon Glass 2016-07-18 9:41 ` [U-Boot] [PATCH 06/14] drivers: i2c: omap24xx_i2c: adopt omap_i2c driver to driver model Mugunthan V N 2016-07-20 14:19 ` Simon Glass 2016-07-18 9:41 ` [U-Boot] [PATCH 07/14] defconfig: am335x_boneblack_vboot: enable i2c " Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 08/14] defconfig: am335x_evm: " Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 09/14] defconfig: am43xx_evm: " Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 10/14] defconfig: am43xx_hs_evm: " Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 11/14] defconfig: dra7xx_evm: " Mugunthan V N 2016-07-18 14:27 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 12/14] defconfig: dra7xx_hs_evm: " Mugunthan V N 2016-07-18 14:28 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 13/14] defconfig: am57xx_evm: " Mugunthan V N 2016-07-18 14:28 ` Tom Rini 2016-07-18 9:41 ` [U-Boot] [PATCH 14/14] defconfig: am57xx_hs_evm: " Mugunthan V N
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox