powerpc/p1010rdb: update mux config of p1010rdb board
On p1010rdb some signals are muxed for tdm/can/uart/flash. If we don't set fsl_p1010mux:tdm_can to "can" or "tdm" explicitly, defaultly we keep spi chip selection to spi-flash instead of to tdm/slic and disable uart1 when not using flexcan, as well disable sdhc. Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
This commit is contained in:
parent
7530d341c7
commit
487e8abbaa
@ -252,6 +252,31 @@ void fdt_del_tdm(void *blob)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fdt_del_sdhc(void *blob)
|
||||||
|
{
|
||||||
|
int nodeoff = 0;
|
||||||
|
|
||||||
|
while ((nodeoff = fdt_node_offset_by_compatible(blob, 0,
|
||||||
|
"fsl,esdhc")) >= 0) {
|
||||||
|
fdt_del_node(blob, nodeoff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fdt_disable_uart1(void *blob)
|
||||||
|
{
|
||||||
|
int nodeoff;
|
||||||
|
|
||||||
|
nodeoff = fdt_node_offset_by_compat_reg(blob, "fsl,ns16550",
|
||||||
|
CONFIG_SYS_NS16550_COM2);
|
||||||
|
|
||||||
|
if (nodeoff > 0) {
|
||||||
|
fdt_status_disabled(blob, nodeoff);
|
||||||
|
} else {
|
||||||
|
printf("WARNING unable to set status for fsl,ns16550 "
|
||||||
|
"uart1: %s\n", fdt_strerror(nodeoff));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ft_board_setup(void *blob, bd_t *bd)
|
void ft_board_setup(void *blob, bd_t *bd)
|
||||||
{
|
{
|
||||||
phys_addr_t base;
|
phys_addr_t base;
|
||||||
@ -281,19 +306,26 @@ void ft_board_setup(void *blob, bd_t *bd)
|
|||||||
fdt_del_node_and_alias(blob, "ethernet2");
|
fdt_del_node_and_alias(blob, "ethernet2");
|
||||||
}
|
}
|
||||||
#ifndef CONFIG_SDCARD
|
#ifndef CONFIG_SDCARD
|
||||||
|
/* disable sdhc due to sdhc bug */
|
||||||
|
fdt_del_sdhc(blob);
|
||||||
if (hwconfig_subarg_cmp("fsl_p1010mux", "tdm_can", "can")) {
|
if (hwconfig_subarg_cmp("fsl_p1010mux", "tdm_can", "can")) {
|
||||||
printf("fdt CAN");
|
|
||||||
fdt_del_tdm(blob);
|
fdt_del_tdm(blob);
|
||||||
fdt_del_spi_slic(blob);
|
fdt_del_spi_slic(blob);
|
||||||
}
|
} else if (hwconfig_subarg_cmp("fsl_p1010mux", "tdm_can", "tdm")) {
|
||||||
#ifndef CONFIG_SPIFLASH
|
|
||||||
else if (hwconfig_subarg_cmp("fsl_p1010mux", "tdm_can", "tdm")) {
|
|
||||||
printf("fdt TDM");
|
|
||||||
fdt_del_flexcan(blob);
|
fdt_del_flexcan(blob);
|
||||||
fdt_del_spi_flash(blob);
|
fdt_del_spi_flash(blob);
|
||||||
|
fdt_disable_uart1(blob);
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
* If we don't set fsl_p1010mux:tdm_can to "can" or "tdm"
|
||||||
|
* explicitly, defaultly spi_cs_sel to spi-flash instead of
|
||||||
|
* to tdm/slic.
|
||||||
|
*/
|
||||||
|
fdt_del_tdm(blob);
|
||||||
|
fdt_del_flexcan(blob);
|
||||||
|
fdt_disable_uart1(blob);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -309,10 +341,7 @@ int misc_init_r(void)
|
|||||||
MPC85xx_PMUXCR_CAN2_TDM |
|
MPC85xx_PMUXCR_CAN2_TDM |
|
||||||
MPC85xx_PMUXCR_CAN2_UART);
|
MPC85xx_PMUXCR_CAN2_UART);
|
||||||
out_8(&cpld_data->tdm_can_sel, MUX_CPLD_CAN_UART);
|
out_8(&cpld_data->tdm_can_sel, MUX_CPLD_CAN_UART);
|
||||||
}
|
} else if (hwconfig_subarg_cmp("fsl_p1010mux", "tdm_can", "tdm")) {
|
||||||
#ifndef CONFIG_SPIFLASH
|
|
||||||
if (hwconfig_subarg_cmp("fsl_p1010mux", "tdm_can", "tdm")) {
|
|
||||||
printf("TDM");
|
|
||||||
clrbits_be32(&gur->pmuxcr, MPC85xx_PMUXCR_CAN2_UART |
|
clrbits_be32(&gur->pmuxcr, MPC85xx_PMUXCR_CAN2_UART |
|
||||||
MPC85xx_PMUXCR_CAN1_UART);
|
MPC85xx_PMUXCR_CAN1_UART);
|
||||||
setbits_be32(&gur->pmuxcr, MPC85xx_PMUXCR_CAN2_TDM |
|
setbits_be32(&gur->pmuxcr, MPC85xx_PMUXCR_CAN2_TDM |
|
||||||
@ -321,8 +350,11 @@ int misc_init_r(void)
|
|||||||
setbits_be32(&gur->pmuxcr2, MPC85xx_PMUXCR2_UART_TDM);
|
setbits_be32(&gur->pmuxcr2, MPC85xx_PMUXCR2_UART_TDM);
|
||||||
out_8(&cpld_data->tdm_can_sel, MUX_CPLD_TDM);
|
out_8(&cpld_data->tdm_can_sel, MUX_CPLD_TDM);
|
||||||
out_8(&cpld_data->spi_cs0_sel, MUX_CPLD_SPICS0_SLIC);
|
out_8(&cpld_data->spi_cs0_sel, MUX_CPLD_SPICS0_SLIC);
|
||||||
}
|
} else {
|
||||||
#endif
|
/* defaultly spi_cs_sel to flash */
|
||||||
|
out_8(&cpld_data->spi_cs0_sel, MUX_CPLD_SPICS0_FLASH);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user