Re: [PATCH] pinctrl: sh-pfc: r8a7791: grand I2C rename

2017-04-19 Thread Geert Uytterhoeven
Hi Sergei,

On Fri, Apr 7, 2017 at 10:02 PM, Sergei Shtylyov
 wrote:
> The R8A7791 PFC driver  was apparently based on the preliminary revisions
> of  the  user's manual, which called all the I2C signals {SCL|SDA} and
> MOD_SEL register fields SEL_IIC without making a difference between two
> types of the I2C controllers used. The recent manual calls the signals
> {I2C|IIC}_{SCL|SDA> and the MOD_SEL fields SEL_{I2C|IIC} finally
> making this difference. Follow the suit...

Thanks for your patch!

> Signed-off-by: Sergei Shtylyov 

No difference in the generated binary, good!

Reviewed-by: Geert Uytterhoeven 
i.e. will queue in sh-pfc-for-v4.13.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH] pinctrl: sh-pfc: r8a7791: grand I2C rename

2017-04-07 Thread Sergei Shtylyov

Sorry, forgot to add "v2" in the subject...



[PATCH] pinctrl: sh-pfc: r8a7791: grand I2C rename

2017-04-07 Thread Sergei Shtylyov
The R8A7791 PFC driver  was apparently based on the preliminary revisions
of  the  user's manual, which called all the I2C signals {SCL|SDA} and
MOD_SEL register fields SEL_IIC without making a difference between two
types of the I2C controllers used. The recent manual calls the signals
{I2C|IIC}_{SCL|SDA> and the MOD_SEL fields SEL_{I2C|IIC} finally
making this difference. Follow the suit...

Signed-off-by: Sergei Shtylyov 

---
This patch is against the 'devel' branch of Linus Walleij's 'linux-pinctrl.git'
repo plus  4  R8A7791 PFC fixes posted last week...

Changes in version 2:
- undid the group/function renaming, updated the patch description accordingly. 

 drivers/pinctrl/sh-pfc/pfc-r8a7791.c |  461 +--
 1 file changed, 234 insertions(+), 227 deletions(-)

Index: linux-pinctrl/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
===
--- linux-pinctrl.orig/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
+++ linux-pinctrl/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
@@ -119,22 +119,22 @@ enum {
/* IPSR0 */
FN_D0, FN_D1, FN_D2, FN_D3, FN_D4, FN_D5, FN_D6, FN_D7, FN_D8,
FN_D9, FN_D10, FN_D11, FN_D12, FN_D13, FN_D14, FN_D15,
-   FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_SCL0_C, FN_PWM2_B,
+   FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_I2C0_SCL_C, FN_PWM2_B,
FN_A1, FN_MSIOF0_SYNC_B, FN_A2, FN_MSIOF0_SS1_B,
FN_A3, FN_MSIOF0_SS2_B, FN_A4, FN_MSIOF0_TXD_B,
FN_A5, FN_MSIOF0_RXD_B, FN_A6, FN_MSIOF1_SCK,
 
/* IPSR1 */
-   FN_A7, FN_MSIOF1_SYNC, FN_A8, FN_MSIOF1_SS1, FN_SCL0,
-   FN_A9, FN_MSIOF1_SS2, FN_SDA0,
+   FN_A7, FN_MSIOF1_SYNC, FN_A8, FN_MSIOF1_SS1, FN_I2C0_SCL,
+   FN_A9, FN_MSIOF1_SS2, FN_I2C0_SDA,
FN_A10, FN_MSIOF1_TXD, FN_MSIOF1_TXD_D,
-   FN_A11, FN_MSIOF1_RXD, FN_SCL3_D, FN_MSIOF1_RXD_D,
-   FN_A12, FN_FMCLK, FN_SDA3_D, FN_MSIOF1_SCK_D,
+   FN_A11, FN_MSIOF1_RXD, FN_I2C3_SCL_D, FN_MSIOF1_RXD_D,
+   FN_A12, FN_FMCLK, FN_I2C3_SDA_D, FN_MSIOF1_SCK_D,
FN_A13, FN_ATAG0_N_C, FN_BPFCLK, FN_MSIOF1_SS1_D,
FN_A14, FN_ATADIR0_N_C, FN_FMIN, FN_FMIN_C, FN_MSIOF1_SYNC_D,
FN_A15, FN_BPFCLK_C,
FN_A16, FN_DREQ2_B, FN_FMCLK_C, FN_SCIFA1_SCK_B,
-   FN_A17, FN_DACK2_B, FN_SDA0_C,
+   FN_A17, FN_DACK2_B, FN_I2C0_SDA_C,
FN_A18, FN_DREQ1, FN_SCIFA1_RXD_C, FN_SCIFB1_RXD_C,
 
/* IPSR2 */
@@ -145,8 +145,8 @@ enum {
FN_A23, FN_IO2, FN_BPFCLK_B, FN_RX0, FN_SCIFA0_RXD,
FN_A24, FN_DREQ2, FN_IO3, FN_TX1, FN_SCIFA1_TXD,
FN_A25, FN_DACK2, FN_SSL, FN_DREQ1_C, FN_RX1, FN_SCIFA1_RXD,
-   FN_CS0_N, FN_ATAG0_N_B, FN_SCL1,
-   FN_CS1_N_A26, FN_ATADIR0_N_B, FN_SDA1,
+   FN_CS0_N, FN_ATAG0_N_B, FN_I2C1_SCL,
+   FN_CS1_N_A26, FN_ATADIR0_N_B, FN_I2C1_SDA,
FN_EX_CS1_N, FN_MSIOF2_SCK,
FN_EX_CS2_N, FN_ATAWR0_N, FN_MSIOF2_SYNC,
FN_EX_CS3_N, FN_ATADIR0_N, FN_MSIOF2_TXD, FN_ATAG0_N, FN_EX_WAIT1,
@@ -169,12 +169,13 @@ enum {
FN_SSI_WS0129, FN_HTX0_C, FN_HTX2_C, FN_SCIFB0_TXD_C, FN_SCIFB2_TXD_C,
 
/* IPSR4 */
-   FN_SSI_SDATA0, FN_SCL0_B, FN_SCL7_B, FN_MSIOF2_SCK_C,
-   FN_SSI_SCK1, FN_SDA0_B, FN_SDA7_B, FN_MSIOF2_SYNC_C, FN_GLO_I0_D,
-   FN_SSI_WS1, FN_SCL1_B, FN_SCL8_B, FN_MSIOF2_TXD_C, FN_GLO_I1_D,
-   FN_SSI_SDATA1, FN_SDA1_B, FN_SDA8_B, FN_MSIOF2_RXD_C,
-   FN_SSI_SCK2, FN_SCL2, FN_GPS_CLK_B, FN_GLO_Q0_D, FN_HSCK1_E,
-   FN_SSI_WS2, FN_SDA2, FN_GPS_SIGN_B, FN_RX2_E,
+   FN_SSI_SDATA0, FN_I2C0_SCL_B, FN_IIC0_SCL_B, FN_MSIOF2_SCK_C,
+   FN_SSI_SCK1, FN_I2C0_SDA_B, FN_IIC0_SDA_B, FN_MSIOF2_SYNC_C,
+   FN_GLO_I0_D,
+   FN_SSI_WS1, FN_I2C1_SCL_B, FN_IIC1_SCL_B, FN_MSIOF2_TXD_C, FN_GLO_I1_D,
+   FN_SSI_SDATA1, FN_I2C1_SDA_B, FN_IIC1_SDA_B, FN_MSIOF2_RXD_C,
+   FN_SSI_SCK2, FN_I2C2_SCL, FN_GPS_CLK_B, FN_GLO_Q0_D, FN_HSCK1_E,
+   FN_SSI_WS2, FN_I2C2_SDA, FN_GPS_SIGN_B, FN_RX2_E,
FN_GLO_Q1_D, FN_HCTS1_N_E,
FN_SSI_SDATA2, FN_GPS_MAG_B, FN_TX2_E, FN_HRTS1_N_E,
FN_SSI_SCK34, FN_SSI_WS34, FN_SSI_SDATA3,
@@ -210,10 +211,10 @@ enum {
FN_IRQ0, FN_SCIFB1_RXD_D, FN_INTC_IRQ0_N,
FN_IRQ1, FN_SCIFB1_SCK_C, FN_INTC_IRQ1_N,
FN_IRQ2, FN_SCIFB1_TXD_D, FN_INTC_IRQ2_N,
-   FN_IRQ3, FN_SCL4_C, FN_MSIOF2_TXD_E, FN_INTC_IRQ3_N,
-   FN_IRQ4, FN_HRX1_C, FN_SDA4_C, FN_MSIOF2_RXD_E, FN_INTC_IRQ4_N,
-   FN_IRQ5, FN_HTX1_C, FN_SCL1_E, FN_MSIOF2_SCK_E,
-   FN_IRQ6, FN_HSCK1_C, FN_MSIOF1_SS2_B, FN_SDA1_E, FN_MSIOF2_SYNC_E,
+   FN_IRQ3, FN_I2C4_SCL_C, FN_MSIOF2_TXD_E, FN_INTC_IRQ3_N,
+   FN_IRQ4, FN_HRX1_C, FN_I2C4_SDA_C, FN_MSIOF2_RXD_E, FN_INTC_IRQ4_N,
+   FN_IRQ5, FN_HTX1_C, FN_I2C1_SCL_E, FN_MSIOF2_SCK_E,
+   FN_IRQ6, FN_HSCK1_C, FN_MSIOF1_SS2_B, FN_I2C1_SDA_E, FN_MSIOF2_SYNC_E,
FN_IRQ7, FN_HCTS1_N_C, FN_MSIOF1_TXD_B, FN_GPS_CLK_C, FN_GPS_CLK_D,
FN_IRQ8, FN_HRTS1_N_C, FN_MSIOF1_RXD_B, FN_GPS_SIGN_C, 

Re: [PATCH] pinctrl: sh-pfc: r8a7791: grand I2C rename

2017-04-03 Thread Simon Horman
On Fri, Mar 31, 2017 at 01:01:04PM +0200, Geert Uytterhoeven wrote:
> Hi Sergei,
> 
> On Thu, Mar 30, 2017 at 6:53 PM, Sergei Shtylyov
>  wrote:
> > The R8A7791 PFC driver  was apparently based on the preliminary revisions
> > of  the  user's manual, which called all the I2C signals {SCL|SDA} and
> > MOD_SEL register fields SEL_IIC without making a difference between two
> > types of the I2C controllers used. The recent manual calls the signals
> > {I2C|IIC}_{SCL|SDA> and the MOD_SEL fields SEL_{I2C|IIC} finally
> > making this difference. Follow the suit, also renaming the I2C{7|8} pin
> > arrays and groups/functions (luckily, they haven't been used so far).
> >
> > Signed-off-by: Sergei Shtylyov 
> 
> Thanks for your patch!
> 
> >  drivers/pinctrl/sh-pfc/pfc-r8a7791.c |  521 
> > +--
> >  1 file changed, 264 insertions(+), 257 deletions(-)
> >
> > Index: linux-pinctrl/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
> > ===
> > --- linux-pinctrl.orig/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
> > +++ linux-pinctrl/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
> > @@ -119,22 +119,22 @@ enum {
> > /* IPSR0 */
> > FN_D0, FN_D1, FN_D2, FN_D3, FN_D4, FN_D5, FN_D6, FN_D7, FN_D8,
> > FN_D9, FN_D10, FN_D11, FN_D12, FN_D13, FN_D14, FN_D15,
> > -   FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_SCL0_C, FN_PWM2_B,
> > +   FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_I2C0_SCL_C, FN_PWM2_B,
> 
> While I have no issue with renaming internal definitions...
> 
> > @@ -4507,12 +4514,12 @@ static const struct sh_pfc_pin_group pin
> > SH_PFC_PIN_GROUP(i2c4),
> > SH_PFC_PIN_GROUP(i2c4_b),
> > SH_PFC_PIN_GROUP(i2c4_c),
> > -   SH_PFC_PIN_GROUP(i2c7),
> > -   SH_PFC_PIN_GROUP(i2c7_b),
> > -   SH_PFC_PIN_GROUP(i2c7_c),
> > -   SH_PFC_PIN_GROUP(i2c8),
> > -   SH_PFC_PIN_GROUP(i2c8_b),
> > -   SH_PFC_PIN_GROUP(i2c8_c),
> > +   SH_PFC_PIN_GROUP(iic0),
> > +   SH_PFC_PIN_GROUP(iic0_b),
> > +   SH_PFC_PIN_GROUP(iic0_c),
> > +   SH_PFC_PIN_GROUP(iic1),
> > +   SH_PFC_PIN_GROUP(iic1_b),
> > +   SH_PFC_PIN_GROUP(iic1_c),
> 
> I do object against renaming the user-visible names, like pin groups...
> 
> > @@ -5298,8 +5305,8 @@ static const struct sh_pfc_function pinm
> > SH_PFC_FUNCTION(i2c2),
> > SH_PFC_FUNCTION(i2c3),
> > SH_PFC_FUNCTION(i2c4),
> > -   SH_PFC_FUNCTION(i2c7),
> > -   SH_PFC_FUNCTION(i2c8),
> > +   SH_PFC_FUNCTION(iic0),
> > +   SH_PFC_FUNCTION(iic1),
> 
> ... and pin functions. Technically, they are part of the DT bindings,
> and thus are not allowed to change.
> 
> IMHO either the user-visible names should be left alone, or the new names
> should be added as alternatives, next to the existing names.
> 
> What do other people think?

I think that any user-visible changes need to have a very strong reason.


Re: [PATCH] pinctrl: sh-pfc: r8a7791: grand I2C rename

2017-04-03 Thread Geert Uytterhoeven
On Fri, Mar 31, 2017 at 1:01 PM, Geert Uytterhoeven
 wrote:
> On Thu, Mar 30, 2017 at 6:53 PM, Sergei Shtylyov
>  wrote:
>> The R8A7791 PFC driver  was apparently based on the preliminary revisions
>> of  the  user's manual, which called all the I2C signals {SCL|SDA} and
>> MOD_SEL register fields SEL_IIC without making a difference between two
>> types of the I2C controllers used. The recent manual calls the signals
>> {I2C|IIC}_{SCL|SDA> and the MOD_SEL fields SEL_{I2C|IIC} finally
>> making this difference. Follow the suit, also renaming the I2C{7|8} pin
>> arrays and groups/functions (luckily, they haven't been used so far).
>>
>> Signed-off-by: Sergei Shtylyov 

>> --- linux-pinctrl.orig/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
>> +++ linux-pinctrl/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
>> @@ -119,22 +119,22 @@ enum {
>> /* IPSR0 */
>> FN_D0, FN_D1, FN_D2, FN_D3, FN_D4, FN_D5, FN_D6, FN_D7, FN_D8,
>> FN_D9, FN_D10, FN_D11, FN_D12, FN_D13, FN_D14, FN_D15,
>> -   FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_SCL0_C, FN_PWM2_B,
>> +   FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_I2C0_SCL_C, FN_PWM2_B,
>
> While I have no issue with renaming internal definitions...
>
>> @@ -4507,12 +4514,12 @@ static const struct sh_pfc_pin_group pin
>> SH_PFC_PIN_GROUP(i2c4),
>> SH_PFC_PIN_GROUP(i2c4_b),
>> SH_PFC_PIN_GROUP(i2c4_c),
>> -   SH_PFC_PIN_GROUP(i2c7),
>> -   SH_PFC_PIN_GROUP(i2c7_b),
>> -   SH_PFC_PIN_GROUP(i2c7_c),
>> -   SH_PFC_PIN_GROUP(i2c8),
>> -   SH_PFC_PIN_GROUP(i2c8_b),
>> -   SH_PFC_PIN_GROUP(i2c8_c),
>> +   SH_PFC_PIN_GROUP(iic0),
>> +   SH_PFC_PIN_GROUP(iic0_b),
>> +   SH_PFC_PIN_GROUP(iic0_c),
>> +   SH_PFC_PIN_GROUP(iic1),
>> +   SH_PFC_PIN_GROUP(iic1_b),
>> +   SH_PFC_PIN_GROUP(iic1_c),
>
> I do object against renaming the user-visible names, like pin groups...
>
>> @@ -5298,8 +5305,8 @@ static const struct sh_pfc_function pinm
>> SH_PFC_FUNCTION(i2c2),
>> SH_PFC_FUNCTION(i2c3),
>> SH_PFC_FUNCTION(i2c4),
>> -   SH_PFC_FUNCTION(i2c7),
>> -   SH_PFC_FUNCTION(i2c8),
>> +   SH_PFC_FUNCTION(iic0),
>> +   SH_PFC_FUNCTION(iic1),
>
> ... and pin functions. Technically, they are part of the DT bindings,
> and thus are not allowed to change.
>
> IMHO either the user-visible names should be left alone, or the new names
> should be added as alternatives, next to the existing names.

If we go the second route, that could easily be supported using new
SH_PFC_PIN_GROUP_ALIAS() and SH_PFC_FUNCTION_ALIAS() macros,
to be used like

SH_PFC_PIN_GROUP(i2c7, iic0);

SH_PFC_FUNCTION_ALIAS(i2c7, iic0);

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH] pinctrl: sh-pfc: r8a7791: grand I2C rename

2017-03-31 Thread Geert Uytterhoeven
Hi Sergei,

On Thu, Mar 30, 2017 at 6:53 PM, Sergei Shtylyov
 wrote:
> The R8A7791 PFC driver  was apparently based on the preliminary revisions
> of  the  user's manual, which called all the I2C signals {SCL|SDA} and
> MOD_SEL register fields SEL_IIC without making a difference between two
> types of the I2C controllers used. The recent manual calls the signals
> {I2C|IIC}_{SCL|SDA> and the MOD_SEL fields SEL_{I2C|IIC} finally
> making this difference. Follow the suit, also renaming the I2C{7|8} pin
> arrays and groups/functions (luckily, they haven't been used so far).
>
> Signed-off-by: Sergei Shtylyov 

Thanks for your patch!

>  drivers/pinctrl/sh-pfc/pfc-r8a7791.c |  521 
> +--
>  1 file changed, 264 insertions(+), 257 deletions(-)
>
> Index: linux-pinctrl/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
> ===
> --- linux-pinctrl.orig/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
> +++ linux-pinctrl/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
> @@ -119,22 +119,22 @@ enum {
> /* IPSR0 */
> FN_D0, FN_D1, FN_D2, FN_D3, FN_D4, FN_D5, FN_D6, FN_D7, FN_D8,
> FN_D9, FN_D10, FN_D11, FN_D12, FN_D13, FN_D14, FN_D15,
> -   FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_SCL0_C, FN_PWM2_B,
> +   FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_I2C0_SCL_C, FN_PWM2_B,

While I have no issue with renaming internal definitions...

> @@ -4507,12 +4514,12 @@ static const struct sh_pfc_pin_group pin
> SH_PFC_PIN_GROUP(i2c4),
> SH_PFC_PIN_GROUP(i2c4_b),
> SH_PFC_PIN_GROUP(i2c4_c),
> -   SH_PFC_PIN_GROUP(i2c7),
> -   SH_PFC_PIN_GROUP(i2c7_b),
> -   SH_PFC_PIN_GROUP(i2c7_c),
> -   SH_PFC_PIN_GROUP(i2c8),
> -   SH_PFC_PIN_GROUP(i2c8_b),
> -   SH_PFC_PIN_GROUP(i2c8_c),
> +   SH_PFC_PIN_GROUP(iic0),
> +   SH_PFC_PIN_GROUP(iic0_b),
> +   SH_PFC_PIN_GROUP(iic0_c),
> +   SH_PFC_PIN_GROUP(iic1),
> +   SH_PFC_PIN_GROUP(iic1_b),
> +   SH_PFC_PIN_GROUP(iic1_c),

I do object against renaming the user-visible names, like pin groups...

> @@ -5298,8 +5305,8 @@ static const struct sh_pfc_function pinm
> SH_PFC_FUNCTION(i2c2),
> SH_PFC_FUNCTION(i2c3),
> SH_PFC_FUNCTION(i2c4),
> -   SH_PFC_FUNCTION(i2c7),
> -   SH_PFC_FUNCTION(i2c8),
> +   SH_PFC_FUNCTION(iic0),
> +   SH_PFC_FUNCTION(iic1),

... and pin functions. Technically, they are part of the DT bindings,
and thus are not allowed to change.

IMHO either the user-visible names should be left alone, or the new names
should be added as alternatives, next to the existing names.

What do other people think?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


[PATCH] pinctrl: sh-pfc: r8a7791: grand I2C rename

2017-03-30 Thread Sergei Shtylyov
The R8A7791 PFC driver  was apparently based on the preliminary revisions
of  the  user's manual, which called all the I2C signals {SCL|SDA} and
MOD_SEL register fields SEL_IIC without making a difference between two
types of the I2C controllers used. The recent manual calls the signals
{I2C|IIC}_{SCL|SDA> and the MOD_SEL fields SEL_{I2C|IIC} finally
making this difference. Follow the suit, also renaming the I2C{7|8} pin
arrays and groups/functions (luckily, they haven't been used so far).

Signed-off-by: Sergei Shtylyov 

---
This patch is against the 'devel' branch of Linus Walleij's 'linux-pinctrl.git'
rep plus 2 R8A7791 fixes posted yeterday.

 drivers/pinctrl/sh-pfc/pfc-r8a7791.c |  521 +--
 1 file changed, 264 insertions(+), 257 deletions(-)

Index: linux-pinctrl/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
===
--- linux-pinctrl.orig/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
+++ linux-pinctrl/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
@@ -119,22 +119,22 @@ enum {
/* IPSR0 */
FN_D0, FN_D1, FN_D2, FN_D3, FN_D4, FN_D5, FN_D6, FN_D7, FN_D8,
FN_D9, FN_D10, FN_D11, FN_D12, FN_D13, FN_D14, FN_D15,
-   FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_SCL0_C, FN_PWM2_B,
+   FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_I2C0_SCL_C, FN_PWM2_B,
FN_A1, FN_MSIOF0_SYNC_B, FN_A2, FN_MSIOF0_SS1_B,
FN_A3, FN_MSIOF0_SS2_B, FN_A4, FN_MSIOF0_TXD_B,
FN_A5, FN_MSIOF0_RXD_B, FN_A6, FN_MSIOF1_SCK,
 
/* IPSR1 */
-   FN_A7, FN_MSIOF1_SYNC, FN_A8, FN_MSIOF1_SS1, FN_SCL0,
-   FN_A9, FN_MSIOF1_SS2, FN_SDA0,
+   FN_A7, FN_MSIOF1_SYNC, FN_A8, FN_MSIOF1_SS1, FN_I2C0_SCL,
+   FN_A9, FN_MSIOF1_SS2, FN_I2C0_SDA,
FN_A10, FN_MSIOF1_TXD, FN_MSIOF1_TXD_D,
-   FN_A11, FN_MSIOF1_RXD, FN_SCL3_D, FN_MSIOF1_RXD_D,
-   FN_A12, FN_FMCLK, FN_SDA3_D, FN_MSIOF1_SCK_D,
+   FN_A11, FN_MSIOF1_RXD, FN_I2C3_SCL_D, FN_MSIOF1_RXD_D,
+   FN_A12, FN_FMCLK, FN_I2C3_SDA_D, FN_MSIOF1_SCK_D,
FN_A13, FN_ATAG0_N_C, FN_BPFCLK, FN_MSIOF1_SS1_D,
FN_A14, FN_ATADIR0_N_C, FN_FMIN, FN_FMIN_C, FN_MSIOF1_SYNC_D,
FN_A15, FN_BPFCLK_C,
FN_A16, FN_DREQ2_B, FN_FMCLK_C, FN_SCIFA1_SCK_B,
-   FN_A17, FN_DACK2_B, FN_SDA0_C,
+   FN_A17, FN_DACK2_B, FN_I2C0_SDA_C,
FN_A18, FN_DREQ1, FN_SCIFA1_RXD_C, FN_SCIFB1_RXD_C,
 
/* IPSR2 */
@@ -145,8 +145,8 @@ enum {
FN_A23, FN_IO2, FN_BPFCLK_B, FN_RX0, FN_SCIFA0_RXD,
FN_A24, FN_DREQ2, FN_IO3, FN_TX1, FN_SCIFA1_TXD,
FN_A25, FN_DACK2, FN_SSL, FN_DREQ1_C, FN_RX1, FN_SCIFA1_RXD,
-   FN_CS0_N, FN_ATAG0_N_B, FN_SCL1,
-   FN_CS1_N_A26, FN_ATADIR0_N_B, FN_SDA1,
+   FN_CS0_N, FN_ATAG0_N_B, FN_I2C1_SCL,
+   FN_CS1_N_A26, FN_ATADIR0_N_B, FN_I2C1_SDA,
FN_EX_CS1_N, FN_MSIOF2_SCK,
FN_EX_CS2_N, FN_ATAWR0_N, FN_MSIOF2_SYNC,
FN_EX_CS3_N, FN_ATADIR0_N, FN_MSIOF2_TXD, FN_ATAG0_N, FN_EX_WAIT1,
@@ -169,12 +169,13 @@ enum {
FN_SSI_WS0129, FN_HTX0_C, FN_HTX2_C, FN_SCIFB0_TXD_C, FN_SCIFB2_TXD_C,
 
/* IPSR4 */
-   FN_SSI_SDATA0, FN_SCL0_B, FN_SCL7_B, FN_MSIOF2_SCK_C,
-   FN_SSI_SCK1, FN_SDA0_B, FN_SDA7_B, FN_MSIOF2_SYNC_C, FN_GLO_I0_D,
-   FN_SSI_WS1, FN_SCL1_B, FN_SCL8_B, FN_MSIOF2_TXD_C, FN_GLO_I1_D,
-   FN_SSI_SDATA1, FN_SDA1_B, FN_SDA8_B, FN_MSIOF2_RXD_C,
-   FN_SSI_SCK2, FN_SCL2, FN_GPS_CLK_B, FN_GLO_Q0_D, FN_HSCK1_E,
-   FN_SSI_WS2, FN_SDA2, FN_GPS_SIGN_B, FN_RX2_E,
+   FN_SSI_SDATA0, FN_I2C0_SCL_B, FN_IIC0_SCL_B, FN_MSIOF2_SCK_C,
+   FN_SSI_SCK1, FN_I2C0_SDA_B, FN_IIC0_SDA_B, FN_MSIOF2_SYNC_C,
+   FN_GLO_I0_D,
+   FN_SSI_WS1, FN_I2C1_SCL_B, FN_IIC1_SCL_B, FN_MSIOF2_TXD_C, FN_GLO_I1_D,
+   FN_SSI_SDATA1, FN_I2C1_SDA_B, FN_IIC1_SDA_B, FN_MSIOF2_RXD_C,
+   FN_SSI_SCK2, FN_I2C2_SCL, FN_GPS_CLK_B, FN_GLO_Q0_D, FN_HSCK1_E,
+   FN_SSI_WS2, FN_I2C2_SDA, FN_GPS_SIGN_B, FN_RX2_E,
FN_GLO_Q1_D, FN_HCTS1_N_E,
FN_SSI_SDATA2, FN_GPS_MAG_B, FN_TX2_E, FN_HRTS1_N_E,
FN_SSI_SCK34, FN_SSI_WS34, FN_SSI_SDATA3,
@@ -210,10 +211,10 @@ enum {
FN_IRQ0, FN_SCIFB1_RXD_D, FN_INTC_IRQ0_N,
FN_IRQ1, FN_SCIFB1_SCK_C, FN_INTC_IRQ1_N,
FN_IRQ2, FN_SCIFB1_TXD_D, FN_INTC_IRQ2_N,
-   FN_IRQ3, FN_SCL4_C, FN_MSIOF2_TXD_E, FN_INTC_IRQ3_N,
-   FN_IRQ4, FN_HRX1_C, FN_SDA4_C, FN_MSIOF2_RXD_E, FN_INTC_IRQ4_N,
-   FN_IRQ5, FN_HTX1_C, FN_SCL1_E, FN_MSIOF2_SCK_E,
-   FN_IRQ6, FN_HSCK1_C, FN_MSIOF1_SS2_B, FN_SDA1_E, FN_MSIOF2_SYNC_E,
+   FN_IRQ3, FN_I2C4_SCL_C, FN_MSIOF2_TXD_E, FN_INTC_IRQ3_N,
+   FN_IRQ4, FN_HRX1_C, FN_I2C4_SDA_C, FN_MSIOF2_RXD_E, FN_INTC_IRQ4_N,
+   FN_IRQ5, FN_HTX1_C, FN_I2C1_SCL_E, FN_MSIOF2_SCK_E,
+   FN_IRQ6, FN_HSCK1_C, FN_MSIOF1_SS2_B, FN_I2C1_SDA_E, FN_MSIOF2_SYNC_E,
FN_IRQ7, FN_HCTS1_N_C, FN_MSIOF1_TXD_B, FN_GPS_CLK_C, FN_GPS_CLK_D,
FN_IRQ8, FN_HRTS1_N_C, FN_MSIOF1_RXD_B, FN_GPS_SIGN_C, FN_GPS_SIGN_D,