linux-stable/drivers
Parker Newman d0f2889ec5 misc: eeprom: eeprom_93cx6: Add quirk for extra read clock cycle
[ Upstream commit 7738a7ab9d ]

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:51:42 +01:00
..
accessibility
acpi
amba
android
ata
atm
auxdisplay
base regmap: detach regmap from dev on regmap_exit 2024-12-14 19:51:34 +01:00
bcma
block
bluetooth
bus
cdrom
char
clk
clocksource
comedi
connector
counter
cpufreq
cpuidle
crypto
cxl
dax
dca
devfreq
dio
dma
dma-buf dma-buf: fix dma_fence_array_signaled v4 2024-12-14 19:51:33 +01:00
edac
eisa
extcon
firewire
firmware
fpga
fsi
gnss
gpio gpio: grgpio: Add NULL check in grgpio_probe 2024-12-14 19:51:29 +01:00
gpu drm/amdgpu: set the right AMDGPU sg segment limitation 2024-12-14 19:51:39 +01:00
greybus
hid HID: wacom: fix when get product name maybe null pointer 2024-12-14 19:51:31 +01:00
hsi
hv
hwmon
hwspinlock
hwtracing
i2c
i3c i3c: Use i3cdev->desc->info instead of calling i3c_device_get_info() to avoid deadlock 2024-12-14 19:51:42 +01:00
idle
iio ad7780: fix division by zero in ad7780_write_raw() 2024-12-14 19:51:23 +01:00
infiniband
input
interconnect
iommu iommu/arm-smmu: Defer probe of clients after smmu device bound 2024-12-14 19:51:34 +01:00
ipack
irqchip
isdn
leds leds: class: Protect brightness_show() with led_cdev->led_access mutex 2024-12-14 19:51:41 +01:00
macintosh
mailbox
mcb
md bcache: revert replacing IS_ERR_OR_NULL with IS_ERR again 2024-12-14 19:51:33 +01:00
media media: cx231xx: Add support for Dexatek USB Video Grabber 1d19:6108 2024-12-14 19:51:35 +01:00
memory
memstick
message
mfd
misc misc: eeprom: eeprom_93cx6: Add quirk for extra read clock cycle 2024-12-14 19:51:42 +01:00
mmc mmc: core: Further prevent card detect during shutdown 2024-12-14 19:51:34 +01:00
most
mtd ubi: fastmap: Fix duplicate slab cache names while attaching 2024-12-14 19:51:20 +01:00
mux
net rocker: fix link status detection in rocker_carrier_init() 2024-12-14 19:51:40 +01:00
nfc
ntb
nubus
nvdimm nvdimm: rectify the illogical code within nd_dax_probe() 2024-12-14 19:51:41 +01:00
nvme
nvmem
of
opp
parisc
parport
pci PCI: Add ACS quirk for Wangxun FF5xxx NICs 2024-12-14 19:51:42 +01:00
pcmcia
perf
phy
pinctrl pinctrl: qcom-pmic-gpio: add support for PM8937 2024-12-14 19:51:41 +01:00
platform
pnp
power
powercap
pps
ps3
ptp ptp: Add error handling for adjfine callback in ptp_clock_adjtime 2024-12-14 19:51:26 +01:00
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg rpmsg: glink: Propagate TX failures in intentless mode as well 2024-12-14 19:51:19 +01:00
rtc rtc: ab-eoz9: don't fail temperature reads on undervoltage notification 2024-12-14 19:51:21 +01:00
s390
sbus
scsi scsi: st: Add MTIOCGET and MTLOAD to ioctls allowed after device reset 2024-12-14 19:51:41 +01:00
sh sh: intc: Fix use-after-free bug in register_intc_controller() 2024-12-14 19:51:21 +01:00
siox
slimbus
soc soc: imx8m: Probe the SoC driver as platform driver 2024-12-14 19:51:35 +01:00
soundwire
spi spi: mpc52xx: Add cancel_work_sync before module remove 2024-12-14 19:51:30 +01:00
spmi
ssb
staging
target
tc
tee
thermal
thunderbolt
tty serial: amba-pl011: Fix RX stall when DMA is used 2024-12-14 19:51:29 +01:00
uio
usb usb: chipidea: udc: handle USB Error Interrupt if IOC not set 2024-12-14 19:51:42 +01:00
vdpa
vfio
vhost
video
virt
virtio
visorbus
vlynq
vme
w1
watchdog watchdog: rti: of: honor timeout-sec property 2024-12-14 19:51:31 +01:00
xen
zorro
Kconfig
Makefile