brintos

brintos / linux-shallow public Read only

0
0
Text · 2.9 KiB · 86e83d6 Raw
97 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * rt1318-sdw.h -- RT1318 SDCA ALSA SoC audio driver header4 *5 * Copyright(c) 2022 Realtek Semiconductor Corp.6 */7 8#ifndef __RT1318_SDW_H__9#define __RT1318_SDW_H__10 11#include <linux/regmap.h>12#include <linux/soundwire/sdw.h>13#include <linux/soundwire/sdw_type.h>14#include <linux/soundwire/sdw_registers.h>15#include <sound/soc.h>16 17/* imp-defined registers */18#define RT1318_SAPU_SM 0x320319 20#define R1318_TCON	0xc20321#define R1318_TCON_RELATED_1	0xc20622 23#define R1318_SPK_TEMPERATRUE_PROTECTION_0	0xdb0024#define R1318_SPK_TEMPERATRUE_PROTECTION_L_4	0xdb0825#define R1318_SPK_TEMPERATRUE_PROTECTION_R_4	0xdd0826 27#define R1318_SPK_TEMPERATRUE_PROTECTION_L_6	0xdb1228#define R1318_SPK_TEMPERATRUE_PROTECTION_R_6	0xdd1229 30#define RT1318_INIT_RECIPROCAL_REG_L_24		0xdbb531#define RT1318_INIT_RECIPROCAL_REG_L_23_16	0xdbb632#define RT1318_INIT_RECIPROCAL_REG_L_15_8	0xdbb733#define RT1318_INIT_RECIPROCAL_REG_L_7_0	0xdbb834#define RT1318_INIT_RECIPROCAL_REG_R_24		0xddb535#define RT1318_INIT_RECIPROCAL_REG_R_23_16	0xddb636#define RT1318_INIT_RECIPROCAL_REG_R_15_8	0xddb737#define RT1318_INIT_RECIPROCAL_REG_R_7_0	0xddb838 39#define RT1318_INIT_R0_RECIPROCAL_SYN_L_24 0xdbc540#define RT1318_INIT_R0_RECIPROCAL_SYN_L_23_16 0xdbc641#define RT1318_INIT_R0_RECIPROCAL_SYN_L_15_8 0xdbc742#define RT1318_INIT_R0_RECIPROCAL_SYN_L_7_0 0xdbc843#define RT1318_INIT_R0_RECIPROCAL_SYN_R_24 0xddc544#define RT1318_INIT_R0_RECIPROCAL_SYN_R_23_16 0xddc645#define RT1318_INIT_R0_RECIPROCAL_SYN_R_15_8 0xddc746#define RT1318_INIT_R0_RECIPROCAL_SYN_R_7_0 0xddc847 48#define RT1318_R0_COMPARE_FLAG_L	0xdb3549#define RT1318_R0_COMPARE_FLAG_R	0xdd3550 51#define RT1318_STP_INITIAL_RS_TEMP_H 0xdd9352#define RT1318_STP_INITIAL_RS_TEMP_L 0xdd9453 54/* RT1318 SDCA Control - function number */55#define FUNC_NUM_SMART_AMP 0x0456 57/* RT1318 SDCA entity */58#define RT1318_SDCA_ENT_PDE23 0x3159#define RT1318_SDCA_ENT_XU24 0x2460#define RT1318_SDCA_ENT_FU21 0x0361#define RT1318_SDCA_ENT_UDMPU21 0x0262#define RT1318_SDCA_ENT_CS21 0x2163#define RT1318_SDCA_ENT_SAPU 0x2964 65/* RT1318 SDCA control */66#define RT1318_SDCA_CTL_SAMPLE_FREQ_INDEX 0x1067#define RT1318_SDCA_CTL_REQ_POWER_STATE 0x0168#define RT1318_SDCA_CTL_FU_MUTE 0x0169#define RT1318_SDCA_CTL_FU_VOLUME 0x0270#define RT1318_SDCA_CTL_UDMPU_CLUSTER 0x1071#define RT1318_SDCA_CTL_SAPU_PROTECTION_MODE 0x1072#define RT1318_SDCA_CTL_SAPU_PROTECTION_STATUS 0x1173 74/* RT1318 SDCA channel */75#define CH_L 0x0176#define CH_R 0x0277 78/* sample frequency index */79#define RT1318_SDCA_RATE_16000HZ		0x0480#define RT1318_SDCA_RATE_32000HZ		0x0781#define RT1318_SDCA_RATE_44100HZ		0x0882#define RT1318_SDCA_RATE_48000HZ		0x0983#define RT1318_SDCA_RATE_96000HZ		0x0b84#define RT1318_SDCA_RATE_192000HZ		0x0d85 86 87struct rt1318_sdw_priv {88	struct snd_soc_component *component;89	struct regmap *regmap;90	struct sdw_slave *sdw_slave;91	struct sdw_bus_params params;92	bool hw_init;93	bool first_hw_init;94};95 96#endif /* __RT1318_SDW_H__ */97