1.1 --- a/pkg/devices/lib/i2c/src/jz4780.cc Mon Apr 15 00:14:33 2019 +0200
1.2 +++ b/pkg/devices/lib/i2c/src/jz4780.cc Sun Jul 21 19:17:00 2019 +0200
1.3 @@ -264,7 +264,8 @@
1.4
1.5 uint32_t high_reg, low_reg;
1.6 uint32_t high_count, low_count;
1.7 - uint32_t hold_count, setup_count;
1.8 + int32_t hold_count;
1.9 + uint32_t setup_count;
1.10
1.11 // Level hold times:
1.12
1.13 @@ -306,8 +307,8 @@
1.14 hold_count = (smb_clk * 300) / 1000000 - 1;
1.15
1.16 _regs[Smb_sda_hold_time] = (_regs[Smb_sda_hold_time] & ~Smb_hold_mask) |
1.17 - (hold_count > 0 ? Smb_hold_enable : Smb_hold_disable) |
1.18 - (hold_count < 255 ? hold_count : 255);
1.19 + (hold_count >= 0 ? Smb_hold_enable : Smb_hold_disable) |
1.20 + (hold_count < 0 ? 0 : hold_count < 255 ? hold_count : 255);
1.21
1.22 // T{delay} = (SMBSDASU - 1) * T{SMB_CLK}
1.23 // SMBSDASU = T{delay} / T{SMB_CLK} + 1