ColdFire: Update processors' serial port configuration
Provide parameter passing to uart_port_config(). Update port configuration - un-mask it before enable the bits. Signed-off-by: TsiChung Liew <tsicliew@gmail.com>
This commit is contained in:
parent
d04c1efae3
commit
52affe04fa
7 changed files with 106 additions and 51 deletions
|
@ -125,12 +125,12 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
gpio->par_uart &=
|
||||
(GPIO_PAR_UART_U0TXD_UNMASK & GPIO_PAR_UART_U0RXD_UNMASK);
|
||||
|
|
|
@ -130,21 +130,32 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
gpio->par_uart = (GPIO_PAR_UART_U0RXD | GPIO_PAR_UART_U0TXD);
|
||||
gpio->par_uart &= ~(GPIO_PAR_UART_U0RXD | GPIO_PAR_UART_U0TXD);
|
||||
gpio->par_uart |= (GPIO_PAR_UART_U0RXD | GPIO_PAR_UART_U0TXD);
|
||||
break;
|
||||
case 1:
|
||||
gpio->par_uart =
|
||||
(GPIO_PAR_UART_U1RXD_U1RXD | GPIO_PAR_UART_U1TXD_U1TXD);
|
||||
gpio->par_uart &=
|
||||
~(GPIO_PAR_UART_U1RXD_MASK | GPIO_PAR_UART_U1TXD_MASK);
|
||||
gpio->par_uart |=
|
||||
(GPIO_PAR_UART_U1RXD_U1RXD | GPIO_PAR_UART_U1TXD_U1TXD);
|
||||
break;
|
||||
case 2:
|
||||
gpio->par_timer = (GPIO_PAR_UART_U2RXD | GPIO_PAR_UART_U2TXD);
|
||||
#ifdef CONFIG_SYS_UART2_PRI_GPIO
|
||||
gpio->par_uart &= ~(GPIO_PAR_UART_U2RXD | GPIO_PAR_UART_U2TXD);
|
||||
gpio->par_uart |= (GPIO_PAR_UART_U2RXD | GPIO_PAR_UART_U2TXD);
|
||||
#elif defined(CONFIG_SYS_UART2_ALT1_GPIO)
|
||||
gpio->feci2c &=
|
||||
~(GPIO_PAR_FECI2C_EMDC_MASK | GPIO_PAR_FECI2C_EMDIO_MASK);
|
||||
gpio->feci2c |=
|
||||
(GPIO_PAR_FECI2C_EMDC_U2TXD | GPIO_PAR_FECI2C_EMDIO_U2RXD);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -156,7 +167,8 @@ int fecpin_setclear(struct eth_device *dev, int setclear)
|
|||
|
||||
if (setclear) {
|
||||
gpio->par_feci2c |=
|
||||
(GPIO_PAR_FECI2C_EMDC_FECEMDC | GPIO_PAR_FECI2C_EMDIO_FECEMDIO);
|
||||
(GPIO_PAR_FECI2C_EMDC_FECEMDC |
|
||||
GPIO_PAR_FECI2C_EMDIO_FECEMDIO);
|
||||
} else {
|
||||
gpio->par_feci2c &=
|
||||
~(GPIO_PAR_FECI2C_EMDC_MASK | GPIO_PAR_FECI2C_EMDIO_MASK);
|
||||
|
|
|
@ -135,12 +135,12 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
gpio->par_uart &= GPIO_PAR_UART0_UNMASK;
|
||||
gpio->par_uart |= (GPIO_PAR_UART_U0TXD | GPIO_PAR_UART_U0RXD);
|
||||
|
@ -247,15 +247,19 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
volatile u32 *par = (u32 *) MMAP_PAR;
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
case 0:
|
||||
break;
|
||||
switch (port) {
|
||||
case 1:
|
||||
*par &= 0xFFE7FFFF;
|
||||
*par |= 0x00180000;
|
||||
break;
|
||||
case 2:
|
||||
*par &= 0xFFFFFFFC;
|
||||
*par &= 0x00000003;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -291,21 +295,26 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
u16 temp;
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
mbar_writeShort(MCF_GPIO_PAR_UART, MCF_GPIO_PAR_UART_U0TXD |
|
||||
MCF_GPIO_PAR_UART_U0RXD);
|
||||
temp = mbar_readShort(MCF_GPIO_PAR_UART) & 0xFFF3;
|
||||
temp |= (MCF_GPIO_PAR_UART_U0TXD | MCF_GPIO_PAR_UART_U0RXD);
|
||||
mbar_writeShort(MCF_GPIO_PAR_UART, temp);
|
||||
break;
|
||||
case 1:
|
||||
mbar_writeShort(MCF_GPIO_PAR_UART,
|
||||
MCF_GPIO_PAR_UART_U1RXD_UART1 |
|
||||
MCF_GPIO_PAR_UART_U1TXD_UART1);
|
||||
temp = mbar_readShort(MCF_GPIO_PAR_UART) & 0xF0FF;
|
||||
temp |= (MCF_GPIO_PAR_UART_U1RXD_UART1 | MCF_GPIO_PAR_UART_U1TXD_UART1);
|
||||
mbar_writeShort(MCF_GPIO_PAR_UART, temp);
|
||||
break;
|
||||
case 2:
|
||||
mbar_writeShort(MCF_GPIO_PAR_UART, 0x3000);
|
||||
temp = mbar_readShort(MCF_GPIO_PAR_UART) & 0xCFFF;
|
||||
temp |= (0x3000);
|
||||
mbar_writeShort(MCF_GPIO_PAR_UART, temp);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -409,12 +418,12 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
gpio->gpio_pbcnt &= ~(GPIO_PBCNT_PB0MSK | GPIO_PBCNT_PB1MSK);
|
||||
gpio->gpio_pbcnt |= (GPIO_PBCNT_URT0_TXD | GPIO_PBCNT_URT0_RXD);
|
||||
|
@ -487,19 +496,22 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
gpio->par_uart &= ~UART0_ENABLE_MASK;
|
||||
gpio->par_uart |= UART0_ENABLE_MASK;
|
||||
break;
|
||||
case 1:
|
||||
gpio->par_uart &= ~UART1_ENABLE_MASK;
|
||||
gpio->par_uart |= UART1_ENABLE_MASK;
|
||||
break;
|
||||
case 2:
|
||||
gpio->par_uart &= ~UART2_ENABLE_MASK;
|
||||
gpio->par_uart |= UART2_ENABLE_MASK;
|
||||
break;
|
||||
}
|
||||
|
@ -621,10 +633,10 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
MCFGPIO_PUAPAR &= 0xFc;
|
||||
MCFGPIO_PUAPAR |= 0x03;
|
||||
|
@ -729,14 +741,7 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif /* #if defined(CONFIG_M5249) */
|
||||
|
|
|
@ -133,19 +133,21 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
gpio->par_uart = (GPIO_PAR_UART_U0TXD | GPIO_PAR_UART_U0RXD);
|
||||
gpio->par_uart &= ~(GPIO_PAR_UART_U0TXD | GPIO_PAR_UART_U0RXD);
|
||||
gpio->par_uart |= (GPIO_PAR_UART_U0TXD | GPIO_PAR_UART_U0RXD);
|
||||
break;
|
||||
case 1:
|
||||
#ifdef CONFIG_SYS_UART1_ALT1_GPIO
|
||||
gpio->par_simp1h &=
|
||||
~(GPIO_PAR_SIMP1H_DATA1_UNMASK | GPIO_PAR_SIMP1H_VEN1_UNMASK);
|
||||
~(GPIO_PAR_SIMP1H_DATA1_UNMASK |
|
||||
GPIO_PAR_SIMP1H_VEN1_UNMASK);
|
||||
gpio->par_simp1h |=
|
||||
(GPIO_PAR_SIMP1H_DATA1_U1TXD | GPIO_PAR_SIMP1H_VEN1_U1RXD);
|
||||
#elif defined(CONFIG_SYS_UART1_ALT2_GPIO)
|
||||
|
@ -297,22 +299,33 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
gpio->par_uart = (GPIO_PAR_UART_TXD0 | GPIO_PAR_UART_RXD0);
|
||||
gpio->par_uart &= ~(GPIO_PAR_UART_TXD0 | GPIO_PAR_UART_RXD0);
|
||||
gpio->par_uart |= (GPIO_PAR_UART_TXD0 | GPIO_PAR_UART_RXD0);
|
||||
break;
|
||||
case 1:
|
||||
gpio->par_uart =
|
||||
gpio->par_uart &=
|
||||
~(GPIO_PAR_UART_TXD1(3) | GPIO_PAR_UART_RXD1(3));
|
||||
gpio->par_uart |=
|
||||
(GPIO_PAR_UART_TXD1(3) | GPIO_PAR_UART_RXD1(3));
|
||||
break;
|
||||
case 2:
|
||||
#ifdef CONFIG_SYS_UART2_ALT1_GPIO
|
||||
gpio->par_timer &= 0x0F;
|
||||
gpio->par_timer |= (GPIO_PAR_TIN3_URXD2 | GPIO_PAR_TIN2_UTXD2);
|
||||
#elif defined(CONFIG_SYS_UART2_ALT2_GPIO)
|
||||
gpio->par_feci2c &= 0xFF00;
|
||||
gpio->par_feci2c |= (GPIO_PAR_FECI2C_SCL_UTXD2 | GPIO_PAR_FECI2C_SDA_URXD2);
|
||||
#elif defined(CONFIG_SYS_UART2_ALT3_GPIO)
|
||||
gpio->par_ssi &= 0xF0FF;
|
||||
gpio->par_ssi |= (GPIO_PAR_SSI_RXD(2) | GPIO_PAR_SSI_TXD(2));
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -128,19 +128,43 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
gpio->par_uart =
|
||||
gpio->par_uart &=
|
||||
~(GPIO_PAR_UART_U0TXD_U0TXD | GPIO_PAR_UART_U0RXD_U0RXD);
|
||||
gpio->par_uart |=
|
||||
(GPIO_PAR_UART_U0TXD_U0TXD | GPIO_PAR_UART_U0RXD_U0RXD);
|
||||
break;
|
||||
case 1:
|
||||
gpio->par_uart =
|
||||
#ifdef CONFIG_SYS_UART1_PRI_GPIO
|
||||
gpio->par_uart &=
|
||||
~(GPIO_PAR_UART_U1TXD_U1TXD | GPIO_PAR_UART_U1RXD_U1RXD);
|
||||
gpio->par_uart |=
|
||||
(GPIO_PAR_UART_U1TXD_U1TXD | GPIO_PAR_UART_U1RXD_U1RXD);
|
||||
#elif defined(CONFIG_SYS_UART1_ALT1_GPIO)
|
||||
gpio->par_ssi &=
|
||||
(GPIO_PAR_SSI_SRXD_UNMASK | GPIO_PAR_SSI_STXD_UNMASK);
|
||||
gpio->par_ssi |=
|
||||
(GPIO_PAR_SSI_SRXD_U1RXD | GPIO_PAR_SSI_STXD_U1TXD);
|
||||
#endif
|
||||
break;
|
||||
case 2:
|
||||
#if defined(CONFIG_SYS_UART2_ALT1_GPIO)
|
||||
gpio->par_timer &=
|
||||
(GPIO_PAR_TIMER_T3IN_UNMASK | GPIO_PAR_TIMER_T2IN_UNMASK);
|
||||
gpio->par_timer |=
|
||||
(GPIO_PAR_TIMER_T3IN_U2RXD | GPIO_PAR_TIMER_T2IN_U2TXD);
|
||||
#elif defined(CONFIG_SYS_UART2_ALT2_GPIO)
|
||||
gpio->par_timer &=
|
||||
(GPIO_PAR_FECI2C_SCL_UNMASK | GPIO_PAR_FECI2C_SDA_UNMASK);
|
||||
gpio->par_timer |=
|
||||
(GPIO_PAR_FECI2C_SCL_U2TXD | GPIO_PAR_FECI2C_SDA_U2RXD);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -113,13 +113,13 @@ int cpu_init_r(void)
|
|||
return (0);
|
||||
}
|
||||
|
||||
void uart_port_conf(void)
|
||||
void uart_port_conf(int port)
|
||||
{
|
||||
volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
volatile u8 *pscsicr = (u8 *) (CONFIG_SYS_UART_BASE + 0x40);
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (CONFIG_SYS_UART_PORT) {
|
||||
switch (port) {
|
||||
case 0:
|
||||
gpio->par_psc0 = (GPIO_PAR_PSC0_TXD0 | GPIO_PAR_PSC0_RXD0);
|
||||
break;
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#define MMAP_CAN0 (CONFIG_SYS_MBAR + 0x00010000)
|
||||
#define MMAP_CAN1 (CONFIG_SYS_MBAR + 0x00011000)
|
||||
|
||||
#define MMAP_PAR (CONFIG_SYS_MBAR2 + 0x0000019C)
|
||||
#define MMAP_I2C1 (CONFIG_SYS_MBAR2 + 0x00000440)
|
||||
#define MMAP_UART2 (CONFIG_SYS_MBAR2 + 0x00000C00)
|
||||
|
||||
|
|
Loading…
Reference in a new issue