1 /* 2 * HTC PASIC3 driver - LEDs and DS1WM 3 * 4 * Copyright (c) 2007 Philipp Zabel <philipp.zabel@gmail.com> 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file COPYING in the main directory of this archive for 8 * more details. 9 * 10 */ 11 12 #ifndef __PASIC3_H 13 #define __PASIC3_H 14 15 #include <linux/platform_device.h> 16 #include <linux/leds.h> 17 18 extern void pasic3_write_register(struct device *dev, u32 reg, u8 val); 19 extern u8 pasic3_read_register(struct device *dev, u32 reg); 20 21 /* 22 * mask for registers 0x20,0x21,0x22 23 */ 24 #define PASIC3_MASK_LED0 0x04 25 #define PASIC3_MASK_LED1 0x08 26 #define PASIC3_MASK_LED2 0x40 27 28 /* 29 * bits in register 0x06 30 */ 31 #define PASIC3_BIT2_LED0 0x08 32 #define PASIC3_BIT2_LED1 0x10 33 #define PASIC3_BIT2_LED2 0x20 34 35 struct pasic3_led { 36 struct led_classdev led; 37 unsigned int hw_num; 38 unsigned int bit2; 39 unsigned int mask; 40 struct pasic3_leds_machinfo *pdata; 41 }; 42 43 struct pasic3_leds_machinfo { 44 unsigned int num_leds; 45 unsigned int power_gpio; 46 struct pasic3_led *leds; 47 }; 48 49 struct pasic3_platform_data { 50 struct pasic3_leds_machinfo *led_pdata; 51 unsigned int clock_rate; 52 }; 53 54 #endif 55