diff options
| -rw-r--r-- | Documentation/arm/Samsung-S3C24XX/USB-Host.txt | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/Documentation/arm/Samsung-S3C24XX/USB-Host.txt b/Documentation/arm/Samsung-S3C24XX/USB-Host.txt new file mode 100644 index 000000000000..b93b68e2b143 --- /dev/null +++ b/Documentation/arm/Samsung-S3C24XX/USB-Host.txt | |||
| @@ -0,0 +1,93 @@ | |||
| 1 | S3C24XX USB Host support | ||
| 2 | ======================== | ||
| 3 | |||
| 4 | |||
| 5 | |||
| 6 | Introduction | ||
| 7 | ------------ | ||
| 8 | |||
| 9 | This document details the S3C2410/S3C2440 in-built OHCI USB host support. | ||
| 10 | |||
| 11 | Configuration | ||
| 12 | ------------- | ||
| 13 | |||
| 14 | Enable at least the following kernel options: | ||
| 15 | |||
| 16 | menuconfig: | ||
| 17 | |||
| 18 | Device Drivers ---> | ||
| 19 | USB support ---> | ||
| 20 | <*> Support for Host-side USB | ||
| 21 | <*> OHCI HCD support | ||
| 22 | |||
| 23 | |||
| 24 | .config: | ||
| 25 | CONFIG_USB | ||
| 26 | CONFIG_USB_OHCI_HCD | ||
| 27 | |||
| 28 | |||
| 29 | Once these options are configured, the standard set of USB device | ||
| 30 | drivers can be configured and used. | ||
| 31 | |||
| 32 | |||
| 33 | Board Support | ||
| 34 | ------------- | ||
| 35 | |||
| 36 | The driver attaches to a platform device, which will need to be | ||
| 37 | added by the board specific support file in linux/arch/arm/mach-s3c2410, | ||
| 38 | such as mach-bast.c or mach-smdk2410.c | ||
| 39 | |||
| 40 | The platform device's platform_data field is only needed if the | ||
| 41 | board implements extra power control or over-current monitoring. | ||
| 42 | |||
| 43 | The OHCI driver does not ensure the state of the S3C2410's MISCCTRL | ||
| 44 | register, so if both ports are to be used for the host, then it is | ||
| 45 | the board support file's responsibility to ensure that the second | ||
| 46 | port is configured to be connected to the OHCI core. | ||
| 47 | |||
| 48 | |||
| 49 | Platform Data | ||
| 50 | ------------- | ||
| 51 | |||
| 52 | See linux/include/asm-arm/arch-s3c2410/usb-control.h for the | ||
| 53 | descriptions of the platform device data. An implementation | ||
| 54 | can be found in linux/arch/arm/mach-s3c2410/usb-simtec.c . | ||
| 55 | |||
| 56 | The `struct s3c2410_hcd_info` contains a pair of functions | ||
| 57 | that get called to enable over-current detection, and to | ||
| 58 | control the port power status. | ||
| 59 | |||
| 60 | The ports are numbered 0 and 1. | ||
| 61 | |||
| 62 | power_control: | ||
| 63 | |||
| 64 | Called to enable or disable the power on the port. | ||
| 65 | |||
| 66 | enable_oc: | ||
| 67 | |||
| 68 | Called to enable or disable the over-current monitoring. | ||
| 69 | This should claim or release the resources being used to | ||
| 70 | check the power condition on the port, such as an IRQ. | ||
| 71 | |||
| 72 | report_oc: | ||
| 73 | |||
| 74 | The OHCI driver fills this field in for the over-current code | ||
| 75 | to call when there is a change to the over-current state on | ||
| 76 | an port. The ports argument is a bitmask of 1 bit per port, | ||
| 77 | with bit X being 1 for an over-current on port X. | ||
| 78 | |||
| 79 | The function s3c2410_usb_report_oc() has been provided to | ||
| 80 | ensure this is called correctly. | ||
| 81 | |||
| 82 | port[x]: | ||
| 83 | |||
| 84 | This is struct describes each port, 0 or 1. The platform driver | ||
| 85 | should set the flags field of each port to S3C_HCDFLG_USED if | ||
| 86 | the port is enabled. | ||
| 87 | |||
| 88 | |||
| 89 | |||
| 90 | Document Author | ||
| 91 | --------------- | ||
| 92 | |||
| 93 | Ben Dooks, (c) 2005 Simtec Electronics | ||
