xref: /rk3399_rockchip-uboot/drivers/usb/host/ehci-vct.c (revision 748bde608a8dfea5b64e186af4d9c27642fe7813)
12731b9a8SJean-Christophe PLAGNIOL-VILLARD /*
22731b9a8SJean-Christophe PLAGNIOL-VILLARD  * (C) Copyright 2009 Stefan Roese <sr@denx.de>, DENX Software Engineering
32731b9a8SJean-Christophe PLAGNIOL-VILLARD  *
41a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
52731b9a8SJean-Christophe PLAGNIOL-VILLARD  */
62731b9a8SJean-Christophe PLAGNIOL-VILLARD 
72731b9a8SJean-Christophe PLAGNIOL-VILLARD #include <common.h>
82731b9a8SJean-Christophe PLAGNIOL-VILLARD #include <usb.h>
92731b9a8SJean-Christophe PLAGNIOL-VILLARD 
102731b9a8SJean-Christophe PLAGNIOL-VILLARD #include "ehci.h"
112731b9a8SJean-Christophe PLAGNIOL-VILLARD 
122731b9a8SJean-Christophe PLAGNIOL-VILLARD int vct_ehci_hcd_init(u32 *hccr, u32 *hcor);
132731b9a8SJean-Christophe PLAGNIOL-VILLARD 
142731b9a8SJean-Christophe PLAGNIOL-VILLARD /*
152731b9a8SJean-Christophe PLAGNIOL-VILLARD  * Create the appropriate control structures to manage
162731b9a8SJean-Christophe PLAGNIOL-VILLARD  * a new EHCI host controller.
172731b9a8SJean-Christophe PLAGNIOL-VILLARD  */
ehci_hcd_init(int index,enum usb_init_type init,struct ehci_hccr ** hccr,struct ehci_hcor ** hcor)18*127efc4fSTroy Kisky int ehci_hcd_init(int index, enum usb_init_type init,
19*127efc4fSTroy Kisky 		struct ehci_hccr **hccr, struct ehci_hcor **hcor)
202731b9a8SJean-Christophe PLAGNIOL-VILLARD {
212731b9a8SJean-Christophe PLAGNIOL-VILLARD 	int ret;
222731b9a8SJean-Christophe PLAGNIOL-VILLARD 	u32 vct_hccr;
232731b9a8SJean-Christophe PLAGNIOL-VILLARD 	u32 vct_hcor;
242731b9a8SJean-Christophe PLAGNIOL-VILLARD 
252731b9a8SJean-Christophe PLAGNIOL-VILLARD 	/*
262731b9a8SJean-Christophe PLAGNIOL-VILLARD 	 * Init VCT specific stuff
272731b9a8SJean-Christophe PLAGNIOL-VILLARD 	 */
282731b9a8SJean-Christophe PLAGNIOL-VILLARD 	ret = vct_ehci_hcd_init(&vct_hccr, &vct_hcor);
292731b9a8SJean-Christophe PLAGNIOL-VILLARD 	if (ret)
302731b9a8SJean-Christophe PLAGNIOL-VILLARD 		return ret;
312731b9a8SJean-Christophe PLAGNIOL-VILLARD 
32676ae068SLucas Stach 	*hccr = (struct ehci_hccr *)vct_hccr;
33676ae068SLucas Stach 	*hcor = (struct ehci_hcor *)vct_hcor;
342731b9a8SJean-Christophe PLAGNIOL-VILLARD 
352731b9a8SJean-Christophe PLAGNIOL-VILLARD 	return 0;
362731b9a8SJean-Christophe PLAGNIOL-VILLARD }
372731b9a8SJean-Christophe PLAGNIOL-VILLARD 
382731b9a8SJean-Christophe PLAGNIOL-VILLARD /*
392731b9a8SJean-Christophe PLAGNIOL-VILLARD  * Destroy the appropriate control structures corresponding
402731b9a8SJean-Christophe PLAGNIOL-VILLARD  * the the EHCI host controller.
412731b9a8SJean-Christophe PLAGNIOL-VILLARD  */
ehci_hcd_stop(int index)42676ae068SLucas Stach int ehci_hcd_stop(int index)
432731b9a8SJean-Christophe PLAGNIOL-VILLARD {
442731b9a8SJean-Christophe PLAGNIOL-VILLARD 	return 0;
452731b9a8SJean-Christophe PLAGNIOL-VILLARD }
46