For bulk and interrupt transfers, the data toggle resets <0> only on set configuration, set interface, and clear feature (endpoint halt ).
For isochronous transfers, the data toggle always is <0> and no ACK
For control transfers,
Out endpoint: hardware clears toggle bit at the specified tion of a setup PID addressed to this endpoint. <to reset ED setup data packet data0>
In endpoint: hardware sets toggle bit at the specified tion of a setup PID addressed to this endpoint. <to send data or status packet data1>
Setup: data0: ACK <-- hardware clears toggle bit
In: data1: ACK <-- hardware sets toggle bit
Out: data1: ACK <-- hardware clears toggle bit from data0 to data1
Setup: data0: ACK <-- hardware clears toggle bit
Out: data1: ACK <-- hardware toggle bit
In: data1: ACK <-- hardware sets toggle bit
Setup: data0: ACK <-- hardware clears toggle bit
In: data1: ACK <-- hardware sets toggle bit