[U-Boot] [EXT] Re: [PATCH 5/7] drivers: i2c: mxc: Solve the compiler error when using i2c dm mode

Chuanhua Han chuanhua.han at nxp.com
Thu May 30 03:44:27 UTC 2019



> -----Original Message-----
> From: Heiko Schocher <hs at denx.de>
> Sent: 2019年5月24日 12:58
> To: Chuanhua Han <chuanhua.han at nxp.com>
> Cc: albert.u.boot at aribaud.net; Priyanka Jain <priyanka.jain at nxp.com>; Udit
> Agarwal <udit.agarwal at nxp.com>; u-boot at lists.denx.de
> Subject: [EXT] Re: [PATCH 5/7] drivers: i2c: mxc: Solve the compiler error when
> using i2c dm mode
> 
> Caution: EXT Email
> 
> Hello Chuanhua Han,
> 
> Am 23.05.2019 um 11:22 schrieb Chuanhua Han:
> > This patch solved the following compilation error:
> >
> > 1.Remove the definition of CONFIG_SYS_I2C to solve the following
> > compilation issue:
> > In file included from include/config.h:8:0,
> >                   from include/common.h:20:
> > include/config_fallbacks.h:51:4: error: #error "Cannot define
> > CONFIG_SYS_I2C when CONFIG_DM_I2C is used"
> >   #  error "Cannot define CONFIG_SYS_I2C when CONFIG_DM_I2C is used"
> >      ^~~~~
> > In file included from include/config.h:8:0,
> >                   from include/common.h:20:
> > include/config_fallbacks.h:51:4: error: #error "Cannot define
> > CONFIG_SYS_I2C when CONFIG_DM_I2C is used"
> >   #  error "Cannot define CONFIG_SYS_I2C when CONFIG_DM_I2C is used"
> >      ^~~~~
> 
> Shouldn't this patch merged with the patch, which introduces DM_I2C?
> 
> Else you break git bisect..
OK.You are right
> 
> > 2.Remove the definition of CONFIG_SYS_I2C_EARLY_INIT to solve the
> > following compilation issue:
> > board/freescale/lx2160a/lx2160a.c: In function 'board_early_init_f':
> > board/freescale/lx2160a/lx2160a.c:108:2: warning: implicit declaration
> > of function 'i2c_early_init_f'; did you mean 'arch_early_init_r'?
> > [-Wimplicit-function-declaration]
> >    i2c_early_init_f();
> >    ^~~~~~~~~~~~~~~~
> >    arch_early_init_r
> >
> > 3.Move the enable_i2c_clk function definition to resolve the following
> > compilation issues:
> >    drivers/i2c/mxc_i2c.c: In function 'mxc_i2c_probe':
> >    drivers/i2c/mxc_i2c.c:824:8: warning: implicit declaration of
> > function 'enable_i2c_clk';
> >    did you mean 'enable_irq_wake'? [-Wimplicit-function-declaration]
> >    ret = enable_i2c_clk(1, bus->seq);
> >          ^~~~~~~~~~~~~~
> >          enable_irq_wake
> >
> > Signed-off-by: Chuanhua Han <chuanhua.han at nxp.com>
> > ---
> >   arch/arm/include/asm/arch-fsl-layerscape/config.h |  2 --
> 
> Hmm... this is a "common" file ... have you checked, if this change does not
> break other boards?
Yes, there will be no impact
> 
> >   drivers/i2c/mxc_i2c.c                             | 15
> ++++++++-------
> 
> please in a seperate patch, thanks!
OK
> 
> >   2 files changed, 8 insertions(+), 9 deletions(-)
> >
> > diff --git a/arch/arm/include/asm/arch-fsl-layerscape/config.h
> > b/arch/arm/include/asm/arch-fsl-layerscape/config.h
> > index eb21c09e01..5f87499980 100644
> > --- a/arch/arm/include/asm/arch-fsl-layerscape/config.h
> > +++ b/arch/arm/include/asm/arch-fsl-layerscape/config.h
> > @@ -178,8 +178,6 @@
> >   #elif defined(CONFIG_ARCH_LX2160A)
> >   #define TZPC_BASE                           0x02200000
> >   #define TZPCDECPROT_0_SET_BASE                      (TZPC_BASE
> + 0x804)
> > -#define CONFIG_SYS_I2C
> > -#define CONFIG_SYS_I2C_EARLY_INIT
> >   #define SRDS_MAX_LANES  8
> >   #ifndef L1_CACHE_BYTES
> >   #define L1_CACHE_SHIFT              6
> > diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c index
> > f3811eb0c5..241367bac8 100644
> > --- a/drivers/i2c/mxc_i2c.c
> > +++ b/drivers/i2c/mxc_i2c.c
> > @@ -558,6 +558,14 @@ static int i2c_read_data(struct mxc_i2c_bus
> *i2c_bus, uchar chip, uchar *buf,
> >       return 0;
> >   }
> >
> > +int __enable_i2c_clk(unsigned char enable, unsigned int i2c_num) {
> > +     return 1;
> > +}
> > +
> > +int enable_i2c_clk(unsigned char enable, unsigned int i2c_num)
> > +     __attribute__((weak, alias("__enable_i2c_clk")));
> > +
> >   #ifndef CONFIG_DM_I2C
> >   /*
> >    * Read data from I2C device
> > @@ -723,13 +731,6 @@ static int mxc_i2c_probe(struct i2c_adapter *adap,
> uint8_t chip)
> >       return bus_i2c_write(i2c_get_base(adap), chip, 0, 0, NULL, 0);
> >   }
> >
> > -int __enable_i2c_clk(unsigned char enable, unsigned i2c_num) -{
> > -     return 1;
> > -}
> > -int enable_i2c_clk(unsigned char enable, unsigned i2c_num)
> > -     __attribute__((weak, alias("__enable_i2c_clk")));
> > -
> >   void bus_i2c_init(int index, int speed, int unused,
> >                 int (*idle_bus_fn)(void *p), void *idle_bus_data)
> >   {
> >
> 
> --
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de


More information about the U-Boot mailing list