SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The keyboard module uses a posted-write scheme to update any internal registers. This means the write transaction is immediately acknowledged on the L4 interface, although the effective write operation occurs later due to a resynchronization in the functional clock domain. This has the advantage of not stalling the interconnect system or the CPU that requested the write transaction. For each functional register, a pending bit is provided that is set if there is a pending write access to this register. The pending bits are accessible in the keyboard pending write register (KBD_PENDING).
In this mode, it is mandatory that the CPU checks the pending bits before any write access in the functional registers. If a write is attempted to a register with a previous access pending, the previous access is discarded without notice (this can also lead to unexpected results).
A register read following a posted write (on the same register) may not read the previous write value if the write posted process is not complete. Software synchronization must be used to avoid noncoherent read.
This posted period is defined as the interval between the posted write access request and the reset of the pending bit in the KBD_PENDING register, and can be quantified:
T (reset posted bit maximum) = 3 × Ticlk + 3 × Tfuncclk
The time it takes to accomplish the writing is:
T (write accomplish maximum) = 1 × Ticlk + 3 × Tfuncclk
where:
Ticlk is the L4 interface clock period, and Tfuncclk is the functional clock period.