linux/include/linux/mfd/menelaus.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Functions to access Menelaus power management chip
   4 */
   5
   6#ifndef __ASM_ARCH_MENELAUS_H
   7#define __ASM_ARCH_MENELAUS_H
   8
   9struct device;
  10
  11struct menelaus_platform_data {
  12        int (* late_init)(struct device *dev);
  13};
  14
  15extern int menelaus_register_mmc_callback(void (*callback)(void *data, u8 card_mask),
  16                                          void *data);
  17extern void menelaus_unregister_mmc_callback(void);
  18extern int menelaus_set_mmc_opendrain(int slot, int enable);
  19extern int menelaus_set_mmc_slot(int slot, int enable, int power, int cd_on);
  20
  21extern int menelaus_set_vmem(unsigned int mV);
  22extern int menelaus_set_vio(unsigned int mV);
  23extern int menelaus_set_vmmc(unsigned int mV);
  24extern int menelaus_set_vaux(unsigned int mV);
  25extern int menelaus_set_vdcdc(int dcdc, unsigned int mV);
  26extern int menelaus_set_slot_sel(int enable);
  27extern int menelaus_get_slot_pin_states(void);
  28extern int menelaus_set_vcore_hw(unsigned int roof_mV, unsigned int floor_mV);
  29
  30#define EN_VPLL_SLEEP   (1 << 7)
  31#define EN_VMMC_SLEEP   (1 << 6)
  32#define EN_VAUX_SLEEP   (1 << 5)
  33#define EN_VIO_SLEEP    (1 << 4)
  34#define EN_VMEM_SLEEP   (1 << 3)
  35#define EN_DC3_SLEEP    (1 << 2)
  36#define EN_DC2_SLEEP    (1 << 1)
  37#define EN_VC_SLEEP     (1 << 0)
  38
  39extern int menelaus_set_regulator_sleep(int enable, u32 val);
  40
  41#endif
  42