diff options
author | Paul-Arnold <98924583+Paul-Arnold@users.noreply.github.com> | 2022-04-29 20:05:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-30 05:05:56 +1000 |
commit | 93ff10cab0901f8d7d2200789b8ac9e37902cff2 (patch) | |
tree | 36e61d1a82a055108b3702dbd5556876b30934a8 /src/mame/machine | |
parent | 90f166da8fdfd09006e7569c495bc91af8436a48 (diff) |
Added FIXME comments to badly behaved I2C target devices, (#9648)
* I2C slaves should only ACK their own device-id and NAK all others.
* SDA output should only change state while clock is low.
* Idle state of SDA must be high.
Diffstat (limited to 'src/mame/machine')
-rw-r--r-- | src/mame/machine/zs01.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mame/machine/zs01.cpp b/src/mame/machine/zs01.cpp index 5edfbe60e94..d3b07ea9312 100644 --- a/src/mame/machine/zs01.cpp +++ b/src/mame/machine/zs01.cpp @@ -378,6 +378,8 @@ WRITE_LINE_MEMBER( zs01_device::write_scl ) break; case STATE_LOAD_COMMAND: + // FIXME: Processing on the rising edge of the clock causes sda to change state while clock is high + // which is not allowed. Also need to ensure that only valid device-id's and commands are acknowledged. if( m_scl == 0 && state != 0 ) { if( m_bit < 8 ) @@ -542,6 +544,8 @@ WRITE_LINE_MEMBER( zs01_device::write_scl ) break; case STATE_READ_DATA: + // FIXME: Processing on the rising edge of the clock causes sda to change state while clock is high + // which is not allowed. if( m_scl == 0 && state != 0 ) { if( m_bit < 8 ) |