summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Johanson <peter@peterjohanson.com>2020-07-21 13:37:02 -0400
committerPete Johanson <peter@peterjohanson.com>2020-07-21 13:37:02 -0400
commitc619d36294374ffea018090938d3613454fe3aae (patch)
tree2f3fc40ac357312f030a53b56aea23acb58828e1
parentac9ba3ae7d6db496ba7ddccf434804cfebfa6dab (diff)
Support multiple instances of the encoder.
-rw-r--r--app/drivers/zephyr/ec11.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/app/drivers/zephyr/ec11.c b/app/drivers/zephyr/ec11.c
index 9d724d5..357c572 100644
--- a/app/drivers/zephyr/ec11.c
+++ b/app/drivers/zephyr/ec11.c
@@ -134,19 +134,20 @@ int ec11_init(struct device *dev)
return 0;
}
-struct ec11_data ec11_data;
-
-const struct ec11_config ec11_cfg = {
- .a_label = DT_INST_GPIO_LABEL(0, a_gpios),
- .a_pin = DT_INST_GPIO_PIN(0, a_gpios),
- .a_flags = DT_INST_GPIO_FLAGS(0, a_gpios),
- .b_label = DT_INST_GPIO_LABEL(0, b_gpios),
- .b_pin = DT_INST_GPIO_PIN(0, b_gpios),
- .b_flags = DT_INST_GPIO_FLAGS(0, b_gpios),
- COND_CODE_0(DT_INST_NODE_HAS_PROP(0, resolution), (1), (DT_INST_PROP(0, resolution))),
-};
-
-DEVICE_AND_API_INIT(ec11, DT_INST_LABEL(0), ec11_init,
- &ec11_data,
- &ec11_cfg, POST_KERNEL, CONFIG_SENSOR_INIT_PRIORITY,
- &ec11_driver_api);
+#define EC11_INST(n) \
+ struct ec11_data ec11_data_##n; \
+ const struct ec11_config ec11_cfg_##n = { \
+ .a_label = DT_INST_GPIO_LABEL(n, a_gpios), \
+ .a_pin = DT_INST_GPIO_PIN(n, a_gpios), \
+ .a_flags = DT_INST_GPIO_FLAGS(n, a_gpios), \
+ .b_label = DT_INST_GPIO_LABEL(n, b_gpios), \
+ .b_pin = DT_INST_GPIO_PIN(n, b_gpios), \
+ .b_flags = DT_INST_GPIO_FLAGS(n, b_gpios), \
+ COND_CODE_0(DT_INST_NODE_HAS_PROP(n, resolution), (1), (DT_INST_PROP(n, resolution))), \
+ }; \
+ DEVICE_AND_API_INIT(ec11, DT_INST_LABEL(n), ec11_init, \
+ &ec11_data_##n, \
+ &ec11_cfg_##n, POST_KERNEL, CONFIG_SENSOR_INIT_PRIORITY, \
+ &ec11_driver_api);
+
+DT_INST_FOREACH_STATUS_OKAY(EC11_INST) \ No newline at end of file