Files
android_kernel_xiaomi_sm8450/include/linux/mfd/madera/pdata.h
Richard Fitzgerald 16b27467f4 mfd: madera: Add common support for Cirrus Logic Madera codecs
This adds the generic core support for Cirrus Logic "Madera" class codecs.
These are complex audio codec SoCs with a variety of digital and analogue
I/O, onboard audio processing and DSPs, and other features.

These codecs are all based off a common set of hardware IP so can be
supported by a core of common code (with a few minor device-to-device
variations).

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Nikesh Oswal <Nikesh.Oswal@cirrus.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2018-06-05 11:14:56 +01:00

60 lines
1.6 KiB
C

// SPDX-License-Identifier: GPL-2.0
/*
* Platform data for Cirrus Logic Madera codecs
*
* Copyright (C) 2015-2018 Cirrus Logic
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by the
* Free Software Foundation; version 2.
*/
#ifndef MADERA_PDATA_H
#define MADERA_PDATA_H
#include <linux/kernel.h>
#include <linux/regulator/arizona-ldo1.h>
#include <linux/regulator/arizona-micsupp.h>
#include <linux/regulator/machine.h>
#define MADERA_MAX_MICBIAS 4
#define MADERA_MAX_CHILD_MICBIAS 4
#define MADERA_MAX_GPSW 2
struct gpio_desc;
struct pinctrl_map;
struct madera_irqchip_pdata;
struct madera_codec_pdata;
/**
* struct madera_pdata - Configuration data for Madera devices
*
* @reset: GPIO controlling /RESET (NULL = none)
* @ldo1: Substruct of pdata for the LDO1 regulator
* @micvdd: Substruct of pdata for the MICVDD regulator
* @irq_flags: Mode for primary IRQ (defaults to active low)
* @gpio_base: Base GPIO number
* @gpio_configs: Array of GPIO configurations (See Documentation/pinctrl.txt)
* @n_gpio_configs: Number of entries in gpio_configs
* @gpsw: General purpose switch mode setting. Depends on the external
* hardware connected to the switch. (See the SW1_MODE field
* in the datasheet for the available values for your codec)
*/
struct madera_pdata {
struct gpio_desc *reset;
struct arizona_ldo1_pdata ldo1;
struct arizona_micsupp_pdata micvdd;
unsigned int irq_flags;
int gpio_base;
const struct pinctrl_map *gpio_configs;
int n_gpio_configs;
u32 gpsw[MADERA_MAX_GPSW];
};
#endif