arm: atmel: at91sam9n12ek: add usb host support
Add usb host support for at91sam9n12ek board. Signed-off-by: Bo Shen <voice.shen@atmel.com> Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
This commit is contained in:
parent
32e4f6bf2e
commit
d9bef0ad2d
@ -233,6 +233,8 @@ typedef struct at91_pmc {
|
|||||||
#endif
|
#endif
|
||||||
#define AT91_PMC_USBS_USB_PLLA (0x0) /* USB Clock Input is PLLA */
|
#define AT91_PMC_USBS_USB_PLLA (0x0) /* USB Clock Input is PLLA */
|
||||||
#define AT91_PMC_USBS_USB_UPLL (0x1) /* USB Clock Input is UPLL */
|
#define AT91_PMC_USBS_USB_UPLL (0x1) /* USB Clock Input is UPLL */
|
||||||
|
#define AT91_PMC_USBS_USB_PLLB (0x1) /* USB Clock Input is PLLB, AT91SAM9N12 only */
|
||||||
|
#define AT91_PMC_USB_DIV_2 (0x1 << 8) /* USB Clock divided by 2 */
|
||||||
#define AT91_PMC_USBDIV_8 (0x7 << 8) /* USB Clock divided by 8 */
|
#define AT91_PMC_USBDIV_8 (0x7 << 8) /* USB Clock divided by 8 */
|
||||||
#define AT91_PMC_USBDIV_10 (0x9 << 8) /* USB Clock divided by 10 */
|
#define AT91_PMC_USBDIV_10 (0x9 << 8) /* USB Clock divided by 10 */
|
||||||
|
|
||||||
|
@ -199,6 +199,13 @@ void at91sam9n12ek_ks8851_hw_init(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_USB_ATMEL
|
||||||
|
void at91sam9n12ek_usb_hw_init(void)
|
||||||
|
{
|
||||||
|
at91_set_pio_output(AT91_PIO_PORTB, 7, 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int board_early_init_f(void)
|
int board_early_init_f(void)
|
||||||
{
|
{
|
||||||
/* Enable clocks for all PIOs */
|
/* Enable clocks for all PIOs */
|
||||||
@ -230,6 +237,10 @@ int board_init(void)
|
|||||||
at91sam9n12ek_ks8851_hw_init();
|
at91sam9n12ek_ks8851_hw_init();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_USB_ATMEL
|
||||||
|
at91sam9n12ek_usb_hw_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,11 +20,14 @@ int usb_cpu_init(void)
|
|||||||
|
|
||||||
#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
|
#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
|
||||||
defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) || \
|
defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) || \
|
||||||
defined(CONFIG_AT91SAM9261)
|
defined(CONFIG_AT91SAM9261) || defined(CONFIG_AT91SAM9N12)
|
||||||
/* Enable PLLB */
|
/* Enable PLLB */
|
||||||
writel(get_pllb_init(), &pmc->pllbr);
|
writel(get_pllb_init(), &pmc->pllbr);
|
||||||
while ((readl(&pmc->sr) & AT91_PMC_LOCKB) != AT91_PMC_LOCKB)
|
while ((readl(&pmc->sr) & AT91_PMC_LOCKB) != AT91_PMC_LOCKB)
|
||||||
;
|
;
|
||||||
|
#ifdef CONFIG_AT91SAM9N12
|
||||||
|
writel(AT91_PMC_USBS_USB_PLLB | AT91_PMC_USB_DIV_2, &pmc->usb);
|
||||||
|
#endif
|
||||||
#elif defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45) || \
|
#elif defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45) || \
|
||||||
defined(CONFIG_AT91SAM9X5) || defined(CONFIG_SAMA5D3)
|
defined(CONFIG_AT91SAM9X5) || defined(CONFIG_SAMA5D3)
|
||||||
/* Enable UPLL */
|
/* Enable UPLL */
|
||||||
@ -71,7 +74,11 @@ int usb_cpu_stop(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
|
#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
|
||||||
defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20)
|
defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) || \
|
||||||
|
defined(CONFIG_AT91SAM9N12)
|
||||||
|
#ifdef CONFIG_AT91SAM9N12
|
||||||
|
writel(0, &pmc->usb);
|
||||||
|
#endif
|
||||||
/* Disable PLLB */
|
/* Disable PLLB */
|
||||||
writel(0, &pmc->pllbr);
|
writel(0, &pmc->pllbr);
|
||||||
while ((readl(&pmc->sr) & AT91_PMC_LOCKB) != 0)
|
while ((readl(&pmc->sr) & AT91_PMC_LOCKB) != 0)
|
||||||
|
@ -83,6 +83,7 @@
|
|||||||
#define CONFIG_CMD_SF
|
#define CONFIG_CMD_SF
|
||||||
#define CONFIG_CMD_MMC
|
#define CONFIG_CMD_MMC
|
||||||
#define CONFIG_CMD_FAT
|
#define CONFIG_CMD_FAT
|
||||||
|
#define CONFIG_CMD_USB
|
||||||
|
|
||||||
#define CONFIG_NR_DRAM_BANKS 1
|
#define CONFIG_NR_DRAM_BANKS 1
|
||||||
#define CONFIG_SYS_SDRAM_BASE 0x20000000
|
#define CONFIG_SYS_SDRAM_BASE 0x20000000
|
||||||
@ -163,6 +164,17 @@
|
|||||||
#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
|
#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
|
||||||
#define CONFIG_SYS_MEMTEST_END 0x26e00000
|
#define CONFIG_SYS_MEMTEST_END 0x26e00000
|
||||||
|
|
||||||
|
/* USB host */
|
||||||
|
#ifdef CONFIG_CMD_USB
|
||||||
|
#define CONFIG_USB_ATMEL
|
||||||
|
#define CONFIG_USB_OHCI_NEW
|
||||||
|
#define CONFIG_SYS_USB_OHCI_CPU_INIT
|
||||||
|
#define CONFIG_SYS_USB_OHCI_REGS_BASE ATMEL_BASE_OHCI
|
||||||
|
#define CONFIG_SYS_USB_OHCI_SLOT_NAME "at91sam9n12"
|
||||||
|
#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 1
|
||||||
|
#define CONFIG_USB_STORAGE
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_USE_SPIFLASH
|
#ifdef CONFIG_SYS_USE_SPIFLASH
|
||||||
|
|
||||||
/* bootstrap + u-boot + env + linux in dataflash on CS0 */
|
/* bootstrap + u-boot + env + linux in dataflash on CS0 */
|
||||||
|
Loading…
Reference in New Issue
Block a user