linux.git
7 years agoMLK-9617-10 usb: common: otg: update condition from a_host to a_suspend
Li Jun [Sat, 27 Sep 2014 14:34:58 +0000 (22:34 +0800)]
MLK-9617-10 usb: common: otg: update condition from a_host to a_suspend

This patch updates condition from a_host to a_suspend according to On-The-Go
and Embedded Host Supplement to the USB Revision 2.0 Specification Revision
2.0 version 1.1a.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit f3acf74150683d4555c82ad32b9c669d8a0a7fb5)
(cherry picked from commit a938eb1ccabe9213c0b232d45da2caeb75f8b9fe)

7 years agoMLK-9617-9 usb: core: hub: use a_set_b_hnp_en and b_hnp_en for otg fsm mode
Li Jun [Fri, 10 Oct 2014 07:34:39 +0000 (15:34 +0800)]
MLK-9617-9 usb: core: hub: use a_set_b_hnp_en and b_hnp_en for otg fsm mode

Use a_set_b_hnp_en to identify if a host can succeed to set b_hnp_enable
for B device, use b_hnp_enable flag to identify if the connected OTG device
is HNP capable. So if the connected otg device is HNP capable but b_hnp_enable
is not set for A host, the host which support HNP polling should continue
enumeration to see if the B device can talk to it later by hnp polling.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit b715d0773eea212a25d6b8c5d94530e12935fdaf)
(cherry picked from commit 454369742ce4dec01d89c946a28c3069fc23bbea)

7 years agoMLK-9618-3 usb: chipidea: otg: enable hnp_pollinig flag
Li Jun [Mon, 29 Sep 2014 02:32:00 +0000 (10:32 +0800)]
MLK-9618-3 usb: chipidea: otg: enable hnp_pollinig flag

This patch enables hnp_polling flag for chipidea host driver in otg fsm mode.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit acb43a932263edd9b80c6d6d9ee858176c201542)
(cherry picked from commit 9e75e851370b62319fec4200b68cfd3465e12cfe)

7 years agoMLK-9617-7 usb: otg: add hnp_polling flag in struct otg_fsm
Li Jun [Mon, 29 Sep 2014 02:04:45 +0000 (10:04 +0800)]
MLK-9617-7 usb: otg: add hnp_polling flag in struct otg_fsm

This patch adds a flag hnp_polling to indicate if HNP polling is supported.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit b19d4b1110fe1fb2ec3141233781a1e016c9a9cf)
(cherry picked from commit cad8ae2986ab0b70d0f13b96c98f340564213d4c)

7 years agoMLK-9617-6 usb: core: otg: do not break otg device enumeration
Li Jun [Sat, 27 Sep 2014 14:23:39 +0000 (22:23 +0800)]
MLK-9617-6 usb: core: otg: do not break otg device enumeration

If a HNP capable device STALL b_hnp_enable set feature request, A device
as host should not break otg device enumeration, because this set feature
failure only indicates the B device does not want to be host role for the
moment, A device as host talk to it should be okay.

see charpter 6.2.2.2 of OTG and EH 2.0:
"If the a_hnp_support feature is set, but the b_hnp_enable feature is not set,
then it is likely that b_hnp_enable will be set later when the A-device is
finished using the bus."

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 51317577d16034ba151da8d502319f4befb91278)
(cherry picked from commit 3d5d5139b3aef654e8004a2ad9ce757af50aee57)

7 years agoMLK-9617-4 usb: common: otg: test: do HNP for legacy otg test device
Li Jun [Mon, 29 Sep 2014 02:47:41 +0000 (10:47 +0800)]
MLK-9617-4 usb: common: otg: test: do HNP for legacy otg test device

Since legacy OTG test device which is only compliant with OTG supplement version
1.3 or earlier, cannot support HNP polling, so directly start role switch.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 688bbca155159978cd520923f2c3029c7778fa9c)
(cherry picked from commit 6f9edab20e2dd8794e46a0b9129c8694e81d064b)

7 years agoMLK-9638-6 usb: common: otg: test: clear otg_hnp_reqd flag when it's invalid
Li Jun [Sat, 27 Sep 2014 13:33:29 +0000 (21:33 +0800)]
MLK-9638-6 usb: common: otg: test: clear otg_hnp_reqd flag when it's invalid

This patch clears otg_hnp_reqd feature related flags when the HNP test ends.
There are two otg fsm paths to end this feature request:
- b_peripheral --> b_wait_acon --> b_idle: we clear them when entering b_idle;
- b_peripheral --> b_wait_acon --> b_host --> b_peripheral : we clear them
  when leaving b_host.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 39d25f04ed047e15f23b44e8465ce46257547df7)
(cherry picked from commit f92c4e5794a278946d3f4e7c8bc30e3e43a80c28)

7 years agoMLK-9638-5 usb: chipidea: otg: test: timer for B host hands host role back
Li Jun [Sat, 27 Sep 2014 13:44:36 +0000 (21:44 +0800)]
MLK-9638-5 usb: chipidea: otg: test: timer for B host hands host role back

This patch implements a timer for B host to start host role switch back to A
device.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 139bcc46841f73199bdc3ca308e46a5af3dd2fc1)
(cherry picked from commit d1c81fc3fa2f8cc141d688b6f627ffa6ca4a7204)

7 years agoMLK-9638-4 usb: ehset: test: start timer for B host switch role back
Li Jun [Sat, 27 Sep 2014 13:13:42 +0000 (21:13 +0800)]
MLK-9638-4 usb: ehset: test: start timer for B host switch role back

After B device as host enumerates A peripheral and sets configuration,
B host should start to hand host role back to A device when this timer
expires.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 3f4a8c8a20ef69721f9e7886b8d245036d41d91a)
(cherry picked from commit 72b535f92ea078d8c3bd73186763bcb2f39106bb)

7 years agoMLK-9638-3 usb: chipidea: udc: test: handle otg_hnp_req set feature request
Li Jun [Sat, 27 Sep 2014 13:03:55 +0000 (21:03 +0800)]
MLK-9638-3 usb: chipidea: udc: test: handle otg_hnp_req set feature request

This patch adds otg_hnp_reqd set feature request from A host for chipidea udc
driver.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 450d4a1eb40ec4284661c1130bdcc4f4d2e6c527)
(cherry picked from commit 03f3f886029fa8f25dde34fcfeb28589ead0064f)

7 years agoMLK-9638-2 usb: otg: test: add otg_hnp_reqd flag in struct otg_fsm
Li Jun [Sat, 27 Sep 2014 13:07:48 +0000 (21:07 +0800)]
MLK-9638-2 usb: otg: test: add otg_hnp_reqd flag in struct otg_fsm

This patch adds flag otg_hnp_reqd in struct otg_fsm to indicate A device
as host wants to start HNP sequence.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 92382e06c6902731b05dcbb0db4f0ebfa486969f)
(cherry picked from commit 8e3f26a58f995711a81b401af26fbe5ed12e17f4)

7 years agoMLK-9638-1 usb: test: define otg_hnp_reqd wIndex byte value
Li Jun [Sat, 27 Sep 2014 12:48:23 +0000 (20:48 +0800)]
MLK-9638-1 usb: test: define otg_hnp_reqd wIndex byte value

This patch adds otg_hnp_reqd wIndex high byte value for otg test mode.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit c334dc80bc2672aab012cad6926d819feaf4634d)
(cherry picked from commit dd95b40fa19e522353b548554f55e8c77ac9bdfe)

7 years agoMLK-9637-4 usb: chipidea: otg: test: add otg_srp_reqd timer for start srp
Li Jun [Sat, 27 Sep 2014 12:19:30 +0000 (20:19 +0800)]
MLK-9637-4 usb: chipidea: otg: test: add otg_srp_reqd timer for start srp

This patch adds a timer for chipidea otg fsm driver to start data pulse
after A host ends the session.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 35e92b59080b58925c3b96e36511056cb51d4a00)
(cherry picked from commit eeded24ce2d20b1c19d5c666e916f41995cf2385)

7 years agoMLK-9637-3 usb: chipidea: udc: test: handle otg_srp_reqd set feature request
Li Jun [Sat, 27 Sep 2014 12:10:43 +0000 (20:10 +0800)]
MLK-9637-3 usb: chipidea: udc: test: handle otg_srp_reqd set feature request

This patch adds otg_srp_reqd set feature request from A host for chipidea
udc driver.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 5edca27c518e8a69accb429c946c19243e156656)
(cherry picked from commit 14ac2f1f74ce0b02e03296472e7d170c45a31f29)

7 years agoMLK-9637-2 usb: otg: test: add otg_srp_reqd flag in otg_fsm
Li Jun [Sat, 27 Sep 2014 11:49:56 +0000 (19:49 +0800)]
MLK-9637-2 usb: otg: test: add otg_srp_reqd flag in otg_fsm

This patch adds flag otg_srp_reqd in struct otg_fsm to indicate A device
as host wants B-UUT to do SRP once it ends the session.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 8e5f1b6b12ec77ec591909b09727049ffff37b9c)
(cherry picked from commit 7eaf8cf8ff375917e9972cca69bcecd6d807e6db)

7 years agoMLK-9637-1 usb: test: define otg_srp_reqd wIndex byte value
Li Jun [Sat, 27 Sep 2014 11:43:08 +0000 (19:43 +0800)]
MLK-9637-1 usb: test: define otg_srp_reqd wIndex byte value

This patch adds otg_srp_reqd wIndex high byte value for otg test mode.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 34660f7aa14972630622406b9dbfc7a106d8d15d)
(cherry picked from commit c5128f9bafaa37a8e63989032372a5ff36dc82c4)

7 years agoMLK-9606-5 usb: chipidea: otg: test: end test session if otg_vbus_off is set
Li Jun [Wed, 24 Sep 2014 06:46:00 +0000 (14:46 +0800)]
MLK-9606-5 usb: chipidea: otg: test: end test session if otg_vbus_off is set

When the connected otg test device disconnects before test maintain timer
expires, A device should end the session if otg_vbus_off is set; and do
a_wait_bcon if otg_vbus_off is not set.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 204fa72fe4e2be468fe61f1ede555e072610c932)
(cherry picked from commit 202ce199bd29093d20506a950748acd5323e76fa)

7 years agoMLK-9606-4 usb: chipidea: otg: test: tst_maint timer implementation
Li Jun [Wed, 24 Sep 2014 06:35:31 +0000 (14:35 +0800)]
MLK-9606-4 usb: chipidea: otg: test: tst_maint timer implementation

This patch implements otg test device session maintain timer, if the timer
expires, A device as host should end the session, and clear tst_maint flag
when turn off vbus.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 9d3bd049aef442f11dce77226a0ca09893a6656b)

7 years agoMLK-9606-3 usb: otg: test: remove test maintain timer if HNP happens
Li Jun [Wed, 24 Sep 2014 06:17:29 +0000 (14:17 +0800)]
MLK-9606-3 usb: otg: test: remove test maintain timer if HNP happens

If B device set host request flag before test maintain timer expires, remove
the timer and clear test maintain session flag, do HNP as a normal OTG device.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit d914c80921652419037d935f14545fe87f74a71c)
(cherry picked from commit 243c0fcf492748219f4c581203b9bccb078a61d8)

7 years agoMLK-9606-2 usb: otg: test: start tst_maint timer and set otg_vbus_off flag
Li Jun [Wed, 24 Sep 2014 06:05:30 +0000 (14:05 +0800)]
MLK-9606-2 usb: otg: test: start tst_maint timer and set otg_vbus_off flag

This patch adds 2 variables: tst_maint and otg_vbus_off, tst_maint is to check if
current session for test device; otg_vbus_off is to notify if A device need turn
off vbus immediately after B device disconnects.
The otg test device handling is added into ehset driver, for that device,
A-device should start a timer for maintain the session, and set otg_vbus_off
flag according to its bcdDevice value.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 78a2c14bdea4b8e334c7e0afad074b61b71193cb)
(cherry picked from commit b854141cc5a7150751e7f7fd2dfb10a415cfea10)

7 years agoMLK-9606-1 usb: otg: test: add otg test device into otg and EH TPL
Li Jun [Wed, 24 Sep 2014 05:31:19 +0000 (13:31 +0800)]
MLK-9606-1 usb: otg: test: add otg test device into otg and EH TPL

This patch add otg test device with VID(0x1a0a) and PID(0x0200) into otg and
EH TPL.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit b88ee5e2cbf55aaed3b6c5dd0aff7f826f9e357d)
(cherry picked from commit 8c11515f82876e69aa14e1c31fcb5031cf4edfcc)

7 years agoMLK-9618-2 usb: chipidea: otg: update is_b_host flag when setup&stop host
Li Jun [Thu, 18 Sep 2014 14:59:40 +0000 (22:59 +0800)]
MLK-9618-2 usb: chipidea: otg: update is_b_host flag when setup&stop host

This patch sets and clear is_b_host flag of usb_bus when start and stop host in
chipidea host driver.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit c164e65922235efcacc3743a9719adc7a9ef7413)
(cherry picked from commit f21e960aba9618c527650cfe3a69cc3ea583ac2a)

7 years agoMLK-9829 usb: core: print suggested message if failed to get device descriptor
Li Jun [Wed, 12 Nov 2014 07:16:33 +0000 (15:16 +0800)]
MLK-9829 usb: core: print suggested message if failed to get device descriptor

This is required for USB OTG and EH compliance test 6.7.22(A-UUT “Device No
Response” for connection timeout). When the connected usb device(PET) does
not response to transactions, host will fail to get device descriptor.

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit 86d0bd661ecbbdf97dd9a8ddbaf0d3811de7f39e)
(cherry picked from commit 858af83637291d2ececfc7b2b4b17e3a371b53f3)

7 years agoMLK-10718 usb: chipidea: udc: disable BSV irq when otg from undefined to a_idle
Li Jun [Tue, 28 Apr 2015 06:41:36 +0000 (14:41 +0800)]
MLK-10718 usb: chipidea: udc: disable BSV irq when otg from undefined to a_idle

After device power up, insert usb OTG ID cable, otg fsm from undefined state
to a_idle, the BSV cannot be disabled, this will result BSV irq generated but
which is actually only for B device.

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit bf6a1cdaef68125cc10240f174019e2646ebaa24)

7 years agoMLK-10783-7 doc: dt-binding: mxs-phy: add compatible string "fsl,imx6ul-usbphy"
Peter Chen [Thu, 30 Apr 2015 05:49:41 +0000 (13:49 +0800)]
MLK-10783-7 doc: dt-binding: mxs-phy: add compatible string "fsl,imx6ul-usbphy"

add compatible string "fsl,imx6ul-usbphy"

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 45583aa93ee7d3f8e930854603121f7facdcffb9)

7 years agoMLK-10783-6 doc: dt-binding: usbmisc_imx: add compatible string "fsl,imx6ul-usbmisc"
Peter Chen [Thu, 30 Apr 2015 05:47:17 +0000 (13:47 +0800)]
MLK-10783-6 doc: dt-binding: usbmisc_imx: add compatible string "fsl,imx6ul-usbmisc"

Add compatible string "fsl,imx6ul-usbmisc"

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 2bccb52eba125db06a7a7da5342d41c9f664d2d7)

7 years agoMLK-10783-5 usb: phy: mxs: add "fsl,imx6ul-usbphy" compatible string
Peter Chen [Thu, 30 Apr 2015 03:43:13 +0000 (11:43 +0800)]
MLK-10783-5 usb: phy: mxs: add "fsl,imx6ul-usbphy" compatible string

Add "fsl,imx6ul-usbphy" compatible string

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit dba30c6e41a9380b41715eca54792bfaa64693d0)

7 years agoMLK-10750 usb: chipidea: otg: remove otg fsm before destory gdaget and host
Li Jun [Tue, 28 Apr 2015 11:56:35 +0000 (19:56 +0800)]
MLK-10750 usb: chipidea: otg: remove otg fsm before destory gdaget and host

If unload ci_hdrc driver while otg fsm is running as A-device, we should
firstly clean otg fsm and stop all otg fsm timers before destroy gadget
and host.

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit 95b62fe02aee5d2a83a9eb60816ee7cfc16708e8)

7 years agoMLK-10510-3 usb: chipidea: usbmisc_imx: add power lost check for i.MX7D
Li Jun [Mon, 30 Mar 2015 05:19:42 +0000 (13:19 +0800)]
MLK-10510-3 usb: chipidea: usbmisc_imx: add power lost check for i.MX7D

Add power lost check implementation for i.MX7D.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit 59102c3b9756923f1c8cdba8bcab7b8611685321)

7 years agoMLK-10490 usb: chipidea: otg_fsm: update b_sess_vld after changes to be b_idle
Li Jun [Fri, 27 Mar 2015 06:46:20 +0000 (14:46 +0800)]
MLK-10490 usb: chipidea: otg_fsm: update b_sess_vld after changes to be b_idle

In a corner case: system suspend with usb device connected on OTG port, then
remove usb device and connect OTG port to PC, and then resume the system,
OTG cannot be enumrated by PC. Reason is there is no BSV irq generated after
resume, so b_sess_vld cannot be updated and otg fsm state keeps in b_idle state
with vbus on, this patch force a update of b_sess_vld flag according to OTGSC
BSV status.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit 0c1a70a95e4f8ef069e4a9809a447a39f36d0628)

7 years agoMLK-10394 usb: chipidea: otg_fsm: turn off vbus when remove driver
Li Jun [Tue, 10 Mar 2015 07:26:46 +0000 (15:26 +0800)]
MLK-10394 usb: chipidea: otg_fsm: turn off vbus when remove driver

Currently if remove controller driver while vbus is on, vbus turn off
is missing, thus next time loading controller driver will turn on vbus
again but will not generate AVV irq, finally otg fsm state is mess and
cannot work as host correctly.

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit c810ab9697dd912ba2a928659879ace188d31c10)

7 years agoMLK-10387-2 ARM: imx7d-sdb: add USB support
Peter Chen [Mon, 9 Mar 2015 06:04:09 +0000 (14:04 +0800)]
MLK-10387-2 ARM: imx7d-sdb: add USB support

Add USB support for both USBOTG1 and USBOTG2.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 8b6ae9b5ca581dce29ccfc0640bf020bba5b55b4)

7 years agoMLK-10364 ARM: imx_v7_defconfig: enable OTG FSM for usb driver
Li Jun [Wed, 4 Mar 2015 02:24:32 +0000 (10:24 +0800)]
MLK-10364 ARM: imx_v7_defconfig: enable OTG FSM for usb driver

Enable CONFIG_USB_OTG_FSM, which selects USB_OTG, then we have unified
menuconfig to support OTG port all usages: device-only ,host-only, role
switch by ID pin detection, standard USB OTG HNP&SRP.

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit a5dca04d32b827ec952585fe709d910a643ccb42)

7 years agoMLK-9963 usb: chipidea: otg: remove b_bus_suspend flag update
Li Jun [Fri, 5 Dec 2014 06:35:09 +0000 (14:35 +0800)]
MLK-9963 usb: chipidea: otg: remove b_bus_suspend flag update

Remove b_bus_suspend flag update in otg fsm driver since it's not
used.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit 235e741160c2b2899806a46439c0e1b4b7073eb5)
(cherry picked from commit 67d40f1e3ee92d9a69211df0e5002886155cc071)

7 years agoMLK-10282-5 clk: imx7d: add USB clock information
Peter Chen [Sat, 28 Feb 2015 00:43:56 +0000 (08:43 +0800)]
MLK-10282-5 clk: imx7d: add USB clock information

Add USB clock information, the pll_usb_main_clk is USB_PLL at CCM
which is the output of USBOTG2 PHY.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 5abb3c7e2ce78dcf5d37e5435abed992841d63f2)

7 years agoMLK-10282-3 ARM: imx7d-12x12-arm2: enable usbotg1 and usbotg2
Li Jun [Fri, 7 Aug 2015 14:20:25 +0000 (22:20 +0800)]
MLK-10282-3 ARM: imx7d-12x12-arm2: enable usbotg1 and usbotg2

Enable usbotg1 and usbotg2

Signed-off-by: Peter Chen <peter.chen@freescale.com>
7 years agoMLK-10243 usb: chipidea: udc: enable and disable BSV irq only for ID change
Li Jun [Wed, 11 Feb 2015 10:32:33 +0000 (18:32 +0800)]
MLK-10243 usb: chipidea: udc: enable and disable BSV irq only for ID change

Since BSV irq is only used for B-device, this patch correct the setting of
BSVIE of otgsc only for case of ID change, that is:
- In otg fsm mode, ID change from 0 to 1 means otg state from A_IDLE to
  B_IDLE; ID change from 1 to 0 means otg state from B_IDLE to A_IDLE, so
  only disable BSVIE if the current state is B_IDLE(to be update to A_IDLE),
  only enable BSVIE if the current state is A_IDLE(to be update to B_IDLE).
- In non-otg-fsm mode, it's already correct.

This fix the bug of MLK-10243.

Signed-off-by: Li Jun <jun.li@freescale.com>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 8153cb550a007e1cd62dd4f043330c694cf62f23)

7 years agoMLK-10202-2 doc: usb: mxs-phy: add tx-d-cal property
Peter Chen [Wed, 4 Feb 2015 08:20:33 +0000 (16:20 +0800)]
MLK-10202-2 doc: usb: mxs-phy: add tx-d-cal property

Add tx-d-cal property

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit ebb97b3d3ca99516d3daac09813ae480de2adffe)

7 years agoMLK-10202-1 ARM: imx6sx-sdb: add tx-d-cal property for usbphy
Peter Chen [Wed, 4 Feb 2015 08:18:26 +0000 (16:18 +0800)]
MLK-10202-1 ARM: imx6sx-sdb: add tx-d-cal property for usbphy

It is used to improve signal quality for board.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit a944c36f13b6a9d3eca073516416255e9160210e)

7 years agoMLK-10170 usb: phy: mxs: keep USBPHY2's clk always on
Peter Chen [Tue, 3 Feb 2015 08:13:31 +0000 (16:13 +0800)]
MLK-10170 usb: phy: mxs: keep USBPHY2's clk always on

Per IC engineer request, we need to keep USBPHY2's clk always on,
in this way, the USBPHY2 (PLL7) power can be controlled by
hardware suspend signal totally. It is benefit of USB remote wakeup
case which needs the resume signal be sent out as soon as
possible (without software interfere).

It is intended to fix the issue which this ticket describes, the
reason for this issue is the host does not send resume in time.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 98888b352377f9ebaee03bedce8c239691f45262)

7 years agoMLK-10196-4 usb: phy: mxs: Using regulator phy-3p0
Peter Chen [Tue, 3 Feb 2015 02:10:53 +0000 (10:10 +0800)]
MLK-10196-4 usb: phy: mxs: Using regulator phy-3p0

It is one of PHY's power, and we need to enable it to keep signal
quality good, and pass eye diagram test.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 3a8670ee7ff698521369e8292bba7ef288a12335)

7 years agoMLK-10196-3 regulator: anatop: Add non core enable/disable
Peter Chen [Tue, 3 Feb 2015 02:09:33 +0000 (10:09 +0800)]
MLK-10196-3 regulator: anatop: Add non core enable/disable

Add non core enable/disable API.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 38681ee653cb75fa1839547414c7780c4f3a7c00)

7 years agoMLK-10196-2 doc: anatop-regulator: add anatop-enable-bit property
Peter Chen [Mon, 2 Feb 2015 08:35:00 +0000 (16:35 +0800)]
MLK-10196-2 doc: anatop-regulator: add anatop-enable-bit property

It is optional, and only for 3p0, 2p5, and 1p1.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 46f1841de3e50e4f502478d341674bb1f01a48fc)

7 years agoMLK-11340-42 usb: chipidea: usb vbus glitch check logic change
Li Jun [Wed, 10 Sep 2014 09:49:33 +0000 (17:49 +0800)]
MLK-11340-42 usb: chipidea: usb vbus glitch check logic change

This patch changes the vbus glitch check to cover usb otg certification
case, so the possible cases of vbus rise:
- USB vbus can reach AVV(4.4v), valid vbus.
- USB vbus keeps above BSV(0.8v) but lower than AVV(4.4v) for
  more than 300ms, we think it's valid vbus event, this can meet
  usb otg certificataion case(B device can do connection in 1s when
  vbus is 4.0v).
- USB vbus cannot be kept above BSV(0.8v) for more than 300ms,
  it's a vbus glitch.
In case of vbus drop: if the vbus on flag is not set, it's a vbus glitch,
otherwise it's a valid vbus drop event.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit de5ab444839b6d1492d697256ea2b8a1dcaffc62)
(cherry picked from commit 83788415169cfa1555dd348a9ff03deb66b08bad)

7 years agoMLK-11340-41 usb: chipidea: add vbus glitch handling
Li Jun [Fri, 20 Jun 2014 07:52:14 +0000 (15:52 +0800)]
MLK-11340-41 usb: chipidea: add vbus glitch handling

We add vbus glitch handling for both BSV rise and drop interruptes.
If it is a vbus glitch (higher than BSV but cannot reach AVV), ignore it.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 827f2fe71e6222882930db7e89460087cb3bce5b)
(cherry picked from commit 4f9cefe4cf4bb093c8c1766409320dc86dd9a596)

7 years agoMLK-10101-5 usb: chipidea: otg: init otg_fsm of usb_bus while start host
Li Jun [Tue, 27 Jan 2015 09:26:48 +0000 (17:26 +0800)]
MLK-10101-5 usb: chipidea: otg: init otg_fsm of usb_bus while start host

Set otg_fsm of usb_bus to be ci->fsm while start host.

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit 65efc6c5f3936b254a77cf02478d1268585def84)

7 years agoMLK-10101-4 usb: add otg_fsm pointer in usb_bus
Li Jun [Tue, 27 Jan 2015 09:11:14 +0000 (17:11 +0800)]
MLK-10101-4 usb: add otg_fsm pointer in usb_bus

Add otg_fsm pointer in struct of usb_bus for access otg_fsm via bus.
Original way was to put it in usb_otg, then usb host can access otg_fsm
via hcd->usb_phy->otg->fsm, since usb_phy will not be the future direction,
instead phy is preferred, so this way may not work. It's more direct and
simple to put it in usb_bus.

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit c118afccbbb1c78938c649ee72758213c22cf489)

7 years agoMLK-9618-1 doc: usb: chipidea: select gadget drivers for otg compliance test
Li Jun [Sun, 28 Sep 2014 05:55:01 +0000 (13:55 +0800)]
MLK-9618-1 doc: usb: chipidea: select gadget drivers for otg compliance test

This patch adds guide for selecting available gadget drivers for otg and EH
compliance tests.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 520cac9e4fe938887dd45b5b4df6c8e35e125a59)
(cherry picked from commit 6534fab0bd77be544629ac04d4b8bb677d0a3aec)

7 years agoMLK-11340-39 usb: chipidea: otg: clear b_bus_req when vbus is off
Li Jun [Mon, 22 Sep 2014 08:19:59 +0000 (16:19 +0800)]
MLK-11340-39 usb: chipidea: otg: clear b_bus_req when vbus is off

In case of b_peripheral --> b_wait_acon --> b_idle due to vbus off
in b_wait_acon state, b_bus_req cannot be cleared in b_idle state,
which result in b device will do data pulse because b_bus_req is set.
This patch fix this issue by clear the input variable b_bus_req when
vbus is off.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit bc600546bf9193f1a39186ad4c07a5fd497c7bfd)
(cherry picked from commit c0ea9bfcd948e2d79ea77d22756550f498281cbb)

7 years agoMLK-10101-3 usb: chipidea: otg: enable BSV irq when OTG B-device in host mode
Li Jun [Tue, 27 Jan 2015 07:01:57 +0000 (15:01 +0800)]
MLK-10101-3 usb: chipidea: otg: enable BSV irq when OTG B-device in host mode

When B-device in host mode, if Vbus is off by A-device or A-device is removed,
B-device should update charger status correctly. This patch enables BSV irq
for B-device in all states, so the charger connection and removal can be early
handled by BSV change irq.

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit eb7c192ce6ce077471dfdcdc4eb6cc9da4a7c01a)

7 years agoMLK-10132-4 usb: chipidea: imx: disable usb wakeup in probe
Li Jun [Tue, 27 Jan 2015 02:25:25 +0000 (10:25 +0800)]
MLK-10132-4 usb: chipidea: imx: disable usb wakeup in probe

Disable usb wakeup as initial setting in probe.

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit bf54f23766bcebd781f1c09bd68bc00d790160c8)

7 years agoMLK-11340-38 usb: chipidea: imx: enable different wakeup setting
Peter Chen [Fri, 3 Jan 2014 05:45:30 +0000 (13:45 +0800)]
MLK-11340-38 usb: chipidea: imx: enable different wakeup setting

We have different wakeup setting for different roles:
For peripheral-only mode, we may only enable vbus wakeup.
The Micro-AB cable should not be considered as wakeup source.
For host-only mode, the ID change or vbus change should not be
considered as wakeup source.
For OTG mode, all wakeup setting should be considered as wakeup
source.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 632e2eda5d071781479e0e0a80496c9a198d614f)

7 years agoMLK-11340-37 usb: chipidea: add query_available_role interface
Peter Chen [Fri, 3 Jan 2014 05:42:56 +0000 (13:42 +0800)]
MLK-11340-37 usb: chipidea: add query_available_role interface

The glue layer may need to know current available role, add
ci_hdrc_query_available_role for that.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 5c340402131ca6eacaeb122deb1ee59bcea2778c)

7 years agoMLK-9785-1 usb: host: ehci-hcd: enable park mode
Peter Chen [Tue, 4 Nov 2014 12:46:15 +0000 (20:46 +0800)]
MLK-9785-1 usb: host: ehci-hcd: enable park mode

Enable park mode will improve the performance a lot at USB ethernet use
case, but a little at USB mass storage use case, and it is not harm from
the tests. Below the performance comparison at imx6sl:

USB Ethernet (Mbps)
Default Enable Park
TX 192 262
RX 262 290

USB Mass Storage (MB/s)
Read 21.8 22.9
Write 19.5 22.8

This patch is used for freescale internal.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit b2289a78958859cff37508e4db0314463f33c2e0)

7 years agoMLK-11340-36 usb: chipidea: udc: don't do hardware access if gadget has stopped
Peter Chen [Tue, 26 Nov 2013 05:33:21 +0000 (13:33 +0800)]
MLK-11340-36 usb: chipidea: udc: don't do hardware access if gadget has stopped

After _gadget_stop_activity is executed, we can consider the hardware
operation for gadget has finished, and the udc can be stopped and enter
low power mode. So, any later hardware operations (from usb_ep_ops APIs
or usb_gadget_ops APIs) should be considered invalid, any deinitializatons
has been covered at _gadget_stop_activity.

I meet this problem when I plug out usb cable from PC (using g_mass_storage),
my callstack like: vbus interrupt->.vbus_session->composite_disconnect
->pm_runtime_put_sync(&_gadget->dev), the composite_disconnect will
call fsg_disable, but fsg_disable calls usb_ep_disable using async way,
there are register accesses for usb_ep_disable. So sometimes, I get system
hang due to visit register without clock, sometimes not.

The Linux Kernel USB maintainer Alan Stern suggests this kinds of solution.
See: http://marc.info/?l=linux-usb&m=138541769810983&w=2.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit ac760d29366f19eb1a4d4c37899b33019570a447)
(cherry picked from commit c246b1f129daa7f15fc88849ef2d04db54935c67)

7 years agoMLK-10086-5 usb: chipidea: imx: define quirk CI_HDRC_IMX_EHCI_QUIRK
Peter Chen [Mon, 26 Jan 2015 05:05:45 +0000 (13:05 +0800)]
MLK-10086-5 usb: chipidea: imx: define quirk CI_HDRC_IMX_EHCI_QUIRK

Define quirk CI_HDRC_IMX_EHCI_QUIRK for necessary platforms.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit e72ee6d6f76214034c99a6435b47e125476399bd)

7 years agoMLK-10086-4 usb: chipidea: imx: add HSIC support
Li Jun [Tue, 20 Jan 2015 08:03:37 +0000 (16:03 +0800)]
MLK-10086-4 usb: chipidea: imx: add HSIC support

Add imx6 HSIC support

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 0cebf3e28ec0b7e47a45d16aa2237b819746b494)

7 years agoMLK-11340-35 usb: chipidea: host: add ehci quirk for imx controller
Peter Chen [Sun, 29 Sep 2013 02:52:43 +0000 (10:52 +0800)]
MLK-11340-35 usb: chipidea: host: add ehci quirk for imx controller

When the port goes to suspend or finishes resme, it needs to
notify PHY, it is not a standard EHCI operation, so we add a
quirk for it.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 4ffe8d85d4eed813b43cbd37e5241a8a0069021d)

7 years agoMLK-10086-3 usb: phy-nop: add the implementation of .set_suspend
Li Jun [Tue, 20 Jan 2015 08:03:38 +0000 (16:03 +0800)]
MLK-10086-3 usb: phy-nop: add the implementation of .set_suspend

Add clock enable/disable at .set_suspend if the PHY has
suspend requirement, it can be benefit of power saving for
phy and the whole system (parent clock may also be disabled).

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 6c2f853799899c37ee2f733cafd58f1b2dc1f37f)

7 years agoMLK-10086-2 ARM: imx6: add dts entries for hsic controller
Li Jun [Tue, 20 Jan 2015 08:03:36 +0000 (16:03 +0800)]
MLK-10086-2 ARM: imx6: add dts entries for hsic controller

- Add usbphy_nop, hsic uses nop phy driver
- Add anatop phandle, hsic needs to access anatop register to
change osc clock for different boards
- Add phy_type, hsic needs to config PHY parameters at portsc
- For imx6q-arm2 board, hsic has pin conflict with ethernet, we create a
  dedicated dts(imx6q-arm2-hsic.dts) for it with ethernet disabled, besides
  please make sure keep the line of data and strobe unchanged between board
  boots up and enable hsic controller.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 2f8a266d271874cd398d14556752ab4ab0be27ba)

7 years agoMLK-10086-1 usb: doc: ci-hdrc-imx: update for hsic controller
Li Jun [Tue, 20 Jan 2015 08:03:35 +0000 (16:03 +0800)]
MLK-10086-1 usb: doc: ci-hdrc-imx: update for hsic controller

Update for HSIC controller

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit c68e2fee7a6e321db9bb56b42853fe90a4e398ee)

7 years agoMLK-10132-3 usb: chipidea: udc: do not enter low power mode if vbus on
Li Jun [Fri, 23 Jan 2015 10:35:35 +0000 (18:35 +0800)]
MLK-10132-3 usb: chipidea: udc: do not enter low power mode if vbus on

This patch is to prevent usb entering low power mode if vbus is on even gadget
driver is not binded, by holding the PM count of ci->dev.
So, there are 3 pm usage_count status:
- ci->dev: 1 ci->gadget.dev: 1
  Device mode with gadget driver binded and vbus on.
- ci->dev: 1 ci->gadget.dev: 0
  USB vbus on but gadget driver not binded.
- ci->dev: 0 ci->gadget.dev: 1
  USB OTG FSM is in a_peripheral mode.
Above 2 device's pm usage_count hold by ci otg(ci->dev) and usb gadget
(ci->gadget.dev).

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit 673c6bf1b3aa0b1b698569b9259712b0e765be32)

7 years agoMLK-9831-1 usb: chipidea: udc: refine ci_udc_start
Li Jun [Thu, 25 Dec 2014 09:34:01 +0000 (17:34 +0800)]
MLK-9831-1 usb: chipidea: udc: refine ci_udc_start

Use ci_hdrc_gadget_connect() API directly if vbus is on.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit 918d4837d8e7c3c3c862a9deb8d2cc86c3d2334a)

7 years agoMLK-11340-34 Documentation: usb: chipidea: Update test procedure for HNP polling...
Li Jun [Wed, 25 Jun 2014 07:28:45 +0000 (15:28 +0800)]
MLK-11340-34 Documentation: usb: chipidea: Update test procedure for HNP polling support

Update HNP test procedure as HNP polling is supported.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 4aac546c4338246b1e55647796badedf6e80bfbe)

7 years agoMLK-9618-7 usb: chipidea: otg: delay turn on vbus when detecting data pulse
Li Jun [Thu, 16 Oct 2014 14:18:00 +0000 (22:18 +0800)]
MLK-9618-7 usb: chipidea: otg: delay turn on vbus when detecting data pulse

This patch adds a timer to delay turn on vbus after detecting data pulse
from B-device, this is required by OTG SRP timing.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit f02ee3e93715c41f5b1e11140f36e350c7ed4d6b)

7 years agoMLK-11340-27 usb: phy-mxs: Add implementation of nofity_suspend{resume}
Peter Chen [Wed, 18 Sep 2013 05:57:59 +0000 (13:57 +0800)]
MLK-11340-27 usb: phy-mxs: Add implementation of nofity_suspend{resume}

Implementation of notify_suspend and notify_resume will be different
according to mxs_phy_data->flags.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit d1ce766d9aabdfb823131d38056ff67c94e7e20a)

7 years agoMLK-10102-10 usb: chipidea: otg: Add power lost support for otg fsm mode
Li Jun [Thu, 15 Jan 2015 13:27:40 +0000 (21:27 +0800)]
MLK-10102-10 usb: chipidea: otg: Add power lost support for otg fsm mode

This patch adds support of power lost during system sleep in otg fsm mode.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 493f3c4f04f48240dacc49f84db57e7ecf90161b)

7 years agoMLK-10102-9 usb: chipidea: host: add ci_hdrc_host_has_device API
Li Jun [Thu, 15 Jan 2015 13:26:05 +0000 (21:26 +0800)]
MLK-10102-9 usb: chipidea: host: add ci_hdrc_host_has_device API

This patch adds a new API ci_hdrc_host_has_device to check if there
is usb device connected on host port.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit fd68eb8ef9cdac1ca861ccbc3d01d874123bf52a)

7 years agoMLK-10102-8 usb: chipidea: support role change after power lost
Li Jun [Thu, 15 Jan 2015 13:00:34 +0000 (21:00 +0800)]
MLK-10102-8 usb: chipidea: support role change after power lost

This patch is to complete support usb resume from power lost in non-otg
fsm mode:
- Re-init usb phy.
- Support role changes during system sleep with power lost.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit b15794487c32a6c9317f12b6bca5d2d752c9d76c)
(cherry picked from commit 3e5d97cfd2f3b350dd5b5012cf7af73ce11531ac)

7 years agoMLK-10102-7 usb: chipidea: otg: fix deadlock of usb host removal after system resume
Li Jun [Fri, 16 Jan 2015 05:11:57 +0000 (13:11 +0800)]
MLK-10102-7 usb: chipidea: otg: fix deadlock of usb host removal after system resume

This is to fix possible deadlock of usb host with mass storage removal after
system resume, by waiting host finish device disconnection and then stop host
This is a patch merge for ideas from below 2 patches:
ENGR00308442-2 usb: chipidea: otg: wait devices disconnected before stop host.
ENGR00310498 usb: chipidea: otg: fix otg role switch from host to device failure

How to reproduce:
Failure case 1:
- Enable console wakeup:
  echo enabled > /sys/class/tty/ttymxc0/power/wakeup
- Connect a udisk with ID cable to OTG port.
- Suspend the system:
  ehco mem > /sys/power/state
- Remove ID cable together with udisk.
- Wakeup the system by console.
- OTG port cannot switch to device role.
Failure case 2:
- Connect a udisk with ID cable to OTG port.
- Enable usb wakeup by ./low_power_usb.sh
- Suspend the system:
  ehco mem > /sys/power/state
- Remove ID cable together with udisk.
- System wakeup but OTG port cannot switch to device role.

Root cause:
In this case, ID change interrupt generates before port change interrupt,
so with irq disabled, ci_handle_id_switch() will find there is usb device
still connected and wait it to disconnect by sleep, but disconnect will not
happen since usb irq still disabled so port change irq has no chance to be
handled.

How this patch is fixing this issue:
This patch waits host finish handle usb device disconnection before stop host,
and enables irq before sleep and disables irq after, thus port change
rq can be handled and usb device disconnection can timely happen, then
ci_handle_id_switch() can stop host and switch to device role correctly.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 56d79fbaa4bea3670542a96354ee7034239a1c1f)
(cherry picked from commit d5350035b22cfa1cef15956612a4eec36b4dc0de)

7 years agoMLK-10102-6 usb: chipidea: otg: export ci_handle_id_switch API
Li Jun [Thu, 15 Jan 2015 13:05:12 +0000 (21:05 +0800)]
MLK-10102-6 usb: chipidea: otg: export ci_handle_id_switch API

Export ci_handle_id_switch interface for controller handle id
changes during system sleep with power lost.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit e130afe623307b69b3737cb5a41905400082ca36)
(cherry picked from commit 7acb88a1d4d4f49cebe7c92ce92937e94c2b6486)

7 years agoMLK-10102-5 usb: chipidea: udc: support resume udc from power lost
Li Jun [Thu, 15 Jan 2015 12:49:36 +0000 (20:49 +0800)]
MLK-10102-5 usb: chipidea: udc: support resume udc from power lost

This patch implements the suspend and resume routine for udc resume
from power lost.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit a1389afb0c70d4024e07ff9634f10eba559af374)
(cherry picked from commit 733d0547c2cc90299b35b1b0d34073838ffcf6d9)

7 years agoMLK-10102-4 usb: chipidea: host: support resume usb from power lost
Li Jun [Thu, 15 Jan 2015 12:10:36 +0000 (20:10 +0800)]
MLK-10102-4 usb: chipidea: host: support resume usb from power lost

This patch implements the suspend and resume routine for save and restore
registers of ehci, this is to support host resume from a system sleep with
power lost.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit ab8e5ef4265b706b47b2e3ee36e079d63a3f0bce)
(cherry picked from commit 31039b54ec0bd2429f758626c0abfc9898c5aa82)

7 years agoMLK-10102-3 usb: chipidea: export hw_controller_reset API
Li Jun [Thu, 15 Jan 2015 12:21:45 +0000 (20:21 +0800)]
MLK-10102-3 usb: chipidea: export hw_controller_reset API

Host needs to reset controller for recovery from power lost.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 136222e683d40890f11985e61b447f2481b8bff5)

7 years agoMLK-10102-2 usb: chipidea: add suspend and resume routine for role driver
Li Jun [Thu, 15 Jan 2015 12:17:07 +0000 (20:17 +0800)]
MLK-10102-2 usb: chipidea: add suspend and resume routine for role driver

We may need to do extra things for system suspend/resume per different
roles(e.g. power lost during system sleep), so define system suspend/resume
handler for roles.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit cac6f339b30102c63f8bb5c56e77d5c7a6c6b4b5)

7 years agoMLK-10102-1 usb: chipidea: imx: usb resume from power lost during system sleep
Li Jun [Thu, 15 Jan 2015 11:13:13 +0000 (19:13 +0800)]
MLK-10102-1 usb: chipidea: imx: usb resume from power lost during system sleep

i.MX6SX mega off can shutdown domain power supply if none of peripheral
in this domain is registered as wakeup source, this patch adds usb controller
imx specific re-init after resume from such power lost during system sleep.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit cd37f9b7157322e28c1d336e42813d441eb1f778)

7 years agoMLK-10085-7 usb: chipidea: imx: add usb charger detection for imx6
Li Jun [Fri, 9 Jan 2015 13:58:41 +0000 (21:58 +0800)]
MLK-10085-7 usb: chipidea: imx: add usb charger detection for imx6

The usb controller driver creates usb charger, and notify
the charger connect and disconnect using vbus connect and
disconnect event.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit da98a621a79b6febf4e072ffb99e16e20b5bc36a)

7 years agoMLK-10085-6 usb: chipidea: Add usb charger detect support in otg fsm mode
Li Jun [Wed, 14 Jan 2015 05:12:04 +0000 (13:12 +0800)]
MLK-10085-6 usb: chipidea: Add usb charger detect support in otg fsm mode

Use b_sess_valid_event for charger detection in otg fsm mode.

Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit a89ac6eb611277e140fae0ef4ebe97e1a75fb4cc)

7 years agoMLK-10085-5 usb: chipidea: Add usb charger detect notify
Li Jun [Fri, 9 Jan 2015 07:35:07 +0000 (15:35 +0800)]
MLK-10085-5 usb: chipidea: Add usb charger detect notify

- Change .notify's return value from void to int, update msm notify_event
  return value accordingly.
- Add CI_HDRC_CONTROLLER_VBUS_EVENT and
  CI_HDRC_CONTROLLER_CHARGER_POST_EVENT to finish the USB charger
  detection flow.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
7 years agoMLK-10085-4 usb: doc: chipidea: imx: add imx6-usb-charger-detection property
Li Jun [Fri, 9 Jan 2015 06:37:24 +0000 (14:37 +0800)]
MLK-10085-4 usb: doc: chipidea: imx: add imx6-usb-charger-detection property

It is used to indicate whether we use SoC's usb charger
detection or not. Besides, we add anatop phandle since
we need to use anatop register to do most of charger detect operations.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
7 years agoMLK-10085-2 ARM: imx6: add usb anatop phandle at usbotg node
Li Jun [Fri, 9 Jan 2015 06:27:07 +0000 (14:27 +0800)]
MLK-10085-2 ARM: imx6: add usb anatop phandle at usbotg node

Add anatop phandle at usbotg node to access anatop register.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
7 years agoMLK-11340-8 usb: chipidea: host: delete the redundancy ci_hdrc struct
Peter Chen [Tue, 14 Jul 2015 07:43:02 +0000 (15:43 +0800)]
MLK-11340-8 usb: chipidea: host: delete the redundancy ci_hdrc struct

The struct ci_hdrc is the drvdata for hcd device, so we don't
need to introduce extra ci_hdrc structure for ehci.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 144247425683f783888e2a384946d05962237b60)

7 years agoMLK-11340-5 usb: chipidea: otg_fsm: delete duplicated controller reset
Peter Chen [Wed, 15 Jul 2015 05:56:26 +0000 (13:56 +0800)]
MLK-11340-5 usb: chipidea: otg_fsm: delete duplicated controller reset

At host_stop, it will call usb_remove_hcd, and reset controller later.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit b574ec92b3fcf70743a7467cfc832c7c1b0fe904)

7 years agoMLK-11340-40 usb: whitelist: update otg & eh's TPL for fsl i.mx
Peter Chen [Fri, 8 Aug 2014 01:12:52 +0000 (09:12 +0800)]
MLK-11340-40 usb: whitelist: update otg & eh's TPL for fsl i.mx

The default TPL is for USB OTG & EH compliance test, the supported
class is: mass storage, hub, and hid.

Besides, we add one match criterion that matching targeted device
through class at interface descriptor.

Tested-by: Li Jun <b47624@freescale.com>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 483c071d989ceb36cacf76e1e3e779c67e5b8280)

7 years agoMLK-11340-31 usb: chipidea: udc: add OTG status request handling
Li Jun [Mon, 23 Jun 2014 07:50:50 +0000 (15:50 +0800)]
MLK-11340-31 usb: chipidea: udc: add OTG status request handling

Peripheral answers OTG status selector request from host according to
host request flag of gadget, length is 1. this flag may be set by application
via sysfs.

Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit c08edfce9dded6a49d3127179d5f0a036ddb99aa)

7 years agoMLK-11340-26 usb: phy: add notify suspend and resume callback
Peter Chen [Mon, 16 Sep 2013 08:31:24 +0000 (16:31 +0800)]
MLK-11340-26 usb: phy: add notify suspend and resume callback

They are used to notify PHY that the controller enters suspend
or finishes resume.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 737908259ccc3c3166a51ed8e3638ac1f1730e08)

7 years agoMLK-11340-1 usb: chipidea: usbmisc_imx: Remove unneeded semicolon
Fabio Estevam [Sat, 9 May 2015 15:15:24 +0000 (12:15 -0300)]
MLK-11340-1 usb: chipidea: usbmisc_imx: Remove unneeded semicolon

Remove unneeded semicolon.

The semantic patch that makes this change is available
in scripts/coccinelle/misc/semicolon.cocci.

More information about semantic patching is available at
http://coccinelle.lip6.fr/

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
7 years agousb: chipidea: add work-around for Marvell HSIC PHY startup
Rob Herring [Fri, 29 May 2015 16:38:46 +0000 (11:38 -0500)]
usb: chipidea: add work-around for Marvell HSIC PHY startup

The Marvell 28nm HSIC PHY requires the port to be forced to HS mode after
the port power is applied. This is done using the test mode in the PORTSC
register.

As HSIC is always HS, this work-around should be safe to do with all HSIC
PHYs and has been tested on i.MX6S.

Signed-off-by: Rob Herring <robh@kernel.org>
Tested-by: Peter Chen <Peter.Chen@freescale.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoMLK-11110: cpufreq: imx7-cpufreq: fix system resume failed
Robin Gong [Mon, 15 Jun 2015 04:43:47 +0000 (12:43 +0800)]
MLK-11110: cpufreq: imx7-cpufreq: fix system resume failed

System resume failed easily after commit b993956109856d3, the commit is no
problem, but it exposes the potential deadlock bug which not unlock mutex if
cpufreq not change, remove these code since the cpufreq framwork has consider
it.

Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit d791bf25e07023f7a936fcabe6f641ad391048b3)

7 years agoMLK-11071 cpufreq: imx7: add cpufreq pm_notifier on imx7d
Bai Ping [Tue, 9 Jun 2015 15:42:50 +0000 (23:42 +0800)]
MLK-11071 cpufreq: imx7: add cpufreq pm_notifier on imx7d

Add pm_notifier for cpufreq on i.MX7D to make sure when
system do suspend/resume no cpu frequency change.
cpu frequency change may use the I2C/SPI interface to
control the external PMIC chip, if the I2C/SPI are not
active in this procedure, frequency change will fail.

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit b993956109856d3b86df501271b5a55620781c1a)

7 years agoMLK-10257-05 arm: imx7: enable cpufreq driver in defconfig
Bai Ping [Mon, 2 Mar 2015 16:44:04 +0000 (00:44 +0800)]
MLK-10257-05 arm: imx7: enable cpufreq driver in defconfig

Enable the imx7 cpufreq driver in defconfig.

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit 88d8fe5196ce424467b5b747977af404427c4ef2)

7 years agoMLK-10257-04 cpufreq: imx7: Add cpufreq support for imx7D
Bai Ping [Thu, 12 Feb 2015 17:05:07 +0000 (01:05 +0800)]
MLK-10257-04 cpufreq: imx7: Add cpufreq support for imx7D

Add the basic cpufreq driver for imx7.

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit db765324267a7c3b93aaf798cefd6a775cf46b1a)

7 years agoMLK-10257-03 arm: imx7: Add cpufreq platform device
Bai Ping [Thu, 12 Feb 2015 17:02:03 +0000 (01:02 +0800)]
MLK-10257-03 arm: imx7: Add cpufreq platform device

Add cpufreq platform device support for DVFS.

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit 27642021d28555c37aab5e2b75214d8c383f668d)

7 years agoMLK-10257-01 arm: dts: Add operating-points property for cpu node
Bai Ping [Mon, 2 Mar 2015 09:52:27 +0000 (17:52 +0800)]
MLK-10257-01 arm: dts: Add operating-points property for cpu node

Add operating-points, clks and regulators property used in DVFS

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit f13001e89f5b64750735fd190a8316d8ee800d36)

7 years agoMLK-11322-02 ARM: imx: add io map for pm code
Bai Ping [Wed, 5 Aug 2015 16:27:47 +0000 (00:27 +0800)]
MLK-11322-02 ARM: imx: add io map for pm code

add necessary io memory mapping used by power management.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11322-01 ARM: dts: imx: add ocram node used for lpm code
Bai Ping [Wed, 5 Aug 2015 19:37:44 +0000 (03:37 +0800)]
MLK-11322-01 ARM: dts: imx: add ocram node used for lpm code

Reserve iram space for low power code. The first 16KB space
is used for suspend/resume and cpuidle. Another 4KB space is
for busfreq code.

for i.MX6SX, it has a dedicated ocram space start at 0x8f8000
for low power code.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11323-03 ARM: defconfig: unselect ARMv6 support in v7 defconfig
Bai Ping [Wed, 5 Aug 2015 17:37:35 +0000 (01:37 +0800)]
MLK-11323-03 ARM: defconfig: unselect ARMv6 support in v7 defconfig

In imx_v7_defconfig file, no need to enable the ARMv6 support.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11323-02 ARM: defconfig: enable the snvs_pwrkey support
Bai Ping [Wed, 5 Aug 2015 17:34:30 +0000 (01:34 +0800)]
MLK-11323-02 ARM: defconfig: enable the snvs_pwrkey support

Enable the snvs_pwrkey driver support.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11327 dma: pxp: porting pxp dma driver to imx_4.1.y
Fancy Fang [Thu, 6 Aug 2015 07:29:15 +0000 (15:29 +0800)]
MLK-11327 dma: pxp: porting pxp dma driver to imx_4.1.y

Porting pxp dma drivers v2 and v3 to imx_4.1.y branch.

Signed-off-by: Fancy Fang <chen.fang@freescale.com>
7 years agoMLK-11286-3 rpmsg: imx: enable rpmsg tests on imx
Richard Zhu [Mon, 27 Jul 2015 05:59:55 +0000 (13:59 +0800)]
MLK-11286-3 rpmsg: imx: enable rpmsg tests on imx

enable the rpmsg pingpong and tty string echo tests
on imx amp socs
- pingpong test howto
insmod imx_rpmsg_pingpong.ko

- tty string echo test howto
  - step 1, load the imx_rpmsg_tty.ko
  insmod imx_rpmsg_tty.ko
  - step 2, lanunch the mxc_mcc_tty_test.out in backend
  ./mxc_mcc_tty_test.out /dev/ttyRPMSG 115200 R 512 512 &
  - step 3, issue the echo command
  echo <string> > /dev/ttyRPMSG

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>