/* SPDX-License-Identifier: GPL-2.0-only */ /* * Register definitions for Cirrus Logic CS48L32 * * Copyright (C) 2017-2018, 2020, 2022, 2025 Cirrus Logic, Inc. and * Cirrus Logic International Semiconductor Ltd. */ #ifndef CS48L32_H #define CS48L32_H /* pll_id for snd_soc_component_set_pll() */ #define CS48L32_FLL1_REFCLK 1 /* source for snd_soc_component_set_pll() */ #define CS48L32_FLL_SRC_NONE -1 #define CS48L32_FLL_SRC_MCLK1 0 #define CS48L32_FLL_SRC_PDMCLK 5 #define CS48L32_FLL_SRC_ASP1_BCLK 8 #define CS48L32_FLL_SRC_ASP2_BCLK 9 #define CS48L32_FLL_SRC_ASP1_FSYNC 12 #define CS48L32_FLL_SRC_ASP2_FSYNC 13 /* clk_id for snd_soc_component_set_sysclk() and snd_soc_dai_set_sysclk() */ #define CS48L32_CLK_SYSCLK_1 1 #define CS48L32_CLK_SYSCLK_2 2 #define CS48L32_CLK_SYSCLK_3 3 #define CS48L32_CLK_SYSCLK_4 4 #define CS48L32_CLK_DSPCLK 7 #define CS48L32_CLK_PDM_FLLCLK 13 /* source for snd_soc_component_set_sysclk() */ #define CS48L32_CLK_SRC_MCLK1 0x0 #define CS48L32_CLK_SRC_FLL1 0x4 #define CS48L32_CLK_SRC_ASP1_BCLK 0x8 #define CS48L32_CLK_SRC_ASP2_BCLK 0x9 struct cs48l32 { struct regmap *regmap; struct device *dev; struct gpio_desc *reset_gpio; struct clk *mclk1; struct regulator_bulk_data core_supplies[2]; struct regulator *vdd_d; int irq; }; #endif