Pull MFD updates from Lee Jones:
"New Drivers:
- ROHM
BD96801 Power Management IC
- Cirrus Logic CS40L50 Haptic Driver with Waveform Memory
- Marvell 88PM886 Power Management IC
New Device Support:
- Keyboard Backlight to ChromeOS Embedded Controller
- LEDs to ChromeOS Embedded Controller
- Charge Control to ChromeOS Embedded Controller
- HW Monitoring Service to ChromeOS Embedded Controller
- AUXADCs to MediaTek MT635{7,8,9} Power Management ICs
New Functionality:
- Allow Syscon consumers to supply their own Regmaps on registration
Fix-ups:
- Constify/staticise applicable data structures
- Remove superfluous/duplicated/unused sections
- Device Tree binding adaptions/conversions/creation
- Trivial; spelling, whitespace, coding-style adaptions
- Utilise centrally provided helpers and macros to aid
simplicity/duplication
- Drop i2c_device_id::driver_data where the value is unused
- Replace ACPI/DT firmware helpers with agnostic variants
- Move over to GPIOD (descriptor-based) APIs
- Annotate a bunch of __counted_by() cases
- Straighten out some includes
Bug Fixes:
- Ensure potentially asserted recent lines are deasserted during
initialisation
- Avoid "<module>.ko is added to multiple modules" warnings
- Supply a bunch of MODULE_DESCRIPTIONs to silence modpost warnings
- Fix Wvoid-pointer-to-enum-cast warnings"
* tag 'mfd-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (87 commits)
mfd: timberdale: Attach device properties to TSC2007 board info
mfd: tmio: Move header to platform_data
mfd: tmio: Sanitize comments
mfd: tmio: Update include files
mmc: tmio/sdhi: Fix includes
mfd: tmio: Remove obsolete io accessors
mfd: tmio: Remove obsolete platform_data
watchdog: bd96801_wdt: Add missing include for FIELD_*()
dt-bindings: mfd: syscon: Add APM poweroff mailbox
dt-bindings: mfd: syscon: Split and enforce documenting MFD children
dt-bindings: mfd: rk817: Merge support for RK809
dt-bindings: mfd: rk817: Fixup clocks and reference dai-common
dt-bindings: mfd: syscon: Add TI's opp table compatible
mfd: omap-usb-tll: Use struct_size to allocate tll
dt-bindings: mfd: Explain lack of child dependency in simple-mfd
dt-bindings: mfd: Dual licensing for st,stpmic1 bindings
mfd: omap-usb-tll: Annotate struct usbtll_omap with __counted_by
mfd: tps6594-core: Remove unneeded semicolon in tps6594_check_crc_mode()
mfd: lm3533: Move to new GPIO descriptor-based APIs
mfd: tps65912: Use devm helper functions to simplify probe
...
F: Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml
F: sound/soc/codecs/cros_ec_codec.*
+CHROMEOS EC CHARGE CONTROL
+M: Thomas Weißschuh <thomas@weissschuh.net>
+S: Maintained
+F: drivers/power/supply/cros_charge-control.c
+
+CHROMEOS EC HARDWARE MONITORING
+M: Thomas Weißschuh <thomas@weissschuh.net>
+L: chrome-platform@lists.linux.dev
+L: linux-hwmon@vger.kernel.org
+S: Maintained
+F: Documentation/hwmon/cros_ec_hwmon.rst
+F: drivers/hwmon/cros_ec_hwmon.c
+
+ CHROMEOS EC LED DRIVER
+ M: Thomas Weißschuh <thomas@weissschuh.net>
+ S: Maintained
+ F: drivers/leds/leds-cros_ec.c
+
CHROMEOS EC SUBDRIVERS
M: Benson Leung <bleung@chromium.org>
R: Guenter Roeck <groeck@chromium.org>
--- /dev/null
- void (*set_pwr)(struct platform_device *host, int state);
- void (*set_clk_div)(struct platform_device *host, int state);
+ /* SPDX-License-Identifier: GPL-2.0 */
+ #ifndef MFD_TMIO_H
+ #define MFD_TMIO_H
+
+ #include <linux/platform_device.h>
+ #include <linux/types.h>
+
+ /* TMIO MMC platform flags */
+
+ /*
+ * Some controllers can support a 2-byte block size when the bus width is
+ * configured in 4-bit mode.
+ */
+ #define TMIO_MMC_BLKSZ_2BYTES BIT(1)
+
+ /* Some controllers can support SDIO IRQ signalling */
+ #define TMIO_MMC_SDIO_IRQ BIT(2)
+
+ /* Some features are only available or tested on R-Car Gen2 or later */
+ #define TMIO_MMC_MIN_RCAR2 BIT(3)
+
+ /*
+ * Some controllers require waiting for the SD bus to become idle before
+ * writing to some registers.
+ */
+ #define TMIO_MMC_HAS_IDLE_WAIT BIT(4)
+
+ /*
+ * Use the busy timeout feature. Probably all TMIO versions support it. Yet,
+ * we don't have documentation for old variants, so we enable only known good
+ * variants with this flag. Can be removed once all variants are known good.
+ */
+ #define TMIO_MMC_USE_BUSY_TIMEOUT BIT(5)
+
+ /* Some controllers have CMD12 automatically issue/non-issue register */
+ #define TMIO_MMC_HAVE_CMD12_CTRL BIT(7)
+
+ /* Controller has some SDIO status bits which must be 1 */
+ #define TMIO_MMC_SDIO_STATUS_SETBITS BIT(8)
+
+ /* Some controllers have a 32-bit wide data port register */
+ #define TMIO_MMC_32BIT_DATA_PORT BIT(9)
+
+ /* Some controllers allows to set SDx actual clock */
+ #define TMIO_MMC_CLK_ACTUAL BIT(10)
+
+ /* Some controllers have a CBSY bit */
+ #define TMIO_MMC_HAVE_CBSY BIT(11)
+
+ struct tmio_mmc_data {
+ void *chan_priv_tx;
+ void *chan_priv_rx;
+ unsigned int hclk;
+ unsigned long capabilities;
+ unsigned long capabilities2;
+ unsigned long flags;
+ u32 ocr_mask; /* available voltages */
+ dma_addr_t dma_rx_offset;
+ unsigned int max_blk_count;
+ unsigned short max_segs;
+ };
+ #endif