Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * rt1308-sdw.h -- RT1308 ALSA SoC audio driver header
0004  *
0005  * Copyright(c) 2019 Realtek Semiconductor Corp.
0006  */
0007 
0008 #ifndef __RT1308_SDW_H__
0009 #define __RT1308_SDW_H__
0010 
0011 static const struct reg_default rt1308_reg_defaults[] = {
0012     { 0x0000, 0x00 },
0013     { 0x0001, 0x00 },
0014     { 0x0002, 0x00 },
0015     { 0x0003, 0x00 },
0016     { 0x0004, 0x00 },
0017     { 0x0005, 0x01 },
0018     { 0x0020, 0x00 },
0019     { 0x0022, 0x00 },
0020     { 0x0023, 0x00 },
0021     { 0x0024, 0x00 },
0022     { 0x0025, 0x00 },
0023     { 0x0026, 0x00 },
0024     { 0x0030, 0x00 },
0025     { 0x0032, 0x00 },
0026     { 0x0033, 0x00 },
0027     { 0x0034, 0x00 },
0028     { 0x0035, 0x00 },
0029     { 0x0036, 0x00 },
0030     { 0x0040, 0x00 },
0031     { 0x0041, 0x00 },
0032     { 0x0042, 0x00 },
0033     { 0x0043, 0x00 },
0034     { 0x0044, 0x20 },
0035     { 0x0045, 0x01 },
0036     { 0x0046, 0x01 },
0037     { 0x0048, 0x00 },
0038     { 0x0049, 0x00 },
0039     { 0x0050, 0x20 },
0040     { 0x0051, 0x02 },
0041     { 0x0052, 0x5D },
0042     { 0x0053, 0x13 },
0043     { 0x0054, 0x08 },
0044     { 0x0055, 0x00 },
0045     { 0x0060, 0x00 },
0046     { 0x0070, 0x00 },
0047     { 0x00E0, 0x00 },
0048     { 0x00F0, 0x00 },
0049     { 0x0100, 0x00 },
0050     { 0x0101, 0x00 },
0051     { 0x0102, 0x20 },
0052     { 0x0103, 0x00 },
0053     { 0x0104, 0x00 },
0054     { 0x0105, 0x03 },
0055     { 0x0120, 0x00 },
0056     { 0x0122, 0x00 },
0057     { 0x0123, 0x00 },
0058     { 0x0124, 0x00 },
0059     { 0x0125, 0x00 },
0060     { 0x0126, 0x00 },
0061     { 0x0127, 0x00 },
0062     { 0x0130, 0x00 },
0063     { 0x0132, 0x00 },
0064     { 0x0133, 0x00 },
0065     { 0x0134, 0x00 },
0066     { 0x0135, 0x00 },
0067     { 0x0136, 0x00 },
0068     { 0x0137, 0x00 },
0069     { 0x0200, 0x00 },
0070     { 0x0201, 0x00 },
0071     { 0x0202, 0x00 },
0072     { 0x0203, 0x00 },
0073     { 0x0204, 0x00 },
0074     { 0x0205, 0x03 },
0075     { 0x0220, 0x00 },
0076     { 0x0222, 0x00 },
0077     { 0x0223, 0x00 },
0078     { 0x0224, 0x00 },
0079     { 0x0225, 0x00 },
0080     { 0x0226, 0x00 },
0081     { 0x0227, 0x00 },
0082     { 0x0230, 0x00 },
0083     { 0x0232, 0x00 },
0084     { 0x0233, 0x00 },
0085     { 0x0234, 0x00 },
0086     { 0x0235, 0x00 },
0087     { 0x0236, 0x00 },
0088     { 0x0237, 0x00 },
0089     { 0x0400, 0x00 },
0090     { 0x0401, 0x00 },
0091     { 0x0402, 0x00 },
0092     { 0x0403, 0x00 },
0093     { 0x0404, 0x00 },
0094     { 0x0405, 0x03 },
0095     { 0x0420, 0x00 },
0096     { 0x0422, 0x00 },
0097     { 0x0423, 0x00 },
0098     { 0x0424, 0x00 },
0099     { 0x0425, 0x00 },
0100     { 0x0426, 0x00 },
0101     { 0x0427, 0x00 },
0102     { 0x0430, 0x00 },
0103     { 0x0432, 0x00 },
0104     { 0x0433, 0x00 },
0105     { 0x0434, 0x00 },
0106     { 0x0435, 0x00 },
0107     { 0x0436, 0x00 },
0108     { 0x0437, 0x00 },
0109     { 0x0f00, 0x00 },
0110     { 0x0f01, 0x00 },
0111     { 0x0f02, 0x00 },
0112     { 0x0f03, 0x00 },
0113     { 0x0f04, 0x00 },
0114     { 0x0f05, 0x00 },
0115     { 0x0f20, 0x00 },
0116     { 0x0f22, 0x00 },
0117     { 0x0f23, 0x00 },
0118     { 0x0f24, 0x00 },
0119     { 0x0f25, 0x00 },
0120     { 0x0f26, 0x00 },
0121     { 0x0f27, 0x00 },
0122     { 0x0f30, 0x00 },
0123     { 0x0f32, 0x00 },
0124     { 0x0f33, 0x00 },
0125     { 0x0f34, 0x00 },
0126     { 0x0f35, 0x00 },
0127     { 0x0f36, 0x00 },
0128     { 0x0f37, 0x00 },
0129     { 0x2f01, 0x01 },
0130     { 0x2f02, 0x09 },
0131     { 0x2f03, 0x00 },
0132     { 0x2f04, 0x0f },
0133     { 0x2f05, 0x0b },
0134     { 0x2f06, 0x01 },
0135     { 0x2f07, 0x8e },
0136     { 0x3000, 0x00 },
0137     { 0x3001, 0x00 },
0138     { 0x3004, 0x01 },
0139     { 0x3005, 0x23 },
0140     { 0x3008, 0x02 },
0141     { 0x300a, 0x00 },
0142     { 0xc003 | (RT1308_DAC_SET << 4), 0x00 },
0143     { 0xc000 | (RT1308_POWER << 4), 0x00 },
0144     { 0xc001 | (RT1308_POWER << 4), 0x00 },
0145     { 0xc002 | (RT1308_POWER << 4), 0x00 },
0146 };
0147 
0148 #define RT1308_SDW_OFFSET 0xc000
0149 #define RT1308_SDW_OFFSET_BYTE0 0xc000
0150 #define RT1308_SDW_OFFSET_BYTE1 0xc001
0151 #define RT1308_SDW_OFFSET_BYTE2 0xc002
0152 #define RT1308_SDW_OFFSET_BYTE3 0xc003
0153 
0154 #define RT1308_SDW_RESET (RT1308_SDW_OFFSET | (RT1308_RESET << 4))
0155 
0156 struct rt1308_sdw_priv {
0157     struct snd_soc_component *component;
0158     struct regmap *regmap;
0159     struct sdw_slave *sdw_slave;
0160     enum sdw_slave_status status;
0161     struct sdw_bus_params params;
0162     bool hw_init;
0163     bool first_hw_init;
0164     int rx_mask;
0165     int slots;
0166 };
0167 
0168 struct sdw_stream_data {
0169     struct sdw_stream_runtime *sdw_stream;
0170 };
0171 
0172 #endif /* __RT1308_SDW_H__ */