Commit 12c1d5a5 authored by Valentine Barshak's avatar Valentine Barshak Committed by Simon Horman
Browse files

ARM: shmobile: koelsch: Add I2C support



This adds I2C[1245] busses support to Koelsch board.
I2C[03] do not have any slave devices connected and
are not used because of the following:
* I2C0 pins are multiplexed with LBSC pins;
* I2C3 pins are multiplexed with EtherMAC and VIN0 pins.

Signed-off-by: default avatarValentine Barshak <valentine.barshak@cogentembedded.com>
Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
parent 29d9f010
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
@@ -165,6 +165,38 @@ static const struct platform_device_info sata0_info __initconst = {
	.dma_mask	= DMA_BIT_MASK(32),
};

/* I2C */
static const struct resource i2c_resources[] __initconst = {
	/* I2C0 */
	DEFINE_RES_MEM(0xE6508000, 0x40),
	DEFINE_RES_IRQ(gic_spi(287)),
	/* I2C1 */
	DEFINE_RES_MEM(0xE6518000, 0x40),
	DEFINE_RES_IRQ(gic_spi(288)),
	/* I2C2 */
	DEFINE_RES_MEM(0xE6530000, 0x40),
	DEFINE_RES_IRQ(gic_spi(286)),
	/* I2C3 */
	DEFINE_RES_MEM(0xE6540000, 0x40),
	DEFINE_RES_IRQ(gic_spi(290)),
	/* I2C4 */
	DEFINE_RES_MEM(0xE6520000, 0x40),
	DEFINE_RES_IRQ(gic_spi(19)),
	/* I2C5 */
	DEFINE_RES_MEM(0xE6528000, 0x40),
	DEFINE_RES_IRQ(gic_spi(20)),
};

static void __init koelsch_add_i2c(unsigned idx)
{
	unsigned res_idx = idx * 2;

	BUG_ON(res_idx >= ARRAY_SIZE(i2c_resources));

	platform_device_register_simple("i2c-rcar_gen2", idx,
					i2c_resources + res_idx, 2);
}

static const struct pinctrl_map koelsch_pinctrl_map[] = {
	/* DU */
	PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7791", "pfc-r8a7791",
@@ -188,6 +220,15 @@ static const struct pinctrl_map koelsch_pinctrl_map[] = {
	/* SCIF1 (CN20: DEBUG SERIAL1) */
	PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.7", "pfc-r8a7791",
				  "scif1_data_d", "scif1"),
	/* I2C1 */
	PIN_MAP_MUX_GROUP_DEFAULT("i2c-rcar_gen2.1", "pfc-r8a7791",
				  "i2c1_e", "i2c1"),
	/* I2C2 */
	PIN_MAP_MUX_GROUP_DEFAULT("i2c-rcar_gen2.2", "pfc-r8a7791",
				  "i2c2", "i2c2"),
	/* I2C4 */
	PIN_MAP_MUX_GROUP_DEFAULT("i2c-rcar_gen2.4", "pfc-r8a7791",
				  "i2c4_c", "i2c4"),
};

static void __init koelsch_add_standard_devices(void)
@@ -211,6 +252,11 @@ static void __init koelsch_add_standard_devices(void)
	koelsch_add_du_device();

	platform_device_register_full(&sata0_info);

	koelsch_add_i2c(1);
	koelsch_add_i2c(2);
	koelsch_add_i2c(4);
	koelsch_add_i2c(5);
}

/*