95 lines
2.9 KiB
C
95 lines
2.9 KiB
C
|
/*****************************************************************************
|
||
|
*
|
||
|
* Copyright(C) 2011, Embedded Artists AB
|
||
|
* All rights reserved.
|
||
|
*
|
||
|
******************************************************************************
|
||
|
* Software that is described herein is for illustrative purposes only
|
||
|
* which provides customers with programming information regarding the
|
||
|
* products. This software is supplied "AS IS" without any warranties.
|
||
|
* Embedded Artists AB assumes no responsibility or liability for the
|
||
|
* use of the software, conveys no license or title under any patent,
|
||
|
* copyright, or mask work right to the product. Embedded Artists AB
|
||
|
* reserves the right to make changes in the software without
|
||
|
* notification. Embedded Artists AB also make no representation or
|
||
|
* warranty that such application will be suitable for the specified
|
||
|
* use without further testing or modification.
|
||
|
*****************************************************************************/
|
||
|
#ifndef __PCA9532C_H
|
||
|
#define __PCA9532C_H
|
||
|
|
||
|
|
||
|
#define PCA9532_I2C_ADDR (0xC0>>1)
|
||
|
|
||
|
#define PCA9532_INPUT0 0x00
|
||
|
#define PCA9532_INPUT1 0x01
|
||
|
#define PCA9532_PSC0 0x02
|
||
|
#define PCA9532_PWM0 0x03
|
||
|
#define PCA9532_PSC1 0x04
|
||
|
#define PCA9532_PWM1 0x05
|
||
|
#define PCA9532_LS0 0x06
|
||
|
#define PCA9532_LS1 0x07
|
||
|
#define PCA9532_LS2 0x08
|
||
|
#define PCA9532_LS3 0x09
|
||
|
|
||
|
#define PCA9532_AUTO_INC 0x10
|
||
|
|
||
|
|
||
|
/*
|
||
|
* The Keys on the base board are mapped to LED0 -> LED3 on
|
||
|
* the PCA9532.
|
||
|
*/
|
||
|
|
||
|
#define KEY1 0x0001
|
||
|
#define KEY2 0x0002
|
||
|
#define KEY3 0x0004
|
||
|
#define KEY4 0x0008
|
||
|
|
||
|
#define KEY_MASK 0x000F
|
||
|
|
||
|
/*
|
||
|
* MMC Card Detect and MMC Write Protect are mapped to LED4
|
||
|
* and LED5 on the PCA9532. Please note that WP is active low.
|
||
|
*/
|
||
|
|
||
|
#define MMC_CD 0x0010
|
||
|
#define MMC_WP 0x0020
|
||
|
|
||
|
#define MMC_MASK 0x30
|
||
|
|
||
|
/* NOTE: LED6 and LED7 on PCA9532 are not connected to anything */
|
||
|
#define PCA9532_NOT_USED 0xC0
|
||
|
|
||
|
/*
|
||
|
* Below are the LED constants to use when enabling/disabling a LED.
|
||
|
* The LED names are the names printed on the base board and not
|
||
|
* the names from the PCA9532 device. base_LED1 -> LED8 on PCA9532,
|
||
|
* base_LED2 -> LED9, and so on.
|
||
|
*/
|
||
|
|
||
|
#define LED1 0x0100
|
||
|
#define LED2 0x0200
|
||
|
#define LED3 0x0400
|
||
|
#define LED4 0x0800
|
||
|
#define LED5 0x1000
|
||
|
#define LED6 0x2000
|
||
|
#define LED7 0x4000
|
||
|
#define LED8 0x8000
|
||
|
|
||
|
#define LED_MASK 0xFF00
|
||
|
|
||
|
void pca9532_init (void);
|
||
|
uint16_t pca9532_getLedState (uint32_t shadow);
|
||
|
void pca9532_setLeds (uint16_t ledOnMask, uint16_t ledOffMask);
|
||
|
void pca9532_setBlink0Period(uint8_t period);
|
||
|
void pca9532_setBlink0Duty(uint8_t duty);
|
||
|
void pca9532_setBlink0Leds(uint16_t ledMask);
|
||
|
void pca9532_setBlink1Period(uint8_t period);
|
||
|
void pca9532_setBlink1Duty(uint8_t duty);
|
||
|
void pca9532_setBlink1Leds(uint16_t ledMask);
|
||
|
|
||
|
#endif /* end __PCA9532C_H */
|
||
|
/****************************************************************************
|
||
|
** End Of File
|
||
|
*****************************************************************************/
|