diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2011-10-11 01:06:12 -0400 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2011-10-13 13:41:47 -0400 |
commit | f427eb64f4c5433a91da5eb139970dd5cbad9082 (patch) | |
tree | 777650bce6b85cfd2fd65e54eff5ffe5df1c8e38 | |
parent | 6ff5d09bd2fd5943f5b16cb1e3453446a1f575e2 (diff) |
usb: gadget: renesas_usbhs: support otg pin control
some renesas_usbhs device is supporting OTG external device interface.
In that device, it is necessary to control PWEN/EXTLP on DVSTCTR.
This patch support it.
But renesas_usbhs driver doesn't have OTG support for now.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r-- | arch/arm/mach-shmobile/board-mackerel.c | 1 | ||||
-rw-r--r-- | drivers/usb/renesas_usbhs/common.c | 4 | ||||
-rw-r--r-- | include/linux/usb/renesas_usbhs.h | 5 |
3 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 0ea71f8d4b89..c20612ea5d0e 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -808,6 +808,7 @@ static struct usbhs_private usbhs1_private = { | |||
808 | }, | 808 | }, |
809 | .driver_param = { | 809 | .driver_param = { |
810 | .buswait_bwait = 4, | 810 | .buswait_bwait = 4, |
811 | .has_otg = 1, | ||
811 | .pipe_type = usbhs1_pipe_cfg, | 812 | .pipe_type = usbhs1_pipe_cfg, |
812 | .pipe_size = ARRAY_SIZE(usbhs1_pipe_cfg), | 813 | .pipe_size = ARRAY_SIZE(usbhs1_pipe_cfg), |
813 | }, | 814 | }, |
diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index b327458f5cad..1161d78e1665 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c | |||
@@ -114,6 +114,10 @@ void usbhs_sys_host_ctrl(struct usbhs_priv *priv, int enable) | |||
114 | { | 114 | { |
115 | u16 mask = DCFM | DRPD | DPRPU; | 115 | u16 mask = DCFM | DRPD | DPRPU; |
116 | u16 val = DCFM | DRPD; | 116 | u16 val = DCFM | DRPD; |
117 | int has_otg = usbhs_get_dparam(priv, has_otg); | ||
118 | |||
119 | if (has_otg) | ||
120 | usbhs_bset(priv, DVSTCTR, (EXTLP | PWEN), (EXTLP | PWEN)); | ||
117 | 121 | ||
118 | /* | 122 | /* |
119 | * if enable | 123 | * if enable |
diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h index 040d8bb2b5a2..e5a40c318548 100644 --- a/include/linux/usb/renesas_usbhs.h +++ b/include/linux/usb/renesas_usbhs.h | |||
@@ -136,6 +136,11 @@ struct renesas_usbhs_driver_param { | |||
136 | * pio <--> dma border. | 136 | * pio <--> dma border. |
137 | */ | 137 | */ |
138 | int pio_dma_border; /* default is 64byte */ | 138 | int pio_dma_border; /* default is 64byte */ |
139 | |||
140 | /* | ||
141 | * option: | ||
142 | */ | ||
143 | u32 has_otg:1; /* for controlling PWEN/EXTLP */ | ||
139 | }; | 144 | }; |
140 | 145 | ||
141 | /* | 146 | /* |