mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

The concept of an SDCA default value differs slightly from the regmap usage of the term. An SDCA default is a value that is parsed from DisCo and then written out to the hardware if no user value has superceded it. Add a helper function that will iterate through all the SDCA Controls and write out any default values. After these have been written out once they will exist in the cache and that will take care of any user values superceeding them. The code here also writes out any Controls with a fixed value as there is only one available value for these Controls there is no point in allowing the user to select them, simply treat them similarly to a default. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev> Link: https://patch.msgid.link/20250217140159.2288784-5-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
31 lines
1.2 KiB
C
31 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* The MIPI SDCA specification is available for public downloads at
|
|
* https://www.mipi.org/mipi-sdca-v1-0-download
|
|
*
|
|
* Copyright (C) 2025 Cirrus Logic, Inc. and
|
|
* Cirrus Logic International Semiconductor Ltd.
|
|
*/
|
|
|
|
#ifndef __SDCA_REGMAP_H__
|
|
#define __SDCA_REGMAP_H__
|
|
|
|
struct device;
|
|
struct sdca_function_data;
|
|
struct regmap;
|
|
struct reg_default;
|
|
|
|
bool sdca_regmap_readable(struct sdca_function_data *function, unsigned int reg);
|
|
bool sdca_regmap_writeable(struct sdca_function_data *function, unsigned int reg);
|
|
bool sdca_regmap_volatile(struct sdca_function_data *function, unsigned int reg);
|
|
bool sdca_regmap_deferrable(struct sdca_function_data *function, unsigned int reg);
|
|
int sdca_regmap_mbq_size(struct sdca_function_data *function, unsigned int reg);
|
|
|
|
int sdca_regmap_count_constants(struct device *dev, struct sdca_function_data *function);
|
|
int sdca_regmap_populate_constants(struct device *dev, struct sdca_function_data *function,
|
|
struct reg_default *consts);
|
|
|
|
int sdca_regmap_write_defaults(struct device *dev, struct regmap *regmap,
|
|
struct sdca_function_data *function);
|
|
|
|
#endif // __SDCA_REGMAP_H__
|