/* * Platform configuration options for DA9063 * * Copyright 2012 Dialog Semiconductor Ltd. * * Author: Michal Hajduk <michal.hajduk@diasemi.com> * Author: Krystian Garbaciak <krystian.garbaciak@diasemi.com> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * */ #ifndef __MFD_DA9063_PDATA_H__ #define __MFD_DA9063_PDATA_H__ #include <linux/regulator/machine.h> /* * Regulator configuration */ /* DA9063 regulator IDs */ enum { /* BUCKs */ DA9063_ID_BCORE1, DA9063_ID_BCORE2, DA9063_ID_BPRO, DA9063_ID_BMEM, DA9063_ID_BIO, DA9063_ID_BPERI, /* BCORE1 and BCORE2 in merged mode */ DA9063_ID_BCORES_MERGED, /* BMEM and BIO in merged mode */ DA9063_ID_BMEM_BIO_MERGED, /* When two BUCKs are merged, they cannot be reused separately */ /* LDOs */ DA9063_ID_LDO1, DA9063_ID_LDO2, DA9063_ID_LDO3, DA9063_ID_LDO4, DA9063_ID_LDO5, DA9063_ID_LDO6, DA9063_ID_LDO7, DA9063_ID_LDO8, DA9063_ID_LDO9, DA9063_ID_LDO10, DA9063_ID_LDO11, }; /* Regulators platform data */ struct da9063_regulator_data { int id; struct regulator_init_data *initdata; }; struct da9063_regulators_pdata { unsigned n_regulators; struct da9063_regulator_data *regulator_data; }; /* * RGB LED configuration */ /* LED IDs for flags in struct led_info. */ enum { DA9063_GPIO11_LED, DA9063_GPIO14_LED, DA9063_GPIO15_LED, DA9063_LED_NUM }; #define DA9063_LED_ID_MASK 0x3 /* LED polarity for flags in struct led_info. */ #define DA9063_LED_HIGH_LEVEL_ACTIVE 0x0 #define DA9063_LED_LOW_LEVEL_ACTIVE 0x4 /* * General PMIC configuration */ /* HWMON ADC channels configuration */ #define DA9063_FLG_FORCE_IN0_MANUAL_MODE 0x0010 #define DA9063_FLG_FORCE_IN0_AUTO_MODE 0x0020 #define DA9063_FLG_FORCE_IN1_MANUAL_MODE 0x0040 #define DA9063_FLG_FORCE_IN1_AUTO_MODE 0x0080 #define DA9063_FLG_FORCE_IN2_MANUAL_MODE 0x0100 #define DA9063_FLG_FORCE_IN2_AUTO_MODE 0x0200 #define DA9063_FLG_FORCE_IN3_MANUAL_MODE 0x0400 #define DA9063_FLG_FORCE_IN3_AUTO_MODE 0x0800 /* Disable register caching. */ #define DA9063_FLG_NO_CACHE 0x0008 struct da9063; /* DA9063 platform data */ struct da9063_pdata { int (*init)(struct da9063 *da9063); int irq_base; unsigned flags; struct da9063_regulators_pdata *regulators_pdata; struct led_platform_data *leds_pdata; }; #endif /* __MFD_DA9063_PDATA_H__ */