X-Git-Url: http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/blobdiff_plain/b43d26bd4d8cb9dda0fe9be21883dffde1f775af..e3003e37814bd44142fd2965a72b8f8b9c95dfb4:/rtems-patches/current/rtems-m9328-pimx1-uart1to3.patch diff --git a/rtems-patches/current/rtems-m9328-pimx1-uart1to3.patch b/rtems-patches/current/rtems-m9328-pimx1-uart1to3.patch deleted file mode 100644 index 51d08fe..0000000 --- a/rtems-patches/current/rtems-m9328-pimx1-uart1to3.patch +++ /dev/null @@ -1,138 +0,0 @@ ---- - c/src/lib/libbsp/arm/csb336/console/uart.c | 42 +++++++++++++++++++++ - c/src/lib/libcpu/arm/mc9328mxl/include/mc9328mxl.h | 41 ++++++++++++++++++++ - 2 files changed, 83 insertions(+) - -Index: rtems-4.9.3/c/src/lib/libbsp/arm/csb336/console/uart.c -=================================================================== ---- rtems-4.9.3.orig/c/src/lib/libbsp/arm/csb336/console/uart.c 2009-11-29 01:11:05.632590072 +0100 -+++ rtems-4.9.3/c/src/lib/libbsp/arm/csb336/console/uart.c 2009-11-29 01:55:20.304585047 +0100 -@@ -24,6 +24,13 @@ - /* Define this to use interrupt driver UART driver */ - #define USE_INTERRUPTS 1 - -+/* Define this to use interrupt driver UART driver */ -+#define WITH_IRDA_UART1TO3 1 -+ -+#ifdef WITH_IRDA_UART1TO3 -+int bsp_uart1_switched_to_3 = 0; -+#endif /*WITH_IRDA_UART1TO3*/ -+ - /* How many serial ports? */ - #define NUM_DEVS 2 - #define poll_write(c) imx_uart_poll_write_char(0, c) -@@ -185,6 +192,41 @@ - imx_uart_data[minor].len = 0; - imx_uart_data[minor].idx = 0; - -+#ifdef WITH_IRDA_UART1TO3 -+ if (minor == 0) { -+ if((MC9328MXL_GPIOC_SSR & (1<<9))==0) -+ bsp_uart1_switched_to_3 = 1; -+ } -+ -+ if ((minor == 0) && bsp_uart1_switched_to_3) { -+ /* GPIO port C */ -+ rtems_interrupt_level flags; -+ unsigned long mask; -+ unsigned long iconfa2_clr; -+ unsigned long ocr2_set; -+ unsigned long ocr2_clr; -+ unsigned long ddir_set; -+ mask = (1<<31) | (1<<30); /* RxD and TxD */ -+ ddir_set = (1<<30); -+ iconfa2_clr = (1<<31) | (1<<30); -+ ocr2_set = (1<<28); -+ ocr2_clr =(1<<29); -+ rtems_interrupt_disable(flags); -+ MC9328MXL_GPIOC_ICONFA2 &=~ iconfa2_clr; -+ MC9328MXL_GPIOC_OCR2 |= ocr2_set; -+ MC9328MXL_GPIOC_OCR2 &=~ ocr2_clr; -+ MC9328MXL_GPIOC_GIUS |= mask ; /* GIUS_C */ -+ MC9328MXL_GPIOC_DDIR |= ddir_set; -+ MC9328MXL_PLL_GCCR |= MC9328MXL_PLL_GCCR_UART3_CLK_EN; -+ rtems_interrupt_enable(flags); -+#if defined(USE_INTERRUPTS) -+ imx_uart_tx_isr_data[minor].name = BSP_INT_UART3_TX; -+ imx_uart_rx_isr_data[minor].name = BSP_INT_UART3_RX; -+#endif -+ imx_uart_data[minor].regs = -+ (mc9328mxl_uart_regs_t *) MC9328MXL_UART3_BASE; -+ } else -+#endif /*WITH_IRDA_UART1TO3*/ - if (minor == 0) { - #if defined(USE_INTERRUPTS) - imx_uart_tx_isr_data[minor].name = BSP_INT_UART1_TX; -Index: rtems-4.9.3/c/src/lib/libcpu/arm/mc9328mxl/include/mc9328mxl.h -=================================================================== ---- rtems-4.9.3.orig/c/src/lib/libcpu/arm/mc9328mxl/include/mc9328mxl.h 2007-03-12 12:17:07.000000000 +0100 -+++ rtems-4.9.3/c/src/lib/libcpu/arm/mc9328mxl/include/mc9328mxl.h 2009-11-29 01:55:20.324565870 +0100 -@@ -31,6 +31,7 @@ - #define MC9328MXL_LCDC_BASE 0x00205000 - #define MC9328MXL_UART1_BASE 0x00206000 - #define MC9328MXL_UART2_BASE 0x00207000 -+#define MC9328MXL_UART3_BASE 0x0020A000 - #define MC9328MXL_PWM_BASE 0x00208000 - #define MC9328MXL_DMAC_BASE 0x00209000 - #define MC9328MXL_USBD_BASE 0x00212000 -@@ -131,6 +132,30 @@ - #define MC9328MXL_UART2_MPR4 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xcc))) - #define MC9328MXL_UART2_TS (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xd0))) - -+#define MC9328MXL_UART3_RXD (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0x00))) -+#define MC9328MXL_UART3_TXD (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0x40))) -+#define MC9328MXL_UART3_CR1 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0x80))) -+#define MC9328MXL_UART3_CR2 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0x84))) -+#define MC9328MXL_UART3_CR3 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0x88))) -+#define MC9328MXL_UART3_CR4 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0x8c))) -+#define MC9328MXL_UART3_FCR (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0x90))) -+#define MC9328MXL_UART3_SR1 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0x94))) -+#define MC9328MXL_UART3_SR2 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0x98))) -+#define MC9328MXL_UART3_ESC (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0x9c))) -+#define MC9328MXL_UART3_TIM (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xa0))) -+#define MC9328MXL_UART3_BIR (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xa4))) -+#define MC9328MXL_UART3_BMR (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xa8))) -+#define MC9328MXL_UART3_BRC (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xac))) -+#define MC9328MXL_UART3_IPR1 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xb0))) -+#define MC9328MXL_UART3_IPR2 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xb4))) -+#define MC9328MXL_UART3_IPR3 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xb8))) -+#define MC9328MXL_UART3_IPR4 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xbc))) -+#define MC9328MXL_UART3_MPR1 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xc0))) -+#define MC9328MXL_UART3_MPR2 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xc4))) -+#define MC9328MXL_UART3_MPR3 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xc8))) -+#define MC9328MXL_UART3_MPR4 (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xcc))) -+#define MC9328MXL_UART3_TS (*((volatile uint32_t *)((MC9328MXL_UART3_BASE) + 0xd0))) -+ - typedef struct { - volatile uint32_t rxd; - volatile uint32_t _res0[15]; -@@ -274,6 +299,12 @@ - #define MC9328MXL_PLL_SPCTL1 (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x10))) - #define MC9328MXL_PLL_PCDR (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x20))) - -+#define MC9328MXL_PLL_RSR (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x800))) -+#define MC9328MXL_PLL_SIDR (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x804))) -+#define MC9328MXL_PLL_FMCR (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x808))) -+#define MC9328MXL_PLL_GPCR (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x80C))) -+#define MC9328MXL_PLL_GCCR (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x810))) -+ - #define MC9328MXL_PLL_CSCR_CLKOSEL_PERCLK1 (0 << 29) - #define MC9328MXL_PLL_CSCR_CLKOSEL_HCLK (1 << 29) - #define MC9328MXL_PLL_CSCR_CLKOSEL_CLK48M (2 << 29) -@@ -304,6 +335,16 @@ - #define MC9328MXL_PLL_PCDR_PCLK3_MASK (0x007f0000) - #define MC9328MXL_PLL_PCDR_PCLK3_SHIFT (16) - -+#define MC9328MXL_PLL_RSR_WDR (bit(1)) -+#define MC9328MXL_PLL_RSR_EXR (bit(0)) -+ -+#define MC9328MXL_PLL_GCCR_UART3_CLK_EN (bit(6)) -+#define MC9328MXL_PLL_GCCR_SSI2_CLK_EN (bit(5)) -+#define MC9328MXL_PLL_GCCR_BROM_CLK_EN (bit(4)) -+#define MC9328MXL_PLL_GCCR_DMA_CLK_EN (bit(3)) -+#define MC9328MXL_PLL_GCCR_CSI_CLK_EN (bit(2)) -+#define MC9328MXL_PLL_GCCR_MMA_CLK_EN (bit(1)) -+#define MC9328MXL_PLL_GCCR_USBD_CLK_EN (bit(0)) - - #define MC9328MXL_PLL_SPCTL_PD_MASK (0x3c000000) - #define MC9328MXL_PLL_SPCTL_PD_SHIFT (26)