112 lines
2.5 KiB
C
112 lines
2.5 KiB
C
/*
|
|
* 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__ */
|