ASoC: dt-bindings: cs35l45: Adds LDPM settings

Introduce devicetree properties for configuring level
dependent power management (LDPM) functionality.

Signed-off-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
Link: https://patch.msgid.link/20261001-cs35l45-ldpm-v1-1-545787a5afe5@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Ricardo Rivera-Matos 2026-10-01 10:14:27 -05:00 committed by Mark Brown
parent 923ff8155e
commit cd4c07a11e
2 changed files with 113 additions and 0 deletions

View File

@ -71,6 +71,58 @@ properties:
maximum: 7
default: 0
cirrus,ldpm-group1-boost-select:
type: boolean
description:
When in a valid group 1 level dependent power management (LDPM) state
the integrated boost converter will enter the configured low power mode.
cirrus,boost-low-power-mode:
description:
Configures the integrated boost converter reaction to a low power mode
request.
0 = No reaction
1 = Force boost DCM low power mode
2 = Force boost static bypass
$ref: /schemas/types.yaml#/definitions/uint32
default: 2
enum:
- 0
- 1
- 2
cirrus,ldpm-group1-amp-select:
type: boolean
description:
When in a valid group 1 level dependent power management (LDPM) state
the amplifier will enter the configured low power mode.
cirrus,amplifier-low-power-mode:
description:
Configures the amplifier output stage reaction to a low power mode
request.
0 = Stop output switching (noise gate mode)
1 = Noise floor reduction mode
$ref: /schemas/types.yaml#/definitions/uint32
default: 1
enum:
- 0
- 1
cirrus,ldpm-group2-vmon-select:
type: boolean
description:
When in a valid group 2 level dependent power management (LDPM) state
the voltage monitor (VMON) circuit is put into a low power operational
state.
cirrus,ldpm-group2-imon-select:
type: boolean
description:
When in a valid group 2 level dependent power management (LDPM) state
the current monitor (IMON) circuit is put into a low power operational
state.
patternProperties:
"^cirrus,gpio-ctrl[1-3]$":
description:
@ -139,6 +191,30 @@ patternProperties:
minimum: 0
maximum: 7
default: 0
"^cirrus,ldpm-group[1-2]-pcm-threshold-db$":
description:
Amplifier level dependent power management (LDPM) threshold. Input
referred threshold of the PCM audio signal in which the level is low
enough for the LDPM group to engage after entry delay. A value of dB
-2147483648 is assumed to mean true zero data with an LSB dither.
$ref: /schemas/types.yaml#/definitions/int32-array
minItems: 1
maxItems: 1
items:
enum: [-2147483648, -102, -96, -90, -84, -78, -72, -66]
"^cirrus,ldpm-group[1-2]-delay-ms$":
description:
Amplifier level dependent power management (LDPM) state entry delay.
Time that the incoming audio signal must be below the PCM threshold
before the LDPM group engages.
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 1
maxItems: 1
items:
enum: [5, 10, 25, 50, 100, 250, 500, 1000]
required:
- compatible
- reg
@ -165,6 +241,16 @@ examples:
CS35L45_ASP_TX_HIZ_DISABLED)>;
cirrus,sync-lsw-txid = <0x1>;
cirrus,sync-sw-txid = <0x1>;
cirrus,ldpm-group1-pcm-threshold-db = <(-66)>;
cirrus,ldpm-group1-delay-ms = <500>;
cirrus,ldpm-group1-boost-select;
cirrus,boost-low-power-mode = <CS35L45_BST_LPMODE_DCM_MODE>;
cirrus,ldpm-group1-amp-select;
cirrus,amplifier-low-power-mode = <CS35L45_AMP_LPMODE_NFR_MODE>;
cirrus,ldpm-group2-pcm-threshold-db = <(-102)>;
cirrus,ldpm-group2-delay-ms = <1000>;
cirrus,ldpm-group2-vmon-select;
cirrus,ldpm-group2-imon-select;
cirrus,gpio-ctrl1 {
gpio-ctrl = <0x2>;
};

View File

@ -17,6 +17,33 @@
#define CS35L45_ASP_TX_HIZ_UNUSED 0x1
#define CS35L45_ASP_TX_HIZ_DISABLED 0x2
/*
* cirrus,boost-low-power-mode
*
* BST_LPMODE_NO_REACTION: No reaction
* BST_LPMODE_DCM_MODE: Force boost DCM low power mode
* BST_LPMODE_STATIC_BYPASS: Force boost static bypass
*/
#define CS35L45_BST_LPMODE_NO_REACTION 0x0
#define CS35L45_BST_LPMODE_DCM_MODE 0x1
#define CS35L45_BST_LPMODE_STATIC_BYPASS 0x2
/*
* cirrus,amplifier-low-power-mode
*
* AMP_LPMODE_NG_MODE: Noise gate mode
* AMP_LPMODE_NFR_MODE: Noise floor reduction mode
*/
#define CS35L45_AMP_LPMODE_NG_MODE 0x0
#define CS35L45_AMP_LPMODE_NFR_MODE 0x1
/*
* cirrus,ldpm-groupX-pcm-threshold-db
*
* LDPM_PCM_THLD_TRUE_ZERO:
*/
#define CS35L45_LDPM_PCM_THLD_TRUE_ZERO -2147483648
/*
* Optional GPIOX Sub-nodes:
* The cs35l45 node can have up to three "cirrus,gpio-ctrlX" ('X' = [1,2,3])