nanopi/allwinner i2c not working.

Daniel Braniss danny at cs.huji.ac.il
Tue Oct 6 20:29:34 UTC 2020



> On 6 Oct 2020, at 17:22, Andriy Gapon <avg at FreeBSD.org> wrote:
> 
> On 06/10/2020 17:00, Daniel Braniss wrote:
>> not too proud of it, but i’ll make it available.
>> it’s in https://www.cs.huji.ac.il/~danny/elockc.tar.bz
>> look in i2c.c
>> 
>> in any case it works fine in 12.1.
> 
> And it looks good to me as well.
> Could you please collect twsi debug output again?
> In head you do not need to recompile, you can just set hw.i2c.twsi_debug.
i did have to recompile

iichb0: twsi_calc_baud_rate: Bus clock is at 24000000
iichb0: twsi_reset: Using clock param=59
iichb0: TWSI_WRITE: Writing 0 to 18
iichb0: TWSI_WRITE: Writing 59 to 14
iichb0: TWSI_WRITE: Writing 40 to c
iichb0: twsi_calc_baud_rate: Bus clock is at 24000000
iichb0: twsi_reset: Using clock param=59
iichb0: TWSI_WRITE: Writing 0 to 18
iichb0: TWSI_WRITE: Writing 59 to 14
iichb0: TWSI_WRITE: Writing 40 to c
iichb0: TWSI_WRITE: Writing c4 to c
iichb0: twsi_transfer: transmitting 2 messages
iichb0: TWSI_READ: read f8 from 10
iichb0: twsi_transfer: status=f8
iichb0: twsi_transfer: msg 0 is 9 bytes long
iichb0: twsi_transfer: msg 1 is 7 bytes long
iichb0: TWSI_WRITE: Writing e4 to c
iichb0: twsi_intr: Got interrupt Current msg=0
iichb0: TWSI_READ: read 8 from 10
iichb0: TWSI_READ: read cc from c
iichb0: twsi_intr: reg control=cc
iichb0: twsi_intr: Send the address (48)iichb0: TWSI_WRITE: Writing 48 to 8
iichb0: TWSI_WRITE: Writing c4 to c
iichb0: twsi_intr: Refresh reg_control
iichb0: TWSI_WRITE: Writing cc to c
iichb0: twsi_intr: Done with interrupts

iichb0: twsi_intr: Got interrupt Current msg=0
iichb0: TWSI_READ: read 20 from 10
iichb0: TWSI_READ: read cc from c
iichb0: twsi_intr: reg control=cc
iichb0: twsi_intr: No ack received after transmitting the address
iichb0: twsi_intr: Refresh reg_control
iichb0: twsi_transfer: pause finish
iichb0: TWSI_WRITE: Writing 8 to c
iichb0: twsi_transfer: Error, aborting (2)
iichb0: twsi_intr: Done with interrupts

iichb0: TWSI_WRITE: Writing 0 to c
iichb0: TWSI_READ: read 30 from 10
iichb0: twsi_transfer: status=30
iichb0: TWSI_WRITE: Writing 0 to c
iichb0: TWSI_READ: read 30 from 10
iichb0: twsi_transfer: status=30
iichb0: TWSI_WRITE: Writing c4 to c
iichb0: twsi_transfer: transmitting 2 messages
iichb0: twsi_intr: Got interrupt Current msg=0
iichb0: TWSI_READ: read 30 from 10
iichb0: TWSI_READ: read 30 from 10
iichb0: twsi_transfer: status=30
iichb0: TWSI_READ: read cc from c
iichb0: twsi_transfer: msg 0 is 9 bytes long
iichb0: twsi_intr: reg control=cc
iichb0: twsi_transfer: msg 1 is 7 bytes long

iichb0: twsi_intr: status=30 hot handled
iichb0: TWSI_WRITE: Writing e4 to c
iichb0: twsi_intr: Refresh reg_control
iichb0: twsi_transfer: pause finish
iichb0: TWSI_WRITE: Writing 8 to c
iichb0: twsi_transfer: Error, aborting (1)
iichb0: twsi_intr: Done with interrupts

iichb0: TWSI_WRITE: Writing 0 to c
iichb0: TWSI_READ: read 10 from 10
iichb0: twsi_transfer: status=10
iichb0: TWSI_WRITE: Writing 0 to c
iichb0: TWSI_READ: read 10 from 10
iichb0: twsi_transfer: status=10

> 
> -- 
> Andriy Gapon



More information about the freebsd-arm mailing list