Skip to contentSkip to conversation

cm-fx6 maintenance

PATCH New Nikita Kiryanov 3 participants 8 messages Aug 30, 2015 – Aug 31, 2015

lore
Share & tools
lore
#0 lore raw

cover cm-fx6 maintenance

This is a collection of small fixes and improvements to cm-fx6.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

Nikita Kiryanov (3):
arm: mx6: cm-fx6: force host mode on usb controller
arm: mx6: cm-fx6: print PCB revision
arm: mx6: cm-fx6: switch to usb kbd polling via int queue

 board/compulab/cm_fx6/cm_fx6.c | 13 +++++++++++++
 configs/cm_fx6_defconfig       |  2 +-
 include/configs/cm_fx6.h       |  1 +
 3 files changed, 15 insertions(+), 1 deletion(-)
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/3 arm: mx6: cm-fx6: force host mode on usb controller

On some CM-FX6 modules U-Boot attempts to configure the usb0 controller in device mode, which renders it unavailable:
USB0: Port not available.
and also causes usb stop to report an error
EHCI failed to shut down host controller.

This happens mostly on MX6 Dual based modules, and is caused by the USBPHY_CTRL register reporting USBPHY_CTRL_OTG_ID to be 1, even when it is pulled down. Since we do not support device mode in cm-fx6 u-boot, force all controllers to be configured as hosts.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/cm_fx6/cm_fx6.c | 6 ++++++
 1 file changed, 6 insertions(+)
board/compulab/cm_fx6/cm_fx6.c +6 -0
index def821c..668d221 100644
@@ -14,6 +14,7 @@
 #include <miiphy.h>
 #include <netdev.h>
 #include <errno.h>
+#include <usb.h>
 #include <fdt_support.h>
 #include <sata.h>
 #include <splash.h>
@@ -349,6 +350,11 @@ static int cm_fx6_setup_usb_otg(void)
 	return gpio_direction_output(SB_FX6_USB_OTG_PWR, 0);
 }
 
+int board_usb_phy_mode(int port)
+{
+	return USB_INIT_HOST;
+}
+
 int board_ehci_hcd_init(int port)
 {
 	int ret;
Signature · 1 line
1.9.1
#2 lore raw

PATCH 1/3 arm: mx6: cm-fx6: force host mode on usb controller

Quoted 6 lines · Nikita Kiryanov

On some CM-FX6 modules U-Boot attempts to configure the usb0 controller in device mode, which renders it unavailable:
USB0: Port not available.
and also causes usb stop to report an error
EHCI failed to shut down host controller.

Quoted 8 lines

This happens mostly on MX6 Dual based modules, and is caused by the USBPHY_CTRL register reporting USBPHY_CTRL_OTG_ID to be 1, even when it is pulled down. Since we do not support device mode in cm-fx6 u-boot, force all controllers to be configured as hosts.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Quoted 29 lines
---
 board/compulab/cm_fx6/cm_fx6.c | 6 ++++++
 1 file changed, 6 insertions(+)
board/compulab/cm_fx6/cm_fx6.c +6 -0
index def821c..668d221 100644
@@ -14,6 +14,7 @@
 #include <miiphy.h>
 #include <netdev.h>
 #include <errno.h>
+#include <usb.h>
 #include <fdt_support.h>
 #include <sata.h>
 #include <splash.h>
@@ -349,6 +350,11 @@ static int cm_fx6_setup_usb_otg(void)
 	return gpio_direction_output(SB_FX6_USB_OTG_PWR, 0);
 }
 
+int board_usb_phy_mode(int port)
+{
+	return USB_INIT_HOST;
+}
+
 int board_ehci_hcd_init(int port)
 {
 	int ret;
Signature · 2 lines
Regards,
Igor.
#3 lore raw

PATCH 2/3 arm: mx6: cm-fx6: print PCB revision

In reply to Nikita Kiryanov

Print board revision for cm-fx6.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/cm_fx6/cm_fx6.c | 7 +++++++
 include/configs/cm_fx6.h       | 1 +
 2 files changed, 8 insertions(+)
board/compulab/cm_fx6/cm_fx6.c +7 -0
index 668d221..3ad1216 100644
@@ -645,6 +645,13 @@ int checkboard(void)
 	return 0;
 }
 
+int misc_init_r(void)
+{
+	cl_print_pcb_info();
+
+	return 0;
+}
+
 void dram_init_banksize(void)
 {
 	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
include/configs/cm_fx6.h +1 -0
index ddf6b5f..12734a1 100644
@@ -224,6 +224,7 @@
 #define CONFIG_SYS_MALLOC_LEN			(10 * 1024 * 1024)
 #define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS	800 /* 400 KB */
 #define CONFIG_OF_BOARD_SETUP
+#define CONFIG_MISC_INIT_R
 
 /* SPL */
 #include "imx6_spl.h"
Signature · 1 line
1.9.1
#4 lore raw

PATCH 2/3 arm: mx6: cm-fx6: print PCB revision

Quoted 5 lines · Nikita Kiryanov

Print board revision for cm-fx6.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Quoted 36 lines
---
 board/compulab/cm_fx6/cm_fx6.c | 7 +++++++
 include/configs/cm_fx6.h       | 1 +
 2 files changed, 8 insertions(+)
board/compulab/cm_fx6/cm_fx6.c +7 -0
index 668d221..3ad1216 100644
@@ -645,6 +645,13 @@ int checkboard(void)
 	return 0;
 }
 
+int misc_init_r(void)
+{
+	cl_print_pcb_info();
+
+	return 0;
+}
+
 void dram_init_banksize(void)
 {
 	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
include/configs/cm_fx6.h +1 -0
index ddf6b5f..12734a1 100644
@@ -224,6 +224,7 @@
 #define CONFIG_SYS_MALLOC_LEN			(10 * 1024 * 1024)
 #define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS	800 /* 400 KB */
 #define CONFIG_OF_BOARD_SETUP
+#define CONFIG_MISC_INIT_R
 
 /* SPL */
 #include "imx6_spl.h"
Signature · 2 lines
Regards,
Igor.
#5 lore raw

PATCH 3/3 arm: mx6: cm-fx6: switch to usb kbd polling via int queue

In reply to Nikita Kiryanov

CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE works better than CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP (keyboards that previously didn't work such as Microsoft Comfort Curve 1000 now do work, and it's also faster).

Switch to CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 configs/cm_fx6_defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
configs/cm_fx6_defconfig +1 -1
index 21c35e3..314eb1c 100644
@@ -28,5 +28,5 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_KEYBOARD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP=y
+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
 CONFIG_SYS_PROMPT="CM-FX6 # "
Signature · 1 line
1.9.1
#6 lore raw

PATCH 3/3 arm: mx6: cm-fx6: switch to usb kbd polling via int queue

Quoted 9 lines · Nikita Kiryanov

CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE works better than CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP (keyboards that previously didn't work such as Microsoft Comfort Curve 1000 now do work, and it's also faster).

Switch to CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Quoted 16 lines
---
 configs/cm_fx6_defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
configs/cm_fx6_defconfig +1 -1
index 21c35e3..314eb1c 100644
@@ -28,5 +28,5 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_KEYBOARD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP=y
+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
 CONFIG_SYS_PROMPT="CM-FX6 # "
Signature · 2 lines
Regards,
Igor.
#7 lore raw

cover cm-fx6 maintenance

In reply to Nikita Kiryanov

Hi Nikita,

Quoted 10 lines · Nikita Kiryanov

This is a collection of small fixes and improvements to cm-fx6.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

Nikita Kiryanov (3):
arm: mx6: cm-fx6: force host mode on usb controller
arm: mx6: cm-fx6: print PCB revision
arm: mx6: cm-fx6: switch to usb kbd polling via int queue

Quoted 5 lines
 board/compulab/cm_fx6/cm_fx6.c | 13 +++++++++++++
 configs/cm_fx6_defconfig       |  2 +-
 include/configs/cm_fx6.h       |  1 +
 3 files changed, 15 insertions(+), 1 deletion(-)

Put all three patches in my queue to be applied.

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================