/* * Copyright (c) 2022 Thomas Stranger * * SPDX-License-Identifier: Apache-2.0 */ #define DT_DRV_COMPAT vnd_w1 /* * This is not a real 1-Wire driver. It is only used to instantiate struct * devices for the "vnd,w1" devicetree compatibe used in test code. */ #include struct w1_vnd_config { /** w1 master config, common to all drivers */ struct w1_master_config master_config; }; struct w1_vnd_data { /** w1 master data, common to all drivers */ struct w1_master_data master_data; }; static int w1_vnd_reset_bus(const struct device *dev) { return -ENOTSUP; } static int w1_vnd_read_bit(const struct device *dev) { return -ENOTSUP; } static int w1_vnd_write_bit(const struct device *dev, const bool bit) { return -ENOTSUP; } static int w1_vnd_read_byte(const struct device *dev) { return -ENOTSUP; } static int w1_vnd_write_byte(const struct device *dev, const uint8_t byte) { return -ENOTSUP; } static int w1_vnd_configure(const struct device *dev, enum w1_settings_type type, uint32_t value) { return -ENOTSUP; } static const struct w1_driver_api w1_vnd_api = { .reset_bus = w1_vnd_reset_bus, .read_bit = w1_vnd_read_bit, .write_bit = w1_vnd_write_bit, .read_byte = w1_vnd_read_byte, .write_byte = w1_vnd_write_byte, .configure = w1_vnd_configure, }; static int w1_vnd_init(const struct device *dev) { return 0; } #define W1_VND_INIT(n) \ static const struct w1_vnd_config w1_vnd_cfg_##inst = { \ .master_config.slave_count = W1_INST_SLAVE_COUNT(inst) \ }; \ static struct w1_vnd_data w1_vnd_data_##inst = {}; \ DEVICE_DT_INST_DEFINE(n, &w1_vnd_init, NULL, &w1_vnd_data_##inst, \ &w1_vnd_cfg_##inst, POST_KERNEL, \ CONFIG_W1_INIT_PRIORITY, &w1_vnd_api); DT_INST_FOREACH_STATUS_OKAY(W1_VND_INIT)