xref: /openbmc/linux/include/sound/tlv320aic32x4.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
21d471cd1SJavier Martin /*
31d471cd1SJavier Martin  * tlv320aic32x4.h  --  TLV320AIC32X4 Soc Audio driver platform data
41d471cd1SJavier Martin  *
51d471cd1SJavier Martin  * Copyright 2011 Vista Silicon S.L.
61d471cd1SJavier Martin  *
71d471cd1SJavier Martin  * Author: Javier Martin <javier.martin@vista-silicon.com>
81d471cd1SJavier Martin  */
91d471cd1SJavier Martin 
101d471cd1SJavier Martin #ifndef _AIC32X4_PDATA_H
111d471cd1SJavier Martin #define _AIC32X4_PDATA_H
121d471cd1SJavier Martin 
131d471cd1SJavier Martin #define AIC32X4_PWR_MICBIAS_2075_LDOIN		0x00000001
141d471cd1SJavier Martin #define AIC32X4_PWR_AVDD_DVDD_WEAK_DISABLE	0x00000002
151d471cd1SJavier Martin #define AIC32X4_PWR_AIC32X4_LDO_ENABLE		0x00000004
161d471cd1SJavier Martin #define AIC32X4_PWR_CMMODE_LDOIN_RANGE_18_36	0x00000008
171d471cd1SJavier Martin #define AIC32X4_PWR_CMMODE_HP_LDOIN_POWERED	0x00000010
181d471cd1SJavier Martin 
191d471cd1SJavier Martin #define AIC32X4_MICPGA_ROUTE_LMIC_IN2R_10K	0x00000001
201d471cd1SJavier Martin #define AIC32X4_MICPGA_ROUTE_RMIC_IN1L_10K	0x00000002
211d471cd1SJavier Martin 
22b9045b9cSDan Murphy /* GPIO API */
23b9045b9cSDan Murphy #define AIC32X4_MFPX_DEFAULT_VALUE	0xff
24b9045b9cSDan Murphy 
25b9045b9cSDan Murphy #define AIC32X4_MFP1_DIN_DISABLED	0
26b9045b9cSDan Murphy #define AIC32X4_MFP1_DIN_ENABLED	0x2
27b9045b9cSDan Murphy #define AIC32X4_MFP1_GPIO_IN		0x4
28b9045b9cSDan Murphy 
29b9045b9cSDan Murphy #define AIC32X4_MFP2_GPIO_OUT_LOW	0x0
30b9045b9cSDan Murphy #define AIC32X4_MFP2_GPIO_OUT_HIGH	0x1
31b9045b9cSDan Murphy 
32b9045b9cSDan Murphy #define AIC32X4_MFP_GPIO_ENABLED	0x4
33b9045b9cSDan Murphy 
34b9045b9cSDan Murphy #define AIC32X4_MFP5_GPIO_DISABLED	0x0
35b9045b9cSDan Murphy #define AIC32X4_MFP5_GPIO_INPUT		0x8
36b9045b9cSDan Murphy #define AIC32X4_MFP5_GPIO_OUTPUT	0xc
37b9045b9cSDan Murphy #define AIC32X4_MFP5_GPIO_OUT_LOW	0x0
38b9045b9cSDan Murphy #define AIC32X4_MFP5_GPIO_OUT_HIGH	0x1
39b9045b9cSDan Murphy 
40b9045b9cSDan Murphy struct aic32x4_setup_data {
41b9045b9cSDan Murphy 	unsigned int gpio_func[5];
42b9045b9cSDan Murphy };
43b9045b9cSDan Murphy 
441d471cd1SJavier Martin struct aic32x4_pdata {
45b9045b9cSDan Murphy 	struct aic32x4_setup_data *setup;
461d471cd1SJavier Martin 	u32 power_cfg;
471d471cd1SJavier Martin 	u32 micpga_routing;
481d471cd1SJavier Martin 	bool swapdacs;
491858fe97SJavier Martin 	int rstn_gpio;
501d471cd1SJavier Martin };
511d471cd1SJavier Martin 
521d471cd1SJavier Martin #endif
53