linux/Documentation
Frieder Schrempf f9cbf56b0a
dt-bindings: regulator: pca9450: Add properties for handling LDO5
This reverts commit 27866e3e8a and
implements a new future-proof way of handling the mismatch between
the PMIC driver and the hardware for LDO5.

It turned out that this feature was implemented based on the wrong
assumption that the SD_VSEL signal needs to be controlled as GPIO
in any case.

In fact the straight-forward approach is to mux the signal as
USDHC_VSELECT and let the USDHC controller do the job.

Most users never even used this property and the few who did have
been or are getting migrated to the alternative approach.

In order to know the current status (which of the two control
registers is used) for the LDO5 regulator, we need to route back the
USDHC_VSELECT signal by setting the SION bit in the IOMUX.

By adding the according GPIO as sd-vsel-gpios to the LDO5 node, we
allow the regulator driver to sample the current status of the
SD_VSEL signal that is used to select the correct control register.

The SD_VSEL on the PMIC is always an input. It's driven by the SoC's
VSELECT signal (controlled by the USDHC controller) and we use the
SION bit in the IOMUX to internally loop back the signal in order to
sample it using the GPIO.

As the SD_VSEL pin is directly routed to the LDO5 regulator in the
PMIC, make the sd-vsel-gpios property part of the LDO5 node.

SoC                                  PMIC
+-----------------------+           +-------------------+
|                       |           |                   |
|                       |           |                   |
|  GPIO <----------+    |           |                   |
|                  |    |    SD_VSEL|   +-------+       |
|  USDHC_VSELECT ->+------------------->| LDO5  |       |
|                       |           |   +-------+       |
|                       |           |                   |
+-----------------------+           +-------------------+

For boards which have the SD_VSEL tied to a fixed low level, we add
'nxp,sd-vsel-fixed-low'. The voltage of LDO5 is therefore only controlled
by writing to the LDO5CTRL_L register.

If none of 'nxp,sd-vsel-fixed-low' or 'sd-vsel-gpios' is set, we keep
the same behavior as before. The driver assumes that SD_VSEL is tied
high and the LDO5CTRL_H register can be used, which is in fact not true
for all known boards and works merely by chance.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20241218152842.97483-2-frieder@fris.de
Signed-off-by: Mark Brown <broonie@kernel.org>
History 2025-02-03 00:39:00 +00:00
..
ABI First batch of fixes for 6.14. Nothing really stands out, 2025-01-30 12:24:20 -08:00
accel accel/amdxdna: Add documentation for AMD NPU accelerator driver 2024-11-22 11:40:56 -07:00
accounting Mainly individually changelogged singleton patches. The patch series in 2025-01-26 17:50:53 -08:00
admin-guide KVM/arm64 updates for 6.14 2025-01-28 09:01:36 -08:00
arch RISC-V Patches for the 6.14 Merge Window, Part 1 2025-01-31 15:13:25 -08:00
block Documentation: ublk: Drop Stefan Hajnoczi's message footnote 2025-01-28 15:02:17 -07:00
bpf bpf: Remove trailing whitespace in verifier.rst 2024-11-11 08:17:48 -08:00
cdrom scsi: sr: Fix unintentional arithmetic wraparound 2024-05-15 10:05:24 -04:00
core-api Mainly individually changelogged singleton patches. The patch series in 2025-01-26 17:50:53 -08:00
cpu-freq Docs/subsystem-apis: Remove '[The ]Linux' prefixes from titles of listed documents 2023-01-24 15:27:08 -07:00
crypto crypto: doc - Fix akcipher title reference 2024-10-10 17:08:02 +08:00
dev-tools Documentation: move dev-tools debugging files to process/debugging/ 2024-12-17 13:46:53 -07:00
devicetree dt-bindings: regulator: pca9450: Add properties for handling LDO5 2025-02-03 00:39:00 +00:00
doc-guide Documentation: kernel-doc: enumerate identifier *type*s 2024-11-22 10:37:40 -07:00
driver-api Char/Misc/IIO driver updates for 6.14-rc1 2025-01-27 16:51:51 -08:00
fault-injection net: Implement fault injection forcing skb reallocation 2024-11-12 12:05:33 +01:00
fb fbdev/intelfb: Remove driver 2024-01-12 12:38:37 +01:00
features riscv: Add qspinlock support 2024-11-11 07:33:20 -08:00
filesystems Provide stable parent and name to ->d_revalidate() instances 2025-01-30 09:13:35 -08:00
firmware-guide Documentation: firmware-guide: ACPI: Fix namespace typo 2024-04-26 18:58:13 +02:00
firmware_class firmware: revamp firmware documentation 2017-01-11 09:42:59 +01:00
fpga Documentation: use capitalization for chapters and acronyms 2023-05-16 12:49:31 -06:00
gpu drm: xlnx: zynqmp_dpsub: Fix kernel doc 2025-01-16 12:45:16 +01:00
hid HID: THC: Add documentation 2025-01-09 10:14:14 +01:00
hwmon hwmon updates for v6.14-rc1 2025-01-22 10:16:48 -08:00
i2c i2c-host updates for v6.13, part 1 2024-11-18 08:35:47 +01:00
iio iio: light: Add support for TI OPT4060 color sensor 2024-12-28 14:28:13 +00:00
images docs: add SVG version of the Linux logo 2022-06-01 09:32:45 -06:00
infiniband RDMA/core: Remove FMR device ops 2020-06-02 20:32:54 -03:00
input Input: fix the input_event struct documentation 2024-11-14 18:03:23 -08:00
isdn Documentation: isdn: correct spelling 2023-02-10 16:28:13 -08:00
kbuild Kbuild updates for v6.14 2025-01-31 12:07:07 -08:00
kernel-hacking docs/licensing: Clarify wording about "GPL" and "Proprietary" 2024-11-22 10:44:25 -07:00
leds Documentation:leds: Add leds-st1202.rst 2025-01-09 10:30:23 +00:00
litmus-tests Documentation/litmus-tests: Make cmpxchg() tests safe for klitmus 2024-05-06 14:29:21 -07:00
livepatch Documentation: livepatch: Correct release locks antonym 2024-09-04 13:42:27 +02:00
locking locking/Documentation: Fix grammar in percpu-rw-semaphore.rst 2024-11-13 10:59:01 +01:00
maintainer docs: Remove redundant word "for" 2024-10-21 09:32:20 -06:00
mhi docs: Add documentation for MHI bus 2020-03-19 07:41:04 +01:00
misc-devices misc: mrvl-cn10k-dpi: add Octeon CN10K DPI administrative driver 2024-07-10 14:58:29 +02:00
mm The various patchsets are summarized below. Plus of course many 2025-01-26 18:36:23 -08:00
netlabel docs: add some directories to the main documentation index 2019-07-15 11:03:03 -03:00
netlink net: ethtool: ts: add separate counter for unconfirmed one-step TX timestamps 2025-01-17 20:01:09 -08:00
networking doc: mptcp: sysctl: blackhole_timeout is per-netns 2025-01-30 14:02:19 +01:00
nvdimm nvdimm: fixes to maintainter-entry-profile 2020-05-25 10:19:19 -06:00
nvme Documentation: Document the NVMe PCI endpoint target driver 2025-01-10 19:30:49 -08:00
PCI pci-v6.14-changes 2025-01-25 16:03:40 -08:00
pcmcia Documentation: use capitalization for chapters and acronyms 2023-05-16 12:49:31 -06:00
peci Docs/subsystem-apis: Remove '[The ]Linux' prefixes from titles of listed documents 2023-01-24 15:27:08 -07:00
power Two fixes for footnote-related warnings that appeared with Sphinx 8.x. 2025-01-30 10:57:19 -08:00
process Kbuild updates for v6.14 2025-01-31 12:07:07 -08:00
RCU doc: rcu: update printed dynticks counter bits 2024-11-12 21:40:24 +01:00
rust Rust changes for v6.13 2024-11-26 14:00:26 -08:00
scheduler sched_ext: Changes for v6.14 2025-01-23 18:49:43 -08:00
scsi scsi: documentation: Corrections for struct updates 2025-01-10 15:15:30 -05:00
security cred: remove unused get_new_cred() 2024-12-02 11:25:14 +01:00
sound Merge branch 'for-linus' into for-next 2025-01-20 09:25:33 +01:00
sphinx docs: kerneldoc-preamble.sty: Suppress extra spaces in CJK literal blocks 2024-09-05 14:16:41 -06:00
sphinx-static docs: translations: add translations links when they exist 2023-12-19 14:34:59 -07:00
spi spi: Enable controllers to extend the SPI protocol with MOSI idle configuration 2024-07-29 01:19:51 +01:00
staging Documentation: Fix incorrect paths/magic in magic numbers rst 2024-11-04 12:34:59 -07:00
sunrpc/xdr nfsd: rename NFS4_SHARE_WANT_* constants to OPEN4_SHARE_ACCESS_WANT_* 2025-01-21 15:30:01 -05:00
target scsi: target: docs: Remove tcm_mod_builder.py 2023-06-28 22:01:32 -04:00
tee Documentation: tee: Add TS-TEE driver 2024-04-03 14:03:09 +02:00
timers timers/Documentation: Cleanup delay/sleep documentation 2024-10-16 00:36:48 +02:00
tools rtla: Documentation: Mention --deepest-idle-state 2024-10-17 17:13:16 -04:00
trace tracing updates for v6.14: 2025-01-23 17:51:16 -08:00
translations mailmap, MAINTAINERS, docs: update Carlos's email address 2025-02-01 03:53:27 -08:00
usb USB: usbip: Update USB/IP OP_REP_IMPORT documentation. 2024-12-27 13:07:22 +01:00
userspace-api Driver core and debugfs updates 2025-01-28 12:25:12 -08:00
virt KVM/arm64 updates for 6.14 2025-01-28 09:01:36 -08:00
w1 w1: add UART w1 bus driver 2024-02-15 15:02:33 +01:00
watchdog watchdog: Delete the cpu5wdt driver 2024-11-05 10:04:39 +01:00
wmi docs: platform/x86: wmi: mention tool for invoking WMI methods 2025-01-09 13:38:39 +02:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
atomic_bitops.txt wait_on_bit: add an acquire memory barrier 2022-08-26 09:30:25 -07:00
atomic_t.txt Documentation/atomic_t: Emphasize that failed atomic operations give no ordering 2024-05-06 14:29:04 -07:00
Changes docs: add back 'Documentation/Changes' file (as symlink) 2016-12-14 16:30:12 -08:00
CodingStyle doc: re-add CodingStyle and SubmittingPatches 2016-10-24 08:12:35 -02:00
conf.py compiler_types: add Endianness-dependent __counted_by_{le,be} 2024-03-28 18:50:47 -07:00
docutils.conf doc-rst: Add missing newline at end of file 2019-06-20 14:16:56 -06:00
index.rst doc: fix spelling about ReStructured Text 2024-04-02 10:07:51 -06:00
Kconfig Documentation: Avoid duplicate Kconfig inclusion 2023-01-19 13:56:34 -07:00
Makefile tools: ynl: move python code to separate sub-directory 2025-01-09 12:53:27 -08:00
memory-barriers.txt docs/memory-barriers.txt: Remove left-over references to "CACHE COHERENCY" 2024-09-13 23:56:44 -07:00
SubmittingPatches doc: re-add CodingStyle and SubmittingPatches 2016-10-24 08:12:35 -02:00
subsystem-apis.rst Documentation: Document the NVMe PCI endpoint target driver 2025-01-10 19:30:49 -08:00