Commit 496da100 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven
Browse files

pinctrl: renesas: Add generic support for resizable buses



The VIN_DATA_PIN_GROUP() macro and vin_data{12,16,} unions are used to
define multiple VIN data groups with different numbers of lanes, while
referring to a single array of data pins, thus saving memory.

However, the same feature would be useful for other resizable buses,
like MMC, SDHI, QSPI, LCD, BSC, ...

Rework the mechanism for generic use:
  - Use the new SH_PFC_PIN_GROUP_SUBSET() helper to remove the need for
    bus-specific unions,
  - Rename VIN_DATA_PIN_GROUP() to BUS_DATA_PIN_GROUP(),
  - Rename the macro parameters to better reflect their purposes,
  - Move the macro up, where it belongs.

Update all individual pin control drivers for the above changes.

Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/cccfcfd01eb8ab7a587b084c4ddbf97293bd7291.1640269757.git.geert+renesas@glider.be
parent 49a7a274
Loading
Loading
Loading
Loading
+55 −63
Original line number Diff line number Diff line
@@ -2047,8 +2047,7 @@ static const unsigned int usb1_mux[] = {
	USB1_OVC_MARK,
};
/* - VIN0 ------------------------------------------------------------------- */
static const union vin_data vin0_data_pins = {
	.data24 = {
static const unsigned int vin0_data_pins[] = {
	/* B */
	RCAR_GP_PIN(5, 20), RCAR_GP_PIN(5, 21),
	RCAR_GP_PIN(5, 22), RCAR_GP_PIN(5, 23),
@@ -2064,10 +2063,8 @@ static const union vin_data vin0_data_pins = {
	RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 14),
	RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 16),
	RCAR_GP_PIN(5, 17), RCAR_GP_PIN(5, 19),
	},
};
static const union vin_data vin0_data_mux = {
	.data24 = {
static const unsigned int vin0_data_mux[] = {
	/* B */
	VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK,
	VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK,
@@ -2083,7 +2080,6 @@ static const union vin_data vin0_data_mux = {
	VI0_R2_MARK, VI0_R3_MARK,
	VI0_R4_MARK, VI0_R5_MARK,
	VI0_R6_MARK, VI0_R7_MARK,
	},
};
static const unsigned int vin0_data18_pins[] = {
	/* B */
@@ -2140,25 +2136,21 @@ static const unsigned int vin0_clk_mux[] = {
	VI0_CLK_MARK,
};
/* - VIN1 ------------------------------------------------------------------- */
static const union vin_data12 vin1_data_pins = {
	.data12 = {
static const unsigned int vin1_data_pins[] = {
	RCAR_GP_PIN(3,  1), RCAR_GP_PIN(3, 2),
	RCAR_GP_PIN(3,  3), RCAR_GP_PIN(3, 4),
	RCAR_GP_PIN(3,  5), RCAR_GP_PIN(3, 6),
	RCAR_GP_PIN(3,  7), RCAR_GP_PIN(3, 8),
	RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14),
	RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16),
	},
};
static const union vin_data12 vin1_data_mux = {
	.data12 = {
static const unsigned int vin1_data_mux[] = {
	VI1_DATA0_MARK, VI1_DATA1_MARK,
	VI1_DATA2_MARK, VI1_DATA3_MARK,
	VI1_DATA4_MARK, VI1_DATA5_MARK,
	VI1_DATA6_MARK, VI1_DATA7_MARK,
	VI1_DATA8_MARK, VI1_DATA9_MARK,
	VI1_DATA10_MARK, VI1_DATA11_MARK,
	},
};
static const unsigned int vin1_sync_pins[] = {
	RCAR_GP_PIN(3, 11), /* HSYNC */
@@ -2303,20 +2295,20 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
	SH_PFC_PIN_GROUP(sdhi2_wp),
	SH_PFC_PIN_GROUP(usb0),
	SH_PFC_PIN_GROUP(usb1),
	VIN_DATA_PIN_GROUP(vin0_data, 24),
	VIN_DATA_PIN_GROUP(vin0_data, 20),
	BUS_DATA_PIN_GROUP(vin0_data, 24),
	BUS_DATA_PIN_GROUP(vin0_data, 20),
	SH_PFC_PIN_GROUP(vin0_data18),
	VIN_DATA_PIN_GROUP(vin0_data, 16),
	VIN_DATA_PIN_GROUP(vin0_data, 12),
	VIN_DATA_PIN_GROUP(vin0_data, 10),
	VIN_DATA_PIN_GROUP(vin0_data, 8),
	BUS_DATA_PIN_GROUP(vin0_data, 16),
	BUS_DATA_PIN_GROUP(vin0_data, 12),
	BUS_DATA_PIN_GROUP(vin0_data, 10),
	BUS_DATA_PIN_GROUP(vin0_data, 8),
	SH_PFC_PIN_GROUP(vin0_sync),
	SH_PFC_PIN_GROUP(vin0_field),
	SH_PFC_PIN_GROUP(vin0_clkenb),
	SH_PFC_PIN_GROUP(vin0_clk),
	VIN_DATA_PIN_GROUP(vin1_data, 12),
	VIN_DATA_PIN_GROUP(vin1_data, 10),
	VIN_DATA_PIN_GROUP(vin1_data, 8),
	BUS_DATA_PIN_GROUP(vin1_data, 12),
	BUS_DATA_PIN_GROUP(vin1_data, 10),
	BUS_DATA_PIN_GROUP(vin1_data, 8),
	SH_PFC_PIN_GROUP(vin1_sync),
	SH_PFC_PIN_GROUP(vin1_field),
	SH_PFC_PIN_GROUP(vin1_clkenb),
+153 −169
Original line number Diff line number Diff line
@@ -3711,8 +3711,7 @@ static const unsigned int usb2_mux[] = {
	USB2_PWEN_MARK, USB2_OVC_MARK,
};
/* - VIN0 ------------------------------------------------------------------- */
static const union vin_data vin0_data_pins = {
	.data24 = {
static const unsigned int vin0_data_pins[] = {
	/* B */
	RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 2),
	RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 4),
@@ -3728,10 +3727,8 @@ static const union vin_data vin0_data_pins = {
	RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
	RCAR_GP_PIN(0, 24), RCAR_GP_PIN(0, 25),
	RCAR_GP_PIN(0, 26), RCAR_GP_PIN(1, 11),
	},
};
static const union vin_data vin0_data_mux = {
	.data24 = {
static const unsigned int vin0_data_mux[] = {
	/* B */
	VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK,
	VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK,
@@ -3747,7 +3744,6 @@ static const union vin_data vin0_data_mux = {
	VI0_R2_MARK, VI0_R3_MARK,
	VI0_R4_MARK, VI0_R5_MARK,
	VI0_R6_MARK, VI0_R7_MARK,
	},
};
static const unsigned int vin0_data18_pins[] = {
	/* B */
@@ -3804,8 +3800,7 @@ static const unsigned int vin0_clk_mux[] = {
	VI0_CLK_MARK,
};
/* - VIN1 ------------------------------------------------------------------- */
static const union vin_data vin1_data_pins = {
	.data24 = {
static const unsigned int vin1_data_pins[] = {
	/* B */
	RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11),
	RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13),
@@ -3821,10 +3816,8 @@ static const union vin_data vin1_data_pins = {
	RCAR_GP_PIN(0, 29), RCAR_GP_PIN(1, 4),
	RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6),
	RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 8),
	},
};
static const union vin_data vin1_data_mux = {
	.data24 = {
static const unsigned int vin1_data_mux[] = {
	/* B */
	VI1_DATA0_VI1_B0_MARK, VI1_DATA1_VI1_B1_MARK,
	VI1_DATA2_VI1_B2_MARK, VI1_DATA3_VI1_B3_MARK,
@@ -3840,7 +3833,6 @@ static const union vin_data vin1_data_mux = {
	VI1_R2_MARK, VI1_R3_MARK,
	VI1_R4_MARK, VI1_R5_MARK,
	VI1_R6_MARK, VI1_R7_MARK,
	},
};
static const unsigned int vin1_data18_pins[] = {
	/* B */
@@ -3870,8 +3862,7 @@ static const unsigned int vin1_data18_mux[] = {
	VI1_R4_MARK, VI1_R5_MARK,
	VI1_R6_MARK, VI1_R7_MARK,
};
static const union vin_data vin1_data_b_pins = {
	.data24 = {
static const unsigned int vin1_data_b_pins[] = {
	/* B */
	RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1),
	RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3),
@@ -3887,10 +3878,8 @@ static const union vin_data vin1_data_b_pins = {
	RCAR_GP_PIN(0, 29), RCAR_GP_PIN(1, 4),
	RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6),
	RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 8),
	},
};
static const union vin_data vin1_data_b_mux = {
	.data24 = {
static const unsigned int vin1_data_b_mux[] = {
	/* B */
	VI1_DATA0_VI1_B0_B_MARK, VI1_DATA1_VI1_B1_B_MARK,
	VI1_DATA2_VI1_B2_B_MARK, VI1_DATA3_VI1_B3_B_MARK,
@@ -3906,7 +3895,6 @@ static const union vin_data vin1_data_b_mux = {
	VI1_R2_B_MARK, VI1_R3_B_MARK,
	VI1_R4_B_MARK, VI1_R5_B_MARK,
	VI1_R6_B_MARK, VI1_R7_B_MARK,
	},
};
static const unsigned int vin1_data18_b_pins[] = {
	/* B */
@@ -3989,8 +3977,7 @@ static const unsigned int vin1_clk_b_mux[] = {
	VI1_CLK_B_MARK,
};
/* - VIN2 ----------------------------------------------------------------- */
static const union vin_data vin2_data_pins = {
	.data24 = {
static const unsigned int vin2_data_pins[] = {
	/* B */
	RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9),
	RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11),
@@ -4006,10 +3993,8 @@ static const union vin_data vin2_data_pins = {
	RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15),
	RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 20),
	RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 24),
	},
};
static const union vin_data vin2_data_mux = {
	.data24 = {
static const unsigned int vin2_data_mux[] = {
	/* B */
	VI2_DATA0_VI2_B0_MARK, VI2_DATA1_VI2_B1_MARK,
	VI2_DATA2_VI2_B2_MARK, VI2_DATA3_VI2_B3_MARK,
@@ -4025,7 +4010,6 @@ static const union vin_data vin2_data_mux = {
	VI2_R2_MARK, VI2_R3_MARK,
	VI2_R4_MARK, VI2_R5_MARK,
	VI2_R6_MARK, VI2_R7_MARK,
	},
};
static const unsigned int vin2_data18_pins[] = {
	/* B */
@@ -4400,34 +4384,34 @@ static const struct {
		SH_PFC_PIN_GROUP(usb1),
		SH_PFC_PIN_GROUP(usb1_pwen),
		SH_PFC_PIN_GROUP(usb2),
		VIN_DATA_PIN_GROUP(vin0_data, 24),
		VIN_DATA_PIN_GROUP(vin0_data, 20),
		BUS_DATA_PIN_GROUP(vin0_data, 24),
		BUS_DATA_PIN_GROUP(vin0_data, 20),
		SH_PFC_PIN_GROUP(vin0_data18),
		VIN_DATA_PIN_GROUP(vin0_data, 16),
		VIN_DATA_PIN_GROUP(vin0_data, 12),
		VIN_DATA_PIN_GROUP(vin0_data, 10),
		VIN_DATA_PIN_GROUP(vin0_data, 8),
		VIN_DATA_PIN_GROUP(vin0_data, 4),
		BUS_DATA_PIN_GROUP(vin0_data, 16),
		BUS_DATA_PIN_GROUP(vin0_data, 12),
		BUS_DATA_PIN_GROUP(vin0_data, 10),
		BUS_DATA_PIN_GROUP(vin0_data, 8),
		BUS_DATA_PIN_GROUP(vin0_data, 4),
		SH_PFC_PIN_GROUP(vin0_sync),
		SH_PFC_PIN_GROUP(vin0_field),
		SH_PFC_PIN_GROUP(vin0_clkenb),
		SH_PFC_PIN_GROUP(vin0_clk),
		VIN_DATA_PIN_GROUP(vin1_data, 24),
		VIN_DATA_PIN_GROUP(vin1_data, 20),
		BUS_DATA_PIN_GROUP(vin1_data, 24),
		BUS_DATA_PIN_GROUP(vin1_data, 20),
		SH_PFC_PIN_GROUP(vin1_data18),
		VIN_DATA_PIN_GROUP(vin1_data, 16),
		VIN_DATA_PIN_GROUP(vin1_data, 12),
		VIN_DATA_PIN_GROUP(vin1_data, 10),
		VIN_DATA_PIN_GROUP(vin1_data, 8),
		VIN_DATA_PIN_GROUP(vin1_data, 4),
		VIN_DATA_PIN_GROUP(vin1_data, 24, _b),
		VIN_DATA_PIN_GROUP(vin1_data, 20, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 16),
		BUS_DATA_PIN_GROUP(vin1_data, 12),
		BUS_DATA_PIN_GROUP(vin1_data, 10),
		BUS_DATA_PIN_GROUP(vin1_data, 8),
		BUS_DATA_PIN_GROUP(vin1_data, 4),
		BUS_DATA_PIN_GROUP(vin1_data, 24, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 20, _b),
		SH_PFC_PIN_GROUP(vin1_data18_b),
		VIN_DATA_PIN_GROUP(vin1_data, 16, _b),
		VIN_DATA_PIN_GROUP(vin1_data, 12, _b),
		VIN_DATA_PIN_GROUP(vin1_data, 10, _b),
		VIN_DATA_PIN_GROUP(vin1_data, 8, _b),
		VIN_DATA_PIN_GROUP(vin1_data, 4, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 16, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 12, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 10, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 8, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 4, _b),
		SH_PFC_PIN_GROUP(vin1_sync),
		SH_PFC_PIN_GROUP(vin1_sync_b),
		SH_PFC_PIN_GROUP(vin1_field),
@@ -4436,11 +4420,11 @@ static const struct {
		SH_PFC_PIN_GROUP(vin1_clkenb_b),
		SH_PFC_PIN_GROUP(vin1_clk),
		SH_PFC_PIN_GROUP(vin1_clk_b),
		VIN_DATA_PIN_GROUP(vin2_data, 24),
		BUS_DATA_PIN_GROUP(vin2_data, 24),
		SH_PFC_PIN_GROUP(vin2_data18),
		VIN_DATA_PIN_GROUP(vin2_data, 16),
		VIN_DATA_PIN_GROUP(vin2_data, 8),
		VIN_DATA_PIN_GROUP(vin2_data, 4),
		BUS_DATA_PIN_GROUP(vin2_data, 16),
		BUS_DATA_PIN_GROUP(vin2_data, 8),
		BUS_DATA_PIN_GROUP(vin2_data, 4),
		SH_PFC_PIN_GROUP(vin2_g8),
		SH_PFC_PIN_GROUP(vin2_sync),
		SH_PFC_PIN_GROUP(vin2_field),
+76 −84
Original line number Diff line number Diff line
@@ -4225,8 +4225,7 @@ static const unsigned int usb1_mux[] = {
	USB1_OVC_MARK,
};
/* - VIN0 ------------------------------------------------------------------- */
static const union vin_data vin0_data_pins = {
	.data24 = {
static const unsigned int vin0_data_pins[] = {
	/* B */
	RCAR_GP_PIN(4, 5), RCAR_GP_PIN(4, 6),
	RCAR_GP_PIN(4, 7), RCAR_GP_PIN(4, 8),
@@ -4242,10 +4241,8 @@ static const union vin_data vin0_data_pins = {
	RCAR_GP_PIN(4, 23), RCAR_GP_PIN(4, 24),
	RCAR_GP_PIN(4, 25), RCAR_GP_PIN(4, 26),
	RCAR_GP_PIN(4, 27), RCAR_GP_PIN(4, 28),
	},
};
static const union vin_data vin0_data_mux = {
	.data24 = {
static const unsigned int vin0_data_mux[] = {
	/* B */
	VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK,
	VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK,
@@ -4261,7 +4258,6 @@ static const union vin_data vin0_data_mux = {
	VI0_R2_MARK, VI0_R3_MARK,
	VI0_R4_MARK, VI0_R5_MARK,
	VI0_R6_MARK, VI0_R7_MARK,
	},
};
static const unsigned int vin0_data18_pins[] = {
	/* B */
@@ -4356,8 +4352,7 @@ static const unsigned int vin1_clk_pins[] = {
static const unsigned int vin1_clk_mux[] = {
	VI1_CLK_MARK,
};
static const union vin_data vin1_data_b_pins = {
	.data24 = {
static const unsigned int vin1_data_b_pins[] = {
	/* B */
	RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1),
	RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9),
@@ -4373,10 +4368,8 @@ static const union vin_data vin1_data_b_pins = {
	RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 16),
	RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18),
	RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20),
	},
};
static const union vin_data vin1_data_b_mux = {
	.data24 = {
static const unsigned int vin1_data_b_mux[] = {
	/* B */
	VI1_DATA0_B_MARK, VI1_DATA1_B_MARK,
	VI1_DATA2_B_MARK, VI1_DATA3_B_MARK,
@@ -4392,7 +4385,6 @@ static const union vin_data vin1_data_b_mux = {
	VI1_R2_B_MARK, VI1_R3_B_MARK,
	VI1_R4_B_MARK, VI1_R5_B_MARK,
	VI1_R6_B_MARK, VI1_R7_B_MARK,
	},
};
static const unsigned int vin1_data18_b_pins[] = {
	/* B */
@@ -4809,13 +4801,13 @@ static const struct {
		SH_PFC_PIN_GROUP(tpu_to3),
		SH_PFC_PIN_GROUP(usb0),
		SH_PFC_PIN_GROUP(usb1),
		VIN_DATA_PIN_GROUP(vin0_data, 24),
		VIN_DATA_PIN_GROUP(vin0_data, 20),
		BUS_DATA_PIN_GROUP(vin0_data, 24),
		BUS_DATA_PIN_GROUP(vin0_data, 20),
		SH_PFC_PIN_GROUP(vin0_data18),
		VIN_DATA_PIN_GROUP(vin0_data, 16),
		VIN_DATA_PIN_GROUP(vin0_data, 12),
		VIN_DATA_PIN_GROUP(vin0_data, 10),
		VIN_DATA_PIN_GROUP(vin0_data, 8),
		BUS_DATA_PIN_GROUP(vin0_data, 16),
		BUS_DATA_PIN_GROUP(vin0_data, 12),
		BUS_DATA_PIN_GROUP(vin0_data, 10),
		BUS_DATA_PIN_GROUP(vin0_data, 8),
		SH_PFC_PIN_GROUP(vin0_sync),
		SH_PFC_PIN_GROUP(vin0_field),
		SH_PFC_PIN_GROUP(vin0_clkenb),
@@ -4825,13 +4817,13 @@ static const struct {
		SH_PFC_PIN_GROUP(vin1_field),
		SH_PFC_PIN_GROUP(vin1_clkenb),
		SH_PFC_PIN_GROUP(vin1_clk),
		VIN_DATA_PIN_GROUP(vin1_data, 24, _b),
		VIN_DATA_PIN_GROUP(vin1_data, 20, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 24, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 20, _b),
		SH_PFC_PIN_GROUP(vin1_data18_b),
		VIN_DATA_PIN_GROUP(vin1_data, 16, _b),
		VIN_DATA_PIN_GROUP(vin1_data, 12, _b),
		VIN_DATA_PIN_GROUP(vin1_data, 10, _b),
		VIN_DATA_PIN_GROUP(vin1_data, 8, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 16, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 12, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 10, _b),
		BUS_DATA_PIN_GROUP(vin1_data, 8, _b),
		SH_PFC_PIN_GROUP(vin1_sync_b),
		SH_PFC_PIN_GROUP(vin1_field_b),
		SH_PFC_PIN_GROUP(vin1_clkenb_b),
+192 −220
Original line number Diff line number Diff line
@@ -1243,8 +1243,7 @@ static const unsigned int sdhi0_wp_mux[] = {
	SD0_WP_MARK,
};
/* - VIN0 ------------------------------------------------------------------- */
static const union vin_data vin0_data_pins = {
	.data24 = {
static const unsigned int vin0_data_pins[] = {
	/* B */
	RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5),
	RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 7),
@@ -1260,10 +1259,8 @@ static const union vin_data vin0_data_pins = {
	RCAR_GP_PIN(8, 7), RCAR_GP_PIN(8, 8),
	RCAR_GP_PIN(8, 9), RCAR_GP_PIN(8, 10),
	RCAR_GP_PIN(8, 11), RCAR_GP_PIN(8, 12),
	},
};
static const union vin_data vin0_data_mux = {
	.data24 = {
static const unsigned int vin0_data_mux[] = {
	/* B */
	VI0_D0_B0_C0_MARK, VI0_D1_B1_C1_MARK,
	VI0_D2_B2_C2_MARK, VI0_D3_B3_C3_MARK,
@@ -1279,7 +1276,6 @@ static const union vin_data vin0_data_mux = {
	VI0_D18_R2_MARK, VI0_D19_R3_MARK,
	VI0_D20_R4_MARK, VI0_D21_R5_MARK,
	VI0_D22_R6_MARK, VI0_D23_R7_MARK,
	},
};
static const unsigned int vin0_data18_pins[] = {
	/* B */
@@ -1335,8 +1331,7 @@ static const unsigned int vin0_clk_mux[] = {
	VI0_CLK_MARK,
};
/* - VIN1 ------------------------------------------------------------------- */
static const union vin_data vin1_data_pins = {
	.data24 = {
static const unsigned int vin1_data_pins[] = {
	/* B */
	RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5),
	RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7),
@@ -1352,10 +1347,8 @@ static const union vin_data vin1_data_pins = {
	RCAR_GP_PIN(9, 7), RCAR_GP_PIN(9, 8),
	RCAR_GP_PIN(9, 9), RCAR_GP_PIN(9, 10),
	RCAR_GP_PIN(9, 11), RCAR_GP_PIN(9, 12),
	},
};
static const union vin_data vin1_data_mux = {
	.data24 = {
static const unsigned int vin1_data_mux[] = {
	/* B */
	VI1_D0_B0_C0_MARK, VI1_D1_B1_C1_MARK,
	VI1_D2_B2_C2_MARK, VI1_D3_B3_C3_MARK,
@@ -1371,7 +1364,6 @@ static const union vin_data vin1_data_mux = {
	VI1_D18_R2_MARK, VI1_D19_R3_MARK,
	VI1_D20_R4_MARK, VI1_D21_R5_MARK,
	VI1_D22_R6_MARK, VI1_D23_R7_MARK,
	},
};
static const unsigned int vin1_data18_pins[] = {
	/* B */
@@ -1401,8 +1393,7 @@ static const unsigned int vin1_data18_mux[] = {
	VI1_D20_R4_MARK, VI1_D21_R5_MARK,
	VI1_D22_R6_MARK, VI1_D23_R7_MARK,
};
static const union vin_data vin1_data_b_pins = {
	.data24 = {
static const unsigned int vin1_data_b_pins[] = {
	/* B */
	RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5),
	RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7),
@@ -1418,10 +1409,8 @@ static const union vin_data vin1_data_b_pins = {
	RCAR_GP_PIN(9, 7), RCAR_GP_PIN(9, 8),
	RCAR_GP_PIN(9, 9), RCAR_GP_PIN(9, 10),
	RCAR_GP_PIN(9, 11), RCAR_GP_PIN(9, 12),
	},
};
static const union vin_data vin1_data_b_mux = {
	.data24 = {
static const unsigned int vin1_data_b_mux[] = {
	/* B */
	VI1_D0_B0_C0_MARK, VI1_D1_B1_C1_MARK,
	VI1_D2_B2_C2_MARK, VI1_D3_B3_C3_MARK,
@@ -1437,7 +1426,6 @@ static const union vin_data vin1_data_b_mux = {
	VI1_D18_R2_MARK, VI1_D19_R3_MARK,
	VI1_D20_R4_MARK, VI1_D21_R5_MARK,
	VI1_D22_R6_MARK, VI1_D23_R7_MARK,
	},
};
static const unsigned int vin1_data18_b_pins[] = {
	/* B */
@@ -1493,8 +1481,7 @@ static const unsigned int vin1_clk_mux[] = {
	VI1_CLK_MARK,
};
/* - VIN2 ------------------------------------------------------------------- */
static const union vin_data16 vin2_data_pins = {
	.data16 = {
static const unsigned int vin2_data_pins[] = {
	RCAR_GP_PIN(6, 4), RCAR_GP_PIN(6, 5),
	RCAR_GP_PIN(6, 6), RCAR_GP_PIN(6, 7),
	RCAR_GP_PIN(6, 8), RCAR_GP_PIN(6, 9),
@@ -1503,10 +1490,8 @@ static const union vin_data16 vin2_data_pins = {
	RCAR_GP_PIN(6, 14), RCAR_GP_PIN(6, 15),
	RCAR_GP_PIN(8, 9), RCAR_GP_PIN(8, 10),
	RCAR_GP_PIN(8, 11), RCAR_GP_PIN(8, 12),
	},
};
static const union vin_data16 vin2_data_mux = {
	.data16 = {
static const unsigned int vin2_data_mux[] = {
	VI2_D0_C0_MARK, VI2_D1_C1_MARK,
	VI2_D2_C2_MARK,	VI2_D3_C3_MARK,
	VI2_D4_C4_MARK, VI2_D5_C5_MARK,
@@ -1515,7 +1500,6 @@ static const union vin_data16 vin2_data_mux = {
	VI2_D10_Y2_MARK, VI2_D11_Y3_MARK,
	VI2_D12_Y4_MARK, VI2_D13_Y5_MARK,
	VI2_D14_Y6_MARK, VI2_D15_Y7_MARK,
	},
};
static const unsigned int vin2_sync_pins[] = {
	/* HSYNC#, VSYNC# */
@@ -1543,8 +1527,7 @@ static const unsigned int vin2_clk_mux[] = {
	VI2_CLK_MARK,
};
/* - VIN3 ------------------------------------------------------------------- */
static const union vin_data16 vin3_data_pins = {
	.data16 = {
static const unsigned int vin3_data_pins[] = {
	RCAR_GP_PIN(7, 4), RCAR_GP_PIN(7, 5),
	RCAR_GP_PIN(7, 6), RCAR_GP_PIN(7, 7),
	RCAR_GP_PIN(7, 8), RCAR_GP_PIN(7, 9),
@@ -1553,10 +1536,8 @@ static const union vin_data16 vin3_data_pins = {
	RCAR_GP_PIN(7, 14), RCAR_GP_PIN(7, 15),
	RCAR_GP_PIN(8, 13), RCAR_GP_PIN(8, 14),
	RCAR_GP_PIN(8, 15), RCAR_GP_PIN(8, 16),
	},
};
static const union vin_data16 vin3_data_mux = {
	.data16 = {
static const unsigned int vin3_data_mux[] = {
	VI3_D0_C0_MARK, VI3_D1_C1_MARK,
	VI3_D2_C2_MARK,	VI3_D3_C3_MARK,
	VI3_D4_C4_MARK, VI3_D5_C5_MARK,
@@ -1565,7 +1546,6 @@ static const union vin_data16 vin3_data_mux = {
	VI3_D10_Y2_MARK, VI3_D11_Y3_MARK,
	VI3_D12_Y4_MARK, VI3_D13_Y5_MARK,
	VI3_D14_Y6_MARK, VI3_D15_Y7_MARK,
	},
};
static const unsigned int vin3_sync_pins[] = {
	/* HSYNC#, VSYNC# */
@@ -1593,25 +1573,21 @@ static const unsigned int vin3_clk_mux[] = {
	VI3_CLK_MARK,
};
/* - VIN4 ------------------------------------------------------------------- */
static const union vin_data12 vin4_data_pins = {
	.data12 = {
static const unsigned int vin4_data_pins[] = {
	RCAR_GP_PIN(8, 4), RCAR_GP_PIN(8, 5),
	RCAR_GP_PIN(8, 6), RCAR_GP_PIN(8, 7),
	RCAR_GP_PIN(8, 8), RCAR_GP_PIN(8, 9),
	RCAR_GP_PIN(8, 10), RCAR_GP_PIN(8, 11),
	RCAR_GP_PIN(8, 12), RCAR_GP_PIN(8, 13),
	RCAR_GP_PIN(8, 14), RCAR_GP_PIN(8, 15),
	},
};
static const union vin_data12 vin4_data_mux = {
	.data12 = {
static const unsigned int vin4_data_mux[] = {
	VI4_D0_C0_MARK, VI4_D1_C1_MARK,
	VI4_D2_C2_MARK, VI4_D3_C3_MARK,
	VI4_D4_C4_MARK, VI4_D5_C5_MARK,
	VI4_D6_C6_MARK, VI4_D7_C7_MARK,
	VI4_D8_Y0_MARK,	VI4_D9_Y1_MARK,
	VI4_D10_Y2_MARK, VI4_D11_Y3_MARK,
	},
};
static const unsigned int vin4_sync_pins[] = {
	 /* HSYNC#, VSYNC# */
@@ -1639,25 +1615,21 @@ static const unsigned int vin4_clk_mux[] = {
	VI4_CLK_MARK,
};
/* - VIN5 ------------------------------------------------------------------- */
static const union vin_data12 vin5_data_pins = {
	.data12 = {
static const unsigned int vin5_data_pins[] = {
	RCAR_GP_PIN(9, 4), RCAR_GP_PIN(9, 5),
	RCAR_GP_PIN(9, 6), RCAR_GP_PIN(9, 7),
	RCAR_GP_PIN(9, 8), RCAR_GP_PIN(9, 9),
	RCAR_GP_PIN(9, 10), RCAR_GP_PIN(9, 11),
	RCAR_GP_PIN(9, 12), RCAR_GP_PIN(9, 13),
	RCAR_GP_PIN(9, 14), RCAR_GP_PIN(9, 15),
	},
};
static const union vin_data12 vin5_data_mux = {
	.data12 = {
static const unsigned int vin5_data_mux[] = {
	VI5_D0_C0_MARK, VI5_D1_C1_MARK,
	VI5_D2_C2_MARK, VI5_D3_C3_MARK,
	VI5_D4_C4_MARK, VI5_D5_C5_MARK,
	VI5_D6_C6_MARK, VI5_D7_C7_MARK,
	VI5_D8_Y0_MARK, VI5_D9_Y1_MARK,
	VI5_D10_Y2_MARK, VI5_D11_Y3_MARK,
	},
};
static const unsigned int vin5_sync_pins[] = {
	/* HSYNC#, VSYNC# */
@@ -1745,58 +1717,58 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
	SH_PFC_PIN_GROUP(sdhi0_ctrl),
	SH_PFC_PIN_GROUP(sdhi0_cd),
	SH_PFC_PIN_GROUP(sdhi0_wp),
	VIN_DATA_PIN_GROUP(vin0_data, 24),
	VIN_DATA_PIN_GROUP(vin0_data, 20),
	BUS_DATA_PIN_GROUP(vin0_data, 24),
	BUS_DATA_PIN_GROUP(vin0_data, 20),
	SH_PFC_PIN_GROUP(vin0_data18),
	VIN_DATA_PIN_GROUP(vin0_data, 16),
	VIN_DATA_PIN_GROUP(vin0_data, 12),
	VIN_DATA_PIN_GROUP(vin0_data, 10),
	VIN_DATA_PIN_GROUP(vin0_data, 8),
	BUS_DATA_PIN_GROUP(vin0_data, 16),
	BUS_DATA_PIN_GROUP(vin0_data, 12),
	BUS_DATA_PIN_GROUP(vin0_data, 10),
	BUS_DATA_PIN_GROUP(vin0_data, 8),
	SH_PFC_PIN_GROUP(vin0_sync),
	SH_PFC_PIN_GROUP(vin0_field),
	SH_PFC_PIN_GROUP(vin0_clkenb),
	SH_PFC_PIN_GROUP(vin0_clk),
	VIN_DATA_PIN_GROUP(vin1_data, 24),
	VIN_DATA_PIN_GROUP(vin1_data, 20),
	BUS_DATA_PIN_GROUP(vin1_data, 24),
	BUS_DATA_PIN_GROUP(vin1_data, 20),
	SH_PFC_PIN_GROUP(vin1_data18),
	VIN_DATA_PIN_GROUP(vin1_data, 16),
	VIN_DATA_PIN_GROUP(vin1_data, 12),
	VIN_DATA_PIN_GROUP(vin1_data, 10),
	VIN_DATA_PIN_GROUP(vin1_data, 8),
	VIN_DATA_PIN_GROUP(vin1_data, 24, _b),
	VIN_DATA_PIN_GROUP(vin1_data, 20, _b),
	BUS_DATA_PIN_GROUP(vin1_data, 16),
	BUS_DATA_PIN_GROUP(vin1_data, 12),
	BUS_DATA_PIN_GROUP(vin1_data, 10),
	BUS_DATA_PIN_GROUP(vin1_data, 8),
	BUS_DATA_PIN_GROUP(vin1_data, 24, _b),
	BUS_DATA_PIN_GROUP(vin1_data, 20, _b),
	SH_PFC_PIN_GROUP(vin1_data18_b),
	VIN_DATA_PIN_GROUP(vin1_data, 16, _b),
	BUS_DATA_PIN_GROUP(vin1_data, 16, _b),
	SH_PFC_PIN_GROUP(vin1_sync),
	SH_PFC_PIN_GROUP(vin1_field),
	SH_PFC_PIN_GROUP(vin1_clkenb),
	SH_PFC_PIN_GROUP(vin1_clk),
	VIN_DATA_PIN_GROUP(vin2_data, 16),
	VIN_DATA_PIN_GROUP(vin2_data, 12),
	VIN_DATA_PIN_GROUP(vin2_data, 10),
	VIN_DATA_PIN_GROUP(vin2_data, 8),
	BUS_DATA_PIN_GROUP(vin2_data, 16),
	BUS_DATA_PIN_GROUP(vin2_data, 12),
	BUS_DATA_PIN_GROUP(vin2_data, 10),
	BUS_DATA_PIN_GROUP(vin2_data, 8),
	SH_PFC_PIN_GROUP(vin2_sync),
	SH_PFC_PIN_GROUP(vin2_field),
	SH_PFC_PIN_GROUP(vin2_clkenb),
	SH_PFC_PIN_GROUP(vin2_clk),
	VIN_DATA_PIN_GROUP(vin3_data, 16),
	VIN_DATA_PIN_GROUP(vin3_data, 12),
	VIN_DATA_PIN_GROUP(vin3_data, 10),
	VIN_DATA_PIN_GROUP(vin3_data, 8),
	BUS_DATA_PIN_GROUP(vin3_data, 16),
	BUS_DATA_PIN_GROUP(vin3_data, 12),
	BUS_DATA_PIN_GROUP(vin3_data, 10),
	BUS_DATA_PIN_GROUP(vin3_data, 8),
	SH_PFC_PIN_GROUP(vin3_sync),
	SH_PFC_PIN_GROUP(vin3_field),
	SH_PFC_PIN_GROUP(vin3_clkenb),
	SH_PFC_PIN_GROUP(vin3_clk),
	VIN_DATA_PIN_GROUP(vin4_data, 12),
	VIN_DATA_PIN_GROUP(vin4_data, 10),
	VIN_DATA_PIN_GROUP(vin4_data, 8),
	BUS_DATA_PIN_GROUP(vin4_data, 12),
	BUS_DATA_PIN_GROUP(vin4_data, 10),
	BUS_DATA_PIN_GROUP(vin4_data, 8),
	SH_PFC_PIN_GROUP(vin4_sync),
	SH_PFC_PIN_GROUP(vin4_field),
	SH_PFC_PIN_GROUP(vin4_clkenb),
	SH_PFC_PIN_GROUP(vin4_clk),
	VIN_DATA_PIN_GROUP(vin5_data, 12),
	VIN_DATA_PIN_GROUP(vin5_data, 10),
	VIN_DATA_PIN_GROUP(vin5_data, 8),
	BUS_DATA_PIN_GROUP(vin5_data, 12),
	BUS_DATA_PIN_GROUP(vin5_data, 10),
	BUS_DATA_PIN_GROUP(vin5_data, 8),
	SH_PFC_PIN_GROUP(vin5_sync),
	SH_PFC_PIN_GROUP(vin5_field),
	SH_PFC_PIN_GROUP(vin5_clkenb),
+55 −63
Original line number Diff line number Diff line
@@ -3673,8 +3673,7 @@ static const unsigned int usb1_mux[] = {
	USB1_OVC_MARK,
};
/* - VIN0 ------------------------------------------------------------------- */
static const union vin_data vin0_data_pins = {
	.data24 = {
static const unsigned int vin0_data_pins[] = {
	/* B */
	RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 2),
	RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4),
@@ -3690,10 +3689,8 @@ static const union vin_data vin0_data_pins = {
	RCAR_GP_PIN(3, 23), RCAR_GP_PIN(3, 24),
	RCAR_GP_PIN(3, 25), RCAR_GP_PIN(3, 26),
	RCAR_GP_PIN(3, 27), RCAR_GP_PIN(3, 28),
	},
};
static const union vin_data vin0_data_mux = {
	.data24 = {
static const unsigned int vin0_data_mux[] = {
	/* B */
	VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK,
	VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK,
@@ -3709,7 +3706,6 @@ static const union vin_data vin0_data_mux = {
	VI0_R2_MARK, VI0_R3_MARK,
	VI0_R4_MARK, VI0_R5_MARK,
	VI0_R6_MARK, VI0_R7_MARK,
	},
};
static const unsigned int vin0_data18_pins[] = {
	/* B */
@@ -3766,25 +3762,21 @@ static const unsigned int vin0_clk_mux[] = {
	VI0_CLK_MARK,
};
/* - VIN1 ------------------------------------------------------------------- */
static const union vin_data12 vin1_data_pins = {
	.data12 = {
static const unsigned int vin1_data_pins[] = {
	RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13),
	RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15),
	RCAR_GP_PIN(5, 16), RCAR_GP_PIN(5, 17),
	RCAR_GP_PIN(5, 18), RCAR_GP_PIN(5, 19),
	RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 11),
	RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13),
	},
};
static const union vin_data12 vin1_data_mux = {
	.data12 = {
static const unsigned int vin1_data_mux[] = {
	VI1_DATA0_MARK, VI1_DATA1_MARK,
	VI1_DATA2_MARK, VI1_DATA3_MARK,
	VI1_DATA4_MARK, VI1_DATA5_MARK,
	VI1_DATA6_MARK, VI1_DATA7_MARK,
	VI1_DATA8_MARK, VI1_DATA9_MARK,
	VI1_DATA10_MARK, VI1_DATA11_MARK,
	},
};
static const unsigned int vin1_sync_pins[] = {
	RCAR_GP_PIN(5, 22), /* HSYNC */
@@ -4105,20 +4097,20 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
	SH_PFC_PIN_GROUP(tpu_to3_c),
	SH_PFC_PIN_GROUP(usb0),
	SH_PFC_PIN_GROUP(usb1),
	VIN_DATA_PIN_GROUP(vin0_data, 24),
	VIN_DATA_PIN_GROUP(vin0_data, 20),
	BUS_DATA_PIN_GROUP(vin0_data, 24),
	BUS_DATA_PIN_GROUP(vin0_data, 20),
	SH_PFC_PIN_GROUP(vin0_data18),
	VIN_DATA_PIN_GROUP(vin0_data, 16),
	VIN_DATA_PIN_GROUP(vin0_data, 12),
	VIN_DATA_PIN_GROUP(vin0_data, 10),
	VIN_DATA_PIN_GROUP(vin0_data, 8),
	BUS_DATA_PIN_GROUP(vin0_data, 16),
	BUS_DATA_PIN_GROUP(vin0_data, 12),
	BUS_DATA_PIN_GROUP(vin0_data, 10),
	BUS_DATA_PIN_GROUP(vin0_data, 8),
	SH_PFC_PIN_GROUP(vin0_sync),
	SH_PFC_PIN_GROUP(vin0_field),
	SH_PFC_PIN_GROUP(vin0_clkenb),
	SH_PFC_PIN_GROUP(vin0_clk),
	VIN_DATA_PIN_GROUP(vin1_data, 12),
	VIN_DATA_PIN_GROUP(vin1_data, 10),
	VIN_DATA_PIN_GROUP(vin1_data, 8),
	BUS_DATA_PIN_GROUP(vin1_data, 12),
	BUS_DATA_PIN_GROUP(vin1_data, 10),
	BUS_DATA_PIN_GROUP(vin1_data, 8),
	SH_PFC_PIN_GROUP(vin1_sync),
	SH_PFC_PIN_GROUP(vin1_field),
	SH_PFC_PIN_GROUP(vin1_clkenb),
Loading