sh-pfc: sh73a0: Add FSI pin groups and functions
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Thu, 3 Jan 2013 12:07:05 +0000 (13:07 +0100)
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Fri, 15 Mar 2013 12:34:05 +0000 (13:34 +0100)
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/sh-pfc/pfc-sh73a0.c

index fad11d7a7dde2f90781ed2db41b969b2774aa082..0d35f7b3e5b40ffee42821c560a9cdb6ce9ccaab 100644 (file)
@@ -1846,6 +1846,185 @@ static const struct pinmux_range pinmux_ranges[] = {
        {.begin = 288, .end = 309,},
 };
 
+/* - FSIA ------------------------------------------------------------------- */
+static const unsigned int fsia_mclk_in_pins[] = {
+       /* CK */
+       49,
+};
+static const unsigned int fsia_mclk_in_mux[] = {
+       FSIACK_MARK,
+};
+static const unsigned int fsia_mclk_out_pins[] = {
+       /* OMC */
+       49,
+};
+static const unsigned int fsia_mclk_out_mux[] = {
+       FSIAOMC_MARK,
+};
+static const unsigned int fsia_sclk_in_pins[] = {
+       /* ILR, IBT */
+       50, 51,
+};
+static const unsigned int fsia_sclk_in_mux[] = {
+       FSIAILR_MARK, FSIAIBT_MARK,
+};
+static const unsigned int fsia_sclk_out_pins[] = {
+       /* OLR, OBT */
+       50, 51,
+};
+static const unsigned int fsia_sclk_out_mux[] = {
+       FSIAOLR_MARK, FSIAOBT_MARK,
+};
+static const unsigned int fsia_data_in_pins[] = {
+       /* ISLD */
+       55,
+};
+static const unsigned int fsia_data_in_mux[] = {
+       FSIAISLD_MARK,
+};
+static const unsigned int fsia_data_out_pins[] = {
+       /* OSLD */
+       52,
+};
+static const unsigned int fsia_data_out_mux[] = {
+       FSIAOSLD_MARK,
+};
+static const unsigned int fsia_spdif_pins[] = {
+       /* SPDIF */
+       53,
+};
+static const unsigned int fsia_spdif_mux[] = {
+       FSIASPDIF_MARK,
+};
+/* - FSIB ------------------------------------------------------------------- */
+static const unsigned int fsib_mclk_in_pins[] = {
+       /* CK */
+       54,
+};
+static const unsigned int fsib_mclk_in_mux[] = {
+       FSIBCK_MARK,
+};
+static const unsigned int fsib_mclk_out_pins[] = {
+       /* OMC */
+       54,
+};
+static const unsigned int fsib_mclk_out_mux[] = {
+       FSIBOMC_MARK,
+};
+static const unsigned int fsib_sclk_in_pins[] = {
+       /* ILR, IBT */
+       37, 36,
+};
+static const unsigned int fsib_sclk_in_mux[] = {
+       FSIBILR_MARK, FSIBIBT_MARK,
+};
+static const unsigned int fsib_sclk_out_pins[] = {
+       /* OLR, OBT */
+       37, 36,
+};
+static const unsigned int fsib_sclk_out_mux[] = {
+       FSIBOLR_MARK, FSIBOBT_MARK,
+};
+static const unsigned int fsib_data_in_pins[] = {
+       /* ISLD */
+       39,
+};
+static const unsigned int fsib_data_in_mux[] = {
+       FSIBISLD_MARK,
+};
+static const unsigned int fsib_data_out_pins[] = {
+       /* OSLD */
+       38,
+};
+static const unsigned int fsib_data_out_mux[] = {
+       FSIBOSLD_MARK,
+};
+static const unsigned int fsib_spdif_pins[] = {
+       /* SPDIF */
+       53,
+};
+static const unsigned int fsib_spdif_mux[] = {
+       FSIBSPDIF_MARK,
+};
+/* - FSIC ------------------------------------------------------------------- */
+static const unsigned int fsic_mclk_in_pins[] = {
+       /* CK */
+       54,
+};
+static const unsigned int fsic_mclk_in_mux[] = {
+       FSICCK_MARK,
+};
+static const unsigned int fsic_mclk_out_pins[] = {
+       /* OMC */
+       54,
+};
+static const unsigned int fsic_mclk_out_mux[] = {
+       FSICOMC_MARK,
+};
+static const unsigned int fsic_sclk_in_pins[] = {
+       /* ILR, IBT */
+       46, 45,
+};
+static const unsigned int fsic_sclk_in_mux[] = {
+       FSICILR_MARK, FSICIBT_MARK,
+};
+static const unsigned int fsic_sclk_out_pins[] = {
+       /* OLR, OBT */
+       46, 45,
+};
+static const unsigned int fsic_sclk_out_mux[] = {
+       FSICOLR_MARK, FSICOBT_MARK,
+};
+static const unsigned int fsic_data_in_pins[] = {
+       /* ISLD */
+       48,
+};
+static const unsigned int fsic_data_in_mux[] = {
+       FSICISLD_MARK,
+};
+static const unsigned int fsic_data_out_pins[] = {
+       /* OSLD, OSLDT1, OSLDT2, OSLDT3 */
+       47, 44, 42, 16,
+};
+static const unsigned int fsic_data_out_mux[] = {
+       FSICOSLD_MARK, FSICOSLDT1_MARK, FSICOSLDT2_MARK, FSICOSLDT3_MARK,
+};
+static const unsigned int fsic_spdif_0_pins[] = {
+       /* SPDIF */
+       53,
+};
+static const unsigned int fsic_spdif_0_mux[] = {
+       PORT53_FSICSPDIF_MARK,
+};
+static const unsigned int fsic_spdif_1_pins[] = {
+       /* SPDIF */
+       47,
+};
+static const unsigned int fsic_spdif_1_mux[] = {
+       PORT47_FSICSPDIF_MARK,
+};
+/* - FSID ------------------------------------------------------------------- */
+static const unsigned int fsid_sclk_in_pins[] = {
+       /* ILR, IBT */
+       46, 45,
+};
+static const unsigned int fsid_sclk_in_mux[] = {
+       FSIDILR_MARK, FSIDIBT_MARK,
+};
+static const unsigned int fsid_sclk_out_pins[] = {
+       /* OLR, OBT */
+       46, 45,
+};
+static const unsigned int fsid_sclk_out_mux[] = {
+       FSIDOLR_MARK, FSIDOBT_MARK,
+};
+static const unsigned int fsid_data_in_pins[] = {
+       /* ISLD */
+       48,
+};
+static const unsigned int fsid_data_in_mux[] = {
+       FSIDISLD_MARK,
+};
 /* - I2C2 ------------------------------------------------------------------- */
 static const unsigned int i2c2_0_pins[] = {
        /* SCL, SDA */
@@ -2333,6 +2512,31 @@ static const unsigned int scifb_ctrl_1_mux[] = {
 };
 
 static const struct sh_pfc_pin_group pinmux_groups[] = {
+       SH_PFC_PIN_GROUP(fsia_mclk_in),
+       SH_PFC_PIN_GROUP(fsia_mclk_out),
+       SH_PFC_PIN_GROUP(fsia_sclk_in),
+       SH_PFC_PIN_GROUP(fsia_sclk_out),
+       SH_PFC_PIN_GROUP(fsia_data_in),
+       SH_PFC_PIN_GROUP(fsia_data_out),
+       SH_PFC_PIN_GROUP(fsia_spdif),
+       SH_PFC_PIN_GROUP(fsib_mclk_in),
+       SH_PFC_PIN_GROUP(fsib_mclk_out),
+       SH_PFC_PIN_GROUP(fsib_sclk_in),
+       SH_PFC_PIN_GROUP(fsib_sclk_out),
+       SH_PFC_PIN_GROUP(fsib_data_in),
+       SH_PFC_PIN_GROUP(fsib_data_out),
+       SH_PFC_PIN_GROUP(fsib_spdif),
+       SH_PFC_PIN_GROUP(fsic_mclk_in),
+       SH_PFC_PIN_GROUP(fsic_mclk_out),
+       SH_PFC_PIN_GROUP(fsic_sclk_in),
+       SH_PFC_PIN_GROUP(fsic_sclk_out),
+       SH_PFC_PIN_GROUP(fsic_data_in),
+       SH_PFC_PIN_GROUP(fsic_data_out),
+       SH_PFC_PIN_GROUP(fsic_spdif_0),
+       SH_PFC_PIN_GROUP(fsic_spdif_1),
+       SH_PFC_PIN_GROUP(fsid_sclk_in),
+       SH_PFC_PIN_GROUP(fsid_sclk_out),
+       SH_PFC_PIN_GROUP(fsid_data_in),
        SH_PFC_PIN_GROUP(i2c2_0),
        SH_PFC_PIN_GROUP(i2c2_1),
        SH_PFC_PIN_GROUP(i2c2_2),
@@ -2395,6 +2599,42 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
        SH_PFC_PIN_GROUP(scifb_ctrl_1),
 };
 
+static const char * const fsia_groups[] = {
+       "fsia_mclk_in",
+       "fsia_mclk_out",
+       "fsia_sclk_in",
+       "fsia_sclk_out",
+       "fsia_data_in",
+       "fsia_data_out",
+       "fsia_spdif",
+};
+
+static const char * const fsib_groups[] = {
+       "fsib_mclk_in",
+       "fsib_mclk_out",
+       "fsib_sclk_in",
+       "fsib_sclk_out",
+       "fsib_data_in",
+       "fsib_data_out",
+       "fsib_spdif",
+};
+
+static const char * const fsic_groups[] = {
+       "fsic_mclk_in",
+       "fsic_mclk_out",
+       "fsic_sclk_in",
+       "fsic_sclk_out",
+       "fsic_data_in",
+       "fsic_data_out",
+       "fsic_spdif",
+};
+
+static const char * const fsid_groups[] = {
+       "fsid_sclk_in",
+       "fsid_sclk_out",
+       "fsid_data_in",
+};
+
 static const char * const i2c2_groups[] = {
        "i2c2_0",
        "i2c2_1",
@@ -2495,6 +2735,10 @@ static const char * const scifb_groups[] = {
 };
 
 static const struct sh_pfc_function pinmux_functions[] = {
+       SH_PFC_FUNCTION(fsia),
+       SH_PFC_FUNCTION(fsib),
+       SH_PFC_FUNCTION(fsic),
+       SH_PFC_FUNCTION(fsid),
        SH_PFC_FUNCTION(i2c2),
        SH_PFC_FUNCTION(i2c3),
        SH_PFC_FUNCTION(lcd),