On Fri, 20 Sep 2024 17:45:15 +0300 Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > 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. > Sounds good, I will change in v3. > > 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.) > Thanks! This is very helpful.