|
@@ -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);
|
|
|
}
|
|
|
|
|
|
/*
|