MAJOR=10
MINOR=237
DEVNAME=loop-control
     ˆÀ¿„  ?_†I|¥�+ÃÂ 2È    /* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Common definitions for Cirrus Logic CS35L56 smart amp
 *
 * Copyright (C) 2023 Cirrus Logic, Inc. and
 *                    Cirrus Logic International Semiconductor Ltd.
 */

#ifndef __CS35L56_H
#define __CS35L56_H

#include <linux/firmware/cirrus/cs_dsp.h>
#include <linux/regulator/consumer.h>
#include <linux/regmap.h>
#include <linux/spi/spi.h>
#include <sound/cs-amp-lib.h>

#define CS35L56_DEVID					0x0000000
#define CS35L56_REVID					0x0000004
#define CS35L56_RELID					0x000000C
#define CS35L56_OTPID					0x0000010
#define CS35L56_SFT_RESET				0x0000020
#define CS35L56_GLOBAL_ENABLES				0x0002014
#define CS35L56_BLOCK_ENABLES				0x0002018
#define CS35L56_BLOCK_ENABLES2				0x000201C
#define CS35L56_REFCLK_INPUT				0x0002C04
#define CS35L56_GLOBAL_SAMPLE_RATE			0x0002C0C
#define CS35L56_OTP_MEM_53				0x00300D4
#define CS35L56_OTP_MEM_54				0x00300D8
#define CS35L56_OTP_MEM_55				0x00300DC
#define CS35L56_ASP1_ENABLES1				0x0004800
#define CS35L56_ASP1_CONTROL1				0x0004804
#define CS35L56_ASP1_CONTROL2				0x0004808
#define CS35L56_ASP1_CONTROL3				0x000480C
#define CS35L56_ASP1_FRAME_CONTROL1			0x0004810
#define CS35L56_ASP1_FRAME_CONTROL5			0x0004820
#define CS35L56_ASP1_DATA_CONTROL1			0x0004830
#define CS35L56_ASP1_DATA_CONTROL5			0x0004840
#define CS35L56_DACPCM1_INPUT				0x0004C00
#define CS35L56_DACPCM2_INPUT				0x0004C08
#define CS35L56_ASP1TX1_INPUT				0x0004C20
#define CS35L56_ASP1TX2_INPUT				0x0004C24
#define CS35L56_ASP1TX3_INPUT				0x0004C28
#define CS35L56_ASP1TX4_INPUT				0x0004C2C
#define CS35L56_DSP1RX1_INPUT				0x0004C40
#define CS35L56_DSP1RX2_INPUT				0x0004C44
#define CS35L56_SWIRE_DP3_CH1_INPUT			0x0004C70
#define CS35L56_SWIRE_DP3_CH2_INPUT			0x0004C74
#define CS35L56_SWIRE_DP3_CH3_INPUT			0x0004C78
#define CS35L56_SWIRE_DP3_CH4_INPUT			0x0004C7C
#define CS35L56_IRQ1_CFG				0x000E000
#define CS35L56_IRQ1_STATUS				0x000E004
#define CS35L56_IRQ1_EINT_1				0x000E010
#define CS35L56_IRQ1_EINT_2				0x000E014
#define CS35L56_IRQ1_EINT_4				0x000E01C
#define CS35L56_IRQ1_EINT_8				0x000E02C
#define CS35L56_IRQ1_EINT_18				0x000E054
#define CS35L56_IRQ1_EINT_20				0x000E05C
#define CS35L56_IRQ1_MASK_1				0x000E090
#define CS35L56_IRQ1_MASK_2				0x000E094
#define CS35L56_IRQ1_MASK_4				0x000E09C
#define CS35L56_IRQ1_MASK_8				0x000E0AC
#define CS35L56_IRQ1_MASK_18				0x000E0D4
#define CS35L56_IRQ1_MASK_20				0x000E0DC
#define CS35L56_DSP_MBOX_1_RAW				0x0011000
#define CS35L56_DSP_VIRTUAL1_MBOX_1			0x0011020
#define CS35L56_DSP_VIRTUAL1_MBOX_2			0x0011024
#define CS35L56_DSP_VIRTUAL1_MBOX_3			0x0011028
#define CS35L56_DSP_VIRTUAL1_MBOX_4			0x001102C
#define CS35L56_DSP_VIRTUAL1_MBOX_5			0x0011030
#define CS35L56_DSP_VIRTUAL1_MBOX_6			0x0011034
#define CS35L56_DSP_VIRTUAL1_MBOX_7			0x0011038
#define CS35L56_DSP_VIRTUAL1_MBOX_8			0x001103C
#define CS35L56_DIE_STS1				0x0017040
#define CS35L56_DIE_STS2				0x0017044
#define CS35L56_DSP_RESTRICT_STS1			0x00190F0
#define CS35L56_DSP1_XMEM_PACKED_0			0x2000000
#define CS35L56_DSP1_XMEM_PACKED_6143			0x2005FFC
#define CS35L56_DSP1_XMEM_UNPACKED32_0			0x2400000
#define CS35L56_DSP1_XMEM_UNPACKED32_4095		0x2403FFC
#define CS35L56_DSP1_SYS_INFO_ID			0x25E0000
#define CS35L56_DSP1_SYS_INFO_END			0x25E004C
#define CS35L56_DSP1_AHBM_WINDOW_DEBUG_0		0x25E2040
#define CS35L56_DSP1_AHBM_WINDOW_DEBUG_1		0x25E2044
#define CS35L56_DSP1_XMEM_UNPACKED24_0			0x2800000
#define CS35L56_DSP1_FW_VER				0x2800010
#define CS35L56_DSP1_HALO_STATE				0x28021E0
#define CS35L56_DSP1_PM_CUR_STATE			0x2804308
#define CS35L56_DSP1_XMEM_UNPACKED24_8191		0x2807FFC
#define CS35L56_DSP1_CORE_BASE				0x2B80000
#define CS35L56_DSP1_SCRATCH1				0x2B805C0
#define CS35L56_DSP1_SCRATCH2				0x2B805C8
#define CS35L56_DSP1_SCRATCH3				0x2B805D0
#define CS35L56_DSP1_SCRATCH4				0x2B805D8
#define CS35L56_DSP1_YMEM_PACKED_0			0x2C00000
#define CS35L56_DSP1_YMEM_PACKED_4604			0x2C047F0
#define CS35L56_DSP1_YMEM_UNPACKED32_0			0x3000000
#define CS35L56_DSP1_YMEM_UNPACKED32_3070		0x3