static __init void davinci_ntosd2_init(void) { struct clk *aemif_clk; struct davinci_soc_info *soc_info = &davinci_soc_info; int status; aemif_clk = clk_get(NULL, "aemif"); clk_enable(aemif_clk); if (HAS_ATA) { if (HAS_NAND) pr_warning("WARNING: both IDE and Flash are " "enabled, but they share AEMIF pins.\n" "\tDisable IDE for NAND/NOR support.\n"); davinci_init_ide(); } else if (HAS_NAND) { davinci_cfg_reg(DM644X_HPIEN_DISABLE); davinci_cfg_reg(DM644X_ATAEN_DISABLE); /* only one device will be jumpered and detected */ if (HAS_NAND) platform_device_register( &davinci_ntosd2_nandflash_device); } platform_add_devices(davinci_ntosd2_devices, ARRAY_SIZE(davinci_ntosd2_devices)); /* Initialize I2C interface specific for this board */ status = ntosd2_init_i2c(); if (status < 0) pr_warning("davinci_ntosd2_init: msp430 irq setup failed:" " %d\n", status); davinci_serial_init(&uart_config); dm644x_init_asp(&dm644x_ntosd2_snd_data); soc_info->emac_pdata->phy_mask = NEUROS_OSD2_PHY_MASK; soc_info->emac_pdata->mdio_max_freq = NEUROS_OSD2_MDIO_FREQUENCY; davinci_setup_usb(1000, 8); /* * Mux the pins to be GPIOs, VLYNQEN is already done at startup. * The AEAWx are five new AEAW pins that can be muxed by separately. * They are a bitmask for GPIO management. According TI * documentation (http://www.ti.com/lit/gpn/tms320dm6446) to employ * gpio(10,11,12,13) for leds any combination of bits works except * four last. So we are to reset all five. */ davinci_cfg_reg(DM644X_AEAW0); davinci_cfg_reg(DM644X_AEAW1); davinci_cfg_reg(DM644X_AEAW2); davinci_cfg_reg(DM644X_AEAW3); davinci_cfg_reg(DM644X_AEAW4); davinci_setup_mmc(0, &davinci_ntosd2_mmc_config); }
static __init void davinci_ntosd2_init(void) { int ret; struct clk *aemif_clk; struct davinci_soc_info *soc_info = &davinci_soc_info; ret = dm644x_gpio_register(); if (ret) pr_warn("%s: GPIO init failed: %d\n", __func__, ret); aemif_clk = clk_get(NULL, "aemif"); clk_prepare_enable(aemif_clk); if (HAS_ATA) { if (HAS_NAND) pr_warn("WARNING: both IDE and Flash are enabled, but they share AEMIF pins\n" "\tDisable IDE for NAND/NOR support\n"); davinci_init_ide(); } else if (HAS_NAND) { davinci_cfg_reg(DM644X_HPIEN_DISABLE); davinci_cfg_reg(DM644X_ATAEN_DISABLE); /* only one device will be jumpered and detected */ if (HAS_NAND) platform_device_register( &davinci_ntosd2_nandflash_device); } platform_add_devices(davinci_ntosd2_devices, ARRAY_SIZE(davinci_ntosd2_devices)); davinci_serial_init(dm644x_serial_device); dm644x_init_asp(&dm644x_ntosd2_snd_data); soc_info->emac_pdata->phy_id = NEUROS_OSD2_PHY_ID; davinci_setup_usb(1000, 8); /* * Mux the pins to be GPIOs, VLYNQEN is already done at startup. * The AEAWx are five new AEAW pins that can be muxed by separately. * They are a bitmask for GPIO management. According TI * documentation (http://www.ti.com/lit/gpn/tms320dm6446) to employ * gpio(10,11,12,13) for leds any combination of bits works except * four last. So we are to reset all five. */ davinci_cfg_reg(DM644X_AEAW0); davinci_cfg_reg(DM644X_AEAW1); davinci_cfg_reg(DM644X_AEAW2); davinci_cfg_reg(DM644X_AEAW3); davinci_cfg_reg(DM644X_AEAW4); davinci_setup_mmc(0, &davinci_ntosd2_mmc_config); }