|  | /* | 
|  | * HTC PASIC3 driver - LEDs and DS1WM | 
|  | * | 
|  | * Copyright (c) 2007 Philipp Zabel <philipp.zabel@gmail.com> | 
|  | * | 
|  | * This file is subject to the terms and conditions of the GNU General Public | 
|  | * License.  See the file COPYING in the main directory of this archive for | 
|  | * more details. | 
|  | * | 
|  | */ | 
|  |  | 
|  | #ifndef __PASIC3_H | 
|  | #define __PASIC3_H | 
|  |  | 
|  | #include <linux/platform_device.h> | 
|  | #include <linux/leds.h> | 
|  |  | 
|  | extern void pasic3_write_register(struct device *dev, u32 reg, u8 val); | 
|  | extern u8 pasic3_read_register(struct device *dev, u32 reg); | 
|  |  | 
|  | /* | 
|  | * mask for registers 0x20,0x21,0x22 | 
|  | */ | 
|  | #define PASIC3_MASK_LED0 0x04 | 
|  | #define PASIC3_MASK_LED1 0x08 | 
|  | #define PASIC3_MASK_LED2 0x40 | 
|  |  | 
|  | /* | 
|  | * bits in register 0x06 | 
|  | */ | 
|  | #define PASIC3_BIT2_LED0 0x08 | 
|  | #define PASIC3_BIT2_LED1 0x10 | 
|  | #define PASIC3_BIT2_LED2 0x20 | 
|  |  | 
|  | struct pasic3_led { | 
|  | struct led_classdev         led; | 
|  | unsigned int                hw_num; | 
|  | unsigned int                bit2; | 
|  | unsigned int                mask; | 
|  | struct pasic3_leds_machinfo *pdata; | 
|  | }; | 
|  |  | 
|  | struct pasic3_leds_machinfo { | 
|  | unsigned int      num_leds; | 
|  | unsigned int      power_gpio; | 
|  | struct pasic3_led *leds; | 
|  | }; | 
|  |  | 
|  | struct pasic3_platform_data { | 
|  | struct pasic3_leds_machinfo *led_pdata; | 
|  | unsigned int                 clock_rate; | 
|  | }; | 
|  |  | 
|  | #endif |