@@ -75,7 +75,7 @@ static int mcp230xx_bus_is_ready(const struct device *dev)
7575 return 0 ;
7676}
7777
78- #define GPIO_MCP230XX_DEVICE (inst , num_gpios ) \
78+ #define GPIO_MCP230XX_DEVICE (inst , num_gpios , open_drain ) \
7979 static struct mcp23xxx_drv_data mcp230xx_##inst##_drvdata = { \
8080 /* Default for registers according to datasheet */ \
8181 .reg_cache .iodir = 0xFFFF, .reg_cache.ipol = 0x0, .reg_cache.gpinten = 0x0, \
@@ -93,6 +93,7 @@ static int mcp230xx_bus_is_ready(const struct device *dev)
9393 .gpio_int = GPIO_DT_SPEC_INST_GET_OR(inst, int_gpios, {0}), \
9494 .gpio_reset = GPIO_DT_SPEC_INST_GET_OR(inst, reset_gpios, {0}), \
9595 .ngpios = num_gpios, \
96+ .is_open_drain = open_drain, \
9697 .read_fn = mcp230xx_read_port_regs, \
9798 .write_fn = mcp230xx_write_port_regs, \
9899 .bus_fn = mcp230xx_bus_is_ready, \
@@ -102,17 +103,17 @@ static int mcp230xx_bus_is_ready(const struct device *dev)
102103 CONFIG_GPIO_MCP230XX_INIT_PRIORITY, &gpio_mcp23xxx_api_table);
103104
104105#define DT_DRV_COMPAT microchip_mcp23008
105- DT_INST_FOREACH_STATUS_OKAY_VARGS (GPIO_MCP230XX_DEVICE , 8 )
106+ DT_INST_FOREACH_STATUS_OKAY_VARGS (GPIO_MCP230XX_DEVICE , 8 , false )
106107#undef DT_DRV_COMPAT
107108#define DT_DRV_COMPAT microchip_mcp23009
108- DT_INST_FOREACH_STATUS_OKAY_VARGS (GPIO_MCP230XX_DEVICE , 8 )
109+ DT_INST_FOREACH_STATUS_OKAY_VARGS (GPIO_MCP230XX_DEVICE , 8 , true )
109110#undef DT_DRV_COMPAT
110111#define DT_DRV_COMPAT microchip_mcp23016
111- DT_INST_FOREACH_STATUS_OKAY_VARGS (GPIO_MCP230XX_DEVICE , 16 )
112+ DT_INST_FOREACH_STATUS_OKAY_VARGS (GPIO_MCP230XX_DEVICE , 16 , false )
112113#undef DT_DRV_COMPAT
113114#define DT_DRV_COMPAT microchip_mcp23017
114- DT_INST_FOREACH_STATUS_OKAY_VARGS (GPIO_MCP230XX_DEVICE , 16 )
115+ DT_INST_FOREACH_STATUS_OKAY_VARGS (GPIO_MCP230XX_DEVICE , 16 , false )
115116#undef DT_DRV_COMPAT
116117#define DT_DRV_COMPAT microchip_mcp23018
117- DT_INST_FOREACH_STATUS_OKAY_VARGS (GPIO_MCP230XX_DEVICE , 16 )
118+ DT_INST_FOREACH_STATUS_OKAY_VARGS (GPIO_MCP230XX_DEVICE , 16 , true )
118119#undef DT_DRV_COMPAT
0 commit comments