pinctrl: pfc: r8a7790: add mux data for IIC(B) cores
authorWolfram Sang <wsa@sang-engineering.com>
Tue, 25 Mar 2014 18:56:26 +0000 (19:56 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 22 Apr 2014 13:39:41 +0000 (15:39 +0200)
Signed-off-by: Wolfram Sang <wsa@sang-engineering.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/sh-pfc/pfc-r8a7790.c

index 51396210cfad6d5461e0aeadff4c2c7865984c32..d79e0ba365a6e0f9fba30f61e862e21d6261cb4f 100644 (file)
@@ -782,8 +782,8 @@ enum {
        USB1_PWEN_MARK, AUDIO_CLKOUT_D_MARK, USB1_OVC_MARK,
        TCLK1_B_MARK,
 
-       I2C0_SCL_MARK, I2C0_SDA_MARK,
-       I2C3_SCL_MARK, I2C3_SDA_MARK,
+       IIC0_SCL_MARK, IIC0_SDA_MARK, I2C0_SCL_MARK, I2C0_SDA_MARK,
+       IIC3_SCL_MARK, IIC3_SDA_MARK, I2C3_SCL_MARK, I2C3_SDA_MARK,
        PINMUX_MARK_END,
 };
 
@@ -1723,9 +1723,13 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_DATA(IP16_7, USB1_OVC),
        PINMUX_IPSR_MODSEL_DATA(IP16_7, TCLK1_B, SEL_TMU1_1),
 
+       PINMUX_DATA(IIC0_SCL_MARK, FN_SEL_IIC0_0),
+       PINMUX_DATA(IIC0_SDA_MARK, FN_SEL_IIC0_0),
        PINMUX_DATA(I2C0_SCL_MARK, FN_SEL_IIC0_1),
        PINMUX_DATA(I2C0_SDA_MARK, FN_SEL_IIC0_1),
 
+       PINMUX_DATA(IIC3_SCL_MARK, FN_SEL_IICDVFS_0),
+       PINMUX_DATA(IIC3_SDA_MARK, FN_SEL_IICDVFS_0),
        PINMUX_DATA(I2C3_SCL_MARK, FN_SEL_IICDVFS_1),
        PINMUX_DATA(I2C3_SDA_MARK, FN_SEL_IICDVFS_1),
 };
@@ -2134,6 +2138,80 @@ static const unsigned int i2c3_pins[] = {
 static const unsigned int i2c3_mux[] = {
        I2C3_SCL_MARK, I2C3_SDA_MARK,
 };
+/* - IIC0 (I2C4) ------------------------------------------------------------ */
+static const unsigned int iic0_pins[] = {
+       /* SCL, SDA */
+       PIN_A_NUMBER('G', 15), PIN_A_NUMBER('F', 15),
+};
+static const unsigned int iic0_mux[] = {
+       IIC0_SCL_MARK, IIC0_SDA_MARK,
+};
+/* - IIC1 (I2C5) ------------------------------------------------------------ */
+static const unsigned int iic1_pins[] = {
+       /* SCL, SDA */
+       RCAR_GP_PIN(1, 16), RCAR_GP_PIN(1, 17),
+};
+static const unsigned int iic1_mux[] = {
+       IIC1_SCL_MARK, IIC1_SDA_MARK,
+};
+static const unsigned int iic1_b_pins[] = {
+       /* SCL, SDA */
+       RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7),
+};
+static const unsigned int iic1_b_mux[] = {
+       IIC1_SCL_B_MARK, IIC1_SDA_B_MARK,
+};
+static const unsigned int iic1_c_pins[] = {
+       /* SCL, SDA */
+       RCAR_GP_PIN(4, 30), RCAR_GP_PIN(4, 27),
+};
+static const unsigned int iic1_c_mux[] = {
+       IIC1_SCL_C_MARK, IIC1_SDA_C_MARK,
+};
+/* - IIC2 (I2C6) ------------------------------------------------------------ */
+static const unsigned int iic2_pins[] = {
+       /* SCL, SDA */
+       RCAR_GP_PIN(5, 5), RCAR_GP_PIN(5, 6),
+};
+static const unsigned int iic2_mux[] = {
+       IIC2_SCL_MARK, IIC2_SDA_MARK,
+};
+static const unsigned int iic2_b_pins[] = {
+       /* SCL, SDA */
+       RCAR_GP_PIN(4, 0), RCAR_GP_PIN(4, 1),
+};
+static const unsigned int iic2_b_mux[] = {
+       IIC2_SCL_B_MARK, IIC2_SDA_B_MARK,
+};
+static const unsigned int iic2_c_pins[] = {
+       /* SCL, SDA */
+       RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
+};
+static const unsigned int iic2_c_mux[] = {
+       IIC2_SCL_C_MARK, IIC2_SDA_C_MARK,
+};
+static const unsigned int iic2_d_pins[] = {
+       /* SCL, SDA */
+       RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15),
+};
+static const unsigned int iic2_d_mux[] = {
+       IIC2_SCL_D_MARK, IIC2_SDA_D_MARK,
+};
+static const unsigned int iic2_e_pins[] = {
+       /* SCL, SDA */
+       RCAR_GP_PIN(2, 18), RCAR_GP_PIN(2, 19),
+};
+static const unsigned int iic2_e_mux[] = {
+       IIC2_SCL_E_MARK, IIC2_SDA_E_MARK,
+};
+/* - IIC3 (I2C7) ------------------------------------------------------------ */
+static const unsigned int iic3_pins[] = {
+/* SCL, SDA */
+       PIN_A_NUMBER('J', 15), PIN_A_NUMBER('H', 15),
+};
+static const unsigned int iic3_mux[] = {
+       IIC3_SCL_MARK, IIC3_SDA_MARK,
+};
 /* - INTC ------------------------------------------------------------------- */
 static const unsigned int intc_irq0_pins[] = {
        /* IRQ */
@@ -3781,6 +3859,16 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
        SH_PFC_PIN_GROUP(i2c2_d),
        SH_PFC_PIN_GROUP(i2c2_e),
        SH_PFC_PIN_GROUP(i2c3),
+       SH_PFC_PIN_GROUP(iic0),
+       SH_PFC_PIN_GROUP(iic1),
+       SH_PFC_PIN_GROUP(iic1_b),
+       SH_PFC_PIN_GROUP(iic1_c),
+       SH_PFC_PIN_GROUP(iic2),
+       SH_PFC_PIN_GROUP(iic2_b),
+       SH_PFC_PIN_GROUP(iic2_c),
+       SH_PFC_PIN_GROUP(iic2_d),
+       SH_PFC_PIN_GROUP(iic2_e),
+       SH_PFC_PIN_GROUP(iic3),
        SH_PFC_PIN_GROUP(intc_irq0),
        SH_PFC_PIN_GROUP(intc_irq1),
        SH_PFC_PIN_GROUP(intc_irq2),
@@ -4081,6 +4169,28 @@ static const char * const i2c3_groups[] = {
        "i2c3",
 };
 
+static const char * const iic0_groups[] = {
+       "iic0",
+};
+
+static const char * const iic1_groups[] = {
+       "iic1",
+       "iic1_b",
+       "iic1_c",
+};
+
+static const char * const iic2_groups[] = {
+       "iic2",
+       "iic2_b",
+       "iic2_c",
+       "iic2_d",
+       "iic2_e",
+};
+
+static const char * const iic3_groups[] = {
+       "iic3",
+};
+
 static const char * const intc_groups[] = {
        "intc_irq0",
        "intc_irq1",
@@ -4396,6 +4506,10 @@ static const struct sh_pfc_function pinmux_functions[] = {
        SH_PFC_FUNCTION(i2c1),
        SH_PFC_FUNCTION(i2c2),
        SH_PFC_FUNCTION(i2c3),
+       SH_PFC_FUNCTION(iic0),
+       SH_PFC_FUNCTION(iic1),
+       SH_PFC_FUNCTION(iic2),
+       SH_PFC_FUNCTION(iic3),
        SH_PFC_FUNCTION(intc),
        SH_PFC_FUNCTION(mmc0),
        SH_PFC_FUNCTION(mmc1),