Преглед изворни кода

bsp:ls2k: make uart init more flexible

michael пре 4 година
родитељ
комит
4de8848a8c
3 измењених фајлова са 26 додато и 9 уклоњено
  1. 10 1
      bsp/ls2kdev/Kconfig
  2. 14 8
      bsp/ls2kdev/drivers/drv_uart.c
  3. 2 0
      bsp/ls2kdev/rtconfig.h

+ 10 - 1
bsp/ls2kdev/Kconfig

@@ -29,4 +29,13 @@ config SOC_LS2K1000
     select RT_USING_USER_MAIN
     select RT_USING_DEVICE
     default y
-    
+
+if RT_USING_SERIAL
+config RT_USING_UART0
+    bool "Using RT_USING_UART0"
+    default y
+
+config RT_USING_UART4
+    bool "Using RT_USING_UART4"
+    default y
+endif

+ 14 - 8
bsp/ls2kdev/drivers/drv_uart.c

@@ -156,26 +156,32 @@ struct rt_serial_device serial, serial4;
 
 void rt_hw_uart_init(void)
 {
-    struct rt_uart_ls2k *uart, *uart4;
     struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
 
-    uart = &uart_dev0;
-    uart4 = &uart_dev4;
+#ifdef RT_USING_UART0
+    struct rt_uart_ls2k *uart0;
+    uart0 = &uart_dev0;
     serial.ops    = &ls2k_uart_ops;
     serial.config = config_uart0;
-    serial4.ops = &ls2k_uart_ops;
-    serial4.config = config;
 
-    rt_hw_interrupt_install(uart->IRQ, uart_irq_handler, &serial, "UART0");
-    rt_hw_interrupt_install(uart4->IRQ, uart_irq_handler, &serial4, "UART4");
+    rt_hw_interrupt_install(uart0->IRQ, uart_irq_handler, &serial, "UART0");
     /* register UART device */
     rt_hw_serial_register(&serial,
                           "uart0",
                           RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
-                          uart);
+                          uart0);
+#endif
+
+#ifdef RT_USING_UART4
+    struct rt_uart_ls2k *uart4;
+    uart4 = &uart_dev4;
+    serial4.ops = &ls2k_uart_ops;
+    serial4.config = config;
+    rt_hw_interrupt_install(uart4->IRQ, uart_irq_handler, &serial4, "UART4");
     rt_hw_serial_register(&serial4,
                           "uart4",
                           RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
                           &uart_dev4);
+#endif
 }
 /*@}*/

+ 2 - 0
bsp/ls2kdev/rtconfig.h

@@ -235,5 +235,7 @@
 /* games: games run on RT-Thread console */
 
 #define SOC_LS2K1000
+#define RT_USING_UART0
+#define RT_USING_UART4
 
 #endif