1d6fe1360f42e86262153927986dea6502daff703Simon Guinot/*
2d6fe1360f42e86262153927986dea6502daff703Simon Guinot * include/linux/gpio-fan.h
3d6fe1360f42e86262153927986dea6502daff703Simon Guinot *
4d6fe1360f42e86262153927986dea6502daff703Simon Guinot * Platform data structure for GPIO fan driver
5d6fe1360f42e86262153927986dea6502daff703Simon Guinot *
6d6fe1360f42e86262153927986dea6502daff703Simon Guinot * This file is licensed under the terms of the GNU General Public
7d6fe1360f42e86262153927986dea6502daff703Simon Guinot * License version 2.  This program is licensed "as is" without any
8d6fe1360f42e86262153927986dea6502daff703Simon Guinot * warranty of any kind, whether express or implied.
9d6fe1360f42e86262153927986dea6502daff703Simon Guinot */
10d6fe1360f42e86262153927986dea6502daff703Simon Guinot
11d6fe1360f42e86262153927986dea6502daff703Simon Guinot#ifndef __LINUX_GPIO_FAN_H
12d6fe1360f42e86262153927986dea6502daff703Simon Guinot#define __LINUX_GPIO_FAN_H
13d6fe1360f42e86262153927986dea6502daff703Simon Guinot
14d6fe1360f42e86262153927986dea6502daff703Simon Guinotstruct gpio_fan_alarm {
15d6fe1360f42e86262153927986dea6502daff703Simon Guinot	unsigned	gpio;
16d6fe1360f42e86262153927986dea6502daff703Simon Guinot	unsigned	active_low;
17d6fe1360f42e86262153927986dea6502daff703Simon Guinot};
18d6fe1360f42e86262153927986dea6502daff703Simon Guinot
19d6fe1360f42e86262153927986dea6502daff703Simon Guinotstruct gpio_fan_speed {
20d6fe1360f42e86262153927986dea6502daff703Simon Guinot	int rpm;
21d6fe1360f42e86262153927986dea6502daff703Simon Guinot	int ctrl_val;
22d6fe1360f42e86262153927986dea6502daff703Simon Guinot};
23d6fe1360f42e86262153927986dea6502daff703Simon Guinot
24d6fe1360f42e86262153927986dea6502daff703Simon Guinotstruct gpio_fan_platform_data {
25d6fe1360f42e86262153927986dea6502daff703Simon Guinot	int			num_ctrl;
26d6fe1360f42e86262153927986dea6502daff703Simon Guinot	unsigned		*ctrl;	/* fan control GPIOs. */
27d6fe1360f42e86262153927986dea6502daff703Simon Guinot	struct gpio_fan_alarm	*alarm;	/* fan alarm GPIO. */
28d6fe1360f42e86262153927986dea6502daff703Simon Guinot	/*
29d6fe1360f42e86262153927986dea6502daff703Simon Guinot	 * Speed conversion array: rpm from/to GPIO bit field.
30d6fe1360f42e86262153927986dea6502daff703Simon Guinot	 * This array _must_ be sorted in ascending rpm order.
31d6fe1360f42e86262153927986dea6502daff703Simon Guinot	 */
32d6fe1360f42e86262153927986dea6502daff703Simon Guinot	int			num_speed;
33d6fe1360f42e86262153927986dea6502daff703Simon Guinot	struct gpio_fan_speed	*speed;
34d6fe1360f42e86262153927986dea6502daff703Simon Guinot};
35d6fe1360f42e86262153927986dea6502daff703Simon Guinot
36d6fe1360f42e86262153927986dea6502daff703Simon Guinot#endif /* __LINUX_GPIO_FAN_H */
37