linux/include/linux/mfd/madera/pdata.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Platform data for Cirrus Logic Madera codecs
   4 *
   5 * Copyright (C) 2015-2018 Cirrus Logic
   6 */
   7
   8#ifndef MADERA_PDATA_H
   9#define MADERA_PDATA_H
  10
  11#include <linux/kernel.h>
  12#include <linux/regulator/arizona-ldo1.h>
  13#include <linux/regulator/arizona-micsupp.h>
  14#include <linux/regulator/machine.h>
  15#include <sound/madera-pdata.h>
  16
  17#define MADERA_MAX_MICBIAS              4
  18#define MADERA_MAX_CHILD_MICBIAS        4
  19
  20#define MADERA_MAX_GPSW                 2
  21
  22struct gpio_desc;
  23struct pinctrl_map;
  24
  25/**
  26 * struct madera_pdata - Configuration data for Madera devices
  27 *
  28 * @reset:          GPIO controlling /RESET (NULL = none)
  29 * @ldo1:           Substruct of pdata for the LDO1 regulator
  30 * @micvdd:         Substruct of pdata for the MICVDD regulator
  31 * @irq_flags:      Mode for primary IRQ (defaults to active low)
  32 * @gpio_base:      Base GPIO number
  33 * @gpio_configs:   Array of GPIO configurations (See
  34 *                  Documentation/driver-api/pin-control.rst)
  35 * @n_gpio_configs: Number of entries in gpio_configs
  36 * @gpsw:           General purpose switch mode setting. Depends on the external
  37 *                  hardware connected to the switch. (See the SW1_MODE field
  38 *                  in the datasheet for the available values for your codec)
  39 * @codec:          Substruct of pdata for the ASoC codec driver
  40 */
  41struct madera_pdata {
  42        struct gpio_desc *reset;
  43
  44        struct arizona_ldo1_pdata ldo1;
  45        struct arizona_micsupp_pdata micvdd;
  46
  47        unsigned int irq_flags;
  48        int gpio_base;
  49
  50        const struct pinctrl_map *gpio_configs;
  51        int n_gpio_configs;
  52
  53        u32 gpsw[MADERA_MAX_GPSW];
  54
  55        struct madera_codec_pdata codec;
  56};
  57
  58#endif
  59