I wanted to ask if anybody is having or has had problems with "A13 I2C bus locked"?
I'm using a "Latest" version of u-boot and 4.1 release candidate. I've also tried using an older U-Boot (2014.04) .... tomorrow I'll try some older kernels but thought I would check with the list at the same time.
I'm using the Olimex A13-SOM with nothing connected and have tried a couple of different power supplies just in case it was a voltage issue.
U-Boot SPL 2015.04 (Jun 18 2015 - 17:32:42)
DRAM: 512 MiB
Failed to set core voltage! Can't set CPU frequency
U-Boot 2015.04 (Jun 18 2015 - 17:32:42) Allwinner Technology
CPU: Allwinner A13 (SUN5I)
I2C: ready
DRAM: 512 MiB
MMC: SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment
Setting up a 1024x768 vga console
In: serial
Out: vga
Err: vga
Net: No ethernet found.
starting USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
reading /boot.scr
318 bytes read in 21 ms (14.6 KiB/s)
## Executing script at 43100000
reading uImage
4281912 bytes read in 666 ms (6.1 MiB/s)
reading sun5i-a13-olinuxino-micro.dtb
14674 bytes read in 36 ms (397.5 KiB/s)
## Booting kernel from Legacy Image at 46000000 ...
Image Name: Linux-4.1.0-rc6
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4281848 Bytes = 4.1 MiB
Load Address: 40008000
Entry Point: 40008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 49000000
Booting using the fdt blob at 0x49000000
Loading Kernel Image ... OK
Using Device Tree in place at 49000000, end 49006951
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.1.0-rc6 (br...@core.home.local) (gcc version 4.9.2 (Buildroot 2015.08-git-00187-g0db1c13) ) #1 SMP Thu Jun 18 17:40:32 BST 2015
......
#
# uname -a
Linux A13-SOM 4.1.0-rc6 #1 SMP Thu Jun 18 17:40:32 BST 2015 armv7l GNU/Linux
#
# dmesg | grep i2c
[ 0.162429] i2c-core: driver [dummy] registered
[ 0.197051] i2c-core: driver [tps65217] registered
[ 0.197202] i2c-core: driver [tps65910] registered
[ 0.197326] i2c-core: driver [tps65912] registered
[ 0.197543] i2c-core: driver [tps80031] registered
[ 0.197816] i2c-core: driver [da9052] registered
[ 0.197940] i2c-core: driver [da9055-pmic] registered
[ 0.198061] i2c-core: driver [tps6586x] registered
[ 0.198183] i2c-core: driver [tps65090] registered
[ 0.198301] i2c-core: driver [palmas] registered
[ 0.442578] i2c-core: driver [lp872x] registered
[ 1.128358] i2c-core: driver [tps65218] registered
[ 1.128487] i2c-core: driver [twl] registered
[ 1.129017] i2c-core: driver [twl6040] registered
[ 1.129152] i2c-core: driver [axp20x] registered
[ 1.172919] i2c /dev entries driver
[ 1.178191] i2c-dev: adapter [mv64xxx_i2c adapter] registered as minor 0
[ 1.178304] i2c i2c-0: adapter [mv64xxx_i2c adapter] registered
[ 1.178407] i2c i2c-0: of_i2c: walking child nodes
[ 1.179639] i2c-dev: adapter [mv64xxx_i2c adapter] registered as minor 1
[ 1.179739] i2c i2c-1: adapter [mv64xxx_i2c adapter] registered
[ 1.179840] i2c i2c-1: of_i2c: walking child nodes
[ 1.181004] i2c-dev: adapter [mv64xxx_i2c adapter] registered as minor 2
[ 1.181096] i2c i2c-2: adapter [mv64xxx_i2c adapter] registered
[ 1.181190] i2c i2c-2: of_i2c: walking child nodes
[ 1.181489] i2c-core: driver [ir-kbd-i2c] registered
#
# ls -l /dev | grep i2c
crw------- 1 root root 89, 0 Jan 1 00:00 i2c-0
crw------- 1 root root 89, 1 Jan 1 00:00 i2c-1
crw------- 1 root root 89, 2 Jan 1 00:00 i2c-2
#
# i2cdetect -l
i2c-0 i2c mv64xxx_i2c adapter I2C adapter
i2c-1 i2c mv64xxx_i2c adapter I2C adapter
i2c-2 i2c mv64xxx_i2c adapter I2C adapter
#
# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: [ 55.294387] i2c i2c-0: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 57.294387] i2c i2c-0: mv64xxx: , block: 1, time_left: 0
-- [ 59.294474] i2c i2c-0: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 61.294381] i2c i2c-0: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- ^C[ 63.294436] i2c i2c-0: mv64xxx: I2C bus locked, block: 1, time_left: 0
#
# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: [ 67.604383] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 69.604378] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 71.604421] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- ^C[ 73.604385] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
#
# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: [ 78.464390] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 80.464386] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 82.464378] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 84.464400] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 86.464391] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 88.464379] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 90.464456] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 92.464378] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 93.377552] random: nonblocking pool is initialized
[ 94.464388] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 96.464415] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 98.464383] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 100.464381] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 102.464413] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
--
10: [ 104.464378] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 106.464380] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 108.464427] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 110.464382] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 112.464381] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 114.464400] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 116.464379] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 118.464378] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- ^C[ 120.464404] i2c i2c-2: mv64xxx: I2C bus locked, block: 1, time_left: 0
#