Skip to content

Commit bae3559

Browse files
authored
Merge pull request #597 from QB4-dev/feat-implement-pca9536
feat: add PCA9536 support
2 parents 031278c + c4282e7 commit bae3559

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ or [GitLab examples](https://gitlab.com/UncleRus/esp-idf-lib/tree/master/example
156156
|--------------------------|----------------------------------------------------------------------------------|---------|--------------------|---------------|
157157
| **mcp23008** | Driver for 8-bit I2C GPIO expander MCP23008 | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3 | yes |
158158
| **mcp23x17** | Driver for I2C/SPI 16 bit GPIO expanders MCP23017/MCP23S17 | BSD-3-Clause | esp32, esp32s2, esp32c3 | yes |
159-
| **pca9557** | Driver for PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-bus | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3 | yes |
159+
| **pca9557** | Driver for PCA9536/PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-bus | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3 | yes |
160160
| **pcf8574** | Driver for PCF8574 remote 8-bit I/O expander for I2C-bus | MIT | esp32, esp8266, esp32s2, esp32c3 | yes |
161161
| **pcf8575** | Driver for PCF8575 remote 16-bit I/O expander for I2C-bus | MIT | esp32, esp8266, esp32s2, esp32c3 | yes |
162162
| **tca6424a** | Driver for TCA6424A low-voltage 24-bit I2C I/O expander | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3 | yes |

components/pca9557/.eil.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: pca9557
2-
description: Driver for PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-bus
2+
description: Driver for PCA9536/PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-bus
33
version: 1.0.0
44
groups:
55
- gpio

components/pca9557/pca9557.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
/**
2929
* @file pca9557.c
3030
*
31-
* ESP-IDF driver for PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-bus
31+
* ESP-IDF driver for PCA9536/PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-bus
3232
*
3333
* Copyright (c) 2021 Ruslan V. Uss <unclerus@gmail.com>
3434
*
@@ -103,7 +103,7 @@ esp_err_t pca9557_init_desc(i2c_dev_t *dev, uint8_t addr, i2c_port_t port, gpio_
103103
CHECK_ARG(dev && (
104104
(addr & PCA9557_I2C_ADDR_BASE) == PCA9557_I2C_ADDR_BASE ||
105105
(addr & TCA9534_I2C_ADDR_BASE) == TCA9534_I2C_ADDR_BASE ||
106-
addr == PCA9537_I2C_ADDR));
106+
addr == PCA9537_I2C_ADDR || addr == PCA9536_I2C_ADDR));
107107

108108
dev->port = port;
109109
dev->addr = addr;

components/pca9557/pca9557.h

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
* @defgroup pca9557 pca9557
3131
* @{
3232
*
33-
* ESP-IDF driver for PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-bus
33+
* ESP-IDF driver for PCA9536/PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-bus
3434
*
3535
* Copyright (c) 2021 Ruslan V. Uss <unclerus@gmail.com>
3636
*
@@ -47,6 +47,7 @@
4747
extern "C" {
4848
#endif
4949

50+
#define PCA9536_I2C_ADDR 0x41 ///< I2C address for PCA9536
5051
#define PCA9537_I2C_ADDR 0x49 ///< I2C address for PCA9537
5152
#define PCA9557_I2C_ADDR_BASE 0x18 ///< Base I2C address for PCA9557
5253
#define TCA9534_I2C_ADDR_BASE 0x20 ///< Base I2C address for TCA9534
@@ -129,7 +130,7 @@ esp_err_t pca9557_port_set_polarity(i2c_dev_t *dev, uint8_t pol);
129130
* @brief Read I/O port value
130131
*
131132
* @param dev Pointer to I2C device descriptor
132-
* @param[out] val 8-bit GPIO port value for PCA9557 or 4-bit port value for PCA9537
133+
* @param[out] val 8-bit GPIO port value for PCA9557 or 4-bit port value for PCA9536/PCA9537
133134
* @return `ESP_OK` on success
134135
*/
135136
esp_err_t pca9557_port_read(i2c_dev_t *dev, uint8_t *val);
@@ -138,7 +139,7 @@ esp_err_t pca9557_port_read(i2c_dev_t *dev, uint8_t *val);
138139
* @brief Write value to I/O port
139140
*
140141
* @param dev Pointer to I2C device descriptor
141-
* @param val 8-bit GPIO port value for PCA9557 or 4-bit port value for PCA9537
142+
* @param val 8-bit GPIO port value for PCA9557 or 4-bit port value for PCA9536/PCA9537
142143
* @return ESP_OK on success
143144
*/
144145
esp_err_t pca9557_port_write(i2c_dev_t *dev, uint8_t val);
@@ -147,7 +148,7 @@ esp_err_t pca9557_port_write(i2c_dev_t *dev, uint8_t val);
147148
* @brief Read I/O pin mode
148149
*
149150
* @param dev Pointer to device descriptor
150-
* @param pin Pin number, 0..7 for PCA9557, 0..3 for PC9537
151+
* @param pin Pin number, 0..7 for PCA9557, 0..3 for PCA9536/PC9537
151152
* @param[out] mode Pin mode
152153
* @return `ESP_OK` on success
153154
*/
@@ -157,7 +158,7 @@ esp_err_t pca9557_get_mode(i2c_dev_t *dev, uint8_t pin, pca9557_mode_t *mode);
157158
* @brief Set I/O pin mode
158159
*
159160
* @param dev Pointer to device descriptor
160-
* @param pin Pin number, 0..7 for PCA9557, 0..3 for PC9537
161+
* @param pin Pin number, 0..7 for PCA9557, 0..3 for PCA9536/PC9537
161162
* @param mode Pin mode
162163
* @return `ESP_OK` on success
163164
*/
@@ -167,7 +168,7 @@ esp_err_t pca9557_set_mode(i2c_dev_t *dev, uint8_t pin, pca9557_mode_t mode);
167168
* @brief Read I/O pin level
168169
*
169170
* @param dev Pointer to device descriptor
170-
* @param pin Pin number, 0..7 for PCA9557, 0..3 for PC9537
171+
* @param pin Pin number, 0..7 for PCA9557, 0..3 for PCA9536/PC9537
171172
* @param[out] val 1 if pin currently in high state, 0 otherwise
172173
* @return `ESP_OK` on success
173174
*/
@@ -179,7 +180,7 @@ esp_err_t pca9557_get_level(i2c_dev_t *dev, uint8_t pin, uint32_t *val);
179180
* Pin must be set up as output
180181
*
181182
* @param dev Pointer to device descriptor
182-
* @param pin Pin number, 0..7 for PCA9557, 0..3 for PC9537
183+
* @param pin Pin number, 0..7 for PCA9557, 0..3 for PCA9536/PC9537
183184
* @param val Pin level. 1 - high, 0 - low
184185
* @return `ESP_OK` on success
185186
*/

0 commit comments

Comments
 (0)