[PATCH] ARM: 2847/1: S3C24XX - Documentation for USB OHCI host
Patch from Ben Dooks Documentation for the in-built OHCI host controller and the support for it in Linux. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
93
Documentation/arm/Samsung-S3C24XX/USB-Host.txt
Normal file
93
Documentation/arm/Samsung-S3C24XX/USB-Host.txt
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
S3C24XX USB Host support
|
||||||
|
========================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
This document details the S3C2410/S3C2440 in-built OHCI USB host support.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Enable at least the following kernel options:
|
||||||
|
|
||||||
|
menuconfig:
|
||||||
|
|
||||||
|
Device Drivers --->
|
||||||
|
USB support --->
|
||||||
|
<*> Support for Host-side USB
|
||||||
|
<*> OHCI HCD support
|
||||||
|
|
||||||
|
|
||||||
|
.config:
|
||||||
|
CONFIG_USB
|
||||||
|
CONFIG_USB_OHCI_HCD
|
||||||
|
|
||||||
|
|
||||||
|
Once these options are configured, the standard set of USB device
|
||||||
|
drivers can be configured and used.
|
||||||
|
|
||||||
|
|
||||||
|
Board Support
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The driver attaches to a platform device, which will need to be
|
||||||
|
added by the board specific support file in linux/arch/arm/mach-s3c2410,
|
||||||
|
such as mach-bast.c or mach-smdk2410.c
|
||||||
|
|
||||||
|
The platform device's platform_data field is only needed if the
|
||||||
|
board implements extra power control or over-current monitoring.
|
||||||
|
|
||||||
|
The OHCI driver does not ensure the state of the S3C2410's MISCCTRL
|
||||||
|
register, so if both ports are to be used for the host, then it is
|
||||||
|
the board support file's responsibility to ensure that the second
|
||||||
|
port is configured to be connected to the OHCI core.
|
||||||
|
|
||||||
|
|
||||||
|
Platform Data
|
||||||
|
-------------
|
||||||
|
|
||||||
|
See linux/include/asm-arm/arch-s3c2410/usb-control.h for the
|
||||||
|
descriptions of the platform device data. An implementation
|
||||||
|
can be found in linux/arch/arm/mach-s3c2410/usb-simtec.c .
|
||||||
|
|
||||||
|
The `struct s3c2410_hcd_info` contains a pair of functions
|
||||||
|
that get called to enable over-current detection, and to
|
||||||
|
control the port power status.
|
||||||
|
|
||||||
|
The ports are numbered 0 and 1.
|
||||||
|
|
||||||
|
power_control:
|
||||||
|
|
||||||
|
Called to enable or disable the power on the port.
|
||||||
|
|
||||||
|
enable_oc:
|
||||||
|
|
||||||
|
Called to enable or disable the over-current monitoring.
|
||||||
|
This should claim or release the resources being used to
|
||||||
|
check the power condition on the port, such as an IRQ.
|
||||||
|
|
||||||
|
report_oc:
|
||||||
|
|
||||||
|
The OHCI driver fills this field in for the over-current code
|
||||||
|
to call when there is a change to the over-current state on
|
||||||
|
an port. The ports argument is a bitmask of 1 bit per port,
|
||||||
|
with bit X being 1 for an over-current on port X.
|
||||||
|
|
||||||
|
The function s3c2410_usb_report_oc() has been provided to
|
||||||
|
ensure this is called correctly.
|
||||||
|
|
||||||
|
port[x]:
|
||||||
|
|
||||||
|
This is struct describes each port, 0 or 1. The platform driver
|
||||||
|
should set the flags field of each port to S3C_HCDFLG_USED if
|
||||||
|
the port is enabled.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Document Author
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Ben Dooks, (c) 2005 Simtec Electronics
|
Reference in New Issue
Block a user