mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-04 18:49:41 +00:00

- Add support for ROHM BD96801 Power Management IC - Add support for Cirrus Logic CS40L50 Haptic Driver with Waveform Memory - Add support for Marvell 88PM886 Power Management IC - New Device Support - Add support for Keyboard Backlight to ChromeOS Embedded Controller - Add support for LEDs to ChromeOS Embedded Controller - Add support for Charge Control to ChromeOS Embedded Controller - Add support for the HW Monitoring Service to ChromeOS Embedded Controller - Add support for 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 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEdrbJNaO+IJqU8IdIUa+KL4f8d2EFAmaWf6sACgkQUa+KL4f8 d2HhAw//UMujhKk/IfzGck3RoaKH3H22oVpd98BpzJCZBKSpl9pGsumHCicBMVAK gp8SuwKNCAX+Fa/TubHz0xH6FWxLFXezh5DvO1t1DrPNokG+u4QPTfgMJ1IfBMHO w7aL74rtJEyWBeod4+qNVoq6KNDaWjiWQlxGQ+9IoSNmxSTL6pkYMqo935RnqhRr nm2TfSOIshk4tiO9tVA1ecCgjVwsG51803hypmd1AH6qBb7JsY6k1HWukLGaqUiV +57oQzCTPIRYJhYdca06xi4ZmPg2kmoYKlxqW5ExyM7Mxs9aZZzwwZ7929LKXC6o ebAPDc3auoww7B5mHbbVuBj0gDZKtfXpBRKSHLNtmhi0xmjnwZxQIumkpVGQALkI 0TQffgYVU4O7IXsAZG9w5igyMzEo9SZJMyrfFaQ0iB3rx5bXuh4b6btfewAkyI1H +o3Yjymf4CR1trY9qnWCGWM/COQLIiGRhsk/RqGjy0xtpQo1Skx+AIkc6QD2zl6Y ohC0JzEWTQe7c1DOM3SLpNoCb/GbFpVi0RrXRVfRltPHpVb/r54Zlbo+PrCaC8FB EkU+86XbxGMh7hLtz5yhmnNCWKHQ6jbaFESwtZLo4d42CKvZaobL4xVCL56OntsH ikmTNG+X0mUAZiCwGgK5OhEVCAtCcjRtz1U93wgDBaz7Y39z+yM= =DSjk -----END PGP SIGNATURE----- Merge tag 'mfd-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd 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 ...
63 lines
1.7 KiB
C
63 lines
1.7 KiB
C
/* 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
|