|
@@ -705,3 +705,97 @@ static void __init kzm_init(void)
|
|
|
|
|
|
gpio_request(GPIO_PORT222, NULL); /* LCDCDON */
|
|
|
gpio_request(GPIO_PORT226, NULL); /* SC */
|
|
|
+ gpio_direction_output(GPIO_PORT222, 1);
|
|
|
+ gpio_direction_output(GPIO_PORT226, 1);
|
|
|
+
|
|
|
+ /* Touchscreen */
|
|
|
+ gpio_request(GPIO_PORT223, NULL); /* IRQ8 */
|
|
|
+ gpio_direction_input(GPIO_PORT223);
|
|
|
+
|
|
|
+ /* enable MMCIF */
|
|
|
+ gpio_request(GPIO_FN_MMCCLK0, NULL);
|
|
|
+ gpio_request(GPIO_FN_MMCCMD0_PU, NULL);
|
|
|
+ gpio_request(GPIO_FN_MMCD0_0_PU, NULL);
|
|
|
+ gpio_request(GPIO_FN_MMCD0_1_PU, NULL);
|
|
|
+ gpio_request(GPIO_FN_MMCD0_2_PU, NULL);
|
|
|
+ gpio_request(GPIO_FN_MMCD0_3_PU, NULL);
|
|
|
+ gpio_request(GPIO_FN_MMCD0_4_PU, NULL);
|
|
|
+ gpio_request(GPIO_FN_MMCD0_5_PU, NULL);
|
|
|
+ gpio_request(GPIO_FN_MMCD0_6_PU, NULL);
|
|
|
+ gpio_request(GPIO_FN_MMCD0_7_PU, NULL);
|
|
|
+
|
|
|
+ /* enable SD */
|
|
|
+ gpio_request(GPIO_FN_SDHIWP0, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHICD0, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHICMD0, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHICLK0, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHID0_3, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHID0_2, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHID0_1, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHID0_0, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
|
|
|
+ gpio_request(GPIO_PORT15, NULL);
|
|
|
+ gpio_direction_output(GPIO_PORT15, 1); /* power */
|
|
|
+
|
|
|
+ /* enable Micro SD */
|
|
|
+ gpio_request(GPIO_FN_SDHID2_0, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHID2_1, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHID2_2, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHID2_3, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHICMD2, NULL);
|
|
|
+ gpio_request(GPIO_FN_SDHICLK2, NULL);
|
|
|
+ gpio_request(GPIO_PORT14, NULL);
|
|
|
+ gpio_direction_output(GPIO_PORT14, 1); /* power */
|
|
|
+
|
|
|
+ /* I2C 3 */
|
|
|
+ gpio_request(GPIO_FN_PORT27_I2C_SCL3, NULL);
|
|
|
+ gpio_request(GPIO_FN_PORT28_I2C_SDA3, NULL);
|
|
|
+
|
|
|
+ /* enable FSI2 port A (ak4648) */
|
|
|
+ gpio_request(GPIO_FN_FSIACK, NULL);
|
|
|
+ gpio_request(GPIO_FN_FSIAILR, NULL);
|
|
|
+ gpio_request(GPIO_FN_FSIAIBT, NULL);
|
|
|
+ gpio_request(GPIO_FN_FSIAISLD, NULL);
|
|
|
+ gpio_request(GPIO_FN_FSIAOSLD, NULL);
|
|
|
+
|
|
|
+ /* enable USB */
|
|
|
+ gpio_request(GPIO_FN_VBUS_0, NULL);
|
|
|
+
|
|
|
+#ifdef CONFIG_CACHE_L2X0
|
|
|
+ /* Early BRESP enable, Shared attribute override enable, 64K*8way */
|
|
|
+ l2x0_init(IOMEM(0xf0100000), 0x40460000, 0x82000fff);
|
|
|
+#endif
|
|
|
+
|
|
|
+ i2c_register_board_info(0, i2c0_devices, ARRAY_SIZE(i2c0_devices));
|
|
|
+ i2c_register_board_info(1, i2c1_devices, ARRAY_SIZE(i2c1_devices));
|
|
|
+ i2c_register_board_info(3, i2c3_devices, ARRAY_SIZE(i2c3_devices));
|
|
|
+
|
|
|
+ sh73a0_add_standard_devices();
|
|
|
+ platform_add_devices(kzm_devices, ARRAY_SIZE(kzm_devices));
|
|
|
+}
|
|
|
+
|
|
|
+static void kzm9g_restart(char mode, const char *cmd)
|
|
|
+{
|
|
|
+#define RESCNT2 IOMEM(0xe6188020)
|
|
|
+ /* Do soft power on reset */
|
|
|
+ writel((1 << 31), RESCNT2);
|
|
|
+}
|
|
|
+
|
|
|
+static const char *kzm9g_boards_compat_dt[] __initdata = {
|
|
|
+ "renesas,kzm9g",
|
|
|
+ NULL,
|
|
|
+};
|
|
|
+
|
|
|
+DT_MACHINE_START(KZM9G_DT, "kzm9g")
|
|
|
+ .smp = smp_ops(sh73a0_smp_ops),
|
|
|
+ .map_io = sh73a0_map_io,
|
|
|
+ .init_early = sh73a0_add_early_devices,
|
|
|
+ .nr_irqs = NR_IRQS_LEGACY,
|
|
|
+ .init_irq = sh73a0_init_irq,
|
|
|
+ .handle_irq = gic_handle_irq,
|
|
|
+ .init_machine = kzm_init,
|
|
|
+ .init_late = shmobile_init_late,
|
|
|
+ .timer = &shmobile_timer,
|
|
|
+ .restart = kzm9g_restart,
|
|
|
+ .dt_compat = kzm9g_boards_compat_dt,
|
|
|
+MACHINE_END
|