|
@@ -17,10 +17,32 @@
|
|
|
#include <asm/time.h>
|
|
|
#include <asm/ipic.h>
|
|
|
#include <asm/udbg.h>
|
|
|
+#include <sysdev/fsl_soc.h>
|
|
|
#include <sysdev/fsl_pci.h>
|
|
|
|
|
|
#include "mpc83xx.h"
|
|
|
|
|
|
+static void mpc837x_rdb_sd_cfg(void)
|
|
|
+{
|
|
|
+ void __iomem *im;
|
|
|
+
|
|
|
+ im = ioremap(get_immrbase(), 0x1000);
|
|
|
+ if (!im) {
|
|
|
+ WARN_ON(1);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * On RDB boards (in contrast to MDS) USBB pins are used for SD only,
|
|
|
+ * so we can safely mux them away from the USB block.
|
|
|
+ */
|
|
|
+ clrsetbits_be32(im + MPC83XX_SICRL_OFFS, MPC837X_SICRL_USBB_MASK,
|
|
|
+ MPC837X_SICRL_SD);
|
|
|
+ clrsetbits_be32(im + MPC83XX_SICRH_OFFS, MPC837X_SICRH_SPI_MASK,
|
|
|
+ MPC837X_SICRH_SD);
|
|
|
+ iounmap(im);
|
|
|
+}
|
|
|
+
|
|
|
/* ************************************************************************
|
|
|
*
|
|
|
* Setup the architecture
|
|
@@ -42,6 +64,7 @@ static void __init mpc837x_rdb_setup_arch(void)
|
|
|
mpc83xx_add_bridge(np);
|
|
|
#endif
|
|
|
mpc837x_usb_cfg();
|
|
|
+ mpc837x_rdb_sd_cfg();
|
|
|
}
|
|
|
|
|
|
static struct of_device_id mpc837x_ids[] = {
|