xref: /linux/include/linux/regulator/fan53555.h (revision 36f8250e4d478429a393c20910dcd02772bd0839)
149d8c599SYunfan Zhang /*
249d8c599SYunfan Zhang  * fan53555.h - Fairchild Regulator FAN53555 Driver
349d8c599SYunfan Zhang  *
449d8c599SYunfan Zhang  * Copyright (C) 2012 Marvell Technology Ltd.
549d8c599SYunfan Zhang  * Yunfan Zhang <yfzhang@marvell.com>
649d8c599SYunfan Zhang  *
749d8c599SYunfan Zhang  * This package is free software; you can redistribute it and/or modify
849d8c599SYunfan Zhang  * it under the terms of the GNU General Public License version 2 as
949d8c599SYunfan Zhang  * published by the Free Software Foundation.
1049d8c599SYunfan Zhang  *
1149d8c599SYunfan Zhang  */
1249d8c599SYunfan Zhang 
1349d8c599SYunfan Zhang #ifndef __FAN53555_H__
14*36f8250eSAxel Lin #define __FAN53555_H__
1549d8c599SYunfan Zhang 
1649d8c599SYunfan Zhang /* VSEL ID */
1749d8c599SYunfan Zhang enum {
1849d8c599SYunfan Zhang 	FAN53555_VSEL_ID_0 = 0,
1949d8c599SYunfan Zhang 	FAN53555_VSEL_ID_1,
2049d8c599SYunfan Zhang };
2149d8c599SYunfan Zhang 
2249d8c599SYunfan Zhang /* Transition slew rate limiting from a low to high voltage.
2349d8c599SYunfan Zhang  * -----------------------
2449d8c599SYunfan Zhang  *   Bin |Slew Rate(mV/uS)
2549d8c599SYunfan Zhang  * ------|----------------
2649d8c599SYunfan Zhang  *   000 |    64.00
2749d8c599SYunfan Zhang  * ------|----------------
2849d8c599SYunfan Zhang  *   001 |    32.00
2949d8c599SYunfan Zhang  * ------|----------------
3049d8c599SYunfan Zhang  *   010 |    16.00
3149d8c599SYunfan Zhang  * ------|----------------
3249d8c599SYunfan Zhang  *   011 |     8.00
3349d8c599SYunfan Zhang  * ------|----------------
3449d8c599SYunfan Zhang  *   100 |     4.00
3549d8c599SYunfan Zhang  * ------|----------------
3649d8c599SYunfan Zhang  *   101 |     2.00
3749d8c599SYunfan Zhang  * ------|----------------
3849d8c599SYunfan Zhang  *   110 |     1.00
3949d8c599SYunfan Zhang  * ------|----------------
4049d8c599SYunfan Zhang  *   111 |     0.50
4149d8c599SYunfan Zhang  * -----------------------
4249d8c599SYunfan Zhang  */
4349d8c599SYunfan Zhang enum {
4449d8c599SYunfan Zhang 	FAN53555_SLEW_RATE_64MV = 0,
4549d8c599SYunfan Zhang 	FAN53555_SLEW_RATE_32MV,
4649d8c599SYunfan Zhang 	FAN53555_SLEW_RATE_16MV,
4749d8c599SYunfan Zhang 	FAN53555_SLEW_RATE_8MV,
4849d8c599SYunfan Zhang 	FAN53555_SLEW_RATE_4MV,
4949d8c599SYunfan Zhang 	FAN53555_SLEW_RATE_2MV,
5049d8c599SYunfan Zhang 	FAN53555_SLEW_RATE_1MV,
5149d8c599SYunfan Zhang 	FAN53555_SLEW_RATE_0_5MV,
5249d8c599SYunfan Zhang };
5349d8c599SYunfan Zhang 
5449d8c599SYunfan Zhang struct fan53555_platform_data {
5549d8c599SYunfan Zhang 	struct regulator_init_data *regulator;
5649d8c599SYunfan Zhang 	unsigned int slew_rate;
5749d8c599SYunfan Zhang 	/* Sleep VSEL ID */
5849d8c599SYunfan Zhang 	unsigned int sleep_vsel_id;
5949d8c599SYunfan Zhang };
6049d8c599SYunfan Zhang 
6149d8c599SYunfan Zhang #endif /* __FAN53555_H__ */
62