123456789101112131415161718192021222324252627282930313233343536 |
- // SPDX-License-Identifier: GPL-2.0-only
- /*
- * Copyright (c) 2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
- */
- #include <linux/kernel.h>
- #include <linux/iio/consumer.h>
- #include "smb5-iio.h"
- #if defined(CONFIG_QPNP_SMBLITE) && defined(CONFIG_QPNP_SMB5)
- struct iio_channel **get_ext_channels(struct device *dev,
- const char *const *channel_map, int size)
- {
- int i, rc = 0;
- struct iio_channel **iio_ch_ext;
- iio_ch_ext = devm_kcalloc(dev, size, sizeof(*iio_ch_ext), GFP_KERNEL);
- if (!iio_ch_ext)
- return ERR_PTR(-ENOMEM);
- for (i = 0; i < size; i++) {
- iio_ch_ext[i] = devm_iio_channel_get(dev, channel_map[i]);
- if (IS_ERR(iio_ch_ext[i])) {
- rc = PTR_ERR(iio_ch_ext[i]);
- if (rc != -EPROBE_DEFER)
- dev_err(dev, "%s channel unavailable, %d\n",
- channel_map[i], rc);
- return ERR_PTR(rc);
- }
- }
- return iio_ch_ext;
- }
- #endif
|