On Fri, Sep 20, 2024 at 10:03:21AM -0400, Parker Newman wrote: > From: Parker Newman <pnewman@xxxxxxxxxxxxxxx> > > This patch adds a quirk similar to eeprom_93xx46 to add an extra clock > cycle before reading data from the EEPROM. > > The 93Cx6 family of EEPROMs output a "dummy 0 bit" between the writing > of the op-code/address from the host to the EEPROM and the reading of > the actual data from the EEPROM. > > More info can be found on page 6 of the AT93C46 datasheet (linked below). > Similar notes are found in other 93xx6 datasheets. > > In summary the read operation for a 93Cx6 EEPROM is: > Write to EEPROM: 110[A5-A0] (9 bits) > Read from EEPROM: 0[D15-D0] (17 bits) > > Where: > 110 is the start bit and READ OpCode > [A5-A0] is the address to read from > 0 is a "dummy bit" preceding the actual data > [D15-D0] is the actual data. > > Looking at the READ timing diagrams in the 93Cx6 datasheets the dummy > bit should be clocked out on the last address bit clock cycle meaning it > should be discarded naturally. > > However, depending on the hardware configuration sometimes this dummy > bit is not discarded. This is the case with Exar PCI UARTs which require > an extra clock cycle between sending the address and reading the data. > > Link: https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-5193-SEEPROM-AT93C46D-Datasheet.pdf JFYI: You may also convert this to Datasheet: tag (we have a history of it mostly in IIO subsystem), basically replacing word Link by Datasheet in the above line. > Signed-off-by: Parker Newman <pnewman@xxxxxxxxxxxxxxx> Code wise LGTM now, Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> (Do not forget to embed this tag into a new version. With this the `b4` tool is quite helpful, so the workflow is to checkout a new branch in your local Git tree, like `git checkout -b exar-93xx46 v6.12-rc1` then taking a message ID from email of this thread — any should succeed, but cover letter's one for sure — run the following `b4 am $<message ID>`. It will print the hints what to do next, something like `git am $<patch_title>.mbx`. Then you can continue with `git rebase --interactive v6.12-rc1` if the code or other stuff in the commit message needs to be updated.) -- With Best Regards, Andy Shevchenko