An error occurred while fetching folder content.
spi: atmel: add support for the internal chip-select of the spi controller
Cyrille Pitchen authored
This patch relies on the CSAAT (Chip Select Active After Transfer) feature
introduced by the version 2 of the spi controller. This new mode allows to
use properly the internal chip-select output pin of the spi controller
instead of using external gpios. Consequently, the "cs-gpios" device-tree
property becomes optional.

When the new CSAAT bit is set into the Chip Select Register, the internal
chip-select output pin remains asserted till both the following conditions
become true:
- the LASTXFER bit is set into the Control Register (or the Transmit Data
  Register)
- the Transmit Data Register and its shift register are empty.

WARNING: if the LASTXFER bit is set into the Control Register then new
data are written into the Transmit Data Register fast enough to keep its
shifter not empty, the chip-select output pin remains asserted. Only when
the shifter becomes empty, the chip-select output pin is unasserted.

When the CSAAT bit is clear in the Chip Select Register, the LASTXFER bit
is ignored in both the Control Register and the Transmit Data Register.
The internal chip-select output pin remains active as long as the Transmit
Data Register or its shift register are not empty.
Signed-off-by: default avatarCyrille Pitchen <cyrille.pitchen@atmel.com>
Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
48203034
Name Last commit Last update
..
accessibility printk: move braille console support into separate braille.[ch] files
acpi Merge tag 'pm+acpi-4.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
amba ARM: 8334/1: amba: tegra-ahb: detect and correct bogus base address
android android: binder: fix binder mmap failures
ata Merge tag 'powerpc-4.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux
atm drivers: atm: nicstar: remove ifdef'd out skb destructors
auxdisplay framebuffer: Use fb_<level>
base Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
bcma Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
block Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
bluetooth Bluetooth: btusb: Use proper data structures for Intel vendor events
bus Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
cdrom block,scsi: fixup blk_get_request dead queue scenarios
char Merge tag 'char-misc-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
clk Merge tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
clocksource Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
connector kconfig: use bool instead of boolean for type definition attributes
cpufreq cpufreq: intel_pstate: Fix an annoying !CONFIG_SMP warning
cpuidle Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
dca dca: convert to idr_alloc()
devfreq PM / devfreq: tegra: Register governor on module init
dio m68k: don't export static inline functions
dma-buf dma-buf: cleanup dma_buf_export() to make it easily extensible
dma Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
edac
eisa
extcon
firewire
firmware
fmc
gpio
gpu
hid
hsi
hv
hwmon
hwspinlock
hwtracing/coresight
i2c
ide
idle
iio
infiniband
input
iommu
ipack
irqchip
isdn
leds
lguest
macintosh
mailbox
mcb
md
media
memory
memstick
message
mfd
misc
mmc
mtd
net
nfc
ntb
nubus
of
oprofile
parisc
parport
pci
pcmcia
phy
pinctrl
platform
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390
sbus
scsi
sfi
sh
sn
soc
spi
spmi
ssb