Message ID | 20201025200010.550920-1-seanga2@gmail.com |
---|---|
State | Superseded |
Delegated to: | Andes |
Headers | show |
Series | [1/2] pinctrl: k210: Fix inverted IE and OE for I2C | expand |
> I2C and SCCB previously shared defaults. However, SCCB needs OE_INV and > IE_INV set, but I2C cannot have those bits set. This adds a separate > default for SCCB. > > Signed-off-by: Sean Anderson <seanga2@gmail.com> > Reported-by: Damien Le Moal <Damien.LeMoal@wdc.com> > --- > > drivers/pinctrl/pinctrl-kendryte.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/pinctrl/pinctrl-kendryte.c b/drivers/pinctrl/pinctrl-kendryte.c > index 5ad049d955..259a0b507b 100644 > --- a/drivers/pinctrl/pinctrl-kendryte.c > +++ b/drivers/pinctrl/pinctrl-kendryte.c > @@ -55,8 +55,9 @@ > Reviewed-by: Rick Chen <rick@andestech.com>
Hi Sean > > I2C and SCCB previously shared defaults. However, SCCB needs OE_INV and > > IE_INV set, but I2C cannot have those bits set. This adds a separate > > default for SCCB. > > > > Signed-off-by: Sean Anderson <seanga2@gmail.com> > > Reported-by: Damien Le Moal <Damien.LeMoal@wdc.com> > > --- > > > > drivers/pinctrl/pinctrl-kendryte.c | 10 ++++++---- > > 1 file changed, 6 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/pinctrl/pinctrl-kendryte.c b/drivers/pinctrl/pinctrl-kendryte.c > > index 5ad049d955..259a0b507b 100644 > > --- a/drivers/pinctrl/pinctrl-kendryte.c > > +++ b/drivers/pinctrl/pinctrl-kendryte.c > > @@ -55,8 +55,9 @@ > > > > Reviewed-by: Rick Chen <rick@andestech.com> Please check about the CI failure items: https://travis-ci.org/github/rickchen36/u-boot-riscv/builds/742884254 +drivers/pinctrl/pinctrl-kendryte.c:187:3: error: 'K210_PC_DEFAULT_SCCB' undeclared here (not in a function); did you mean 'K210_PC_DEFAULT_SPI'? 1282+ 187 | [K210_PC_DEFAULT_##mode] = K210_PC_MODE_##mode 1283+ | ^~~~~~~~~~~~~~~~ 1284+drivers/pinctrl/pinctrl-kendryte.c:193:2: note: in expansion of macro 'DEFAULT' 1285+ 193 | DEFAULT(SCCB), 1286+ | ^~~~~~~ 1287+drivers/pinctrl/pinctrl-kendryte.c:187:3: error: array index in initializer not of integer type 1288+drivers/pinctrl/pinctrl-kendryte.c:187:3: note: (near initialization for 'k210_pc_mode_id_to_mode') 1289+make[3]: *** [drivers/pinctrl/pinctrl-kendryte.o] Error 1 1290+make[2]: *** [drivers/pinctrl] Error 2 1291+make[1]: *** [drivers] Error 2 1292+make: *** [sub-make] Error 2 1293 riscv: + sipeed_maix_smode 1294+drivers/pinctrl/pinctrl-kendryte.c:187:3: error: 'K210_PC_DEFAULT_SCCB' undeclared here (not in a function); did you mean 'K210_PC_DEFAULT_SPI'? 1295+ 187 | [K210_PC_DEFAULT_##mode] = K210_PC_MODE_##mode 1296+ | ^~~~~~~~~~~~~~~~ 1297+drivers/pinctrl/pinctrl-kendryte.c:193:2: note: in expansion of macro 'DEFAULT' 1298+ 193 | DEFAULT(SCCB), 1299+ | ^~~~~~~ 1300+drivers/pinctrl/pinctrl-kendryte.c:187:3: error: array index in initializer not of integer type 1301+drivers/pinctrl/pinctrl-kendryte.c:187:3: note: (near initialization for 'k210_pc_mode_id_to_mode') 1302+make[3]: *** [drivers/pinctrl/pinctrl-kendryte.o] Error 1 Thanks, Rick
On 11/13/20 2:19 AM, Rick Chen wrote: > Hi Sean > >>> I2C and SCCB previously shared defaults. However, SCCB needs OE_INV and >>> IE_INV set, but I2C cannot have those bits set. This adds a separate >>> default for SCCB. >>> >>> Signed-off-by: Sean Anderson <seanga2@gmail.com> >>> Reported-by: Damien Le Moal <Damien.LeMoal@wdc.com> >>> --- >>> >>> drivers/pinctrl/pinctrl-kendryte.c | 10 ++++++---- >>> 1 file changed, 6 insertions(+), 4 deletions(-) >>> >>> diff --git a/drivers/pinctrl/pinctrl-kendryte.c b/drivers/pinctrl/pinctrl-kendryte.c >>> index 5ad049d955..259a0b507b 100644 >>> --- a/drivers/pinctrl/pinctrl-kendryte.c >>> +++ b/drivers/pinctrl/pinctrl-kendryte.c >>> @@ -55,8 +55,9 @@ >>> >> >> Reviewed-by: Rick Chen <rick@andestech.com> > > Please check about the CI failure items: > https://travis-ci.org/github/rickchen36/u-boot-riscv/builds/742884254 > > +drivers/pinctrl/pinctrl-kendryte.c:187:3: error: > 'K210_PC_DEFAULT_SCCB' undeclared here (not in a function); did you > mean 'K210_PC_DEFAULT_SPI'? > 1282+ 187 | [K210_PC_DEFAULT_##mode] = K210_PC_MODE_##mode > 1283+ | ^~~~~~~~~~~~~~~~ > 1284+drivers/pinctrl/pinctrl-kendryte.c:193:2: note: in expansion of > macro 'DEFAULT' > 1285+ 193 | DEFAULT(SCCB), > 1286+ | ^~~~~~~ > 1287+drivers/pinctrl/pinctrl-kendryte.c:187:3: error: array index in > initializer not of integer type > 1288+drivers/pinctrl/pinctrl-kendryte.c:187:3: note: (near > initialization for 'k210_pc_mode_id_to_mode') > 1289+make[3]: *** [drivers/pinctrl/pinctrl-kendryte.o] Error 1 > 1290+make[2]: *** [drivers/pinctrl] Error 2 > 1291+make[1]: *** [drivers] Error 2 > 1292+make: *** [sub-make] Error 2 > 1293 riscv: + sipeed_maix_smode > 1294+drivers/pinctrl/pinctrl-kendryte.c:187:3: error: > 'K210_PC_DEFAULT_SCCB' undeclared here (not in a function); did you > mean 'K210_PC_DEFAULT_SPI'? > 1295+ 187 | [K210_PC_DEFAULT_##mode] = K210_PC_MODE_##mode > 1296+ | ^~~~~~~~~~~~~~~~ > 1297+drivers/pinctrl/pinctrl-kendryte.c:193:2: note: in expansion of > macro 'DEFAULT' > 1298+ 193 | DEFAULT(SCCB), > 1299+ | ^~~~~~~ > 1300+drivers/pinctrl/pinctrl-kendryte.c:187:3: error: array index in > initializer not of integer type > 1301+drivers/pinctrl/pinctrl-kendryte.c:187:3: note: (near > initialization for 'k210_pc_mode_id_to_mode') > 1302+make[3]: *** [drivers/pinctrl/pinctrl-kendryte.o] Error 1 > > Thanks, > Rick > Ok, should be fixed in v2. --Sean
diff --git a/drivers/pinctrl/pinctrl-kendryte.c b/drivers/pinctrl/pinctrl-kendryte.c index 5ad049d955..259a0b507b 100644 --- a/drivers/pinctrl/pinctrl-kendryte.c +++ b/drivers/pinctrl/pinctrl-kendryte.c @@ -55,8 +55,9 @@ #define K210_PC_MODE_IN (K210_PC_IE | K210_PC_ST) #define K210_PC_MODE_OUT (K210_PC_DRIVE_7 | K210_PC_OE) -#define K210_PC_MODE_I2C (K210_PC_MODE_IN | K210_PC_IE_INV | K210_PC_SL | \ - K210_PC_OE | K210_PC_OE_INV | K210_PC_PU) +#define K210_PC_MODE_I2C (K210_PC_MODE_IN | K210_PC_SL | K210_PC_OE | \ + K210_PC_PU) +#define K210_PC_MODE_SCCB (K210_PC_MODE_I2C | K210_PC_OE_INV | K210_PC_IE_INV) #define K210_PC_MODE_SPI (K210_PC_MODE_IN | K210_PC_IE_INV | \ K210_PC_MODE_OUT | K210_PC_OE_INV) #define K210_PC_MODE_GPIO (K210_PC_MODE_IN | K210_PC_MODE_OUT) @@ -189,6 +190,7 @@ static const u32 k210_pc_mode_id_to_mode[] = { [K210_PC_DEFAULT_IN_TIE] = K210_PC_MODE_IN, DEFAULT(OUT), DEFAULT(I2C), + DEFAULT(SCCB), DEFAULT(SPI), DEFAULT(GPIO), [K210_PC_DEFAULT_INT13] = K210_PC_MODE_IN | K210_PC_PU, @@ -362,8 +364,8 @@ static const struct k210_pcf_info k210_pcf_infos[] = { FUNC(DVP_D5, IN), FUNC(DVP_D6, IN), FUNC(DVP_D7, IN), - FUNC(SCCB_SCLK, I2C), - FUNC(SCCB_SDA, I2C), + FUNC(SCCB_SCLK, SCCB), + FUNC(SCCB_SDA, SCCB), FUNC(UART1_CTS, IN), FUNC(UART1_DSR, IN), FUNC(UART1_DCD, IN),
I2C and SCCB previously shared defaults. However, SCCB needs OE_INV and IE_INV set, but I2C cannot have those bits set. This adds a separate default for SCCB. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reported-by: Damien Le Moal <Damien.LeMoal@wdc.com> --- drivers/pinctrl/pinctrl-kendryte.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)