1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Some small helpers for older Cirrus Logic parts.
4 *
5 * Copyright (C) 2021 Cirrus Logic, Inc. and
6 * Cirrus Logic International Semiconductor Ltd.
7 */
8
9static inline int cirrus_read_device_id(struct regmap *regmap, unsigned int reg)
10{
11 u8 devid[3];
12 int ret;
13
14 ret = regmap_bulk_read(map: regmap, reg, val: devid, ARRAY_SIZE(devid));
15 if (ret < 0)
16 return ret;
17
18 return ((devid[0] & 0xFF) << 12) |
19 ((devid[1] & 0xFF) << 4) |
20 ((devid[2] & 0xF0) >> 4);
21}
22

source code of linux/sound/soc/codecs/cirrus_legacy.h