I have a question related to the complexity in sequences and drivers..
Where should the actual protocol be implemented, is it sequence or in driver?
Consider a protocol in which a 16-bit bus carries address followed by command and wr data (or gets back read data). In this case, there are two possible ways of coding:
1) Put the protocol in driver.
i.e., write a transaction that contains all the details i.e., address, command, wr data and variable to carry read data. Ask the sequence to generate this transaction, and give it to driver and then driver drives this in consecutive clock cycles (first address followed by command in the next clock gets read back data or drives write data) before calling item_done().
2) Put the protocol in sequence and the driver should drive whatever is given to it leaving the responsibility of order of data to be driven (i.e., first address followed by command and write data etc.,) to the sequence.
Not specifically with MDIO, but I have the same doubt with any other sequential protocols...
Would be thankful if I am pointed to some papers in this regard..
Thanks in anticipation,