Hi,
We are using i.MX6ULL and BQ25703A for charger detection.
We are following steps specified in "i.MX 6ULL Applications Processor Reference Manual, Rev. 1, 11/2017" at page no 3910.
After setting "EN_B = 0, CHK_CHRG_B = 1 and CHK_CONTACT = 1" bits of CHRG_DETECTED register, we are monitoring PLUG_CONTACT bit of USB1_CHRG_DETECT_STAT register.
But when we connect USB cable to, dedicated charger it read low (i.e. 0) and it read high (i.e 1). which is not as per expectation as per defined flow in reference manual.
Please suggest us step to detect the dedicated charger, charging through PC/Laptop and data transfer to the pc/laptop.
Thank you in advance.
Hi igor,
The imx6_charger_data_contact_detect shows "vbus is not valid".
Power on the device (vbus detection fine) -> Now device is ON -> Restart the device with USB connected -> The dmesg shows "vbus is not valid,".
The entire serial console logs below.
SumanKumar at macbook-pro in ~/Downloads/work/logs
[02:47:07 PM] $ sudo picocom -b 115200 /dev/tty.usbserial-DN03EQZN
Password:
picocom v3.1
port is : /dev/tty.usbserial-DN03EQZN
flowcontrol : none
baudrate is : 115200
parity is : none
databits are : 8
stopbits are : 1
escape is : C-a
local echo is : no
noinit is : no
noreset is : no
hangup is : no
nolock is : no
send_cmd is : sz -vv
receive_cmd is : rz -vv -E
imap is :
omap is :
emap is : crcrlf,delbs,
logfile is : none
initstring : none
exit_after is : not set
exit is : no
Type [C-a] [C-h] to see available commands
Terminal ready
Freezing of tasks aborted after 0.001 seconds
PM: Some devices failed to suspend, or early wake event detected
__wmi_control_rx : event handler is not registered: event id 0x11001
PM: Some devices failed to suspend, or early wake event detected
PM: Some devices failed to suspend, or early wake event detected
PM: Some devices failed to suspend, or early wake event detected
cdc_acm 1-1.2:1.6: failed to set dtr/rts
sysrq: SysRq : Emergency Remount R/O
imx2-wdt 20bc000.wdog: Device shutdown: Expect reboot!
reboot: Restarting system with command 'userrequested'
U-Boot 2017.07-g4f38c7b (Sep 04 2018 - 07:55:17 -0700), Build: jenkins-C2-build-user-115
CPU: Freescale i.MX6D rev1.2 at 792 MHz
Reset cause: WDOG
Board: cid
I2C: ready
DRAM: 2 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected gd25q16c with page size 256 Bytes, erase size 4 KiB, total 2 MiB
In: serial
Out: serial
Err: serial
Net: usb_ether
Hit any key to stop autoboot: 0
timeout irqstat=10000
timeout irqstat=10000
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1...
Found U-Boot script /6x_bootscript
4991 bytes read in 6 ms (811.5 KiB/s)
## Executing script at 10008000
** File not found uEnv.txt **
461824 bytes read in 17 ms (25.9 MiB/s)
SF: Detected gd25q16c with page size 256 Bytes, erase size 4 KiB, total 2 MiB
device 0 offset 0x400, size 0x70c00
SF: 461824 bytes @ 0x400 Read: OK
Total of 461824 byte(s) were the same
50571 bytes read in 9 ms (5.4 MiB/s)
btmac=00:19:b8:b4:3d:72
9568920 bytes read in 263 ms (34.7 MiB/s)
1613049 bytes read in 49 ms (31.4 MiB/s)
Kernel image @ 0x10800000 [ 0x000000 - 0x920298 ]
## Loading init Ramdisk from Legacy Image at 13800000 ...
Image Name: RAM Disk
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 1612985 Bytes = 1.5 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 13000000
Booting using the fdt blob at 0x13000000
reserving fdt memory region: addr=13000000 size=d000
Using Device Tree in place at 13000000, end 1300ffff
Starting kernel ...
max7w-uart: version 1.0
imx_usb 2184000.usb: vbus is not valid, 6
imx_usb 2184000.usb: Error occurs during detection: -22
Ov5642_mipi probe called wrw
imx_usb 2184000.usb: vbus is not valid, 6
imx_usb 2184000.usb: Error occurs during detection: -22
mxc_v4l2_master_attach: 0
fingersensor init called wrw
fingersensor_probe: starting probe for fingerprint
FP--no mclk deferring
snvs-secvio 20cc000.caam-snvs: can't get snvs clock
fingersensor_probe: starting probe for fingerprint
mxc_v4l2_master_attach: 0
REturning error from CIS FP
INIT_CIS_ERROR FP
init: waitpid failed: No child processes
init: init.freescale.i.MX6Q.rc: 163: invalid keyword 'setenforce'
init: do_start: Service debuggerd64 not found
init: property_set("ro.adb.secure", "1") failed
init: cannot find '/system/bin/update_verifier' (No such file or directory), disabling 'exec 2 (/system/bin/update_verifier)'
configfs-gadget gadget: unbind function 'mtp'/d6bff200
configfs-gadget gadget: unbind function 'Function FS Gadget'/d6ca6b64
configfs-gadget gadget: unbind function 'mtp'/d6bff200
configfs-gadget gadget: unbind function 'Function FS Gadget'/d6b4ff24
mxc_v4l_open: Mxc Camera no sensor ipu0/csi0
mxc_v4l_open: Mxc Camera ipu0/csi0
ipu_csi_window_size_crop: Error left=0 top=59455247
REturning error from CIS FP
INIT_CIS_ERROR FP
mxc_v4l_open: Mxc Camera no sensor ipu0/csi1
mxc_v4l_open: Mxc Camera ipu0/csi1
mxc_v4l_open: Mxc Camera no sensor ipu0/csi1
mxc_v4l_open: Mxc Camera ipu0/csi1
hifDeviceInserted: Dumping clocks (50000000,198000000)
mxc_v4l_open: Mxc Camera no sensor ipu0/csi1
mxc_v4l_open: Mxc Camera ipu0/csi1
Hello,
Continuing with above query.........
Today we have also tried with linux USB driver "linux/drivers/usb/chipidea/usbmisc_imx.c".
But when we connect usb charger, observed that "imx6_charger_data_contact_detect()" function never called.
Last called function is "usbmisc_imx6_hsic_set_clk" function,and observed that it does not enter in to if condition.
And in driver most of called function are related to i.mx6q.
Can we use same driver for i.mx6ull?
Please provide us solution on same.
Best Regards,
Bhushan Bute
please try procedure described in sect.39.2.8 USB Charger Detection
attached Linux Manual. Use Demo Images from
Best regards
igor
We already done setting suggested in document.
In our case there is no file under the path "/sys/class/power_supply/"
Hi Bhushan
one can try use settings found in usb linux driver (function imx6_charger_data_contact_detect()):
linux/drivers/usb/chipidea/usbmisc_imx.c
usbmisc_imx.c\chipidea\usb\drivers - linux-imx - i.MX Linux kernel
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
As per your suggestion we have tried the setting suggested by you.
With dedicated charger, we are getting "0x0000000C" value of "USB1_CHRG_DETECT_STAT"(0x20C81D0) register means DP_STATE and DM_STATE are high, but unable to detect PLUD_CONTACT = 1.
And with PC/Laptop, we are getting "0x00000001" value of "USB1_CHRG_DETECT_STAT"(0x20C81D0) register.
we are not using linux/drivers/usb/chipidea/usbmisc_imx.c deriver file.
We have done the implementation as per flow chart on page no 3910 of reference manual.
Is there any changes required in .dtb or u-boot or uimage?
Please provide us solution on same.
Best Regards,
Bhushan Bute
Hi Bhushan
sorry, nxp support only own official linux releases described on
for support with other operatings systems one can follow
Best regards
igor
We have Linux version "L4.1.15_2.0.0", which we have taken from yocto and it is NXP linux.
I checked internally, there were no issues with charger detection, other customers
successfully used it. Suggest once more time recheck connections with oscilloscope
and test probably with baremetal test. Unfortunately I do not have additional documentation
for that, sorry.
Best regards
igor.