|
@@ -76,3 +76,87 @@
|
|
|
* 7 = Generation 2 (>=RevE)
|
|
|
*/
|
|
|
#define OMAP3EVM_GEN1_ETHR_GPIO_RST 64
|
|
|
+#define OMAP3EVM_GEN2_ETHR_GPIO_RST 7
|
|
|
+
|
|
|
+/*
|
|
|
+ * OMAP35x EVM revision
|
|
|
+ * Run time detection of EVM revision is done by reading Ethernet
|
|
|
+ * PHY ID -
|
|
|
+ * GEN_1 = 0x01150000
|
|
|
+ * GEN_2 = 0x92200000
|
|
|
+ */
|
|
|
+enum {
|
|
|
+ OMAP3EVM_BOARD_GEN_1 = 0, /* EVM Rev between A - D */
|
|
|
+ OMAP3EVM_BOARD_GEN_2, /* EVM Rev >= Rev E */
|
|
|
+};
|
|
|
+
|
|
|
+static u8 omap3_evm_version;
|
|
|
+
|
|
|
+static u8 get_omap3_evm_rev(void)
|
|
|
+{
|
|
|
+ return omap3_evm_version;
|
|
|
+}
|
|
|
+
|
|
|
+static void __init omap3_evm_get_revision(void)
|
|
|
+{
|
|
|
+ void __iomem *ioaddr;
|
|
|
+ unsigned int smsc_id;
|
|
|
+
|
|
|
+ /* Ethernet PHY ID is stored at ID_REV register */
|
|
|
+ ioaddr = ioremap_nocache(OMAP3EVM_ETHR_START, SZ_1K);
|
|
|
+ if (!ioaddr)
|
|
|
+ return;
|
|
|
+ smsc_id = readl(ioaddr + OMAP3EVM_ETHR_ID_REV) & 0xFFFF0000;
|
|
|
+ iounmap(ioaddr);
|
|
|
+
|
|
|
+ switch (smsc_id) {
|
|
|
+ /*SMSC9115 chipset*/
|
|
|
+ case 0x01150000:
|
|
|
+ omap3_evm_version = OMAP3EVM_BOARD_GEN_1;
|
|
|
+ break;
|
|
|
+ /*SMSC 9220 chipset*/
|
|
|
+ case 0x92200000:
|
|
|
+ default:
|
|
|
+ omap3_evm_version = OMAP3EVM_BOARD_GEN_2;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
|
|
|
+#include "gpmc-smsc911x.h"
|
|
|
+
|
|
|
+static struct omap_smsc911x_platform_data smsc911x_cfg = {
|
|
|
+ .cs = OMAP3EVM_SMSC911X_CS,
|
|
|
+ .gpio_irq = OMAP3EVM_ETHR_GPIO_IRQ,
|
|
|
+ .gpio_reset = -EINVAL,
|
|
|
+ .flags = SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS,
|
|
|
+};
|
|
|
+
|
|
|
+static inline void __init omap3evm_init_smsc911x(void)
|
|
|
+{
|
|
|
+ /* Configure ethernet controller reset gpio */
|
|
|
+ if (cpu_is_omap3430()) {
|
|
|
+ if (get_omap3_evm_rev() == OMAP3EVM_BOARD_GEN_1)
|
|
|
+ smsc911x_cfg.gpio_reset = OMAP3EVM_GEN1_ETHR_GPIO_RST;
|
|
|
+ else
|
|
|
+ smsc911x_cfg.gpio_reset = OMAP3EVM_GEN2_ETHR_GPIO_RST;
|
|
|
+ }
|
|
|
+
|
|
|
+ gpmc_smsc911x_init(&smsc911x_cfg);
|
|
|
+}
|
|
|
+
|
|
|
+#else
|
|
|
+static inline void __init omap3evm_init_smsc911x(void) { return; }
|
|
|
+#endif
|
|
|
+
|
|
|
+/*
|
|
|
+ * OMAP3EVM LCD Panel control signals
|
|
|
+ */
|
|
|
+#define OMAP3EVM_LCD_PANEL_LR 2
|
|
|
+#define OMAP3EVM_LCD_PANEL_UD 3
|
|
|
+#define OMAP3EVM_LCD_PANEL_INI 152
|
|
|
+#define OMAP3EVM_LCD_PANEL_ENVDD 153
|
|
|
+#define OMAP3EVM_LCD_PANEL_QVGA 154
|
|
|
+#define OMAP3EVM_LCD_PANEL_RESB 155
|
|
|
+#define OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO 210
|
|
|
+#define OMAP3EVM_DVI_PANEL_EN_GPIO 199
|
|
|
+
|