summaryrefslogtreecommitdiff
path: root/snd-alpx/alpx_variants_mc.h
diff options
context:
space:
mode:
authorChristian Pointner <equinox@helsinki.at>2024-05-10 18:52:23 (GMT)
committerChristian Pointner <equinox@helsinki.at>2024-05-10 18:52:23 (GMT)
commita641800acf13b5fb1463d4280c3ee7fc267143fb (patch)
tree248b647a682f71d9eb90d14d24081368ea905a42 /snd-alpx/alpx_variants_mc.h
parentcc4badffe0e02d159c21eb90ea080a6a2f90cb4b (diff)
import whole driver package
Diffstat (limited to 'snd-alpx/alpx_variants_mc.h')
-rw-r--r--snd-alpx/alpx_variants_mc.h1475
1 files changed, 0 insertions, 1475 deletions
diff --git a/snd-alpx/alpx_variants_mc.h b/snd-alpx/alpx_variants_mc.h
deleted file mode 100644
index aa32035..0000000
--- a/snd-alpx/alpx_variants_mc.h
+++ /dev/null
@@ -1,1475 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
-* Support for Digigram AlpX PCI-e boards
-*
-* Copyright (c) 2024 Digigram Digital (info@digigram.com)
-*/
-
-#ifndef _ALPX_VARIANTS_MC_H_
-#define _ALPX_VARIANTS_MC_H_
-
-#include "alpx.h"
-#include "alpx_reg.h"
-
-#include <sound/tlv.h>
-#include "alpx_variants_common.h"
-
-
-/* 882 */
-/* Alp882 Commons */
-static const char *alp882_control_choice_clk_src_entries[ALP882_CLK_MANAGER_CONFIG_CLK_SRC_QTY] = {
- "Internal",
- "SIC",
- "Word Clk",
- "AES Syn",
- "AES Aud 1/2",
- "AES Aud 3/4",
- "AES Aud 5/6",
- "AES Aud 7/8",
-};
-
-/* Same order than the constants values */
-static u32 alp882_control_choice_clk_src_entries_values[ALP882_CLK_MANAGER_CONFIG_CLK_SRC_QTY] = {
- ALPMC_CLK_MANAGER_SOURCE_INTERNAL,
- ALPMC_CLK_MANAGER_SOURCE_SIC,
- ALPMC_CLK_MANAGER_SOURCE_WCLK_IN,
- ALPMC_CLK_MANAGER_SOURCE_AES_SYNC,
- ALPMC_CLK_MANAGER_SOURCE_AES_AUDIO_12,
- ALPMC_CLK_MANAGER_SOURCE_AES_AUDIO_34,
- ALPMC_CLK_MANAGER_SOURCE_AES_AUDIO_56,
- ALPMC_CLK_MANAGER_SOURCE_AES_AUDIO_78,
-};
-
-static struct snd_pcm_hardware alp882_hardware_specs = {
- .info = SNDRV_PCM_INFO_MMAP |
- SNDRV_PCM_INFO_MMAP_VALID |
- SNDRV_PCM_INFO_INTERLEAVED |
- SNDRV_PCM_INFO_BLOCK_TRANSFER |
- SNDRV_PCM_INFO_RESUME,
- .formats = SNDRV_PCM_FMTBIT_S32_LE,
- .rates = SNDRV_PCM_RATE_CONTINUOUS |
- SNDRV_PCM_RATE_8000_192000,
- .rate_min = 8000,
- .rate_max = 192000,
- .channels_min = 16,
- .channels_max = 16,
- .buffer_bytes_max = 256 * SZ_1K * 4, /* period_bytes_max * periods_max */
- .period_bytes_min = 48, /* min latency 1ms */
- .period_bytes_max = 256 * SZ_1K, /* 20ms at 192kHz * nchans * 4B, rounded at 2^n */
- .periods_min = 1,
- .periods_max = 4,
-};
-
-
-/* Alp 882 LINE Variant definition */
-
-static const DECLARE_TLV_DB_MINMAX_MUTE(alpmc_line_control_codec_gains_scale, ALPMC_LINE_ANALOG_GAIN_MIN_cdB, ALPMC_LINE_ANALOG_GAIN_MAX_cdB);
-
-static struct alpx_control_descriptor alp882_line_control_descriptors[] = {
- /* Gain */
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_IN_DAW_OFFSET),
- .prefix = "DAW Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_DAW_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_IN_ANALOG_OFFSET),
- .prefix = "Ana Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_ANALOG_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_IN_AES_OFFSET),
- .prefix = "AES Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_AES_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_OUT_ANALOG_OFFSET),
- .prefix = "Ana Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_ANALOG_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_OUT_AES_OFFSET),
- .prefix = "AES Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_AES_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_OUT_DAW_OFFSET),
- .prefix = "DAW Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_DAW_COUNT,
- },
- },
- /* Mixer */
- {
- .type = ALPX_CONTROL_TYPE_MIXER,
- .base = ALPMC_MIXER_BASE,
- .prefix = "Mxr",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.mixer = {
- .lines_count = ALP882_MIXER_SIZE,
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- },
- },
- /* Clock sources Read Only */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "Clk Eff Src",
- .access = SNDRV_CTL_ELEM_ACCESS_READ,
- .data.choice = {
- .offset = ALPMC_CLK_MANAGER_CONFIG_REG,
- .mask = ALPMC_CLK_MANAGER_CONFIG_CLK_SRC_MASK,
- .pos = ALPMC_CLK_MANAGER_CONFIG_CLK_SRC_POS,
- .entries = alp882_control_choice_clk_src_entries,
- .entries_values = alp882_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp882_control_choice_clk_src_entries),
- },
- },
- /* Current Clock BASE Value Read Only */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "Clk Eff",
- .access = SNDRV_CTL_ELEM_ACCESS_READ |
- SNDRV_CTL_ELEM_ACCESS_VOLATILE,
- .data.choice = {
- .offset = ALPMC_CLK_MANAGER_CONFIG_REG,
- .mask = ALPMC_CLK_MANAGER_CONFIG_CLK_CURRENT_VALUE_MASK,
- .pos = ALPMC_CLK_MANAGER_CONFIG_CLK_CURRENT_VALUE_POS,
- .entries = alpxxx_control_choice_current_clk_values_entries,
- .entries_values = alpxxx_control_choice_current_clk_values_entries_values,
- .entries_count = ARRAY_SIZE(alpxxx_control_choice_current_clk_values_entries),
- },
- },
-
- /* Current Clock factor values Read Only, RESERVED to keep Ids order */
- {
- .type = ALPX_CONTROL_RESERVED,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "RESERVED",
- .access = SNDRV_CTL_ELEM_ACCESS_READ,
- },
- /* Clock UP on fail over enabled flag */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALP_PROC_BASE,
- .prefix = "Clk Src Up",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALP_PROC_FWCONFIG_REG,
- .mask = ALP_PROC_FWCONFIG_CLKSRC_UP_MASK,
- .pos = ALP_PROC_FWCONFIG_CLKSRC_UP_POS,
- },
- },
- /* Clock DOWN on fail over enabled flag */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALP_PROC_BASE,
- .prefix = "Clk Src Down",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALP_PROC_FWCONFIG_REG,
- .mask = ALP_PROC_FWCONFIG_CLKSRC_DOWN_MASK,
- .pos = ALP_PROC_FWCONFIG_CLKSRC_DOWN_POS,
- },
- },
- /* Clock Failover priority 0 TOP*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P0",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO0_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO0_POS,
- .entries = alp882_control_choice_clk_src_entries,
- .entries_values = alp882_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp882_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 1 */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P1",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO1_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO1_POS,
- .entries = alp882_control_choice_clk_src_entries,
- .entries_values = alp882_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp882_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 2*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P2",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO2_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO2_POS,
- .entries = alp882_control_choice_clk_src_entries,
- .entries_values = alp882_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp882_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 3*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P3",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO3_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO3_POS,
- .entries = alp882_control_choice_clk_src_entries,
- .entries_values = alp882_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp882_control_choice_clk_src_entries),
- },
- },
- /* Auto AES SRC disable */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 1/2 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_1_2_MASK,
- .pos = ALPMC_CODEC_AES_SRC_1_2_POS,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 3/4 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_3_4_MASK,
- .pos = ALPMC_CODEC_AES_SRC_3_4_POS,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 5/6 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_5_6_MASK,
- .pos = ALPMC_CODEC_AES_SRC_5_6_POS,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 7/8 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_7_8_MASK,
- .pos = ALPMC_CODEC_AES_SRC_7_8_POS,
- },
- },
- /* Codec Input Gain for LINE Option*/
- {
- .type = ALPX_CONTROL_TYPE_ANALOG_EQ,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "Codec Analog Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.codec = {
- .offset = ALPMC_CODEC_PGA_REGS,
- .gains_scale = alpmc_line_control_codec_gains_scale,
- .reg_gain_min = ALPMC_LINE_ANALOG_GAIN_MIN_REG,
- .reg_gain_max = ALPMC_LINE_ANALOG_GAIN_MAX_REG,
- .lines_count = 8,
- },
- },
-};
-
-static struct alpx_variant alp882_line_variant __attribute__((unused)) = {
- .shortname = "Alp882e",
- .longname = "Alp 882e",
- .model = ALPX_VARIANT_MODEL_ALP882,
- .mixername = "Alp882e_Mix",
- .features = ALPX_VARIANT_FEATURE_GPIOS,
- .control_descriptors = alp882_line_control_descriptors,
- .control_descriptors_count = ARRAY_SIZE(alp882_line_control_descriptors),
-
- .capture_hw = &alp882_hardware_specs,
- .playback_hw = &alp882_hardware_specs,
-
- .flash_golden_production_base = ALPxxx_FLASH_GOLDEN_PRODUCTION_BASE,
-
- .gpios = {
- .base = ALPMC_GPIO_BASE,
- .inputs_reg_offset = ALPMC_GPIO_INPUT_REG,
- .inputs_qty = ALPMC_GPIO_INPUT_QTY,
- .outputs_reg_offset = ALPMC_GPIO_OUTPUT_REG,
- .outputs_qty = ALPMC_GPIO_OUTPUT_QTY,
- },
-
- .flash_partitions.partitions = alpx_mtd_partitions,
- .flash_partitions.qty = ARRAY_SIZE(alpx_mtd_partitions),
- .flash_partitions.qty_for_fw_update = 1,
-};
-
-
-/* Alp 882 - MIC Variant definition */
-
-static const DECLARE_TLV_DB_MINMAX_MUTE(alpmc_mic_control_codec_gains_scale, ALPMC_MIC_ANALOG_GAIN_MIN_cdB, ALPMC_MIC_ANALOG_GAIN_MAX_cdB);
-
-static struct alpx_control_descriptor alp882_mic_control_descriptors[] = {
- /* Gain */
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_IN_DAW_OFFSET),
- .prefix = "DAW Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_DAW_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_IN_ANALOG_OFFSET),
- .prefix = "Ana Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_ANALOG_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_IN_AES_OFFSET),
- .prefix = "AES Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_AES_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_OUT_ANALOG_OFFSET),
- .prefix = "Ana Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_ANALOG_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_OUT_AES_OFFSET),
- .prefix = "AES Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_AES_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP882_CHANNELS_OUT_DAW_OFFSET),
- .prefix = "DAW Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP882_CHANNELS_DAW_COUNT,
- },
- },
- /* Mixer */
- {
- .type = ALPX_CONTROL_TYPE_MIXER,
- .base = ALPMC_MIXER_BASE,
- .prefix = "Mxr",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.mixer = {
- .lines_count = ALP882_MIXER_SIZE,
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- },
- },
- /* Clock sources Read Only */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "Clk Eff Src",
- .access = SNDRV_CTL_ELEM_ACCESS_READ,
- .data.choice = {
- .offset = ALPMC_CLK_MANAGER_CONFIG_REG,
- .mask = ALPMC_CLK_MANAGER_CONFIG_CLK_SRC_MASK,
- .pos = ALPMC_CLK_MANAGER_CONFIG_CLK_SRC_POS,
- .entries = alp882_control_choice_clk_src_entries,
- .entries_values = alp882_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp882_control_choice_clk_src_entries),
- },
- },
- /* Current Clock BASE Value Read Only */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "Clk Eff",
- .access = SNDRV_CTL_ELEM_ACCESS_READ |
- SNDRV_CTL_ELEM_ACCESS_VOLATILE,
- .data.choice = {
- .offset = ALPMC_CLK_MANAGER_CONFIG_REG,
- .mask = ALPMC_CLK_MANAGER_CONFIG_CLK_CURRENT_VALUE_MASK,
- .pos = ALPMC_CLK_MANAGER_CONFIG_CLK_CURRENT_VALUE_POS,
- .entries = alpxxx_control_choice_current_clk_values_entries,
- .entries_values = alpxxx_control_choice_current_clk_values_entries_values,
- .entries_count = ARRAY_SIZE(alpxxx_control_choice_current_clk_values_entries),
- },
- },
-
- /* Current Clock factor values Read Only, RESERVED now to keep ids order */
- {
- .type = ALPX_CONTROL_RESERVED,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "RESERVED",
- .access = SNDRV_CTL_ELEM_ACCESS_READ,
- },
- /* Clock UP on fail over enabled flag */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALP_PROC_BASE,
- .prefix = "Clk Src Up",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALP_PROC_FWCONFIG_REG,
- .mask = ALP_PROC_FWCONFIG_CLKSRC_UP_MASK,
- .pos = ALP_PROC_FWCONFIG_CLKSRC_UP_POS,
- },
- },
- /* Clock DOWN on fail over enabled flag */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALP_PROC_BASE,
- .prefix = "Clk Src Down",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALP_PROC_FWCONFIG_REG,
- .mask = ALP_PROC_FWCONFIG_CLKSRC_DOWN_MASK,
- .pos = ALP_PROC_FWCONFIG_CLKSRC_DOWN_POS,
- },
- },
- /* Clock Failover priority 0 TOP*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P0",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO0_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO0_POS,
- .entries = alp882_control_choice_clk_src_entries,
- .entries_values = alp882_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp882_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 1 */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P1",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO1_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO1_POS,
- .entries = alp882_control_choice_clk_src_entries,
- .entries_values = alp882_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp882_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 2*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P2",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO2_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO2_POS,
- .entries = alp882_control_choice_clk_src_entries,
- .entries_values = alp882_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp882_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 3*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P3",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO3_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO3_POS,
- .entries = alp882_control_choice_clk_src_entries,
- .entries_values = alp882_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp882_control_choice_clk_src_entries),
- },
- },
- /* Auto AES SRC disable */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 1/2 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_1_2_MASK,
- .pos = ALPMC_CODEC_AES_SRC_1_2_POS,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 3/4 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_3_4_MASK,
- .pos = ALPMC_CODEC_AES_SRC_3_4_POS,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 5/6 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_5_6_MASK,
- .pos = ALPMC_CODEC_AES_SRC_5_6_POS,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 7/8 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_7_8_MASK,
- .pos = ALPMC_CODEC_AES_SRC_7_8_POS,
- },
- },
- /* Codec Input Gain for MIC Option*/
- {
- .type = ALPX_CONTROL_TYPE_ANALOG_EQ,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "Codec MIC Analog Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.codec = {
- .offset = ALPMC_CODEC_PGA_REGS,
- .gains_scale = alpmc_mic_control_codec_gains_scale,
- .reg_gain_min = ALPMC_MIC_ANALOG_GAIN_MIN_REG,
- .reg_gain_max = ALPMC_MIC_ANALOG_GAIN_MAX_REG,
- .lines_count = 8,
- },
- },
- /** MIC Phantoms **/
- /* MIC Phantom 1 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh1",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_1_MASK,
- .pos = ALPMC_MIC_INPUT_PH_1_POS,
- },
- },
- /* MIC Phantom 2 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh2",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_2_MASK,
- .pos = ALPMC_MIC_INPUT_PH_2_POS,
- },
- },
- /* MIC Phantom 3 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh3",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_3_MASK,
- .pos = ALPMC_MIC_INPUT_PH_3_POS,
- },
- },
- /* MIC Phantom 4 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh4",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_4_MASK,
- .pos = ALPMC_MIC_INPUT_PH_4_POS,
- },
- },
- /* MIC Phantom 5 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh5",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_5_MASK,
- .pos = ALPMC_MIC_INPUT_PH_5_POS,
- },
- },
- /* MIC Phantom 6 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh6",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_6_MASK,
- .pos = ALPMC_MIC_INPUT_PH_6_POS,
- },
- },
- /* MIC Phantom 7 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh7",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_7_MASK,
- .pos = ALPMC_MIC_INPUT_PH_7_POS,
- },
- },
- /* MIC Phantom 8 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh8",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_8_MASK,
- .pos = ALPMC_MIC_INPUT_PH_8_POS,
- },
- },
-};
-
-
-static struct alpx_variant alp882_mic_variant __attribute__((unused)) = {
- .shortname = "Alp882e-MIC",
- .longname = "Alp 882e MIC",
- .model = ALPX_VARIANT_MODEL_ALP882_MIC,
- .mixername = "Alp882e_MIC_Mix",
- .features = ALPX_VARIANT_FEATURE_GPIOS,
- .control_descriptors = alp882_mic_control_descriptors,
- .control_descriptors_count = ARRAY_SIZE(alp882_mic_control_descriptors),
-
- .capture_hw = &alp882_hardware_specs,
- .playback_hw = &alp882_hardware_specs,
-
- .flash_golden_production_base = ALPxxx_FLASH_GOLDEN_PRODUCTION_BASE,
-
- .gpios = {
- .base = ALPMC_GPIO_BASE,
- .inputs_reg_offset = ALPMC_GPIO_INPUT_REG,
- .inputs_qty = ALPMC_GPIO_INPUT_QTY,
- .outputs_reg_offset = ALPMC_GPIO_OUTPUT_REG,
- .outputs_qty = ALPMC_GPIO_OUTPUT_QTY,
- },
-
- .flash_partitions.partitions = alpx_mtd_partitions,
- .flash_partitions.qty = ARRAY_SIZE(alpx_mtd_partitions),
- .flash_partitions.qty_for_fw_update = 1,
-};
-
-/* 442 */
-/* Commons clock sources : WARNING : Sme as 882 for the moment */
-static const char *alp442_control_choice_clk_src_entries[ALP442_CLK_MANAGER_CONFIG_CLK_SRC_QTY] = {
- "Internal",
- "SIC",
- "Word Clk",
- "AES Syn",
- "AES Aud 1/2",
- "AES Aud 3/4",
-};
-
-/* Same order than the constants values */
-static u32 alp442_control_choice_clk_src_entries_values[ALP442_CLK_MANAGER_CONFIG_CLK_SRC_QTY] = {
- ALPMC_CLK_MANAGER_SOURCE_INTERNAL,
- ALPMC_CLK_MANAGER_SOURCE_SIC,
- ALPMC_CLK_MANAGER_SOURCE_WCLK_IN,
- ALPMC_CLK_MANAGER_SOURCE_AES_SYNC,
- ALPMC_CLK_MANAGER_SOURCE_AES_AUDIO_12,
- ALPMC_CLK_MANAGER_SOURCE_AES_AUDIO_34
-};
-
-static struct snd_pcm_hardware alp442_hardware_specs = {
- .info = SNDRV_PCM_INFO_MMAP |
- SNDRV_PCM_INFO_MMAP_VALID |
- SNDRV_PCM_INFO_INTERLEAVED |
- SNDRV_PCM_INFO_BLOCK_TRANSFER |
- SNDRV_PCM_INFO_RESUME,
- .formats = SNDRV_PCM_FMTBIT_S32_LE,
- .rates = SNDRV_PCM_RATE_CONTINUOUS |
- SNDRV_PCM_RATE_8000_192000,
- .rate_min = 8000,
- .rate_max = 192000,
- .channels_min = ALP442_CHANNELS_DAW_COUNT,
- .channels_max = ALP442_CHANNELS_DAW_COUNT,
- .buffer_bytes_max = 128 * SZ_1K * 4, /* period_bytes_max * periods_max */
- .period_bytes_min = 48, /* min latency 1ms */
- .period_bytes_max = 128 * SZ_1K, /* 20ms at 192kHz * nchans * 4B, rounded at 2^n */
- .periods_min = 1,
- .periods_max = 4,
-};
-
-
-/* Alp 442 LINE Variant definition */
-
-
-static struct alpx_control_descriptor alp442_line_control_descriptors[] = {
- /* Gain */
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_IN_DAW_OFFSET),
- .prefix = "DAW Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_DAW_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_IN_ANALOG_OFFSET),
- .prefix = "Ana Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_ANALOG_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_IN_AES_OFFSET),
- .prefix = "AES Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_AES_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_OUT_ANALOG_OFFSET),
- .prefix = "Ana Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_ANALOG_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_OUT_AES_OFFSET),
- .prefix = "AES Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_AES_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_OUT_DAW_OFFSET),
- .prefix = "DAW Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_DAW_COUNT,
- },
- },
- /* Mixer */
- {
- .type = ALPX_CONTROL_TYPE_MIXER,
- .base = ALPMC_MIXER_BASE,
- .prefix = "Mxr",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.mixer = {
- .lines_count = ALP442_MIXER_SIZE,
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- },
- },
- /* Clock sources Read Only */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "Clk Eff Src",
- .access = SNDRV_CTL_ELEM_ACCESS_READ,
- .data.choice = {
- .offset = ALPMC_CLK_MANAGER_CONFIG_REG,
- .mask = ALPMC_CLK_MANAGER_CONFIG_CLK_SRC_MASK,
- .pos = ALPMC_CLK_MANAGER_CONFIG_CLK_SRC_POS,
- .entries = alp442_control_choice_clk_src_entries,
- .entries_values = alp442_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp442_control_choice_clk_src_entries),
- },
- },
-
- /* Current Clock BASE Value Read Only */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "Clk Eff",
- .access = SNDRV_CTL_ELEM_ACCESS_READ |
- SNDRV_CTL_ELEM_ACCESS_VOLATILE,
- .data.choice = {
- .offset = ALPMC_CLK_MANAGER_CONFIG_REG,
- .mask = ALPMC_CLK_MANAGER_CONFIG_CLK_CURRENT_VALUE_MASK,
- .pos = ALPMC_CLK_MANAGER_CONFIG_CLK_CURRENT_VALUE_POS,
- .entries = alpxxx_control_choice_current_clk_values_entries,
- .entries_values = alpxxx_control_choice_current_clk_values_entries_values,
- .entries_count = ARRAY_SIZE(alpxxx_control_choice_current_clk_values_entries),
- },
- },
-
- /* Current Clock factor values Read Only, RESERVED to keep Ids order */
- {
- .type = ALPX_CONTROL_RESERVED,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "RESERVED",
- .access = SNDRV_CTL_ELEM_ACCESS_READ,
- },
- /* Clock UP on fail over enabled flag */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALP_PROC_BASE,
- .prefix = "Clk Src Up",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALP_PROC_FWCONFIG_REG,
- .mask = ALP_PROC_FWCONFIG_CLKSRC_UP_MASK,
- .pos = ALP_PROC_FWCONFIG_CLKSRC_UP_POS,
- },
- },
- /* Clock DOWN on fail over enabled flag */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALP_PROC_BASE,
- .prefix = "Clk Src Down",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALP_PROC_FWCONFIG_REG,
- .mask = ALP_PROC_FWCONFIG_CLKSRC_DOWN_MASK,
- .pos = ALP_PROC_FWCONFIG_CLKSRC_DOWN_POS,
- },
- },
- /* Clock Failover priority 0 TOP*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P0",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO0_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO0_POS,
- .entries = alp442_control_choice_clk_src_entries,
- .entries_values = alp442_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp442_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 1 */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P1",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO1_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO1_POS,
- .entries = alp442_control_choice_clk_src_entries,
- .entries_values = alp442_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp442_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 2*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P2",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO2_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO2_POS,
- .entries = alp442_control_choice_clk_src_entries,
- .entries_values = alp442_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp442_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 3*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P3",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO3_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO3_POS,
- .entries = alp442_control_choice_clk_src_entries,
- .entries_values = alp442_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp442_control_choice_clk_src_entries),
- },
- },
- /* Auto AES SRC disable */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 1/2 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_1_2_MASK,
- .pos = ALPMC_CODEC_AES_SRC_1_2_POS,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 3/4 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_3_4_MASK,
- .pos = ALPMC_CODEC_AES_SRC_3_4_POS,
- },
- },
- /* Codec Input Gain for LINE Option*/
- {
- .type = ALPX_CONTROL_TYPE_ANALOG_EQ,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "Codec Analog Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.codec = {
- .offset = ALPMC_CODEC_PGA_REGS,
- .gains_scale = alpmc_line_control_codec_gains_scale,
- .reg_gain_min = ALPMC_LINE_ANALOG_GAIN_MIN_REG,
- .reg_gain_max = ALPMC_LINE_ANALOG_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_ANALOG_COUNT,
- },
- },
-};
-
-static struct alpx_variant alp442_line_variant __attribute__((unused)) = {
- .shortname = "Alp442e",
- .longname = "Alp 442e",
- .model = ALPX_VARIANT_MODEL_ALP442,
- .mixername = "Alp442e_Mix",
- .features = ALPX_VARIANT_FEATURE_GPIOS,
- .control_descriptors = alp442_line_control_descriptors,
- .control_descriptors_count = ARRAY_SIZE(alp442_line_control_descriptors),
-
- .capture_hw = &alp442_hardware_specs,
- .playback_hw = &alp442_hardware_specs,
-
- .flash_golden_production_base = ALPxxx_FLASH_GOLDEN_PRODUCTION_BASE,
-
- .gpios = {/*Same as Alp882*/
- .base = ALPMC_GPIO_BASE,
- .inputs_reg_offset = ALPMC_GPIO_INPUT_REG,
- .inputs_qty = ALPMC_GPIO_INPUT_QTY,
- .outputs_reg_offset = ALPMC_GPIO_OUTPUT_REG,
- .outputs_qty = ALPMC_GPIO_OUTPUT_QTY,
- },
-
- .flash_partitions.partitions = alpx_mtd_partitions,
- .flash_partitions.qty = ARRAY_SIZE(alpx_mtd_partitions),
- .flash_partitions.qty_for_fw_update = 1,
-};
-
-
-/* Alp 442 - MIC Variant definition */
-
-static struct alpx_control_descriptor alp442_mic_control_descriptors[] = {
- /* Gain */
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_IN_DAW_OFFSET),
- .prefix = "DAW Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_DAW_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_IN_ANALOG_OFFSET),
- .prefix = "Ana Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_ANALOG_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_IN_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_IN_AES_OFFSET),
- .prefix = "AES Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_AES_COUNT,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_OUT_ANALOG_OFFSET),
- .prefix = "Ana Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_ANALOG_COUNT,
- },
- },
- {/*a 882 with halved QTY*/
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_OUT_AES_OFFSET),
- .prefix = "AES Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_AES_COUNT,
- },
- },
- {/*a 882 with halved QTY*/
- .type = ALPX_CONTROL_TYPE_AMPLIFIER,
- .base = ALPMC_AMPLI_OUT_BASE +
- ALPMC_GAIN_TABLE_BASE(ALP442_CHANNELS_OUT_DAW_OFFSET),
- .prefix = "DAW Playback",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.ampli = {
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_DAW_COUNT,
- },
- },
- /* Mixer a 882 with halved QTY Mixer : square*/
- {
- .type = ALPX_CONTROL_TYPE_MIXER,
- .base = ALPMC_MIXER_BASE,
- .prefix = "Mxr",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.mixer = {
- .lines_count = ALP442_MIXER_SIZE,
- .gains_scale = alpxxx_line_digital_gains_scale,
- .reg_gain_min = ALP_AMPLIFIER_GAIN_MIN_REG,
- .reg_gain_max = ALP_AMPLIFIER_GAIN_MAX_REG,
- },
- },
- /* Clock sources Read Only As 882 except for AES due to 4 entries only */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "Clk Eff Src",
- .access = SNDRV_CTL_ELEM_ACCESS_READ,
- .data.choice = {
- .offset = ALPMC_CLK_MANAGER_CONFIG_REG,
- .mask = ALPMC_CLK_MANAGER_CONFIG_CLK_SRC_MASK,
- .pos = ALPMC_CLK_MANAGER_CONFIG_CLK_SRC_POS,
- .entries = alp442_control_choice_clk_src_entries,
- .entries_values = alp442_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp442_control_choice_clk_src_entries),
- },
- },
- /* Current Clock Value Read Only */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "Clk Eff",
- .access = SNDRV_CTL_ELEM_ACCESS_READ |
- SNDRV_CTL_ELEM_ACCESS_VOLATILE,
- .data.choice = {
- .offset = ALPMC_CLK_MANAGER_CONFIG_REG,
- .mask = ALPMC_CLK_MANAGER_CONFIG_CLK_CURRENT_VALUE_MASK,
- .pos = ALPMC_CLK_MANAGER_CONFIG_CLK_CURRENT_VALUE_POS,
- .entries = alpxxx_control_choice_current_clk_values_entries,
- .entries_values = alpxxx_control_choice_current_clk_values_entries_values,
- .entries_count = ARRAY_SIZE(alpxxx_control_choice_current_clk_values_entries),
- },
- },
-
- /* Current Clock factor values Read Only, RESERVED now to keep ids order */
- {
- .type = ALPX_CONTROL_RESERVED,
- .base = ALPMC_CLK_MANAGER_BASE,
- .prefix = "RESERVED",
- .access = SNDRV_CTL_ELEM_ACCESS_READ,
- },
- /* Clock UP on fail over enabled flag */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALP_PROC_BASE,
- .prefix = "Clk Src Up",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALP_PROC_FWCONFIG_REG,
- .mask = ALP_PROC_FWCONFIG_CLKSRC_UP_MASK,
- .pos = ALP_PROC_FWCONFIG_CLKSRC_UP_POS,
- },
- },
- /* Clock DOWN on fail over enabled flag */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALP_PROC_BASE,
- .prefix = "Clk Src Down",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALP_PROC_FWCONFIG_REG,
- .mask = ALP_PROC_FWCONFIG_CLKSRC_DOWN_MASK,
- .pos = ALP_PROC_FWCONFIG_CLKSRC_DOWN_POS,
- },
- },
- /* Clock Failover priority 0 TOP*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P0",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO0_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO0_POS,
- .entries = alp442_control_choice_clk_src_entries,
- .entries_values = alp442_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp442_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 1 */
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P1",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO1_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO1_POS,
- .entries = alp442_control_choice_clk_src_entries,
- .entries_values = alp442_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp442_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 2*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P2",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO2_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO2_POS,
- .entries = alp442_control_choice_clk_src_entries,
- .entries_values = alp442_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp442_control_choice_clk_src_entries),
- },
- },
- /* Clock Failover priority 3*/
- {
- .type = ALPX_CONTROL_TYPE_CHOICE,
- .base = ALP_PROC_BASE,
- .prefix = "Clk P3",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.choice = {
- .offset = ALP_PROC_CLK_SOURCE_PRIO_REG,
- .mask = ALP_PROC_CLK_SOURCE_PRIO3_MASK,
- .pos = ALP_PROC_CLK_SOURCE_PRIO3_POS,
- .entries = alp442_control_choice_clk_src_entries,
- .entries_values = alp442_control_choice_clk_src_entries_values,
- .entries_count = ARRAY_SIZE(alp442_control_choice_clk_src_entries),
- },
- },
- /* Auto AES SRC disable SAME as Alp882 except for qty*/
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 1/2 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_1_2_MASK,
- .pos = ALPMC_CODEC_AES_SRC_1_2_POS,
- },
- },
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "AES SRC 3/4 Disable",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.flag = {
- .offset = ALPMC_CODEC_AES_SRC_CONTROL_REG,
- .mask = ALPMC_CODEC_AES_SRC_3_4_MASK,
- .pos = ALPMC_CODEC_AES_SRC_3_4_POS,
- },
- },
- /* Codec Input Gain for MIC Option SAME as 882 execpt for qty*/
- {
- .type = ALPX_CONTROL_TYPE_ANALOG_EQ,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "Codec MIC Analog Capture",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
- SNDRV_CTL_ELEM_ACCESS_TLV_READ,
- .data.codec = {
- .offset = ALPMC_CODEC_PGA_REGS,
- .gains_scale = alpmc_mic_control_codec_gains_scale,
- .reg_gain_min = ALPMC_MIC_ANALOG_GAIN_MIN_REG,
- .reg_gain_max = ALPMC_MIC_ANALOG_GAIN_MAX_REG,
- .lines_count = ALP442_CHANNELS_ANALOG_COUNT,
- },
- },
- /** MIC Phantoms SAME as 882 except for qty **/
- /* MIC Phantom 1 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh1",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_1_MASK,
- .pos = ALPMC_MIC_INPUT_PH_1_POS,
- },
- },
- /* MIC Phantom 2 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh2",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_2_MASK,
- .pos = ALPMC_MIC_INPUT_PH_2_POS,
- },
- },
- /* MIC Phantom 3 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh3",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_3_MASK,
- .pos = ALPMC_MIC_INPUT_PH_3_POS,
- },
- },
- /* MIC Phantom 4 */
- {
- .type = ALPX_CONTROL_TYPE_FLAG,
- .base = ALPMC_CODEC_CTRL_BASE,
- .prefix = "McPh4",
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .data.mic_flags = {
- .offset = ALPMC_INPUT_PARAMS_REG,
- .mask = ALPMC_MIC_INPUT_PH_4_MASK,
- .pos = ALPMC_MIC_INPUT_PH_4_POS,
- },
- },
-};
-
-
-static struct alpx_variant alp442_mic_variant __attribute__((unused)) = {
- .shortname = "Alp442e-MIC",
- .longname = "Alp 442e MIC",
- .model = ALPX_VARIANT_MODEL_ALP442_MIC,
- .mixername = "Alp442e_MIC_Mix",
- .features = ALPX_VARIANT_FEATURE_GPIOS,
- .control_descriptors = alp442_mic_control_descriptors,
- .control_descriptors_count = ARRAY_SIZE(alp442_mic_control_descriptors),
-
- .capture_hw = &alp442_hardware_specs,
- .playback_hw = &alp442_hardware_specs,
-
- .flash_golden_production_base = ALPxxx_FLASH_GOLDEN_PRODUCTION_BASE,
-
- .gpios = {/* Same as 882 */
- .base = ALPMC_GPIO_BASE,
- .inputs_reg_offset = ALPMC_GPIO_INPUT_REG,
- .inputs_qty = ALPMC_GPIO_INPUT_QTY,
- .outputs_reg_offset = ALPMC_GPIO_OUTPUT_REG,
- .outputs_qty = ALPMC_GPIO_OUTPUT_QTY,
- },
-
- .flash_partitions.partitions = alpx_mtd_partitions,
- .flash_partitions.qty = ARRAY_SIZE(alpx_mtd_partitions),
- .flash_partitions.qty_for_fw_update = 1,
-};
-
-
-#endif /* _ALPX_VARIANTS_MC_H_ */