Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Platform data for Cirrus Logic Madera codecs
0004  *
0005  * Copyright (C) 2015-2018 Cirrus Logic
0006  */
0007 
0008 #ifndef MADERA_PDATA_H
0009 #define MADERA_PDATA_H
0010 
0011 #include <linux/kernel.h>
0012 #include <linux/regulator/arizona-ldo1.h>
0013 #include <linux/regulator/arizona-micsupp.h>
0014 #include <linux/regulator/machine.h>
0015 #include <sound/madera-pdata.h>
0016 
0017 #define MADERA_MAX_MICBIAS      4
0018 #define MADERA_MAX_CHILD_MICBIAS    4
0019 
0020 #define MADERA_MAX_GPSW         2
0021 
0022 struct gpio_desc;
0023 struct pinctrl_map;
0024 
0025 /**
0026  * struct madera_pdata - Configuration data for Madera devices
0027  *
0028  * @reset:      GPIO controlling /RESET (NULL = none)
0029  * @ldo1:       Substruct of pdata for the LDO1 regulator
0030  * @micvdd:     Substruct of pdata for the MICVDD regulator
0031  * @irq_flags:      Mode for primary IRQ (defaults to active low)
0032  * @gpio_base:      Base GPIO number
0033  * @gpio_configs:   Array of GPIO configurations (See
0034  *          Documentation/driver-api/pin-control.rst)
0035  * @n_gpio_configs: Number of entries in gpio_configs
0036  * @gpsw:       General purpose switch mode setting. Depends on the external
0037  *          hardware connected to the switch. (See the SW1_MODE field
0038  *          in the datasheet for the available values for your codec)
0039  * @codec:      Substruct of pdata for the ASoC codec driver
0040  */
0041 struct madera_pdata {
0042     struct gpio_desc *reset;
0043 
0044     struct arizona_ldo1_pdata ldo1;
0045     struct arizona_micsupp_pdata micvdd;
0046 
0047     unsigned int irq_flags;
0048     int gpio_base;
0049 
0050     const struct pinctrl_map *gpio_configs;
0051     int n_gpio_configs;
0052 
0053     u32 gpsw[MADERA_MAX_GPSW];
0054 
0055     struct madera_codec_pdata codec;
0056 };
0057 
0058 #endif