|
@@ -966,3 +966,112 @@ static void __init eva_init(void)
|
|
gpio_request(GPIO_FN_LCD0_D1, NULL);
|
|
gpio_request(GPIO_FN_LCD0_D1, NULL);
|
|
gpio_request(GPIO_FN_LCD0_D2, NULL);
|
|
gpio_request(GPIO_FN_LCD0_D2, NULL);
|
|
gpio_request(GPIO_FN_LCD0_D3, NULL);
|
|
gpio_request(GPIO_FN_LCD0_D3, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D4, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D5, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D6, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D7, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D8, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D9, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D10, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D11, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D12, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D13, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D14, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D15, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D16, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D17, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D18_PORT40, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D19_PORT4, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D20_PORT3, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D21_PORT2, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D22_PORT0, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_D23_PORT1, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_DCK, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_VSYN, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_HSYN, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_DISP, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL);
|
|
|
|
+
|
|
|
|
+ gpio_request(GPIO_PORT61, NULL); /* LCDDON */
|
|
|
|
+ gpio_direction_output(GPIO_PORT61, 1);
|
|
|
|
+
|
|
|
|
+ gpio_request(GPIO_PORT202, NULL); /* LCD0_LED_CONT */
|
|
|
|
+ gpio_direction_output(GPIO_PORT202, 0);
|
|
|
|
+
|
|
|
|
+ /* Touchscreen */
|
|
|
|
+ gpio_request(GPIO_FN_IRQ10, NULL); /* TP_INT */
|
|
|
|
+ gpio_request(GPIO_PORT166, NULL); /* TP_RST_B */
|
|
|
|
+ gpio_direction_output(GPIO_PORT166, 1);
|
|
|
|
+
|
|
|
|
+ /* GETHER */
|
|
|
|
+ gpio_request(GPIO_FN_ET_CRS, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_MDC, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_MDIO, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_TX_ER, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_RX_ER, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_ERXD0, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_ERXD1, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_ERXD2, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_ERXD3, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_TX_CLK, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_TX_EN, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_ETXD0, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_ETXD1, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_ETXD2, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_ETXD3, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_PHY_INT, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_COL, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_RX_DV, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_ET_RX_CLK, NULL);
|
|
|
|
+
|
|
|
|
+ gpio_request(GPIO_PORT18, NULL); /* PHY_RST */
|
|
|
|
+ gpio_direction_output(GPIO_PORT18, 1);
|
|
|
|
+
|
|
|
|
+ /* USB */
|
|
|
|
+ gpio_request(GPIO_PORT159, NULL); /* USB_DEVICE_MODE */
|
|
|
|
+ gpio_direction_input(GPIO_PORT159);
|
|
|
|
+
|
|
|
|
+ if (gpio_get_value(GPIO_PORT159)) {
|
|
|
|
+ /* USB Host */
|
|
|
|
+ } else {
|
|
|
|
+ /* USB Func */
|
|
|
|
+ /*
|
|
|
|
+ * A1 chip has 2 IRQ7 pin and it was controled by MSEL register.
|
|
|
|
+ * OTOH, usbhs interrupt needs its value (HI/LOW) to decide
|
|
|
|
+ * USB connection/disconnection (usbhsf_get_vbus()).
|
|
|
|
+ * This means we needs to select GPIO_FN_IRQ7_PORT209 first,
|
|
|
|
+ * and select GPIO_PORT209 here
|
|
|
|
+ */
|
|
|
|
+ gpio_request(GPIO_FN_IRQ7_PORT209, NULL);
|
|
|
|
+ gpio_request(GPIO_PORT209, NULL);
|
|
|
|
+ gpio_direction_input(GPIO_PORT209);
|
|
|
|
+
|
|
|
|
+ platform_device_register(&usbhsf_device);
|
|
|
|
+ usb = &usbhsf_device;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* SDHI0 */
|
|
|
|
+ gpio_request(GPIO_FN_SDHI0_CMD, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_SDHI0_CLK, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_SDHI0_D0, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_SDHI0_D1, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_SDHI0_D2, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_SDHI0_D3, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_SDHI0_WP, NULL);
|
|
|
|
+
|
|
|
|
+ gpio_request(GPIO_PORT17, NULL); /* SDHI0_18/33_B */
|
|
|
|
+ gpio_request(GPIO_PORT74, NULL); /* SDHI0_PON */
|
|
|
|
+ gpio_request(GPIO_PORT75, NULL); /* SDSLOT1_PON */
|
|
|
|
+ gpio_direction_output(GPIO_PORT17, 0);
|
|
|
|
+ gpio_direction_output(GPIO_PORT74, 1);
|
|
|
|
+ gpio_direction_output(GPIO_PORT75, 1);
|
|
|
|
+
|
|
|
|
+ /* we can use GPIO_FN_IRQ31_PORT167 here for SDHI0 CD irq */
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * MMCIF
|
|
|
|
+ *
|
|
|
|
+ * Here doesn't care SW1.4 status,
|
|
|
|
+ * since CON2 is not mounted.
|
|
|
|
+ */
|
|
|
|
+ gpio_request(GPIO_FN_MMC1_CLK_PORT103, NULL);
|