1b886d83cSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 2e14fa824SRiku Voipio /* 3e14fa824SRiku Voipio * pca9532.h - platform data structure for pca9532 led controller 4e14fa824SRiku Voipio * 5e14fa824SRiku Voipio * Copyright (C) 2008 Riku Voipio <riku.voipio@movial.fi> 6e14fa824SRiku Voipio * 7e14fa824SRiku Voipio * Datasheet: http://www.nxp.com/acrobat/datasheets/PCA9532_3.pdf 8e14fa824SRiku Voipio */ 9e14fa824SRiku Voipio 10e14fa824SRiku Voipio #ifndef __LINUX_PCA9532_H 11e14fa824SRiku Voipio #define __LINUX_PCA9532_H 12e14fa824SRiku Voipio 13e14fa824SRiku Voipio #include <linux/leds.h> 14934cd3f9SRiku Voipio #include <linux/workqueue.h> 15fa4191a6SPhil Reid #include <dt-bindings/leds/leds-pca9532.h> 16e14fa824SRiku Voipio 17e14fa824SRiku Voipio enum pca9532_state { 18e14fa824SRiku Voipio PCA9532_OFF = 0x0, 19e14fa824SRiku Voipio PCA9532_ON = 0x1, 20e14fa824SRiku Voipio PCA9532_PWM0 = 0x2, 2128c5fe99SFelix Brack PCA9532_PWM1 = 0x3, 2228c5fe99SFelix Brack PCA9532_KEEP = 0xff, 23e14fa824SRiku Voipio }; 24e14fa824SRiku Voipio 25e14fa824SRiku Voipio struct pca9532_led { 26e14fa824SRiku Voipio u8 id; 27e14fa824SRiku Voipio struct i2c_client *client; 28fa4191a6SPhil Reid const char *name; 29fa4191a6SPhil Reid const char *default_trigger; 30e14fa824SRiku Voipio struct led_classdev ldev; 31934cd3f9SRiku Voipio struct work_struct work; 32fa4191a6SPhil Reid u32 type; 33e14fa824SRiku Voipio enum pca9532_state state; 34e14fa824SRiku Voipio }; 35e14fa824SRiku Voipio 36e14fa824SRiku Voipio struct pca9532_platform_data { 37e14fa824SRiku Voipio struct pca9532_led leds[16]; 38e14fa824SRiku Voipio u8 pwm[2]; 39e14fa824SRiku Voipio u8 psc[2]; 403c1ab50dSJoachim Eastwood int gpio_base; 41e14fa824SRiku Voipio }; 42e14fa824SRiku Voipio 43e14fa824SRiku Voipio #endif /* __LINUX_PCA9532_H */ 44