1e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio/* 2e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio * pca9532.h - platform data structure for pca9532 led controller 3e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio * 4e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio * Copyright (C) 2008 Riku Voipio <riku.voipio@movial.fi> 5e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio * 6e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio * This program is free software; you can redistribute it and/or modify 7e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio * it under the terms of the GNU General Public License as published by 8e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio * the Free Software Foundation; version 2 of the License. 9e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio * 10e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio * Datasheet: http://www.nxp.com/acrobat/datasheets/PCA9532_3.pdf 11e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio * 12e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio */ 13e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio 14e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio#ifndef __LINUX_PCA9532_H 15e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio#define __LINUX_PCA9532_H 16e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio 17e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio#include <linux/leds.h> 18934cd3f979a1daacbd403398f2c7a8f6720c33aaRiku Voipio#include <linux/workqueue.h> 19e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio 20e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipioenum pca9532_state { 21e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio PCA9532_OFF = 0x0, 22e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio PCA9532_ON = 0x1, 23e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio PCA9532_PWM0 = 0x2, 24e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio PCA9532_PWM1 = 0x3 25e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio}; 26e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio 27e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipioenum pca9532_type { PCA9532_TYPE_NONE, PCA9532_TYPE_LED, 283c1ab50d0a31b27bb4e55168f4901dd91e6e5ea4Joachim Eastwood PCA9532_TYPE_N2100_BEEP, PCA9532_TYPE_GPIO }; 29e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio 30e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipiostruct pca9532_led { 31e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio u8 id; 32e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio struct i2c_client *client; 33e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio char *name; 34e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio struct led_classdev ldev; 359695fff8f84d7ab849139750036e443b85804eddAntonio Ospite struct work_struct work; 36e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio enum pca9532_type type; 37e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio enum pca9532_state state; 38e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio}; 39e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio 40e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipiostruct pca9532_platform_data { 41e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio struct pca9532_led leds[16]; 42e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio u8 pwm[2]; 43e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio u8 psc[2]; 443c1ab50d0a31b27bb4e55168f4901dd91e6e5ea4Joachim Eastwood int gpio_base; 45e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio}; 46e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio 47e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio#endif /* __LINUX_PCA9532_H */ 48e14fa82439d33cef67eaafc1a48960bbfa610c8eRiku Voipio 49