mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-10-02 09:30:43 +09:00
dm: usb: Pass EHCI controller pointer to ehci_get_port_speed()
Adjust this function so that it is passed an EHCI controller pointer so that implementations can look up their controller. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marex@denx.de>
This commit is contained in:
parent
aac064f76b
commit
7338287d58
@ -101,11 +101,12 @@ void ehci_set_usbmode(int index)
|
|||||||
* This ehci_get_port_speed() overrides the weak function
|
* This ehci_get_port_speed() overrides the weak function
|
||||||
* in "ehci-hcd.c".
|
* in "ehci-hcd.c".
|
||||||
*/
|
*/
|
||||||
int ehci_get_port_speed(struct ehci_hcor *hcor, uint32_t reg)
|
int ehci_get_port_speed(struct ehci_ctrl *ctrl, uint32_t reg)
|
||||||
{
|
{
|
||||||
int spd, ret = PORTSC_PSPD_HS;
|
int spd, ret = PORTSC_PSPD_HS;
|
||||||
union ehci_faraday_regs *regs = (void __iomem *)((ulong)hcor - 0x10);
|
union ehci_faraday_regs *regs;
|
||||||
|
|
||||||
|
ret = (void __iomem *)((ulong)ctrl->hcor - 0x10);
|
||||||
if (ehci_is_fotg2xx(regs))
|
if (ehci_is_fotg2xx(regs))
|
||||||
spd = OTGCSR_SPD(readl(®s->otg.otgcsr));
|
spd = OTGCSR_SPD(readl(®s->otg.otgcsr));
|
||||||
else
|
else
|
||||||
|
@ -119,7 +119,7 @@ static struct descriptor {
|
|||||||
#define ehci_is_TDI() (0)
|
#define ehci_is_TDI() (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__weak int ehci_get_port_speed(struct ehci_hcor *hcor, uint32_t reg)
|
__weak int ehci_get_port_speed(struct ehci_ctrl *ctrl, uint32_t reg)
|
||||||
{
|
{
|
||||||
return PORTSC_PSPD(reg);
|
return PORTSC_PSPD(reg);
|
||||||
}
|
}
|
||||||
@ -781,7 +781,7 @@ ehci_submit_root(struct usb_device *dev, unsigned long pipe, void *buffer,
|
|||||||
tmpbuf[1] |= USB_PORT_STAT_POWER >> 8;
|
tmpbuf[1] |= USB_PORT_STAT_POWER >> 8;
|
||||||
|
|
||||||
if (ehci_is_TDI()) {
|
if (ehci_is_TDI()) {
|
||||||
switch (ehci_get_port_speed(ctrl->hcor, reg)) {
|
switch (ehci_get_port_speed(ctrl, reg)) {
|
||||||
case PORTSC_PSPD_FS:
|
case PORTSC_PSPD_FS:
|
||||||
break;
|
break;
|
||||||
case PORTSC_PSPD_LS:
|
case PORTSC_PSPD_LS:
|
||||||
|
@ -225,13 +225,14 @@ void ehci_set_usbmode(int index)
|
|||||||
* This ehci_get_port_speed overrides the weak function ehci_get_port_speed
|
* This ehci_get_port_speed overrides the weak function ehci_get_port_speed
|
||||||
* in "ehci-hcd.c".
|
* in "ehci-hcd.c".
|
||||||
*/
|
*/
|
||||||
int ehci_get_port_speed(struct ehci_hcor *hcor, uint32_t reg)
|
int ehci_get_port_speed(struct ehci_ctrl *ctrl, uint32_t reg)
|
||||||
{
|
{
|
||||||
uint32_t tmp;
|
uint32_t tmp;
|
||||||
uint32_t *reg_ptr;
|
uint32_t *reg_ptr;
|
||||||
|
|
||||||
if (controller->has_hostpc) {
|
if (controller->has_hostpc) {
|
||||||
reg_ptr = (uint32_t *)((u8 *)&hcor->or_usbcmd + HOSTPC1_DEVLC);
|
reg_ptr = (uint32_t *)((u8 *)&ctrl->hcor->or_usbcmd +
|
||||||
|
HOSTPC1_DEVLC);
|
||||||
tmp = ehci_readl(reg_ptr);
|
tmp = ehci_readl(reg_ptr);
|
||||||
return HOSTPC1_PSPD(tmp);
|
return HOSTPC1_PSPD(tmp);
|
||||||
} else
|
} else
|
||||||
|
@ -251,7 +251,7 @@ struct ehci_ctrl {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Weak functions that drivers can override */
|
/* Weak functions that drivers can override */
|
||||||
int ehci_get_port_speed(struct ehci_hcor *hcor, uint32_t reg);
|
int ehci_get_port_speed(struct ehci_ctrl *ctrl, uint32_t reg);
|
||||||
void ehci_set_usbmode(int index);
|
void ehci_set_usbmode(int index);
|
||||||
void ehci_powerup_fixup(uint32_t *status_reg, uint32_t *reg);
|
void ehci_powerup_fixup(uint32_t *status_reg, uint32_t *reg);
|
||||||
uint32_t *ehci_get_portsc_register(struct ehci_hcor *hcor, int port);
|
uint32_t *ehci_get_portsc_register(struct ehci_hcor *hcor, int port);
|
||||||
|
Loading…
Reference in New Issue
Block a user