From: Marek Vasut <marek.vasut@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/2] EfikaSB: Add preliminary EfikaSB support
Date: Mon, 19 Sep 2011 12:42:21 +0200 [thread overview]
Message-ID: <1316428941-8957-3-git-send-email-marek.vasut@gmail.com> (raw)
In-Reply-To: <1316428941-8957-1-git-send-email-marek.vasut@gmail.com>
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Cc: Stefano Babic <sbabic@denx.de>
---
board/efikamx/efikamx.c | 57 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 53 insertions(+), 4 deletions(-)
diff --git a/board/efikamx/efikamx.c b/board/efikamx/efikamx.c
index 0f84ae0..33fbc86 100644
--- a/board/efikamx/efikamx.c
+++ b/board/efikamx/efikamx.c
@@ -46,6 +46,19 @@ DECLARE_GLOBAL_DATA_PTR;
#error "CONFIG_MXC_SPI not set, this is essential for board's operation!"
#endif
+#if !defined(CONFIG_MACH_EFIKAMX) && !defined(CONFIG_MACH_EFIKASB)
+#error "Missing CONFIG_MACH_EFIKAMX or CONFIG_MACH_EFIKASB in config.h!"
+#endif
+
+/*
+ * Pin definition
+ */
+#ifdef CONFIG_MACH_EFIKAMX
+#define EFIKA_SD1_CD MX51_PIN_GPIO1_0
+#else
+#define EFIKA_SD1_CD MX51_PIN_EIM_CS2
+#endif
+
/*
* Shared variables / local defines
*/
@@ -65,6 +78,7 @@ void efikamx_toggle_led(uint32_t mask);
/*
* Board identification
*/
+#ifdef CONFIG_MACH_EFIKAMX
u32 get_efika_rev(void)
{
u32 rev = 0;
@@ -96,6 +110,12 @@ u32 get_efika_rev(void)
return (~rev & 0x7) + 1;
}
+#else
+inline u32 get_efika_rev(void)
+{
+ return 0;
+}
+#endif
u32 get_board_rev(void)
{
@@ -273,7 +293,7 @@ int board_mmc_getcd(u8 *absent, struct mmc *mmc)
struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
if (cfg->esdhc_base == MMC_SDHC1_BASE_ADDR)
- *absent = gpio_get_value(IOMUX_TO_GPIO(MX51_PIN_GPIO1_0));
+ *absent = gpio_get_value(IOMUX_TO_GPIO(EFIKA_SD1_CD));
else
*absent = gpio_get_value(IOMUX_TO_GPIO(MX51_PIN_GPIO1_8));
@@ -284,9 +304,9 @@ int board_mmc_init(bd_t *bis)
int ret;
/* SDHC1 is used on all revisions, setup control pins first */
- mxc_request_iomux(MX51_PIN_GPIO1_0,
+ mxc_request_iomux(EFIKA_SD1_CD,
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
- mxc_iomux_set_pad(MX51_PIN_GPIO1_0,
+ mxc_iomux_set_pad(EFIKA_SD1_CD,
PAD_CTL_DRV_HIGH | PAD_CTL_HYS_ENABLE |
PAD_CTL_PUE_KEEPER | PAD_CTL_100K_PU |
PAD_CTL_ODE_OPENDRAIN_NONE |
@@ -298,11 +318,13 @@ int board_mmc_init(bd_t *bis)
PAD_CTL_100K_PU | PAD_CTL_ODE_OPENDRAIN_NONE |
PAD_CTL_SRE_FAST);
- gpio_direction_input(IOMUX_TO_GPIO(MX51_PIN_GPIO1_0));
+ gpio_direction_input(IOMUX_TO_GPIO(EFIKA_SD1_CD));
gpio_direction_input(IOMUX_TO_GPIO(MX51_PIN_GPIO1_1));
+#ifndef CONFIG_MACH_EFIKASB
/* Internal SDHC1 IOMUX + SDHC2 IOMUX on old boards */
if (get_efika_rev() < EFIKAMX_BOARD_REV_12) {
+#endif
/* SDHC1 IOMUX */
mxc_request_iomux(MX51_PIN_SD1_CMD,
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
@@ -384,6 +406,7 @@ int board_mmc_init(bd_t *bis)
ret = fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
if (!ret)
ret = fsl_esdhc_initialize(bis, &esdhc_cfg[1]);
+#ifndef CONFIG_MACH_EFIKASB
} else { /* New boards use only SDHC1 */
/* SDHC1 IOMUX */
mxc_request_iomux(MX51_PIN_SD1_CMD,
@@ -414,6 +437,7 @@ int board_mmc_init(bd_t *bis)
ret = fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
}
+#endif
return ret;
}
#endif
@@ -500,6 +524,7 @@ static inline void setup_iomux_usb(void) { }
/*
* LED configuration
*/
+#if defined(CONFIG_MACH_EFIKAMX)
void setup_iomux_led(void)
{
/* Blue LED */
@@ -524,6 +549,26 @@ void efikamx_toggle_led(uint32_t mask)
gpio_set_value(IOMUX_TO_GPIO(MX51_PIN_CSI1_HSYNC),
mask & EFIKAMX_LED_RED);
}
+#else
+void setup_iomux_led(void)
+{
+ /* CAPS-LOCK LED */
+ mxc_request_iomux(MX51_PIN_EIM_CS0, IOMUX_CONFIG_GPIO);
+ gpio_direction_output(IOMUX_TO_GPIO(MX51_PIN_EIM_CS0), 0);
+
+ /* ALARM-LED LED */
+ mxc_request_iomux(MX51_PIN_GPIO1_3, IOMUX_CONFIG_GPIO);
+ gpio_direction_output(IOMUX_TO_GPIO(MX51_PIN_GPIO1_3), 0);
+}
+
+void efikamx_toggle_led(uint32_t mask)
+{
+ gpio_set_value(IOMUX_TO_GPIO(MX51_PIN_EIM_CS0),
+ mask & EFIKAMX_LED_BLUE);
+ gpio_set_value(IOMUX_TO_GPIO(MX51_PIN_GPIO1_3),
+ !(mask & EFIKAMX_LED_GREEN));
+}
+#endif
/*
* Board initialization
@@ -616,7 +661,11 @@ int board_early_init_f(void)
int board_init(void)
{
+#ifdef CONFIG_MACH_EFIKAMX
gd->bd->bi_arch_number = MACH_TYPE_MX51_EFIKAMX;
+#else
+ gd->bd->bi_arch_number = MACH_TYPE_MX51_EFIKASB;
+#endif
gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
return 0;
--
1.7.5.4
next prev parent reply other threads:[~2011-09-19 10:42 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-19 10:42 [U-Boot] [PATCH 0/2] Add EfikaSB support Marek Vasut
2011-09-19 10:42 ` [U-Boot] [PATCH 1/2] EfikaMX: Add imximage config for Efika SB Marek Vasut
2011-09-19 13:19 ` Stefano Babic
2011-09-19 18:57 ` [U-Boot] [PATCH 1/2 V2] " Marek Vasut
2011-09-25 19:52 ` Marek Vasut
2011-09-26 10:53 ` Stefano Babic
2011-09-19 10:42 ` Marek Vasut [this message]
2011-09-22 9:44 ` [U-Boot] [PATCH 2/2] EfikaSB: Add preliminary EfikaSB support Stefano Babic
2011-09-22 12:29 ` Marek Vasut
2011-09-22 14:00 ` Stefano Babic
2011-09-22 15:52 ` Marek Vasut
2011-09-25 19:55 ` [U-Boot] [PATCH 2/2 V2] " Marek Vasut
2011-09-26 10:53 ` Stefano Babic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1316428941-8957-3-git-send-email-marek.vasut@gmail.com \
--to=marek.vasut@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.