|
@@ -39,124 +39,11 @@
|
|
|
#include <video/omap-panel-generic-dpi.h>
|
|
|
#include <video/omap-panel-dvi.h>
|
|
|
|
|
|
+#include "am35xx-emac.h"
|
|
|
#include "mux.h"
|
|
|
#include "control.h"
|
|
|
#include "hsmmc.h"
|
|
|
|
|
|
-#define AM35XX_EVM_MDIO_FREQUENCY (1000000)
|
|
|
-
|
|
|
-static struct mdio_platform_data am3517_evm_mdio_pdata = {
|
|
|
- .bus_freq = AM35XX_EVM_MDIO_FREQUENCY,
|
|
|
-};
|
|
|
-
|
|
|
-static struct resource am3517_mdio_resources[] = {
|
|
|
- {
|
|
|
- .start = AM35XX_IPSS_EMAC_BASE + AM35XX_EMAC_MDIO_OFFSET,
|
|
|
- .end = AM35XX_IPSS_EMAC_BASE + AM35XX_EMAC_MDIO_OFFSET +
|
|
|
- SZ_4K - 1,
|
|
|
- .flags = IORESOURCE_MEM,
|
|
|
- },
|
|
|
-};
|
|
|
-
|
|
|
-static struct platform_device am3517_mdio_device = {
|
|
|
- .name = "davinci_mdio",
|
|
|
- .id = 0,
|
|
|
- .num_resources = ARRAY_SIZE(am3517_mdio_resources),
|
|
|
- .resource = am3517_mdio_resources,
|
|
|
- .dev.platform_data = &am3517_evm_mdio_pdata,
|
|
|
-};
|
|
|
-
|
|
|
-static struct emac_platform_data am3517_evm_emac_pdata = {
|
|
|
- .rmii_en = 1,
|
|
|
-};
|
|
|
-
|
|
|
-static struct resource am3517_emac_resources[] = {
|
|
|
- {
|
|
|
- .start = AM35XX_IPSS_EMAC_BASE,
|
|
|
- .end = AM35XX_IPSS_EMAC_BASE + 0x2FFFF,
|
|
|
- .flags = IORESOURCE_MEM,
|
|
|
- },
|
|
|
- {
|
|
|
- .start = INT_35XX_EMAC_C0_RXTHRESH_IRQ,
|
|
|
- .end = INT_35XX_EMAC_C0_RXTHRESH_IRQ,
|
|
|
- .flags = IORESOURCE_IRQ,
|
|
|
- },
|
|
|
- {
|
|
|
- .start = INT_35XX_EMAC_C0_RX_PULSE_IRQ,
|
|
|
- .end = INT_35XX_EMAC_C0_RX_PULSE_IRQ,
|
|
|
- .flags = IORESOURCE_IRQ,
|
|
|
- },
|
|
|
- {
|
|
|
- .start = INT_35XX_EMAC_C0_TX_PULSE_IRQ,
|
|
|
- .end = INT_35XX_EMAC_C0_TX_PULSE_IRQ,
|
|
|
- .flags = IORESOURCE_IRQ,
|
|
|
- },
|
|
|
- {
|
|
|
- .start = INT_35XX_EMAC_C0_MISC_PULSE_IRQ,
|
|
|
- .end = INT_35XX_EMAC_C0_MISC_PULSE_IRQ,
|
|
|
- .flags = IORESOURCE_IRQ,
|
|
|
- },
|
|
|
-};
|
|
|
-
|
|
|
-static struct platform_device am3517_emac_device = {
|
|
|
- .name = "davinci_emac",
|
|
|
- .id = -1,
|
|
|
- .num_resources = ARRAY_SIZE(am3517_emac_resources),
|
|
|
- .resource = am3517_emac_resources,
|
|
|
-};
|
|
|
-
|
|
|
-static void am3517_enable_ethernet_int(void)
|
|
|
-{
|
|
|
- u32 regval;
|
|
|
-
|
|
|
- regval = omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR);
|
|
|
- regval = (regval | AM35XX_CPGMAC_C0_RX_PULSE_CLR |
|
|
|
- AM35XX_CPGMAC_C0_TX_PULSE_CLR |
|
|
|
- AM35XX_CPGMAC_C0_MISC_PULSE_CLR |
|
|
|
- AM35XX_CPGMAC_C0_RX_THRESH_CLR);
|
|
|
- omap_ctrl_writel(regval, AM35XX_CONTROL_LVL_INTR_CLEAR);
|
|
|
- regval = omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR);
|
|
|
-}
|
|
|
-
|
|
|
-static void am3517_disable_ethernet_int(void)
|
|
|
-{
|
|
|
- u32 regval;
|
|
|
-
|
|
|
- regval = omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR);
|
|
|
- regval = (regval | AM35XX_CPGMAC_C0_RX_PULSE_CLR |
|
|
|
- AM35XX_CPGMAC_C0_TX_PULSE_CLR);
|
|
|
- omap_ctrl_writel(regval, AM35XX_CONTROL_LVL_INTR_CLEAR);
|
|
|
- regval = omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR);
|
|
|
-}
|
|
|
-
|
|
|
-static void am3517_evm_ethernet_init(struct emac_platform_data *pdata)
|
|
|
-{
|
|
|
- unsigned int regval;
|
|
|
-
|
|
|
- pdata->ctrl_reg_offset = AM35XX_EMAC_CNTRL_OFFSET;
|
|
|
- pdata->ctrl_mod_reg_offset = AM35XX_EMAC_CNTRL_MOD_OFFSET;
|
|
|
- pdata->ctrl_ram_offset = AM35XX_EMAC_CNTRL_RAM_OFFSET;
|
|
|
- pdata->ctrl_ram_size = AM35XX_EMAC_CNTRL_RAM_SIZE;
|
|
|
- pdata->version = EMAC_VERSION_2;
|
|
|
- pdata->hw_ram_addr = AM35XX_EMAC_HW_RAM_ADDR;
|
|
|
- pdata->interrupt_enable = am3517_enable_ethernet_int;
|
|
|
- pdata->interrupt_disable = am3517_disable_ethernet_int;
|
|
|
- am3517_emac_device.dev.platform_data = pdata;
|
|
|
- platform_device_register(&am3517_emac_device);
|
|
|
- platform_device_register(&am3517_mdio_device);
|
|
|
- clk_add_alias(NULL, dev_name(&am3517_mdio_device.dev),
|
|
|
- NULL, &am3517_emac_device.dev);
|
|
|
-
|
|
|
- regval = omap_ctrl_readl(AM35XX_CONTROL_IP_SW_RESET);
|
|
|
- regval = regval & (~(AM35XX_CPGMACSS_SW_RST));
|
|
|
- omap_ctrl_writel(regval, AM35XX_CONTROL_IP_SW_RESET);
|
|
|
- regval = omap_ctrl_readl(AM35XX_CONTROL_IP_SW_RESET);
|
|
|
-
|
|
|
- return ;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
#define LCD_PANEL_PWR 176
|
|
|
#define LCD_PANEL_BKLIGHT_PWR 182
|
|
|
#define LCD_PANEL_PWM 181
|
|
@@ -498,7 +385,7 @@ static void __init am3517_evm_init(void)
|
|
|
i2c_register_board_info(1, am3517evm_i2c1_boardinfo,
|
|
|
ARRAY_SIZE(am3517evm_i2c1_boardinfo));
|
|
|
/*Ethernet*/
|
|
|
- am3517_evm_ethernet_init(&am3517_evm_emac_pdata);
|
|
|
+ am35xx_emac_init(AM35XX_DEFAULT_MDIO_FREQUENCY, 1);
|
|
|
|
|
|
/* MUSB */
|
|
|
am3517_evm_musb_init();
|