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