diff options
| author | Charles Keepax <ckeepax@opensource.cirrus.com> | 2025-02-05 11:38:00 +0000 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2025-02-07 17:34:08 +0000 |
| commit | e80b8e5c53c30df1cba45258d10b04872b7eea67 (patch) | |
| tree | fc46cce697f67288bd5206b951b2138063a92617 /include | |
| parent | 5c93b20f6de4478e1fbcfb38eb46738bca74180e (diff) | |
ASoC: SDCA: Add support for clock Entity properties
Add support for parsing the Clock Source Entity properties from
DisCo/ACPI.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-10-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/sound/sdca_function.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/sound/sdca_function.h b/include/sound/sdca_function.h index 6cb5ab79ee54..13edc976679a 100644 --- a/include/sound/sdca_function.h +++ b/include/sound/sdca_function.h @@ -785,6 +785,29 @@ struct sdca_entity_iot { }; /** + * enum sdca_clock_type - SDCA Clock Types + * + * Indicate the synchronicity of an Clock Entity, see section 6.4.1.3 + * of the SDCA v1.0 specification. + */ +enum sdca_clock_type { + SDCA_CLOCK_TYPE_EXTERNAL = 0x00, + SDCA_CLOCK_TYPE_INTERNAL_ASYNC = 0x01, + SDCA_CLOCK_TYPE_INTERNAL_SYNC = 0x02, + SDCA_CLOCK_TYPE_INTERNAL_SOURCE_SYNC = 0x03, +}; + +/** + * struct sdca_entity_cs - information specific to Clock Source Entities + * @type: Synchronicity of the Clock Source. + * @max_delay: The maximum delay in microseconds before the clock is stable. + */ +struct sdca_entity_cs { + enum sdca_clock_type type; + unsigned int max_delay; +}; + +/** * enum sdca_entity_type - SDCA Entity Type codes * @SDCA_ENTITY_TYPE_ENTITY_0: Entity 0, not actually from the * specification but useful internally as an Entity structure @@ -846,6 +869,7 @@ enum sdca_entity_type { * @num_sources: Number of sources for the Entity. * @num_controls: Number of Controls for the Entity. * @iot: Input/Output Terminal specific Entity properties. + * @cs: Clock Source specific Entity properties. */ struct sdca_entity { const char *label; @@ -858,6 +882,7 @@ struct sdca_entity { int num_controls; union { struct sdca_entity_iot iot; + struct sdca_entity_cs cs; }; }; |
