Linux Audio

Check our new training course

Loading...
v6.13.7
 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(regmap, reg, 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}
v6.8
 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(regmap, reg, 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}