5dc3339aa5
This driver will provide registers, clocks and GPIOs of the HTC PASIC3 (AIC3) and PASIC2 (AIC2) chips to the ds1wm and leds-pasic3 drivers. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
/*
|
|
* 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 bus_shift;
|
|
unsigned int clock_rate;
|
|
};
|
|
|
|
#endif
|