xxm FIH:update gps && UART3
authorroot <root@rockchip-MID.(none)>
Tue, 26 Apr 2011 11:37:34 +0000 (19:37 +0800)
committerroot <root@rockchip-MID.(none)>
Tue, 26 Apr 2011 11:37:34 +0000 (19:37 +0800)
arch/arm/mach-rk29/board-rk29-fih.c
drivers/serial/rk29_serial.c

index 0188bc5e0f1958fd010ceb1bff3cf22bf72e7132..dc918b6d4f3c4757db1a2cadcf3b41fe96cfd23f 100755 (executable)
@@ -1901,6 +1901,29 @@ static struct platform_device rk29sdk_wifi_device = {
 };
 #endif
 
+#ifdef CONFIG_RK29_GPS
+static int rk29_gps_bcm4751_gpio_init(void)
+{
+       rk29_mux_api_set(GPIO2B3_UART3SOUT_NAME, GPIO2L_GPIO2B3);  
+       rk29_mux_api_set(GPIO2B2_UART3SIN_NAME, GPIO2L_GPIO2B2);
+       
+    if (gpio_request(RK29_PIN2_PB3, "uart3_sout")) {
+           pr_info("%s: request uart3_sout gpio failed\n", __func__);
+           return -1;
+    }
+
+    if (gpio_request(RK29_PIN2_PB2, "uart3_sin")) {
+           pr_info("%s: request uart3_sin gpio failed\n", __func__);
+           gpio_free(RK29_PIN2_PB3);
+           return -1;
+    }
+
+       gpio_pull_updown(RK29_PIN2_PB3, PullDisable);
+    gpio_pull_updown(RK29_PIN2_PB2, PullDisable);
+
+    return 0;
+}
+#endif
 
 /* bluetooth rfkill device */
 static struct platform_device rk29sdk_rfkill = {
@@ -2403,6 +2426,10 @@ static void __init machine_rk29_board_init(void)
        rk29sdk_init_wifi_mem();
 #endif
 
+#ifdef CONFIG_RK29_GPS
+       rk29_gps_bcm4751_gpio_init();
+#endif
+
        board_usb_detect_init(RK29_PIN0_PA0);
 }
 
index a1d927a7ea3af11adc812e0f8f5fed8841d4eee6..5bfcaa2f7e89aabbdcc6b8ae0fb4ed7134d5cc91 100755 (executable)
@@ -335,8 +335,6 @@ static int rk29_serial_startup(struct uart_port *port)
        {
                rk29_mux_api_set(GPIO2B3_UART3SOUT_NAME, GPIO2L_UART3_SOUT);
                rk29_mux_api_set(GPIO2B2_UART3SIN_NAME, GPIO2L_UART3_SIN);
-               gpio_pull_updown(RK29_PIN2_PB2, NULL);
-               gpio_pull_updown(RK29_PIN2_PB3, NULL);
        }
 
        retval = request_irq(port->irq,rk29_uart_interrupt,IRQF_SHARED,