commit
81d72d7e2e
@ -0,0 +1,53 @@ |
||||
/*
|
||||
* (C) Copyright 2006 |
||||
* DENX Software Engineering <mk@denx.de> |
||||
* |
||||
* See file CREDITS for list of people who contributed to this |
||||
* project. |
||||
* |
||||
* This program is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU General Public License as |
||||
* published by the Free Software Foundation; either version 2 of |
||||
* the License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program; if not, write to the Free Software |
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
||||
* MA 02111-1307 USA |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
|
||||
#if defined(CONFIG_USB_OHCI) && defined(CFG_USB_OHCI_CPU_INIT) |
||||
# ifdef CONFIG_AT91RM9200 |
||||
|
||||
#include <asm/arch/hardware.h> |
||||
|
||||
int usb_cpu_init() |
||||
{ |
||||
/* Enable USB host clock. */ |
||||
*AT91C_PMC_SCER = AT91C_PMC_UHP; /* 48MHz clock enabled for UHP */ |
||||
*AT91C_PMC_PCER = 1 << AT91C_ID_UHP; /* Peripheral Clock Enable Register */ |
||||
return 0; |
||||
} |
||||
|
||||
int usb_cpu_stop() |
||||
{ |
||||
/* Initialization failed */ |
||||
*AT91C_PMC_PCDR = 1 << AT91C_ID_UHP; /* Peripheral Clock Disable Register */ |
||||
*AT91C_PMC_SCDR = AT91C_PMC_UHP; /* 48MHz clock disabled for UHP */ |
||||
return 0; |
||||
} |
||||
|
||||
int usb_cpu_init_fail() |
||||
{ |
||||
usb_cpu_stop(); |
||||
} |
||||
|
||||
# endif /* CONFIG_AT91RM9200 */ |
||||
#endif /* defined(CONFIG_USB_OHCI) && defined(CFG_USB_OHCI_CPU_INIT) */ |
@ -0,0 +1,72 @@ |
||||
/*
|
||||
* (C) Copyright 2006 |
||||
* DENX Software Engineering <mk@denx.de> |
||||
* |
||||
* See file CREDITS for list of people who contributed to this |
||||
* project. |
||||
* |
||||
* This program is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU General Public License as |
||||
* published by the Free Software Foundation; either version 2 of |
||||
* the License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program; if not, write to the Free Software |
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
||||
* MA 02111-1307 USA |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
|
||||
#if defined(CONFIG_USB_OHCI) && defined(CFG_USB_OHCI_CPU_INIT) |
||||
# if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) |
||||
|
||||
#if defined(CONFIG_S3C2400) |
||||
# include <s3c2400.h> |
||||
#elif defined(CONFIG_S3C2410) |
||||
# include <s3c2410.h> |
||||
#endif |
||||
|
||||
int usb_cpu_init() |
||||
{ |
||||
|
||||
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); |
||||
S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO(); |
||||
|
||||
/*
|
||||
* Set the 48 MHz UPLL clocking. Values are taken from |
||||
* "PLL value selection guide", 6-23, s3c2400_UM.pdf. |
||||
*/ |
||||
clk_power->UPLLCON = ((40 << 12) + (1 << 4) + 2); |
||||
gpio->MISCCR |= 0x8; /* 1 = use pads related USB for USB host */ |
||||
|
||||
/*
|
||||
* Enable USB host clock. |
||||
*/ |
||||
clk_power->CLKCON |= (1 << 4); |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
int usb_cpu_stop() |
||||
{ |
||||
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); |
||||
/* may not want to do this */ |
||||
clk_power->CLKCON &= ~(1 << 4); |
||||
return 0; |
||||
} |
||||
|
||||
int usb_cpu_init_fail() |
||||
{ |
||||
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); |
||||
clk_power->CLKCON &= ~(1 << 4); |
||||
return 0; |
||||
} |
||||
|
||||
# endif /* defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) */ |
||||
#endif /* defined(CONFIG_USB_OHCI) && defined(CFG_USB_OHCI_CPU_INIT) */ |
@ -0,0 +1,78 @@ |
||||
/*
|
||||
* (C) Copyright 2006 |
||||
* Markus Klotzbuecher, DENX Software Engineering <mk@denx.de> |
||||
* |
||||
* See file CREDITS for list of people who contributed to this |
||||
* project. |
||||
* |
||||
* This program is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU General Public License as |
||||
* published by the Free Software Foundation; either version 2 of |
||||
* the License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program; if not, write to the Free Software |
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
||||
* MA 02111-1307 USA |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
|
||||
#if defined(CONFIG_USB_OHCI) && defined(CFG_USB_OHCI_CPU_INIT) |
||||
# ifdef CONFIG_CPU_MONAHANS |
||||
|
||||
#include <asm/arch/pxa-regs.h> |
||||
|
||||
int usb_cpu_init() |
||||
{ |
||||
/* Enable USB host clock. */ |
||||
CKENA |= (CKENA_2_USBHOST | CKENA_20_UDC); |
||||
udelay(100); |
||||
|
||||
/* Configure Port 2 for Host (USB Client Registers) */ |
||||
UP2OCR = 0x3000c; |
||||
|
||||
#if 0 |
||||
GPIO2_2 = 0x801; /* USBHPEN - Alt. Fkt. 1 */ |
||||
GPIO3_2 = 0x801; /* USBHPWR - Alt. Fkt. 1 */ |
||||
#endif |
||||
|
||||
UHCHR |= UHCHR_FHR; |
||||
wait_ms(11); |
||||
UHCHR &= ~UHCHR_FHR; |
||||
|
||||
UHCHR |= UHCHR_FSBIR; |
||||
while (UHCHR & UHCHR_FSBIR) |
||||
udelay(1); |
||||
|
||||
#if 0 |
||||
UHCHR |= UHCHR_PCPL; /* USBHPEN is active low */ |
||||
UHCHR |= UHCHR_PSPL; /* USBHPWR is active low */ |
||||
#endif |
||||
|
||||
UHCHR &= ~UHCHR_SSEP0; |
||||
UHCHR &= ~UHCHR_SSEP1; |
||||
UHCHR &= ~UHCHR_SSE; |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
int usb_cpu_stop() |
||||
{ |
||||
/* may not want to do this */ |
||||
/* CKENA &= ~(CKENA_2_USBHOST | CKENA_20_UDC); */ |
||||
return 0; |
||||
} |
||||
|
||||
int usb_cpu_init_fail() |
||||
{ |
||||
return 0; |
||||
} |
||||
|
||||
# endif /* CONFIG_CPU_MONAHANS */ |
||||
#endif /* defined(CONFIG_USB_OHCI) && defined(CFG_USB_OHCI_CPU_INIT) */ |
Loading…
Reference in new issue