android_kernel_motorola_sm6375/drivers/misc
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Parker Newman 9ab3a1aaa5 misc: eeprom: eeprom_93cx6: Add quirk for extra read clock cycle
[ Upstream commit 7738a7ab9d12c5371ed97114ee2132d4512e9fd5 ]

Add 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.

Datasheet: https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-5193-SEEPROM-AT93C46D-Datasheet.pdf
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Parker Newman <pnewman@connecttech.com>
Link: https://lore.kernel.org/r/0f23973efefccd2544705a0480b4ad4c2353e407.1727880931.git.pnewman@connecttech.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-14 19:44:55 +01:00
..
altera-stapl
c2port
cardreader
cb710
cxl
echo
eeprom misc: eeprom: eeprom_93cx6: Add quirk for extra read clock cycle 2024-12-14 19:44:55 +01:00
genwqe
habanalabs
ibmasm
lis3lv02d
lkdtm
mei mei: demote client disconnect warning on suspend to debug 2024-07-27 10:38:29 +02:00
mic
ocxl
sgi-gru misc: sgi-gru: Don't disable preemption in GRU driver 2024-11-08 16:20:53 +01:00
sgi-xp
ti-st drivers/misc: ti-st: Remove unneeded variable in st_tty_open 2024-11-08 16:20:53 +01:00
vmw_vmci VMCI: Fix use-after-free when removing resource in vmci_resource_remove() 2024-09-12 11:03:55 +02:00
ad525x_dpot-i2c.c
ad525x_dpot-spi.c
ad525x_dpot.c
ad525x_dpot.h
apds990x.c misc: apds990x: Fix missing pm_runtime_disable() 2024-12-14 19:44:34 +01:00
apds9802als.c
atmel-ssc.c
atmel_tclib.c
bh1770glc.c
cs5535-mfgpt.c
ds1682.c
dummy-irq.c
enclosure.c
fastrpc.c misc: fastrpc: Mark all sessions as invalid in cb_remove 2024-02-23 08:25:11 +01:00
hmc6352.c
hpilo.c
hpilo.h
ibmvmc.c
ibmvmc.h
ics932s401.c
isl29003.c
isl29020.c
Kconfig
kgdbts.c
lattice-ecp3-config.c
Makefile
pch_phub.c
pci_endpoint_test.c misc: pci_endpoint_test: Re-init completion for every test 2023-07-27 08:37:37 +02:00
phantom.c
pti.c
pvpanic.c
qcom-coincell.c
sram-exec.c
sram.c
sram.h
tifm_7xx1.c
tifm_core.c
tsl2550.c
vexpress-syscfg.c
vmw_balloon.c
xilinx_sdfec.c