Commit c6868f7c authored by Linus Walleij's avatar Linus Walleij
Browse files

Merge tag 'sh-pfc-for-v5.1-tag1' of...

Merge tag 'sh-pfc-for-v5.1-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel

pinctrl: sh-pfc: Updates for v5.1

  - Add TMU pin groups on R-Car E3,
  - Miscellaneous fixes and cleanups.
parents 4f41e66c 8e32e881
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1264,8 +1264,8 @@ static const struct sh_pfc_pin pinmux_pins[] = {

	/* Pins not associated with a GPIO port */
	SH_PFC_PIN_NAMED(3, 20, C20),
	SH_PFC_PIN_NAMED(20, 1, T1),
	SH_PFC_PIN_NAMED(25, 2, Y2),
	SH_PFC_PIN_NAMED(1, 20, A20),
	SH_PFC_PIN_NAMED(2, 25, B25),
};

/* - macro */
@@ -1400,7 +1400,7 @@ HSPI_PFC_DAT(hspi1_a, HSPI_CLK1_A, HSPI_CS1_A,
			HSPI_RX1_A,		HSPI_TX1_A);

HSPI_PFC_PIN(hspi1_b,	RCAR_GP_PIN(0, 27),	RCAR_GP_PIN(0, 26),
			PIN_NUMBER(20, 1),	PIN_NUMBER(25, 2));
			PIN_NUMBER(1, 20),	PIN_NUMBER(2, 25));
HSPI_PFC_DAT(hspi1_b,	HSPI_CLK1_B,		HSPI_CS1_B,
			HSPI_RX1_B,		HSPI_TX1_B);

+17 −0
Original line number Diff line number Diff line
@@ -10,7 +10,9 @@

#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/sys_soc.h>

#include "core.h"
#include "sh_pfc.h"

/*
@@ -5691,7 +5693,22 @@ static int r8a7790_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *poc
	return 31 - (pin & 0x1f);
}

static const struct soc_device_attribute r8a7790_tdsel[] = {
	{ .soc_id = "r8a7790", .revision = "ES1.0" },
	{ /* sentinel */ }
};

static int r8a7790_pinmux_soc_init(struct sh_pfc *pfc)
{
	/* Initialize TDSEL on old revisions */
	if (soc_device_match(r8a7790_tdsel))
		sh_pfc_write(pfc, 0xe6060088, 0x00155554);

	return 0;
}

static const struct sh_pfc_soc_operations r8a7790_pinmux_ops = {
	.init = r8a7790_pinmux_soc_init,
	.pin_to_pocctrl = r8a7790_pin_to_pocctrl,
};

+34 −34
Original line number Diff line number Diff line
@@ -4317,7 +4317,7 @@ static const unsigned int vin1_clk_pins[] = {
static const unsigned int vin1_clk_mux[] = {
	VI1_CLK_MARK,
};
static const union vin_data vin1_b_data_pins = {
static const union vin_data vin1_data_b_pins = {
	.data24 = {
		/* B */
		RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1),
@@ -4336,7 +4336,7 @@ static const union vin_data vin1_b_data_pins = {
		RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20),
	},
};
static const union vin_data vin1_b_data_mux = {
static const union vin_data vin1_data_b_mux = {
	.data24 = {
		/* B */
		VI1_DATA0_B_MARK, VI1_DATA1_B_MARK,
@@ -4355,7 +4355,7 @@ static const union vin_data vin1_b_data_mux = {
		VI1_R6_B_MARK, VI1_R7_B_MARK,
	},
};
static const unsigned int vin1_b_data18_pins[] = {
static const unsigned int vin1_data18_b_pins[] = {
	/* B */
	RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9),
	RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11),
@@ -4369,7 +4369,7 @@ static const unsigned int vin1_b_data18_pins[] = {
	RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18),
	RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20),
};
static const unsigned int vin1_b_data18_mux[] = {
static const unsigned int vin1_data18_b_mux[] = {
	/* B */
	VI1_DATA2_B_MARK, VI1_DATA3_B_MARK,
	VI1_DATA4_B_MARK, VI1_DATA5_B_MARK,
@@ -4383,30 +4383,30 @@ static const unsigned int vin1_b_data18_mux[] = {
	VI1_R4_B_MARK, VI1_R5_B_MARK,
	VI1_R6_B_MARK, VI1_R7_B_MARK,
};
static const unsigned int vin1_b_sync_pins[] = {
static const unsigned int vin1_sync_b_pins[] = {
	RCAR_GP_PIN(3, 17), /* HSYNC */
	RCAR_GP_PIN(3, 18), /* VSYNC */
};
static const unsigned int vin1_b_sync_mux[] = {
static const unsigned int vin1_sync_b_mux[] = {
	VI1_HSYNC_N_B_MARK,
	VI1_VSYNC_N_B_MARK,
};
static const unsigned int vin1_b_field_pins[] = {
static const unsigned int vin1_field_b_pins[] = {
	RCAR_GP_PIN(3, 20),
};
static const unsigned int vin1_b_field_mux[] = {
static const unsigned int vin1_field_b_mux[] = {
	VI1_FIELD_B_MARK,
};
static const unsigned int vin1_b_clkenb_pins[] = {
static const unsigned int vin1_clkenb_b_pins[] = {
	RCAR_GP_PIN(3, 19),
};
static const unsigned int vin1_b_clkenb_mux[] = {
static const unsigned int vin1_clkenb_b_mux[] = {
	VI1_CLKENB_B_MARK,
};
static const unsigned int vin1_b_clk_pins[] = {
static const unsigned int vin1_clk_b_pins[] = {
	RCAR_GP_PIN(3, 16),
};
static const unsigned int vin1_b_clk_mux[] = {
static const unsigned int vin1_clk_b_mux[] = {
	VI1_CLK_B_MARK,
};
/* - VIN2 ----------------------------------------------------------------- */
@@ -4784,17 +4784,17 @@ 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_b_data, 24),
		VIN_DATA_PIN_GROUP(vin1_b_data, 20),
		SH_PFC_PIN_GROUP(vin1_b_data18),
		VIN_DATA_PIN_GROUP(vin1_b_data, 16),
		VIN_DATA_PIN_GROUP(vin1_b_data, 12),
		VIN_DATA_PIN_GROUP(vin1_b_data, 10),
		VIN_DATA_PIN_GROUP(vin1_b_data, 8),
		SH_PFC_PIN_GROUP(vin1_b_sync),
		SH_PFC_PIN_GROUP(vin1_b_field),
		SH_PFC_PIN_GROUP(vin1_b_clkenb),
		SH_PFC_PIN_GROUP(vin1_b_clk),
		VIN_DATA_PIN_GROUP(vin1_data, 24, _b),
		VIN_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),
		SH_PFC_PIN_GROUP(vin1_sync_b),
		SH_PFC_PIN_GROUP(vin1_field_b),
		SH_PFC_PIN_GROUP(vin1_clkenb_b),
		SH_PFC_PIN_GROUP(vin1_clk_b),
		SH_PFC_PIN_GROUP(vin2_data8),
		SH_PFC_PIN_GROUP(vin2_sync),
		SH_PFC_PIN_GROUP(vin2_field),
@@ -5335,17 +5335,17 @@ static const char * const vin1_groups[] = {
	"vin1_field",
	"vin1_clkenb",
	"vin1_clk",
	"vin1_b_data24",
	"vin1_b_data20",
	"vin1_b_data18",
	"vin1_b_data16",
	"vin1_b_data12",
	"vin1_b_data10",
	"vin1_b_data8",
	"vin1_b_sync",
	"vin1_b_field",
	"vin1_b_clkenb",
	"vin1_b_clk",
	"vin1_data24_b",
	"vin1_data20_b",
	"vin1_data18_b",
	"vin1_data16_b",
	"vin1_data12_b",
	"vin1_data10_b",
	"vin1_data8_b",
	"vin1_sync_b",
	"vin1_field_b",
	"vin1_clkenb_b",
	"vin1_clk_b",
};

static const char * const vin2_groups[] = {
+16 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
 */

#include <linux/kernel.h>
#include <linux/sys_soc.h>

#include "core.h"
#include "sh_pfc.h"
@@ -5560,7 +5561,22 @@ static int r8a7794_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *poc
	return -EINVAL;
}

static const struct soc_device_attribute r8a7794_tdsel[] = {
	{ .soc_id = "r8a7794", .revision = "ES1.0" },
	{ /* sentinel */ }
};

static int r8a7794_pinmux_soc_init(struct sh_pfc *pfc)
{
	/* Initialize TDSEL on old revisions */
	if (soc_device_match(r8a7794_tdsel))
		sh_pfc_write(pfc, 0xe6060068, 0x55555500);

	return 0;
}

static const struct sh_pfc_soc_operations r8a7794_pinmux_ops = {
	.init = r8a7794_pinmux_soc_init,
	.pin_to_pocctrl = r8a7794_pin_to_pocctrl,
};

+26 −64
Original line number Diff line number Diff line
@@ -4098,49 +4098,8 @@ static const unsigned int vin4_clk_mux[] = {
};

/* - VIN5 ------------------------------------------------------------------- */
static const unsigned int vin5_data8_pins[] = {
	RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
	RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
	RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
	RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
};
static const unsigned int vin5_data8_mux[] = {
	VI5_DATA0_MARK, VI5_DATA1_MARK,
	VI5_DATA2_MARK, VI5_DATA3_MARK,
	VI5_DATA4_MARK, VI5_DATA5_MARK,
	VI5_DATA6_MARK, VI5_DATA7_MARK,
};
static const unsigned int vin5_data10_pins[] = {
	RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
	RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
	RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
	RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
	RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13),
};
static const unsigned int vin5_data10_mux[] = {
	VI5_DATA0_MARK, VI5_DATA1_MARK,
	VI5_DATA2_MARK, VI5_DATA3_MARK,
	VI5_DATA4_MARK, VI5_DATA5_MARK,
	VI5_DATA6_MARK, VI5_DATA7_MARK,
	VI5_DATA8_MARK,  VI5_DATA9_MARK,
};
static const unsigned int vin5_data12_pins[] = {
	RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
	RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
	RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
	RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
	RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13),
	RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15),
};
static const unsigned int vin5_data12_mux[] = {
	VI5_DATA0_MARK, VI5_DATA1_MARK,
	VI5_DATA2_MARK, VI5_DATA3_MARK,
	VI5_DATA4_MARK, VI5_DATA5_MARK,
	VI5_DATA6_MARK, VI5_DATA7_MARK,
	VI5_DATA8_MARK,  VI5_DATA9_MARK,
	VI5_DATA10_MARK, VI5_DATA11_MARK,
};
static const unsigned int vin5_data16_pins[] = {
static const union vin_data16 vin5_data_pins = {
	.data16 = {
		RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
		RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
		RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
@@ -4149,8 +4108,10 @@ static const unsigned int vin5_data16_pins[] = {
		RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15),
		RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5),
		RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
	},
};
static const unsigned int vin5_data16_mux[] = {
static const union vin_data16 vin5_data_mux = {
	.data16 = {
		VI5_DATA0_MARK, VI5_DATA1_MARK,
		VI5_DATA2_MARK, VI5_DATA3_MARK,
		VI5_DATA4_MARK, VI5_DATA5_MARK,
@@ -4159,6 +4120,7 @@ static const unsigned int vin5_data16_mux[] = {
		VI5_DATA10_MARK, VI5_DATA11_MARK,
		VI5_DATA12_MARK, VI5_DATA13_MARK,
		VI5_DATA14_MARK, VI5_DATA15_MARK,
	},
};
static const unsigned int vin5_sync_pins[] = {
	/* HSYNC#, VSYNC# */
@@ -4530,10 +4492,10 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
	SH_PFC_PIN_GROUP(vin4_field),
	SH_PFC_PIN_GROUP(vin4_clkenb),
	SH_PFC_PIN_GROUP(vin4_clk),
	SH_PFC_PIN_GROUP(vin5_data8),
	SH_PFC_PIN_GROUP(vin5_data10),
	SH_PFC_PIN_GROUP(vin5_data12),
	SH_PFC_PIN_GROUP(vin5_data16),
	VIN_DATA_PIN_GROUP(vin5_data, 8),
	VIN_DATA_PIN_GROUP(vin5_data, 10),
	VIN_DATA_PIN_GROUP(vin5_data, 12),
	VIN_DATA_PIN_GROUP(vin5_data, 16),
	SH_PFC_PIN_GROUP(vin5_sync),
	SH_PFC_PIN_GROUP(vin5_field),
	SH_PFC_PIN_GROUP(vin5_clkenb),
Loading