[alsa-devel] [PATCH 00/16] Add support for Cirrus Logic CS47L35/L85/L90/L91 codecs
The Cirrus Logic CS47L35, CS47L85, CS47L90/91 codecs are complex audio SoC devices. In addition to the core audio capability they have onboard GPIO, regulators, DSPs and interrupt controller and a large register map space accessed over SPI or I2C. This family of codecs is based around common IP blocks and they are managed by a set of common drivers referred to as "Madera".
Mayuresh Kulkarni (1): ASoC: wm_adsp: add support for DSP region lock
Richard Fitzgerald (15): mfd: madera: Add register definitions for Cirrus Logic Madera codecs mfd: madera: Add common support for Cirrus Logic Madera codecs mfd: madera: Register map tables for Cirrus Logic CS47L35 mfd: madera: Register map tables for Cirrus Logic CS47L85 mfd: madera: Register map tables for Cirrus Logic CS47L90/91 regulator: madera-ldo1: LDO1 driver for Cirrus Logic Madera codecs regulator: madera-micsupp: Mic supply for Cirrus Logic Madera codecs irqchip: Add driver for Cirrus Logic Madera codecs pinctrl: madera: Add driver for Cirrus Logic Madera codecs gpio: madera: Support Cirrus Logic Madera class codecs ASoC: wm_adsp: Add support for ADSP2V2 ASoC: madera: Add common support for Cirrus Logic Madera codecs ASoC: cs47l35: Add codec driver for Cirrus Logic CS47L35 ASoC: cs47l85: Add codec driver for Cirrus Logic CS47L85 ASoC: cs47l90: Add codec driver for Cirrus Logic CS47L90
.../devicetree/bindings/gpio/gpio-madera.txt | 24 + .../interrupt-controller/cirrus,madera.txt | 31 + Documentation/devicetree/bindings/mfd/madera.txt | 79 + .../bindings/pinctrl/cirrus,madera-pinctrl.txt | 103 + .../devicetree/bindings/regulator/madera-ldo1.txt | 29 + .../bindings/regulator/madera-micsupp.txt | 27 + Documentation/devicetree/bindings/sound/madera.txt | 63 + MAINTAINERS | 28 + drivers/gpio/Kconfig | 6 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-madera.c | 173 + drivers/irqchip/Kconfig | 5 + drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-madera.c | 349 + drivers/mfd/Kconfig | 41 + drivers/mfd/Makefile | 13 + drivers/mfd/cs47l35-tables.c | 1688 ++++ drivers/mfd/cs47l85-tables.c | 3169 +++++++ drivers/mfd/cs47l90-tables.c | 2830 +++++++ drivers/mfd/madera-core.c | 689 ++ drivers/mfd/madera-i2c.c | 130 + drivers/mfd/madera-spi.c | 131 + drivers/mfd/madera.h | 52 + drivers/pinctrl/Kconfig | 22 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-madera.c | 1092 +++ drivers/regulator/Kconfig | 16 + drivers/regulator/Makefile | 2 + drivers/regulator/madera-ldo1.c | 198 + drivers/regulator/madera-micsupp.c | 260 + include/dt-bindings/sound/madera.h | 18 + include/linux/irqchip/irq-madera-pdata.h | 19 + include/linux/irqchip/irq-madera.h | 96 + include/linux/mfd/madera/core.h | 175 + include/linux/mfd/madera/pdata.h | 88 + include/linux/mfd/madera/registers.h | 8832 ++++++++++++++++++++ include/linux/regulator/madera-ldo1.h | 24 + include/linux/regulator/madera-micsupp.h | 21 + include/sound/madera-pdata.h | 70 + sound/soc/codecs/Kconfig | 23 + sound/soc/codecs/Makefile | 8 + sound/soc/codecs/cs47l35.c | 1747 ++++ sound/soc/codecs/cs47l85.c | 2706 ++++++ sound/soc/codecs/cs47l90.c | 2645 ++++++ sound/soc/codecs/madera.c | 4430 ++++++++++ sound/soc/codecs/madera.h | 470 ++ sound/soc/codecs/wm_adsp.c | 324 +- sound/soc/codecs/wm_adsp.h | 24 + 48 files changed, 32930 insertions(+), 43 deletions(-) create mode 100644 Documentation/devicetree/bindings/gpio/gpio-madera.txt create mode 100644 Documentation/devicetree/bindings/interrupt-controller/cirrus,madera.txt create mode 100644 Documentation/devicetree/bindings/mfd/madera.txt create mode 100644 Documentation/devicetree/bindings/pinctrl/cirrus,madera-pinctrl.txt create mode 100644 Documentation/devicetree/bindings/regulator/madera-ldo1.txt create mode 100644 Documentation/devicetree/bindings/regulator/madera-micsupp.txt create mode 100644 Documentation/devicetree/bindings/sound/madera.txt create mode 100644 drivers/gpio/gpio-madera.c create mode 100644 drivers/irqchip/irq-madera.c create mode 100644 drivers/mfd/cs47l35-tables.c create mode 100644 drivers/mfd/cs47l85-tables.c create mode 100644 drivers/mfd/cs47l90-tables.c create mode 100644 drivers/mfd/madera-core.c create mode 100644 drivers/mfd/madera-i2c.c create mode 100644 drivers/mfd/madera-spi.c create mode 100644 drivers/mfd/madera.h create mode 100644 drivers/pinctrl/pinctrl-madera.c create mode 100644 drivers/regulator/madera-ldo1.c create mode 100644 drivers/regulator/madera-micsupp.c create mode 100644 include/dt-bindings/sound/madera.h create mode 100644 include/linux/irqchip/irq-madera-pdata.h create mode 100644 include/linux/irqchip/irq-madera.h create mode 100644 include/linux/mfd/madera/core.h create mode 100644 include/linux/mfd/madera/pdata.h create mode 100644 include/linux/mfd/madera/registers.h create mode 100644 include/linux/regulator/madera-ldo1.h create mode 100644 include/linux/regulator/madera-micsupp.h create mode 100644 include/sound/madera-pdata.h create mode 100644 sound/soc/codecs/cs47l35.c create mode 100644 sound/soc/codecs/cs47l85.c create mode 100644 sound/soc/codecs/cs47l90.c create mode 100644 sound/soc/codecs/madera.c create mode 100644 sound/soc/codecs/madera.h
This patch adds a header file of register definitions for Cirrus Logic "Madera" class codecs. These codecs are all based off a common set of hardware IP so have a common register map (with a few minor device-to-device variations). These are complex devices with a large number of features and so have a correspondingly large register set. The registers.h file has been auto-generated from the hardware register definitions, stripped down to only registers we need to access from the driver.
Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com --- MAINTAINERS | 10 + include/linux/mfd/madera/registers.h | 8832 ++++++++++++++++++++++++++++++++++ 2 files changed, 8842 insertions(+) create mode 100644 include/linux/mfd/madera/registers.h
diff --git a/MAINTAINERS b/MAINTAINERS index 788354d..02995c9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3258,6 +3258,16 @@ L: alsa-devel@alsa-project.org (moderated for non-subscribers) S: Maintained F: sound/soc/codecs/cs*
+CIRRUS LOGIC MADERA CODEC DRIVERS +M: Charles Keepax ckeepax@opensource.wolfsonmicro.com +M: Richard Fitzgerald rf@opensource.wolfsonmicro.com +L: alsa-devel@alsa-project.org (moderated for non-subscribers) +L: patches@opensource.wolfsonmicro.com +T: git https://github.com/CirrusLogic/linux-drivers.git +W: https://github.com/CirrusLogic/linux-drivers/wiki +S: Supported +F: include/linux/mfd/madera/* + CLEANCACHE API M: Konrad Rzeszutek Wilk konrad.wilk@oracle.com L: linux-kernel@vger.kernel.org diff --git a/include/linux/mfd/madera/registers.h b/include/linux/mfd/madera/registers.h new file mode 100644 index 0000000..9108c13 --- /dev/null +++ b/include/linux/mfd/madera/registers.h @@ -0,0 +1,8832 @@ +/* + * Madera register definitions + * + * Copyright 2015-2017 Cirrus Logic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef MADERA_REGISTERS_H +#define MADERA_REGISTERS_H + +/* + * Register Addresses. + */ +#define MADERA_SOFTWARE_RESET 0x00 +#define MADERA_HARDWARE_REVISION 0x01 +#define MADERA_CTRL_IF_CFG_1 0x08 +#define MADERA_CTRL_IF_CFG_2 0x09 +#define MADERA_CTRL_IF_CFG_3 0x0A +#define MADERA_WRITE_SEQUENCER_CTRL_0 0x16 +#define MADERA_WRITE_SEQUENCER_CTRL_1 0x17 +#define MADERA_WRITE_SEQUENCER_CTRL_2 0x18 +#define MADERA_TONE_GENERATOR_1 0x20 +#define MADERA_TONE_GENERATOR_2 0x21 +#define MADERA_TONE_GENERATOR_3 0x22 +#define MADERA_TONE_GENERATOR_4 0x23 +#define MADERA_TONE_GENERATOR_5 0x24 +#define MADERA_PWM_DRIVE_1 0x30 +#define MADERA_PWM_DRIVE_2 0x31 +#define MADERA_PWM_DRIVE_3 0x32 +#define MADERA_SEQUENCE_CONTROL 0x41 +#define MADERA_SAMPLE_RATE_SEQUENCE_SELECT_1 0x61 +#define MADERA_SAMPLE_RATE_SEQUENCE_SELECT_2 0x62 +#define MADERA_SAMPLE_RATE_SEQUENCE_SELECT_3 0x63 +#define MADERA_SAMPLE_RATE_SEQUENCE_SELECT_4 0x64 +#define MADERA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_1 0x66 +#define MADERA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_2 0x67 +#define MADERA_HAPTICS_CONTROL_1 0x90 +#define MADERA_HAPTICS_CONTROL_2 0x91 +#define MADERA_HAPTICS_PHASE_1_INTENSITY 0x92 +#define MADERA_HAPTICS_PHASE_1_DURATION 0x93 +#define MADERA_HAPTICS_PHASE_2_INTENSITY 0x94 +#define MADERA_HAPTICS_PHASE_2_DURATION 0x95 +#define MADERA_HAPTICS_PHASE_3_INTENSITY 0x96 +#define MADERA_HAPTICS_PHASE_3_DURATION 0x97 +#define MADERA_HAPTICS_STATUS 0x98 +#define MADERA_COMFORT_NOISE_GENERATOR 0xA0 +#define MADERA_CLOCK_32K_1 0x100 +#define MADERA_SYSTEM_CLOCK_1 0x101 +#define MADERA_SAMPLE_RATE_1 0x102 +#define MADERA_SAMPLE_RATE_2 0x103 +#define MADERA_SAMPLE_RATE_3 0x104 +#define MADERA_SAMPLE_RATE_1_STATUS 0x10A +#define MADERA_SAMPLE_RATE_2_STATUS 0x10B +#define MADERA_SAMPLE_RATE_3_STATUS 0x10C +#define MADERA_ASYNC_CLOCK_1 0x112 +#define MADERA_ASYNC_SAMPLE_RATE_1 0x113 +#define MADERA_ASYNC_SAMPLE_RATE_2 0x114 +#define MADERA_ASYNC_SAMPLE_RATE_1_STATUS 0x11B +#define MADERA_ASYNC_SAMPLE_RATE_2_STATUS 0x11C +#define MADERA_DSP_CLOCK_1 0x120 +#define MADERA_DSP_CLOCK_2 0x122 +#define MADERA_OUTPUT_SYSTEM_CLOCK 0x149 +#define MADERA_OUTPUT_ASYNC_CLOCK 0x14A +#define MADERA_RATE_ESTIMATOR_1 0x152 +#define MADERA_RATE_ESTIMATOR_2 0x153 +#define MADERA_RATE_ESTIMATOR_3 0x154 +#define MADERA_RATE_ESTIMATOR_4 0x155 +#define MADERA_RATE_ESTIMATOR_5 0x156 +#define MADERA_FLL1_CONTROL_1 0x171 +#define MADERA_FLL1_CONTROL_2 0x172 +#define MADERA_FLL1_CONTROL_3 0x173 +#define MADERA_FLL1_CONTROL_4 0x174 +#define MADERA_FLL1_CONTROL_5 0x175 +#define MADERA_FLL1_CONTROL_6 0x176 +#define MADERA_FLL1_LOOP_FILTER_TEST_1 0x177 +#define MADERA_FLL1_NCO_TEST_0 0x178 +#define MADERA_FLL1_CONTROL_7 0x179 +#define MADERA_FLL1_EFS_2 0x17A +#define CS47L35_FLL1_SYNCHRONISER_1 0x17F +#define CS47L35_FLL1_SYNCHRONISER_2 0x180 +#define CS47L35_FLL1_SYNCHRONISER_3 0x181 +#define CS47L35_FLL1_SYNCHRONISER_4 0x182 +#define CS47L35_FLL1_SYNCHRONISER_5 0x183 +#define CS47L35_FLL1_SYNCHRONISER_6 0x184 +#define CS47L35_FLL1_SYNCHRONISER_7 0x185 +#define CS47L35_FLL1_SPREAD_SPECTRUM 0x187 +#define CS47L35_FLL1_GPIO_CLOCK 0x188 +#define MADERA_FLL1_SYNCHRONISER_1 0x181 +#define MADERA_FLL1_SYNCHRONISER_2 0x182 +#define MADERA_FLL1_SYNCHRONISER_3 0x183 +#define MADERA_FLL1_SYNCHRONISER_4 0x184 +#define MADERA_FLL1_SYNCHRONISER_5 0x185 +#define MADERA_FLL1_SYNCHRONISER_6 0x186 +#define MADERA_FLL1_SYNCHRONISER_7 0x187 +#define MADERA_FLL1_SPREAD_SPECTRUM 0x189 +#define MADERA_FLL1_GPIO_CLOCK 0x18A +#define MADERA_FLL2_CONTROL_1 0x191 +#define MADERA_FLL2_CONTROL_2 0x192 +#define MADERA_FLL2_CONTROL_3 0x193 +#define MADERA_FLL2_CONTROL_4 0x194 +#define MADERA_FLL2_CONTROL_5 0x195 +#define MADERA_FLL2_CONTROL_6 0x196 +#define MADERA_FLL2_LOOP_FILTER_TEST_1 0x197 +#define MADERA_FLL2_NCO_TEST_0 0x198 +#define MADERA_FLL2_CONTROL_7 0x199 +#define MADERA_FLL2_EFS_2 0x19A +#define MADERA_FLL2_SYNCHRONISER_1 0x1A1 +#define MADERA_FLL2_SYNCHRONISER_2 0x1A2 +#define MADERA_FLL2_SYNCHRONISER_3 0x1A3 +#define MADERA_FLL2_SYNCHRONISER_4 0x1A4 +#define MADERA_FLL2_SYNCHRONISER_5 0x1A5 +#define MADERA_FLL2_SYNCHRONISER_6 0x1A6 +#define MADERA_FLL2_SYNCHRONISER_7 0x1A7 +#define MADERA_FLL2_SPREAD_SPECTRUM 0x1A9 +#define MADERA_FLL2_GPIO_CLOCK 0x1AA +#define MADERA_FLL3_CONTROL_1 0x1B1 +#define MADERA_FLL3_CONTROL_2 0x1B2 +#define MADERA_FLL3_CONTROL_3 0x1B3 +#define MADERA_FLL3_CONTROL_4 0x1B4 +#define MADERA_FLL3_CONTROL_5 0x1B5 +#define MADERA_FLL3_CONTROL_6 0x1B6 +#define MADERA_FLL3_LOOP_FILTER_TEST_1 0x1B7 +#define MADERA_FLL3_NCO_TEST_0 0x1B8 +#define MADERA_FLL3_CONTROL_7 0x1B9 +#define MADERA_FLL3_SYNCHRONISER_1 0x1C1 +#define MADERA_FLL3_SYNCHRONISER_2 0x1C2 +#define MADERA_FLL3_SYNCHRONISER_3 0x1C3 +#define MADERA_FLL3_SYNCHRONISER_4 0x1C4 +#define MADERA_FLL3_SYNCHRONISER_5 0x1C5 +#define MADERA_FLL3_SYNCHRONISER_6 0x1C6 +#define MADERA_FLL3_SYNCHRONISER_7 0x1C7 +#define MADERA_FLL3_SPREAD_SPECTRUM 0x1C9 +#define MADERA_FLL3_GPIO_CLOCK 0x1CA +#define MADERA_FLLAO_CONTROL_1 0x1D1 +#define MADERA_FLLAO_CONTROL_2 0x1D2 +#define MADERA_FLLAO_CONTROL_3 0x1D3 +#define MADERA_FLLAO_CONTROL_4 0x1D4 +#define MADERA_FLLAO_CONTROL_5 0x1D5 +#define MADERA_FLLAO_CONTROL_6 0x1D6 +#define MADERA_FLLAO_CONTROL_7 0x1D8 +#define MADERA_FLLAO_CONTROL_8 0x1DA +#define MADERA_FLLAO_CONTROL_9 0x1DB +#define MADERA_FLLAO_CONTROL_10 0x1DC +#define MADERA_FLLAO_CONTROL_11 0x1DD +#define MADERA_MIC_CHARGE_PUMP_1 0x200 +#define MADERA_HP_CHARGE_PUMP_8 0x20B +#define MADERA_LDO1_CONTROL_1 0x210 +#define MADERA_LDO2_CONTROL_1 0x213 +#define MADERA_MIC_BIAS_CTRL_1 0x218 +#define MADERA_MIC_BIAS_CTRL_2 0x219 +#define MADERA_MIC_BIAS_CTRL_3 0x21A +#define MADERA_MIC_BIAS_CTRL_4 0x21B +#define MADERA_MIC_BIAS_CTRL_5 0x21C +#define MADERA_MIC_BIAS_CTRL_6 0x21E +#define MADERA_HP_CTRL_1L 0x225 +#define MADERA_HP_CTRL_1R 0x226 +#define MADERA_HP_CTRL_2L 0x227 +#define MADERA_HP_CTRL_2R 0x228 +#define MADERA_HP_CTRL_3L 0x229 +#define MADERA_HP_CTRL_3R 0x22A +#define MADERA_DCS_HP1L_CONTROL 0x232 +#define MADERA_DCS_HP1R_CONTROL 0x238 +#define MADERA_EDRE_HP_STEREO_CONTROL 0x27E +#define MADERA_ACCESSORY_DETECT_MODE_1 0x293 +#define MADERA_HEADPHONE_DETECT_0 0x299 +#define MADERA_HEADPHONE_DETECT_1 0x29B +#define MADERA_HEADPHONE_DETECT_2 0x29C +#define MADERA_HEADPHONE_DETECT_3 0x29D +#define MADERA_HEADPHONE_DETECT_4 0x29E +#define MADERA_HEADPHONE_DETECT_5 0x29F +#define MADERA_MIC_DETECT_1_CONTROL_0 0x2A2 +#define MADERA_MIC_DETECT_1_CONTROL_1 0x2A3 +#define MADERA_MIC_DETECT_1_CONTROL_2 0x2A4 +#define MADERA_MIC_DETECT_1_CONTROL_3 0x2A5 +#define MADERA_MIC_DETECT_1_LEVEL_1 0x2A6 +#define MADERA_MIC_DETECT_1_LEVEL_2 0x2A7 +#define MADERA_MIC_DETECT_1_LEVEL_3 0x2A8 +#define MADERA_MIC_DETECT_1_LEVEL_4 0x2A9 +#define MADERA_MIC_DETECT_1_CONTROL_4 0x2AB +#define MADERA_MIC_DETECT_2_CONTROL_0 0x2B2 +#define MADERA_MIC_DETECT_2_CONTROL_1 0x2B3 +#define MADERA_MIC_DETECT_2_CONTROL_2 0x2B4 +#define MADERA_MIC_DETECT_2_CONTROL_3 0x2B5 +#define MADERA_MIC_DETECT_2_LEVEL_1 0x2B6 +#define MADERA_MIC_DETECT_2_LEVEL_2 0x2B7 +#define MADERA_MIC_DETECT_2_LEVEL_3 0x2B8 +#define MADERA_MIC_DETECT_2_LEVEL_4 0x2B9 +#define MADERA_MIC_DETECT_2_CONTROL_4 0x2BB +#define MADERA_MICD_CLAMP_CONTROL 0x2C6 +#define MADERA_GP_SWITCH_1 0x2C8 +#define MADERA_JACK_DETECT_ANALOGUE 0x2D3 +#define MADERA_INPUT_ENABLES 0x300 +#define MADERA_INPUT_ENABLES_STATUS 0x301 +#define MADERA_INPUT_RATE 0x308 +#define MADERA_INPUT_VOLUME_RAMP 0x309 +#define MADERA_HPF_CONTROL 0x30C +#define MADERA_IN1L_CONTROL 0x310 +#define MADERA_ADC_DIGITAL_VOLUME_1L 0x311 +#define MADERA_DMIC1L_CONTROL 0x312 +#define MADERA_IN1L_RATE_CONTROL 0x313 +#define MADERA_IN1R_CONTROL 0x314 +#define MADERA_ADC_DIGITAL_VOLUME_1R 0x315 +#define MADERA_DMIC1R_CONTROL 0x316 +#define MADERA_IN1R_RATE_CONTROL 0x317 +#define MADERA_IN2L_CONTROL 0x318 +#define MADERA_ADC_DIGITAL_VOLUME_2L 0x319 +#define MADERA_DMIC2L_CONTROL 0x31A +#define MADERA_IN2L_RATE_CONTROL 0x31B +#define MADERA_IN2R_CONTROL 0x31C +#define MADERA_ADC_DIGITAL_VOLUME_2R 0x31D +#define MADERA_DMIC2R_CONTROL 0x31E +#define MADERA_IN2R_RATE_CONTROL 0x31F +#define MADERA_IN3L_CONTROL 0x320 +#define MADERA_ADC_DIGITAL_VOLUME_3L 0x321 +#define MADERA_DMIC3L_CONTROL 0x322 +#define MADERA_IN3L_RATE_CONTROL 0x323 +#define MADERA_IN3R_CONTROL 0x324 +#define MADERA_ADC_DIGITAL_VOLUME_3R 0x325 +#define MADERA_DMIC3R_CONTROL 0x326 +#define MADERA_IN3R_RATE_CONTROL 0x327 +#define MADERA_IN4L_CONTROL 0x328 +#define MADERA_ADC_DIGITAL_VOLUME_4L 0x329 +#define MADERA_DMIC4L_CONTROL 0x32A +#define MADERA_IN4L_RATE_CONTROL 0x32B +#define MADERA_IN4R_CONTROL 0x32C +#define MADERA_ADC_DIGITAL_VOLUME_4R 0x32D +#define MADERA_DMIC4R_CONTROL 0x32E +#define MADERA_IN4R_RATE_CONTROL 0x32F +#define MADERA_IN5L_CONTROL 0x330 +#define MADERA_ADC_DIGITAL_VOLUME_5L 0x331 +#define MADERA_DMIC5L_CONTROL 0x332 +#define MADERA_IN5L_RATE_CONTROL 0x333 +#define MADERA_IN5R_CONTROL 0x334 +#define MADERA_ADC_DIGITAL_VOLUME_5R 0x335 +#define MADERA_DMIC5R_CONTROL 0x336 +#define MADERA_IN5R_RATE_CONTROL 0x337 +#define MADERA_IN6L_CONTROL 0x338 +#define MADERA_ADC_DIGITAL_VOLUME_6L 0x339 +#define MADERA_DMIC6L_CONTROL 0x33A +#define MADERA_IN6R_CONTROL 0x33C +#define MADERA_ADC_DIGITAL_VOLUME_6R 0x33D +#define MADERA_DMIC6R_CONTROL 0x33E +#define MADERA_OUTPUT_ENABLES_1 0x400 +#define MADERA_OUTPUT_STATUS_1 0x401 +#define MADERA_RAW_OUTPUT_STATUS_1 0x406 +#define MADERA_OUTPUT_RATE_1 0x408 +#define MADERA_OUTPUT_VOLUME_RAMP 0x409 +#define MADERA_OUTPUT_PATH_CONFIG_1L 0x410 +#define MADERA_DAC_DIGITAL_VOLUME_1L 0x411 +#define MADERA_OUTPUT_PATH_CONFIG_1 0x412 +#define MADERA_NOISE_GATE_SELECT_1L 0x413 +#define MADERA_OUTPUT_PATH_CONFIG_1R 0x414 +#define MADERA_DAC_DIGITAL_VOLUME_1R 0x415 +#define MADERA_NOISE_GATE_SELECT_1R 0x417 +#define MADERA_OUTPUT_PATH_CONFIG_2L 0x418 +#define MADERA_DAC_DIGITAL_VOLUME_2L 0x419 +#define MADERA_OUTPUT_PATH_CONFIG_2 0x41A +#define MADERA_NOISE_GATE_SELECT_2L 0x41B +#define MADERA_OUTPUT_PATH_CONFIG_2R 0x41C +#define MADERA_DAC_DIGITAL_VOLUME_2R 0x41D +#define MADERA_NOISE_GATE_SELECT_2R 0x41F +#define MADERA_OUTPUT_PATH_CONFIG_3L 0x420 +#define MADERA_DAC_DIGITAL_VOLUME_3L 0x421 +#define MADERA_NOISE_GATE_SELECT_3L 0x423 +#define MADERA_OUTPUT_PATH_CONFIG_3R 0x424 +#define MADERA_DAC_DIGITAL_VOLUME_3R 0x425 +#define MADERA_NOISE_GATE_SELECT_3R 0x427 +#define MADERA_OUTPUT_PATH_CONFIG_4L 0x428 +#define MADERA_DAC_DIGITAL_VOLUME_4L 0x429 +#define MADERA_NOISE_GATE_SELECT_4L 0x42B +#define MADERA_OUTPUT_PATH_CONFIG_4R 0x42C +#define MADERA_DAC_DIGITAL_VOLUME_4R 0x42D +#define MADERA_NOISE_GATE_SELECT_4R 0x42F +#define MADERA_OUTPUT_PATH_CONFIG_5L 0x430 +#define MADERA_DAC_DIGITAL_VOLUME_5L 0x431 +#define MADERA_NOISE_GATE_SELECT_5L 0x433 +#define MADERA_OUTPUT_PATH_CONFIG_5R 0x434 +#define MADERA_DAC_DIGITAL_VOLUME_5R 0x435 +#define MADERA_NOISE_GATE_SELECT_5R 0x437 +#define MADERA_OUTPUT_PATH_CONFIG_6L 0x438 +#define MADERA_DAC_DIGITAL_VOLUME_6L 0x439 +#define MADERA_NOISE_GATE_SELECT_6L 0x43B +#define MADERA_OUTPUT_PATH_CONFIG_6R 0x43C +#define MADERA_DAC_DIGITAL_VOLUME_6R 0x43D +#define MADERA_NOISE_GATE_SELECT_6R 0x43F +#define MADERA_DRE_ENABLE 0x440 +#define MADERA_EDRE_ENABLE 0x448 +#define MADERA_EDRE_MANUAL 0x44A +#define MADERA_DAC_AEC_CONTROL_1 0x450 +#define MADERA_DAC_AEC_CONTROL_2 0x451 +#define MADERA_NOISE_GATE_CONTROL 0x458 +#define MADERA_PDM_SPK1_CTRL_1 0x490 +#define MADERA_PDM_SPK1_CTRL_2 0x491 +#define MADERA_PDM_SPK2_CTRL_1 0x492 +#define MADERA_PDM_SPK2_CTRL_2 0x493 +#define MADERA_HP1_SHORT_CIRCUIT_CTRL 0x4A0 +#define MADERA_HP2_SHORT_CIRCUIT_CTRL 0x4A1 +#define MADERA_HP3_SHORT_CIRCUIT_CTRL 0x4A2 +#define MADERA_HP_TEST_CTRL_1 0x4A4 +#define MADERA_HP_TEST_CTRL_5 0x4A8 +#define MADERA_HP_TEST_CTRL_6 0x4A9 +#define MADERA_AIF1_BCLK_CTRL 0x500 +#define MADERA_AIF1_TX_PIN_CTRL 0x501 +#define MADERA_AIF1_RX_PIN_CTRL 0x502 +#define MADERA_AIF1_RATE_CTRL 0x503 +#define MADERA_AIF1_FORMAT 0x504 +#define MADERA_AIF1_RX_BCLK_RATE 0x506 +#define MADERA_AIF1_FRAME_CTRL_1 0x507 +#define MADERA_AIF1_FRAME_CTRL_2 0x508 +#define MADERA_AIF1_FRAME_CTRL_3 0x509 +#define MADERA_AIF1_FRAME_CTRL_4 0x50A +#define MADERA_AIF1_FRAME_CTRL_5 0x50B +#define MADERA_AIF1_FRAME_CTRL_6 0x50C +#define MADERA_AIF1_FRAME_CTRL_7 0x50D +#define MADERA_AIF1_FRAME_CTRL_8 0x50E +#define MADERA_AIF1_FRAME_CTRL_9 0x50F +#define MADERA_AIF1_FRAME_CTRL_10 0x510 +#define MADERA_AIF1_FRAME_CTRL_11 0x511 +#define MADERA_AIF1_FRAME_CTRL_12 0x512 +#define MADERA_AIF1_FRAME_CTRL_13 0x513 +#define MADERA_AIF1_FRAME_CTRL_14 0x514 +#define MADERA_AIF1_FRAME_CTRL_15 0x515 +#define MADERA_AIF1_FRAME_CTRL_16 0x516 +#define MADERA_AIF1_FRAME_CTRL_17 0x517 +#define MADERA_AIF1_FRAME_CTRL_18 0x518 +#define MADERA_AIF1_TX_ENABLES 0x519 +#define MADERA_AIF1_RX_ENABLES 0x51A +#define MADERA_AIF1_FORCE_WRITE 0x51B +#define MADERA_AIF2_BCLK_CTRL 0x540 +#define MADERA_AIF2_TX_PIN_CTRL 0x541 +#define MADERA_AIF2_RX_PIN_CTRL 0x542 +#define MADERA_AIF2_RATE_CTRL 0x543 +#define MADERA_AIF2_FORMAT 0x544 +#define MADERA_AIF2_RX_BCLK_RATE 0x546 +#define MADERA_AIF2_FRAME_CTRL_1 0x547 +#define MADERA_AIF2_FRAME_CTRL_2 0x548 +#define MADERA_AIF2_FRAME_CTRL_3 0x549 +#define MADERA_AIF2_FRAME_CTRL_4 0x54A +#define MADERA_AIF2_FRAME_CTRL_5 0x54B +#define MADERA_AIF2_FRAME_CTRL_6 0x54C +#define MADERA_AIF2_FRAME_CTRL_7 0x54D +#define MADERA_AIF2_FRAME_CTRL_8 0x54E +#define MADERA_AIF2_FRAME_CTRL_9 0x54F +#define MADERA_AIF2_FRAME_CTRL_10 0x550 +#define MADERA_AIF2_FRAME_CTRL_11 0x551 +#define MADERA_AIF2_FRAME_CTRL_12 0x552 +#define MADERA_AIF2_FRAME_CTRL_13 0x553 +#define MADERA_AIF2_FRAME_CTRL_14 0x554 +#define MADERA_AIF2_FRAME_CTRL_15 0x555 +#define MADERA_AIF2_FRAME_CTRL_16 0x556 +#define MADERA_AIF2_FRAME_CTRL_17 0x557 +#define MADERA_AIF2_FRAME_CTRL_18 0x558 +#define MADERA_AIF2_TX_ENABLES 0x559 +#define MADERA_AIF2_RX_ENABLES 0x55A +#define MADERA_AIF2_FORCE_WRITE 0x55B +#define MADERA_AIF3_BCLK_CTRL 0x580 +#define MADERA_AIF3_TX_PIN_CTRL 0x581 +#define MADERA_AIF3_RX_PIN_CTRL 0x582 +#define MADERA_AIF3_RATE_CTRL 0x583 +#define MADERA_AIF3_FORMAT 0x584 +#define MADERA_AIF3_RX_BCLK_RATE 0x586 +#define MADERA_AIF3_FRAME_CTRL_1 0x587 +#define MADERA_AIF3_FRAME_CTRL_2 0x588 +#define MADERA_AIF3_FRAME_CTRL_3 0x589 +#define MADERA_AIF3_FRAME_CTRL_4 0x58A +#define MADERA_AIF3_FRAME_CTRL_11 0x591 +#define MADERA_AIF3_FRAME_CTRL_12 0x592 +#define MADERA_AIF3_TX_ENABLES 0x599 +#define MADERA_AIF3_RX_ENABLES 0x59A +#define MADERA_AIF3_FORCE_WRITE 0x59B +#define MADERA_AIF4_BCLK_CTRL 0x5A0 +#define MADERA_AIF4_TX_PIN_CTRL 0x5A1 +#define MADERA_AIF4_RX_PIN_CTRL 0x5A2 +#define MADERA_AIF4_RATE_CTRL 0x5A3 +#define MADERA_AIF4_FORMAT 0x5A4 +#define MADERA_AIF4_RX_BCLK_RATE 0x5A6 +#define MADERA_AIF4_FRAME_CTRL_1 0x5A7 +#define MADERA_AIF4_FRAME_CTRL_2 0x5A8 +#define MADERA_AIF4_FRAME_CTRL_3 0x5A9 +#define MADERA_AIF4_FRAME_CTRL_4 0x5AA +#define MADERA_AIF4_FRAME_CTRL_11 0x5B1 +#define MADERA_AIF4_FRAME_CTRL_12 0x5B2 +#define MADERA_AIF4_TX_ENABLES 0x5B9 +#define MADERA_AIF4_RX_ENABLES 0x5BA +#define MADERA_AIF4_FORCE_WRITE 0x5BB +#define MADERA_SPD1_TX_CONTROL 0x5C2 +#define MADERA_SPD1_TX_CHANNEL_STATUS_1 0x5C3 +#define MADERA_SPD1_TX_CHANNEL_STATUS_2 0x5C4 +#define MADERA_SPD1_TX_CHANNEL_STATUS_3 0x5C5 +#define MADERA_SLIMBUS_FRAMER_REF_GEAR 0x5E3 +#define MADERA_SLIMBUS_RATES_1 0x5E5 +#define MADERA_SLIMBUS_RATES_2 0x5E6 +#define MADERA_SLIMBUS_RATES_3 0x5E7 +#define MADERA_SLIMBUS_RATES_4 0x5E8 +#define MADERA_SLIMBUS_RATES_5 0x5E9 +#define MADERA_SLIMBUS_RATES_6 0x5EA +#define MADERA_SLIMBUS_RATES_7 0x5EB +#define MADERA_SLIMBUS_RATES_8 0x5EC +#define MADERA_SLIMBUS_RX_CHANNEL_ENABLE 0x5F5 +#define MADERA_SLIMBUS_TX_CHANNEL_ENABLE 0x5F6 +#define MADERA_SLIMBUS_RX_PORT_STATUS 0x5F7 +#define MADERA_SLIMBUS_TX_PORT_STATUS 0x5F8 +#define MADERA_PWM1MIX_INPUT_1_SOURCE 0x640 +#define MADERA_PWM1MIX_INPUT_1_VOLUME 0x641 +#define MADERA_PWM1MIX_INPUT_2_SOURCE 0x642 +#define MADERA_PWM1MIX_INPUT_2_VOLUME 0x643 +#define MADERA_PWM1MIX_INPUT_3_SOURCE 0x644 +#define MADERA_PWM1MIX_INPUT_3_VOLUME 0x645 +#define MADERA_PWM1MIX_INPUT_4_SOURCE 0x646 +#define MADERA_PWM1MIX_INPUT_4_VOLUME 0x647 +#define MADERA_PWM2MIX_INPUT_1_SOURCE 0x648 +#define MADERA_PWM2MIX_INPUT_1_VOLUME 0x649 +#define MADERA_PWM2MIX_INPUT_2_SOURCE 0x64A +#define MADERA_PWM2MIX_INPUT_2_VOLUME 0x64B +#define MADERA_PWM2MIX_INPUT_3_SOURCE 0x64C +#define MADERA_PWM2MIX_INPUT_3_VOLUME 0x64D +#define MADERA_PWM2MIX_INPUT_4_SOURCE 0x64E +#define MADERA_PWM2MIX_INPUT_4_VOLUME 0x64F +#define MADERA_OUT1LMIX_INPUT_1_SOURCE 0x680 +#define MADERA_OUT1LMIX_INPUT_1_VOLUME 0x681 +#define MADERA_OUT1LMIX_INPUT_2_SOURCE 0x682 +#define MADERA_OUT1LMIX_INPUT_2_VOLUME 0x683 +#define MADERA_OUT1LMIX_INPUT_3_SOURCE 0x684 +#define MADERA_OUT1LMIX_INPUT_3_VOLUME 0x685 +#define MADERA_OUT1LMIX_INPUT_4_SOURCE 0x686 +#define MADERA_OUT1LMIX_INPUT_4_VOLUME 0x687 +#define MADERA_OUT1RMIX_INPUT_1_SOURCE 0x688 +#define MADERA_OUT1RMIX_INPUT_1_VOLUME 0x689 +#define MADERA_OUT1RMIX_INPUT_2_SOURCE 0x68A +#define MADERA_OUT1RMIX_INPUT_2_VOLUME 0x68B +#define MADERA_OUT1RMIX_INPUT_3_SOURCE 0x68C +#define MADERA_OUT1RMIX_INPUT_3_VOLUME 0x68D +#define MADERA_OUT1RMIX_INPUT_4_SOURCE 0x68E +#define MADERA_OUT1RMIX_INPUT_4_VOLUME 0x68F +#define MADERA_OUT2LMIX_INPUT_1_SOURCE 0x690 +#define MADERA_OUT2LMIX_INPUT_1_VOLUME 0x691 +#define MADERA_OUT2LMIX_INPUT_2_SOURCE 0x692 +#define MADERA_OUT2LMIX_INPUT_2_VOLUME 0x693 +#define MADERA_OUT2LMIX_INPUT_3_SOURCE 0x694 +#define MADERA_OUT2LMIX_INPUT_3_VOLUME 0x695 +#define MADERA_OUT2LMIX_INPUT_4_SOURCE 0x696 +#define MADERA_OUT2LMIX_INPUT_4_VOLUME 0x697 +#define MADERA_OUT2RMIX_INPUT_1_SOURCE 0x698 +#define MADERA_OUT2RMIX_INPUT_1_VOLUME 0x699 +#define MADERA_OUT2RMIX_INPUT_2_SOURCE 0x69A +#define MADERA_OUT2RMIX_INPUT_2_VOLUME 0x69B +#define MADERA_OUT2RMIX_INPUT_3_SOURCE 0x69C +#define MADERA_OUT2RMIX_INPUT_3_VOLUME 0x69D +#define MADERA_OUT2RMIX_INPUT_4_SOURCE 0x69E +#define MADERA_OUT2RMIX_INPUT_4_VOLUME 0x69F +#define MADERA_OUT3LMIX_INPUT_1_SOURCE 0x6A0 +#define MADERA_OUT3LMIX_INPUT_1_VOLUME 0x6A1 +#define MADERA_OUT3LMIX_INPUT_2_SOURCE 0x6A2 +#define MADERA_OUT3LMIX_INPUT_2_VOLUME 0x6A3 +#define MADERA_OUT3LMIX_INPUT_3_SOURCE 0x6A4 +#define MADERA_OUT3LMIX_INPUT_3_VOLUME 0x6A5 +#define MADERA_OUT3LMIX_INPUT_4_SOURCE 0x6A6 +#define MADERA_OUT3LMIX_INPUT_4_VOLUME 0x6A7 +#define MADERA_OUT3RMIX_INPUT_1_SOURCE 0x6A8 +#define MADERA_OUT3RMIX_INPUT_1_VOLUME 0x6A9 +#define MADERA_OUT3RMIX_INPUT_2_SOURCE 0x6AA +#define MADERA_OUT3RMIX_INPUT_2_VOLUME 0x6AB +#define MADERA_OUT3RMIX_INPUT_3_SOURCE 0x6AC +#define MADERA_OUT3RMIX_INPUT_3_VOLUME 0x6AD +#define MADERA_OUT3RMIX_INPUT_4_SOURCE 0x6AE +#define MADERA_OUT3RMIX_INPUT_4_VOLUME 0x6AF +#define MADERA_OUT4LMIX_INPUT_1_SOURCE 0x6B0 +#define MADERA_OUT4LMIX_INPUT_1_VOLUME 0x6B1 +#define MADERA_OUT4LMIX_INPUT_2_SOURCE 0x6B2 +#define MADERA_OUT4LMIX_INPUT_2_VOLUME 0x6B3 +#define MADERA_OUT4LMIX_INPUT_3_SOURCE 0x6B4 +#define MADERA_OUT4LMIX_INPUT_3_VOLUME 0x6B5 +#define MADERA_OUT4LMIX_INPUT_4_SOURCE 0x6B6 +#define MADERA_OUT4LMIX_INPUT_4_VOLUME 0x6B7 +#define MADERA_OUT4RMIX_INPUT_1_SOURCE 0x6B8 +#define MADERA_OUT4RMIX_INPUT_1_VOLUME 0x6B9 +#define MADERA_OUT4RMIX_INPUT_2_SOURCE 0x6BA +#define MADERA_OUT4RMIX_INPUT_2_VOLUME 0x6BB +#define MADERA_OUT4RMIX_INPUT_3_SOURCE 0x6BC +#define MADERA_OUT4RMIX_INPUT_3_VOLUME 0x6BD +#define MADERA_OUT4RMIX_INPUT_4_SOURCE 0x6BE +#define MADERA_OUT4RMIX_INPUT_4_VOLUME 0x6BF +#define MADERA_OUT5LMIX_INPUT_1_SOURCE 0x6C0 +#define MADERA_OUT5LMIX_INPUT_1_VOLUME 0x6C1 +#define MADERA_OUT5LMIX_INPUT_2_SOURCE 0x6C2 +#define MADERA_OUT5LMIX_INPUT_2_VOLUME 0x6C3 +#define MADERA_OUT5LMIX_INPUT_3_SOURCE 0x6C4 +#define MADERA_OUT5LMIX_INPUT_3_VOLUME 0x6C5 +#define MADERA_OUT5LMIX_INPUT_4_SOURCE 0x6C6 +#define MADERA_OUT5LMIX_INPUT_4_VOLUME 0x6C7 +#define MADERA_OUT5RMIX_INPUT_1_SOURCE 0x6C8 +#define MADERA_OUT5RMIX_INPUT_1_VOLUME 0x6C9 +#define MADERA_OUT5RMIX_INPUT_2_SOURCE 0x6CA +#define MADERA_OUT5RMIX_INPUT_2_VOLUME 0x6CB +#define MADERA_OUT5RMIX_INPUT_3_SOURCE 0x6CC +#define MADERA_OUT5RMIX_INPUT_3_VOLUME 0x6CD +#define MADERA_OUT5RMIX_INPUT_4_SOURCE 0x6CE +#define MADERA_OUT5RMIX_INPUT_4_VOLUME 0x6CF +#define MADERA_OUT6LMIX_INPUT_1_SOURCE 0x6D0 +#define MADERA_OUT6LMIX_INPUT_1_VOLUME 0x6D1 +#define MADERA_OUT6LMIX_INPUT_2_SOURCE 0x6D2 +#define MADERA_OUT6LMIX_INPUT_2_VOLUME 0x6D3 +#define MADERA_OUT6LMIX_INPUT_3_SOURCE 0x6D4 +#define MADERA_OUT6LMIX_INPUT_3_VOLUME 0x6D5 +#define MADERA_OUT6LMIX_INPUT_4_SOURCE 0x6D6 +#define MADERA_OUT6LMIX_INPUT_4_VOLUME 0x6D7 +#define MADERA_OUT6RMIX_INPUT_1_SOURCE 0x6D8 +#define MADERA_OUT6RMIX_INPUT_1_VOLUME 0x6D9 +#define MADERA_OUT6RMIX_INPUT_2_SOURCE 0x6DA +#define MADERA_OUT6RMIX_INPUT_2_VOLUME 0x6DB +#define MADERA_OUT6RMIX_INPUT_3_SOURCE 0x6DC +#define MADERA_OUT6RMIX_INPUT_3_VOLUME 0x6DD +#define MADERA_OUT6RMIX_INPUT_4_SOURCE 0x6DE +#define MADERA_OUT6RMIX_INPUT_4_VOLUME 0x6DF +#define MADERA_AIF1TX1MIX_INPUT_1_SOURCE 0x700 +#define MADERA_AIF1TX1MIX_INPUT_1_VOLUME 0x701 +#define MADERA_AIF1TX1MIX_INPUT_2_SOURCE 0x702 +#define MADERA_AIF1TX1MIX_INPUT_2_VOLUME 0x703 +#define MADERA_AIF1TX1MIX_INPUT_3_SOURCE 0x704 +#define MADERA_AIF1TX1MIX_INPUT_3_VOLUME 0x705 +#define MADERA_AIF1TX1MIX_INPUT_4_SOURCE 0x706 +#define MADERA_AIF1TX1MIX_INPUT_4_VOLUME 0x707 +#define MADERA_AIF1TX2MIX_INPUT_1_SOURCE 0x708 +#define MADERA_AIF1TX2MIX_INPUT_1_VOLUME 0x709 +#define MADERA_AIF1TX2MIX_INPUT_2_SOURCE 0x70A +#define MADERA_AIF1TX2MIX_INPUT_2_VOLUME 0x70B +#define MADERA_AIF1TX2MIX_INPUT_3_SOURCE 0x70C +#define MADERA_AIF1TX2MIX_INPUT_3_VOLUME 0x70D +#define MADERA_AIF1TX2MIX_INPUT_4_SOURCE 0x70E +#define MADERA_AIF1TX2MIX_INPUT_4_VOLUME 0x70F +#define MADERA_AIF1TX3MIX_INPUT_1_SOURCE 0x710 +#define MADERA_AIF1TX3MIX_INPUT_1_VOLUME 0x711 +#define MADERA_AIF1TX3MIX_INPUT_2_SOURCE 0x712 +#define MADERA_AIF1TX3MIX_INPUT_2_VOLUME 0x713 +#define MADERA_AIF1TX3MIX_INPUT_3_SOURCE 0x714 +#define MADERA_AIF1TX3MIX_INPUT_3_VOLUME 0x715 +#define MADERA_AIF1TX3MIX_INPUT_4_SOURCE 0x716 +#define MADERA_AIF1TX3MIX_INPUT_4_VOLUME 0x717 +#define MADERA_AIF1TX4MIX_INPUT_1_SOURCE 0x718 +#define MADERA_AIF1TX4MIX_INPUT_1_VOLUME 0x719 +#define MADERA_AIF1TX4MIX_INPUT_2_SOURCE 0x71A +#define MADERA_AIF1TX4MIX_INPUT_2_VOLUME 0x71B +#define MADERA_AIF1TX4MIX_INPUT_3_SOURCE 0x71C +#define MADERA_AIF1TX4MIX_INPUT_3_VOLUME 0x71D +#define MADERA_AIF1TX4MIX_INPUT_4_SOURCE 0x71E +#define MADERA_AIF1TX4MIX_INPUT_4_VOLUME 0x71F +#define MADERA_AIF1TX5MIX_INPUT_1_SOURCE 0x720 +#define MADERA_AIF1TX5MIX_INPUT_1_VOLUME 0x721 +#define MADERA_AIF1TX5MIX_INPUT_2_SOURCE 0x722 +#define MADERA_AIF1TX5MIX_INPUT_2_VOLUME 0x723 +#define MADERA_AIF1TX5MIX_INPUT_3_SOURCE 0x724 +#define MADERA_AIF1TX5MIX_INPUT_3_VOLUME 0x725 +#define MADERA_AIF1TX5MIX_INPUT_4_SOURCE 0x726 +#define MADERA_AIF1TX5MIX_INPUT_4_VOLUME 0x727 +#define MADERA_AIF1TX6MIX_INPUT_1_SOURCE 0x728 +#define MADERA_AIF1TX6MIX_INPUT_1_VOLUME 0x729 +#define MADERA_AIF1TX6MIX_INPUT_2_SOURCE 0x72A +#define MADERA_AIF1TX6MIX_INPUT_2_VOLUME 0x72B +#define MADERA_AIF1TX6MIX_INPUT_3_SOURCE 0x72C +#define MADERA_AIF1TX6MIX_INPUT_3_VOLUME 0x72D +#define MADERA_AIF1TX6MIX_INPUT_4_SOURCE 0x72E +#define MADERA_AIF1TX6MIX_INPUT_4_VOLUME 0x72F +#define MADERA_AIF1TX7MIX_INPUT_1_SOURCE 0x730 +#define MADERA_AIF1TX7MIX_INPUT_1_VOLUME 0x731 +#define MADERA_AIF1TX7MIX_INPUT_2_SOURCE 0x732 +#define MADERA_AIF1TX7MIX_INPUT_2_VOLUME 0x733 +#define MADERA_AIF1TX7MIX_INPUT_3_SOURCE 0x734 +#define MADERA_AIF1TX7MIX_INPUT_3_VOLUME 0x735 +#define MADERA_AIF1TX7MIX_INPUT_4_SOURCE 0x736 +#define MADERA_AIF1TX7MIX_INPUT_4_VOLUME 0x737 +#define MADERA_AIF1TX8MIX_INPUT_1_SOURCE 0x738 +#define MADERA_AIF1TX8MIX_INPUT_1_VOLUME 0x739 +#define MADERA_AIF1TX8MIX_INPUT_2_SOURCE 0x73A +#define MADERA_AIF1TX8MIX_INPUT_2_VOLUME 0x73B +#define MADERA_AIF1TX8MIX_INPUT_3_SOURCE 0x73C +#define MADERA_AIF1TX8MIX_INPUT_3_VOLUME 0x73D +#define MADERA_AIF1TX8MIX_INPUT_4_SOURCE 0x73E +#define MADERA_AIF1TX8MIX_INPUT_4_VOLUME 0x73F +#define MADERA_AIF2TX1MIX_INPUT_1_SOURCE 0x740 +#define MADERA_AIF2TX1MIX_INPUT_1_VOLUME 0x741 +#define MADERA_AIF2TX1MIX_INPUT_2_SOURCE 0x742 +#define MADERA_AIF2TX1MIX_INPUT_2_VOLUME 0x743 +#define MADERA_AIF2TX1MIX_INPUT_3_SOURCE 0x744 +#define MADERA_AIF2TX1MIX_INPUT_3_VOLUME 0x745 +#define MADERA_AIF2TX1MIX_INPUT_4_SOURCE 0x746 +#define MADERA_AIF2TX1MIX_INPUT_4_VOLUME 0x747 +#define MADERA_AIF2TX2MIX_INPUT_1_SOURCE 0x748 +#define MADERA_AIF2TX2MIX_INPUT_1_VOLUME 0x749 +#define MADERA_AIF2TX2MIX_INPUT_2_SOURCE 0x74A +#define MADERA_AIF2TX2MIX_INPUT_2_VOLUME 0x74B +#define MADERA_AIF2TX2MIX_INPUT_3_SOURCE 0x74C +#define MADERA_AIF2TX2MIX_INPUT_3_VOLUME 0x74D +#define MADERA_AIF2TX2MIX_INPUT_4_SOURCE 0x74E +#define MADERA_AIF2TX2MIX_INPUT_4_VOLUME 0x74F +#define MADERA_AIF2TX3MIX_INPUT_1_SOURCE 0x750 +#define MADERA_AIF2TX3MIX_INPUT_1_VOLUME 0x751 +#define MADERA_AIF2TX3MIX_INPUT_2_SOURCE 0x752 +#define MADERA_AIF2TX3MIX_INPUT_2_VOLUME 0x753 +#define MADERA_AIF2TX3MIX_INPUT_3_SOURCE 0x754 +#define MADERA_AIF2TX3MIX_INPUT_3_VOLUME 0x755 +#define MADERA_AIF2TX3MIX_INPUT_4_SOURCE 0x756 +#define MADERA_AIF2TX3MIX_INPUT_4_VOLUME 0x757 +#define MADERA_AIF2TX4MIX_INPUT_1_SOURCE 0x758 +#define MADERA_AIF2TX4MIX_INPUT_1_VOLUME 0x759 +#define MADERA_AIF2TX4MIX_INPUT_2_SOURCE 0x75A +#define MADERA_AIF2TX4MIX_INPUT_2_VOLUME 0x75B +#define MADERA_AIF2TX4MIX_INPUT_3_SOURCE 0x75C +#define MADERA_AIF2TX4MIX_INPUT_3_VOLUME 0x75D +#define MADERA_AIF2TX4MIX_INPUT_4_SOURCE 0x75E +#define MADERA_AIF2TX4MIX_INPUT_4_VOLUME 0x75F +#define MADERA_AIF2TX5MIX_INPUT_1_SOURCE 0x760 +#define MADERA_AIF2TX5MIX_INPUT_1_VOLUME 0x761 +#define MADERA_AIF2TX5MIX_INPUT_2_SOURCE 0x762 +#define MADERA_AIF2TX5MIX_INPUT_2_VOLUME 0x763 +#define MADERA_AIF2TX5MIX_INPUT_3_SOURCE 0x764 +#define MADERA_AIF2TX5MIX_INPUT_3_VOLUME 0x765 +#define MADERA_AIF2TX5MIX_INPUT_4_SOURCE 0x766 +#define MADERA_AIF2TX5MIX_INPUT_4_VOLUME 0x767 +#define MADERA_AIF2TX6MIX_INPUT_1_SOURCE 0x768 +#define MADERA_AIF2TX6MIX_INPUT_1_VOLUME 0x769 +#define MADERA_AIF2TX6MIX_INPUT_2_SOURCE 0x76A +#define MADERA_AIF2TX6MIX_INPUT_2_VOLUME 0x76B +#define MADERA_AIF2TX6MIX_INPUT_3_SOURCE 0x76C +#define MADERA_AIF2TX6MIX_INPUT_3_VOLUME 0x76D +#define MADERA_AIF2TX6MIX_INPUT_4_SOURCE 0x76E +#define MADERA_AIF2TX6MIX_INPUT_4_VOLUME 0x76F +#define MADERA_AIF2TX7MIX_INPUT_1_SOURCE 0x770 +#define MADERA_AIF2TX7MIX_INPUT_1_VOLUME 0x771 +#define MADERA_AIF2TX7MIX_INPUT_2_SOURCE 0x772 +#define MADERA_AIF2TX7MIX_INPUT_2_VOLUME 0x773 +#define MADERA_AIF2TX7MIX_INPUT_3_SOURCE 0x774 +#define MADERA_AIF2TX7MIX_INPUT_3_VOLUME 0x775 +#define MADERA_AIF2TX7MIX_INPUT_4_SOURCE 0x776 +#define MADERA_AIF2TX7MIX_INPUT_4_VOLUME 0x777 +#define MADERA_AIF2TX8MIX_INPUT_1_SOURCE 0x778 +#define MADERA_AIF2TX8MIX_INPUT_1_VOLUME 0x779 +#define MADERA_AIF2TX8MIX_INPUT_2_SOURCE 0x77A +#define MADERA_AIF2TX8MIX_INPUT_2_VOLUME 0x77B +#define MADERA_AIF2TX8MIX_INPUT_3_SOURCE 0x77C +#define MADERA_AIF2TX8MIX_INPUT_3_VOLUME 0x77D +#define MADERA_AIF2TX8MIX_INPUT_4_SOURCE 0x77E +#define MADERA_AIF2TX8MIX_INPUT_4_VOLUME 0x77F +#define MADERA_AIF3TX1MIX_INPUT_1_SOURCE 0x780 +#define MADERA_AIF3TX1MIX_INPUT_1_VOLUME 0x781 +#define MADERA_AIF3TX1MIX_INPUT_2_SOURCE 0x782 +#define MADERA_AIF3TX1MIX_INPUT_2_VOLUME 0x783 +#define MADERA_AIF3TX1MIX_INPUT_3_SOURCE 0x784 +#define MADERA_AIF3TX1MIX_INPUT_3_VOLUME 0x785 +#define MADERA_AIF3TX1MIX_INPUT_4_SOURCE 0x786 +#define MADERA_AIF3TX1MIX_INPUT_4_VOLUME 0x787 +#define MADERA_AIF3TX2MIX_INPUT_1_SOURCE 0x788 +#define MADERA_AIF3TX2MIX_INPUT_1_VOLUME 0x789 +#define MADERA_AIF3TX2MIX_INPUT_2_SOURCE 0x78A +#define MADERA_AIF3TX2MIX_INPUT_2_VOLUME 0x78B +#define MADERA_AIF3TX2MIX_INPUT_3_SOURCE 0x78C +#define MADERA_AIF3TX2MIX_INPUT_3_VOLUME 0x78D +#define MADERA_AIF3TX2MIX_INPUT_4_SOURCE 0x78E +#define MADERA_AIF3TX2MIX_INPUT_4_VOLUME 0x78F +#define MADERA_AIF4TX1MIX_INPUT_1_SOURCE 0x7A0 +#define MADERA_AIF4TX1MIX_INPUT_1_VOLUME 0x7A1 +#define MADERA_AIF4TX1MIX_INPUT_2_SOURCE 0x7A2 +#define MADERA_AIF4TX1MIX_INPUT_2_VOLUME 0x7A3 +#define MADERA_AIF4TX1MIX_INPUT_3_SOURCE 0x7A4 +#define MADERA_AIF4TX1MIX_INPUT_3_VOLUME 0x7A5 +#define MADERA_AIF4TX1MIX_INPUT_4_SOURCE 0x7A6 +#define MADERA_AIF4TX1MIX_INPUT_4_VOLUME 0x7A7 +#define MADERA_AIF4TX2MIX_INPUT_1_SOURCE 0x7A8 +#define MADERA_AIF4TX2MIX_INPUT_1_VOLUME 0x7A9 +#define MADERA_AIF4TX2MIX_INPUT_2_SOURCE 0x7AA +#define MADERA_AIF4TX2MIX_INPUT_2_VOLUME 0x7AB +#define MADERA_AIF4TX2MIX_INPUT_3_SOURCE 0x7AC +#define MADERA_AIF4TX2MIX_INPUT_3_VOLUME 0x7AD +#define MADERA_AIF4TX2MIX_INPUT_4_SOURCE 0x7AE +#define MADERA_AIF4TX2MIX_INPUT_4_VOLUME 0x7AF +#define MADERA_SLIMTX1MIX_INPUT_1_SOURCE 0x7C0 +#define MADERA_SLIMTX1MIX_INPUT_1_VOLUME 0x7C1 +#define MADERA_SLIMTX1MIX_INPUT_2_SOURCE 0x7C2 +#define MADERA_SLIMTX1MIX_INPUT_2_VOLUME 0x7C3 +#define MADERA_SLIMTX1MIX_INPUT_3_SOURCE 0x7C4 +#define MADERA_SLIMTX1MIX_INPUT_3_VOLUME 0x7C5 +#define MADERA_SLIMTX1MIX_INPUT_4_SOURCE 0x7C6 +#define MADERA_SLIMTX1MIX_INPUT_4_VOLUME 0x7C7 +#define MADERA_SLIMTX2MIX_INPUT_1_SOURCE 0x7C8 +#define MADERA_SLIMTX2MIX_INPUT_1_VOLUME 0x7C9 +#define MADERA_SLIMTX2MIX_INPUT_2_SOURCE 0x7CA +#define MADERA_SLIMTX2MIX_INPUT_2_VOLUME 0x7CB +#define MADERA_SLIMTX2MIX_INPUT_3_SOURCE 0x7CC +#define MADERA_SLIMTX2MIX_INPUT_3_VOLUME 0x7CD +#define MADERA_SLIMTX2MIX_INPUT_4_SOURCE 0x7CE +#define MADERA_SLIMTX2MIX_INPUT_4_VOLUME 0x7CF +#define MADERA_SLIMTX3MIX_INPUT_1_SOURCE 0x7D0 +#define MADERA_SLIMTX3MIX_INPUT_1_VOLUME 0x7D1 +#define MADERA_SLIMTX3MIX_INPUT_2_SOURCE 0x7D2 +#define MADERA_SLIMTX3MIX_INPUT_2_VOLUME 0x7D3 +#define MADERA_SLIMTX3MIX_INPUT_3_SOURCE 0x7D4 +#define MADERA_SLIMTX3MIX_INPUT_3_VOLUME 0x7D5 +#define MADERA_SLIMTX3MIX_INPUT_4_SOURCE 0x7D6 +#define MADERA_SLIMTX3MIX_INPUT_4_VOLUME 0x7D7 +#define MADERA_SLIMTX4MIX_INPUT_1_SOURCE 0x7D8 +#define MADERA_SLIMTX4MIX_INPUT_1_VOLUME 0x7D9 +#define MADERA_SLIMTX4MIX_INPUT_2_SOURCE 0x7DA +#define MADERA_SLIMTX4MIX_INPUT_2_VOLUME 0x7DB +#define MADERA_SLIMTX4MIX_INPUT_3_SOURCE 0x7DC +#define MADERA_SLIMTX4MIX_INPUT_3_VOLUME 0x7DD +#define MADERA_SLIMTX4MIX_INPUT_4_SOURCE 0x7DE +#define MADERA_SLIMTX4MIX_INPUT_4_VOLUME 0x7DF +#define MADERA_SLIMTX5MIX_INPUT_1_SOURCE 0x7E0 +#define MADERA_SLIMTX5MIX_INPUT_1_VOLUME 0x7E1 +#define MADERA_SLIMTX5MIX_INPUT_2_SOURCE 0x7E2 +#define MADERA_SLIMTX5MIX_INPUT_2_VOLUME 0x7E3 +#define MADERA_SLIMTX5MIX_INPUT_3_SOURCE 0x7E4 +#define MADERA_SLIMTX5MIX_INPUT_3_VOLUME 0x7E5 +#define MADERA_SLIMTX5MIX_INPUT_4_SOURCE 0x7E6 +#define MADERA_SLIMTX5MIX_INPUT_4_VOLUME 0x7E7 +#define MADERA_SLIMTX6MIX_INPUT_1_SOURCE 0x7E8 +#define MADERA_SLIMTX6MIX_INPUT_1_VOLUME 0x7E9 +#define MADERA_SLIMTX6MIX_INPUT_2_SOURCE 0x7EA +#define MADERA_SLIMTX6MIX_INPUT_2_VOLUME 0x7EB +#define MADERA_SLIMTX6MIX_INPUT_3_SOURCE 0x7EC +#define MADERA_SLIMTX6MIX_INPUT_3_VOLUME 0x7ED +#define MADERA_SLIMTX6MIX_INPUT_4_SOURCE 0x7EE +#define MADERA_SLIMTX6MIX_INPUT_4_VOLUME 0x7EF +#define MADERA_SLIMTX7MIX_INPUT_1_SOURCE 0x7F0 +#define MADERA_SLIMTX7MIX_INPUT_1_VOLUME 0x7F1 +#define MADERA_SLIMTX7MIX_INPUT_2_SOURCE 0x7F2 +#define MADERA_SLIMTX7MIX_INPUT_2_VOLUME 0x7F3 +#define MADERA_SLIMTX7MIX_INPUT_3_SOURCE 0x7F4 +#define MADERA_SLIMTX7MIX_INPUT_3_VOLUME 0x7F5 +#define MADERA_SLIMTX7MIX_INPUT_4_SOURCE 0x7F6 +#define MADERA_SLIMTX7MIX_INPUT_4_VOLUME 0x7F7 +#define MADERA_SLIMTX8MIX_INPUT_1_SOURCE 0x7F8 +#define MADERA_SLIMTX8MIX_INPUT_1_VOLUME 0x7F9 +#define MADERA_SLIMTX8MIX_INPUT_2_SOURCE 0x7FA +#define MADERA_SLIMTX8MIX_INPUT_2_VOLUME 0x7FB +#define MADERA_SLIMTX8MIX_INPUT_3_SOURCE 0x7FC +#define MADERA_SLIMTX8MIX_INPUT_3_VOLUME 0x7FD +#define MADERA_SLIMTX8MIX_INPUT_4_SOURCE 0x7FE +#define MADERA_SLIMTX8MIX_INPUT_4_VOLUME 0x7FF +#define MADERA_SPDIF1TX1MIX_INPUT_1_SOURCE 0x800 +#define MADERA_SPDIF1TX1MIX_INPUT_1_VOLUME 0x801 +#define MADERA_SPDIF1TX2MIX_INPUT_1_SOURCE 0x808 +#define MADERA_SPDIF1TX2MIX_INPUT_1_VOLUME 0x809 +#define MADERA_EQ1MIX_INPUT_1_SOURCE 0x880 +#define MADERA_EQ1MIX_INPUT_1_VOLUME 0x881 +#define MADERA_EQ1MIX_INPUT_2_SOURCE 0x882 +#define MADERA_EQ1MIX_INPUT_2_VOLUME 0x883 +#define MADERA_EQ1MIX_INPUT_3_SOURCE 0x884 +#define MADERA_EQ1MIX_INPUT_3_VOLUME 0x885 +#define MADERA_EQ1MIX_INPUT_4_SOURCE 0x886 +#define MADERA_EQ1MIX_INPUT_4_VOLUME 0x887 +#define MADERA_EQ2MIX_INPUT_1_SOURCE 0x888 +#define MADERA_EQ2MIX_INPUT_1_VOLUME 0x889 +#define MADERA_EQ2MIX_INPUT_2_SOURCE 0x88A +#define MADERA_EQ2MIX_INPUT_2_VOLUME 0x88B +#define MADERA_EQ2MIX_INPUT_3_SOURCE 0x88C +#define MADERA_EQ2MIX_INPUT_3_VOLUME 0x88D +#define MADERA_EQ2MIX_INPUT_4_SOURCE 0x88E +#define MADERA_EQ2MIX_INPUT_4_VOLUME 0x88F +#define MADERA_EQ3MIX_INPUT_1_SOURCE 0x890 +#define MADERA_EQ3MIX_INPUT_1_VOLUME 0x891 +#define MADERA_EQ3MIX_INPUT_2_SOURCE 0x892 +#define MADERA_EQ3MIX_INPUT_2_VOLUME 0x893 +#define MADERA_EQ3MIX_INPUT_3_SOURCE 0x894 +#define MADERA_EQ3MIX_INPUT_3_VOLUME 0x895 +#define MADERA_EQ3MIX_INPUT_4_SOURCE 0x896 +#define MADERA_EQ3MIX_INPUT_4_VOLUME 0x897 +#define MADERA_EQ4MIX_INPUT_1_SOURCE 0x898 +#define MADERA_EQ4MIX_INPUT_1_VOLUME 0x899 +#define MADERA_EQ4MIX_INPUT_2_SOURCE 0x89A +#define MADERA_EQ4MIX_INPUT_2_VOLUME 0x89B +#define MADERA_EQ4MIX_INPUT_3_SOURCE 0x89C +#define MADERA_EQ4MIX_INPUT_3_VOLUME 0x89D +#define MADERA_EQ4MIX_INPUT_4_SOURCE 0x89E +#define MADERA_EQ4MIX_INPUT_4_VOLUME 0x89F +#define MADERA_DRC1LMIX_INPUT_1_SOURCE 0x8C0 +#define MADERA_DRC1LMIX_INPUT_1_VOLUME 0x8C1 +#define MADERA_DRC1LMIX_INPUT_2_SOURCE 0x8C2 +#define MADERA_DRC1LMIX_INPUT_2_VOLUME 0x8C3 +#define MADERA_DRC1LMIX_INPUT_3_SOURCE 0x8C4 +#define MADERA_DRC1LMIX_INPUT_3_VOLUME 0x8C5 +#define MADERA_DRC1LMIX_INPUT_4_SOURCE 0x8C6 +#define MADERA_DRC1LMIX_INPUT_4_VOLUME 0x8C7 +#define MADERA_DRC1RMIX_INPUT_1_SOURCE 0x8C8 +#define MADERA_DRC1RMIX_INPUT_1_VOLUME 0x8C9 +#define MADERA_DRC1RMIX_INPUT_2_SOURCE 0x8CA +#define MADERA_DRC1RMIX_INPUT_2_VOLUME 0x8CB +#define MADERA_DRC1RMIX_INPUT_3_SOURCE 0x8CC +#define MADERA_DRC1RMIX_INPUT_3_VOLUME 0x8CD +#define MADERA_DRC1RMIX_INPUT_4_SOURCE 0x8CE +#define MADERA_DRC1RMIX_INPUT_4_VOLUME 0x8CF +#define MADERA_DRC2LMIX_INPUT_1_SOURCE 0x8D0 +#define MADERA_DRC2LMIX_INPUT_1_VOLUME 0x8D1 +#define MADERA_DRC2LMIX_INPUT_2_SOURCE 0x8D2 +#define MADERA_DRC2LMIX_INPUT_2_VOLUME 0x8D3 +#define MADERA_DRC2LMIX_INPUT_3_SOURCE 0x8D4 +#define MADERA_DRC2LMIX_INPUT_3_VOLUME 0x8D5 +#define MADERA_DRC2LMIX_INPUT_4_SOURCE 0x8D6 +#define MADERA_DRC2LMIX_INPUT_4_VOLUME 0x8D7 +#define MADERA_DRC2RMIX_INPUT_1_SOURCE 0x8D8 +#define MADERA_DRC2RMIX_INPUT_1_VOLUME 0x8D9 +#define MADERA_DRC2RMIX_INPUT_2_SOURCE 0x8DA +#define MADERA_DRC2RMIX_INPUT_2_VOLUME 0x8DB +#define MADERA_DRC2RMIX_INPUT_3_SOURCE 0x8DC +#define MADERA_DRC2RMIX_INPUT_3_VOLUME 0x8DD +#define MADERA_DRC2RMIX_INPUT_4_SOURCE 0x8DE +#define MADERA_DRC2RMIX_INPUT_4_VOLUME 0x8DF +#define MADERA_HPLP1MIX_INPUT_1_SOURCE 0x900 +#define MADERA_HPLP1MIX_INPUT_1_VOLUME 0x901 +#define MADERA_HPLP1MIX_INPUT_2_SOURCE 0x902 +#define MADERA_HPLP1MIX_INPUT_2_VOLUME 0x903 +#define MADERA_HPLP1MIX_INPUT_3_SOURCE 0x904 +#define MADERA_HPLP1MIX_INPUT_3_VOLUME 0x905 +#define MADERA_HPLP1MIX_INPUT_4_SOURCE 0x906 +#define MADERA_HPLP1MIX_INPUT_4_VOLUME 0x907 +#define MADERA_HPLP2MIX_INPUT_1_SOURCE 0x908 +#define MADERA_HPLP2MIX_INPUT_1_VOLUME 0x909 +#define MADERA_HPLP2MIX_INPUT_2_SOURCE 0x90A +#define MADERA_HPLP2MIX_INPUT_2_VOLUME 0x90B +#define MADERA_HPLP2MIX_INPUT_3_SOURCE 0x90C +#define MADERA_HPLP2MIX_INPUT_3_VOLUME 0x90D +#define MADERA_HPLP2MIX_INPUT_4_SOURCE 0x90E +#define MADERA_HPLP2MIX_INPUT_4_VOLUME 0x90F +#define MADERA_HPLP3MIX_INPUT_1_SOURCE 0x910 +#define MADERA_HPLP3MIX_INPUT_1_VOLUME 0x911 +#define MADERA_HPLP3MIX_INPUT_2_SOURCE 0x912 +#define MADERA_HPLP3MIX_INPUT_2_VOLUME 0x913 +#define MADERA_HPLP3MIX_INPUT_3_SOURCE 0x914 +#define MADERA_HPLP3MIX_INPUT_3_VOLUME 0x915 +#define MADERA_HPLP3MIX_INPUT_4_SOURCE 0x916 +#define MADERA_HPLP3MIX_INPUT_4_VOLUME 0x917 +#define MADERA_HPLP4MIX_INPUT_1_SOURCE 0x918 +#define MADERA_HPLP4MIX_INPUT_1_VOLUME 0x919 +#define MADERA_HPLP4MIX_INPUT_2_SOURCE 0x91A +#define MADERA_HPLP4MIX_INPUT_2_VOLUME 0x91B +#define MADERA_HPLP4MIX_INPUT_3_SOURCE 0x91C +#define MADERA_HPLP4MIX_INPUT_3_VOLUME 0x91D +#define MADERA_HPLP4MIX_INPUT_4_SOURCE 0x91E +#define MADERA_HPLP4MIX_INPUT_4_VOLUME 0x91F +#define MADERA_DSP1LMIX_INPUT_1_SOURCE 0x940 +#define MADERA_DSP1LMIX_INPUT_1_VOLUME 0x941 +#define MADERA_DSP1LMIX_INPUT_2_SOURCE 0x942 +#define MADERA_DSP1LMIX_INPUT_2_VOLUME 0x943 +#define MADERA_DSP1LMIX_INPUT_3_SOURCE 0x944 +#define MADERA_DSP1LMIX_INPUT_3_VOLUME 0x945 +#define MADERA_DSP1LMIX_INPUT_4_SOURCE 0x946 +#define MADERA_DSP1LMIX_INPUT_4_VOLUME 0x947 +#define MADERA_DSP1RMIX_INPUT_1_SOURCE 0x948 +#define MADERA_DSP1RMIX_INPUT_1_VOLUME 0x949 +#define MADERA_DSP1RMIX_INPUT_2_SOURCE 0x94A +#define MADERA_DSP1RMIX_INPUT_2_VOLUME 0x94B +#define MADERA_DSP1RMIX_INPUT_3_SOURCE 0x94C +#define MADERA_DSP1RMIX_INPUT_3_VOLUME 0x94D +#define MADERA_DSP1RMIX_INPUT_4_SOURCE 0x94E +#define MADERA_DSP1RMIX_INPUT_4_VOLUME 0x94F +#define MADERA_DSP1AUX1MIX_INPUT_1_SOURCE 0x950 +#define MADERA_DSP1AUX2MIX_INPUT_1_SOURCE 0x958 +#define MADERA_DSP1AUX3MIX_INPUT_1_SOURCE 0x960 +#define MADERA_DSP1AUX4MIX_INPUT_1_SOURCE 0x968 +#define MADERA_DSP1AUX5MIX_INPUT_1_SOURCE 0x970 +#define MADERA_DSP1AUX6MIX_INPUT_1_SOURCE 0x978 +#define MADERA_DSP2LMIX_INPUT_1_SOURCE 0x980 +#define MADERA_DSP2LMIX_INPUT_1_VOLUME 0x981 +#define MADERA_DSP2LMIX_INPUT_2_SOURCE 0x982 +#define MADERA_DSP2LMIX_INPUT_2_VOLUME 0x983 +#define MADERA_DSP2LMIX_INPUT_3_SOURCE 0x984 +#define MADERA_DSP2LMIX_INPUT_3_VOLUME 0x985 +#define MADERA_DSP2LMIX_INPUT_4_SOURCE 0x986 +#define MADERA_DSP2LMIX_INPUT_4_VOLUME 0x987 +#define MADERA_DSP2RMIX_INPUT_1_SOURCE 0x988 +#define MADERA_DSP2RMIX_INPUT_1_VOLUME 0x989 +#define MADERA_DSP2RMIX_INPUT_2_SOURCE 0x98A +#define MADERA_DSP2RMIX_INPUT_2_VOLUME 0x98B +#define MADERA_DSP2RMIX_INPUT_3_SOURCE 0x98C +#define MADERA_DSP2RMIX_INPUT_3_VOLUME 0x98D +#define MADERA_DSP2RMIX_INPUT_4_SOURCE 0x98E +#define MADERA_DSP2RMIX_INPUT_4_VOLUME 0x98F +#define MADERA_DSP2AUX1MIX_INPUT_1_SOURCE 0x990 +#define MADERA_DSP2AUX2MIX_INPUT_1_SOURCE 0x998 +#define MADERA_DSP2AUX3MIX_INPUT_1_SOURCE 0x9A0 +#define MADERA_DSP2AUX4MIX_INPUT_1_SOURCE 0x9A8 +#define MADERA_DSP2AUX5MIX_INPUT_1_SOURCE 0x9B0 +#define MADERA_DSP2AUX6MIX_INPUT_1_SOURCE 0x9B8 +#define MADERA_DSP3LMIX_INPUT_1_SOURCE 0x9C0 +#define MADERA_DSP3LMIX_INPUT_1_VOLUME 0x9C1 +#define MADERA_DSP3LMIX_INPUT_2_SOURCE 0x9C2 +#define MADERA_DSP3LMIX_INPUT_2_VOLUME 0x9C3 +#define MADERA_DSP3LMIX_INPUT_3_SOURCE 0x9C4 +#define MADERA_DSP3LMIX_INPUT_3_VOLUME 0x9C5 +#define MADERA_DSP3LMIX_INPUT_4_SOURCE 0x9C6 +#define MADERA_DSP3LMIX_INPUT_4_VOLUME 0x9C7 +#define MADERA_DSP3RMIX_INPUT_1_SOURCE 0x9C8 +#define MADERA_DSP3RMIX_INPUT_1_VOLUME 0x9C9 +#define MADERA_DSP3RMIX_INPUT_2_SOURCE 0x9CA +#define MADERA_DSP3RMIX_INPUT_2_VOLUME 0x9CB +#define MADERA_DSP3RMIX_INPUT_3_SOURCE 0x9CC +#define MADERA_DSP3RMIX_INPUT_3_VOLUME 0x9CD +#define MADERA_DSP3RMIX_INPUT_4_SOURCE 0x9CE +#define MADERA_DSP3RMIX_INPUT_4_VOLUME 0x9CF +#define MADERA_DSP3AUX1MIX_INPUT_1_SOURCE 0x9D0 +#define MADERA_DSP3AUX2MIX_INPUT_1_SOURCE 0x9D8 +#define MADERA_DSP3AUX3MIX_INPUT_1_SOURCE 0x9E0 +#define MADERA_DSP3AUX4MIX_INPUT_1_SOURCE 0x9E8 +#define MADERA_DSP3AUX5MIX_INPUT_1_SOURCE 0x9F0 +#define MADERA_DSP3AUX6MIX_INPUT_1_SOURCE 0x9F8 +#define MADERA_DSP4LMIX_INPUT_1_SOURCE 0xA00 +#define MADERA_DSP4LMIX_INPUT_1_VOLUME 0xA01 +#define MADERA_DSP4LMIX_INPUT_2_SOURCE 0xA02 +#define MADERA_DSP4LMIX_INPUT_2_VOLUME 0xA03 +#define MADERA_DSP4LMIX_INPUT_3_SOURCE 0xA04 +#define MADERA_DSP4LMIX_INPUT_3_VOLUME 0xA05 +#define MADERA_DSP4LMIX_INPUT_4_SOURCE 0xA06 +#define MADERA_DSP4LMIX_INPUT_4_VOLUME 0xA07 +#define MADERA_DSP4RMIX_INPUT_1_SOURCE 0xA08 +#define MADERA_DSP4RMIX_INPUT_1_VOLUME 0xA09 +#define MADERA_DSP4RMIX_INPUT_2_SOURCE 0xA0A +#define MADERA_DSP4RMIX_INPUT_2_VOLUME 0xA0B +#define MADERA_DSP4RMIX_INPUT_3_SOURCE 0xA0C +#define MADERA_DSP4RMIX_INPUT_3_VOLUME 0xA0D +#define MADERA_DSP4RMIX_INPUT_4_SOURCE 0xA0E +#define MADERA_DSP4RMIX_INPUT_4_VOLUME 0xA0F +#define MADERA_DSP4AUX1MIX_INPUT_1_SOURCE 0xA10 +#define MADERA_DSP4AUX2MIX_INPUT_1_SOURCE 0xA18 +#define MADERA_DSP4AUX3MIX_INPUT_1_SOURCE 0xA20 +#define MADERA_DSP4AUX4MIX_INPUT_1_SOURCE 0xA28 +#define MADERA_DSP4AUX5MIX_INPUT_1_SOURCE 0xA30 +#define MADERA_DSP4AUX6MIX_INPUT_1_SOURCE 0xA38 +#define MADERA_DSP5LMIX_INPUT_1_SOURCE 0xA40 +#define MADERA_DSP5LMIX_INPUT_1_VOLUME 0xA41 +#define MADERA_DSP5LMIX_INPUT_2_SOURCE 0xA42 +#define MADERA_DSP5LMIX_INPUT_2_VOLUME 0xA43 +#define MADERA_DSP5LMIX_INPUT_3_SOURCE 0xA44 +#define MADERA_DSP5LMIX_INPUT_3_VOLUME 0xA45 +#define MADERA_DSP5LMIX_INPUT_4_SOURCE 0xA46 +#define MADERA_DSP5LMIX_INPUT_4_VOLUME 0xA47 +#define MADERA_DSP5RMIX_INPUT_1_SOURCE 0xA48 +#define MADERA_DSP5RMIX_INPUT_1_VOLUME 0xA49 +#define MADERA_DSP5RMIX_INPUT_2_SOURCE 0xA4A +#define MADERA_DSP5RMIX_INPUT_2_VOLUME 0xA4B +#define MADERA_DSP5RMIX_INPUT_3_SOURCE 0xA4C +#define MADERA_DSP5RMIX_INPUT_3_VOLUME 0xA4D +#define MADERA_DSP5RMIX_INPUT_4_SOURCE 0xA4E +#define MADERA_DSP5RMIX_INPUT_4_VOLUME 0xA4F +#define MADERA_DSP5AUX1MIX_INPUT_1_SOURCE 0xA50 +#define MADERA_DSP5AUX2MIX_INPUT_1_SOURCE 0xA58 +#define MADERA_DSP5AUX3MIX_INPUT_1_SOURCE 0xA60 +#define MADERA_DSP5AUX4MIX_INPUT_1_SOURCE 0xA68 +#define MADERA_DSP5AUX5MIX_INPUT_1_SOURCE 0xA70 +#define MADERA_DSP5AUX6MIX_INPUT_1_SOURCE 0xA78 +#define MADERA_ASRC1_1LMIX_INPUT_1_SOURCE 0xA80 +#define MADERA_ASRC1_1RMIX_INPUT_1_SOURCE 0xA88 +#define MADERA_ASRC1_2LMIX_INPUT_1_SOURCE 0xA90 +#define MADERA_ASRC1_2RMIX_INPUT_1_SOURCE 0xA98 +#define MADERA_ASRC2_1LMIX_INPUT_1_SOURCE 0xAA0 +#define MADERA_ASRC2_1RMIX_INPUT_1_SOURCE 0xAA8 +#define MADERA_ASRC2_2LMIX_INPUT_1_SOURCE 0xAB0 +#define MADERA_ASRC2_2RMIX_INPUT_1_SOURCE 0xAB8 +#define MADERA_ISRC1DEC1MIX_INPUT_1_SOURCE 0xB00 +#define MADERA_ISRC1DEC2MIX_INPUT_1_SOURCE 0xB08 +#define MADERA_ISRC1DEC3MIX_INPUT_1_SOURCE 0xB10 +#define MADERA_ISRC1DEC4MIX_INPUT_1_SOURCE 0xB18 +#define MADERA_ISRC1INT1MIX_INPUT_1_SOURCE 0xB20 +#define MADERA_ISRC1INT2MIX_INPUT_1_SOURCE 0xB28 +#define MADERA_ISRC1INT3MIX_INPUT_1_SOURCE 0xB30 +#define MADERA_ISRC1INT4MIX_INPUT_1_SOURCE 0xB38 +#define MADERA_ISRC2DEC1MIX_INPUT_1_SOURCE 0xB40 +#define MADERA_ISRC2DEC2MIX_INPUT_1_SOURCE 0xB48 +#define MADERA_ISRC2DEC3MIX_INPUT_1_SOURCE 0xB50 +#define MADERA_ISRC2DEC4MIX_INPUT_1_SOURCE 0xB58 +#define MADERA_ISRC2INT1MIX_INPUT_1_SOURCE 0xB60 +#define MADERA_ISRC2INT2MIX_INPUT_1_SOURCE 0xB68 +#define MADERA_ISRC2INT3MIX_INPUT_1_SOURCE 0xB70 +#define MADERA_ISRC2INT4MIX_INPUT_1_SOURCE 0xB78 +#define MADERA_ISRC3DEC1MIX_INPUT_1_SOURCE 0xB80 +#define MADERA_ISRC3DEC2MIX_INPUT_1_SOURCE 0xB88 +#define MADERA_ISRC3DEC3MIX_INPUT_1_SOURCE 0xB90 +#define MADERA_ISRC3DEC4MIX_INPUT_1_SOURCE 0xB98 +#define MADERA_ISRC3INT1MIX_INPUT_1_SOURCE 0xBA0 +#define MADERA_ISRC3INT2MIX_INPUT_1_SOURCE 0xBA8 +#define MADERA_ISRC3INT3MIX_INPUT_1_SOURCE 0xBB0 +#define MADERA_ISRC3INT4MIX_INPUT_1_SOURCE 0xBB8 +#define MADERA_ISRC4DEC1MIX_INPUT_1_SOURCE 0xBC0 +#define MADERA_ISRC4DEC2MIX_INPUT_1_SOURCE 0xBC8 +#define MADERA_ISRC4INT1MIX_INPUT_1_SOURCE 0xBE0 +#define MADERA_ISRC4INT2MIX_INPUT_1_SOURCE 0xBE8 +#define MADERA_DSP6LMIX_INPUT_1_SOURCE 0xC00 +#define MADERA_DSP6LMIX_INPUT_1_VOLUME 0xC01 +#define MADERA_DSP6LMIX_INPUT_2_SOURCE 0xC02 +#define MADERA_DSP6LMIX_INPUT_2_VOLUME 0xC03 +#define MADERA_DSP6LMIX_INPUT_3_SOURCE 0xC04 +#define MADERA_DSP6LMIX_INPUT_3_VOLUME 0xC05 +#define MADERA_DSP6LMIX_INPUT_4_SOURCE 0xC06 +#define MADERA_DSP6LMIX_INPUT_4_VOLUME 0xC07 +#define MADERA_DSP6RMIX_INPUT_1_SOURCE 0xC08 +#define MADERA_DSP6RMIX_INPUT_1_VOLUME 0xC09 +#define MADERA_DSP6RMIX_INPUT_2_SOURCE 0xC0A +#define MADERA_DSP6RMIX_INPUT_2_VOLUME 0xC0B +#define MADERA_DSP6RMIX_INPUT_3_SOURCE 0xC0C +#define MADERA_DSP6RMIX_INPUT_3_VOLUME 0xC0D +#define MADERA_DSP6RMIX_INPUT_4_SOURCE 0xC0E +#define MADERA_DSP6RMIX_INPUT_4_VOLUME 0xC0F +#define MADERA_DSP6AUX1MIX_INPUT_1_SOURCE 0xC10 +#define MADERA_DSP6AUX2MIX_INPUT_1_SOURCE 0xC18 +#define MADERA_DSP6AUX3MIX_INPUT_1_SOURCE 0xC20 +#define MADERA_DSP6AUX4MIX_INPUT_1_SOURCE 0xC28 +#define MADERA_DSP6AUX5MIX_INPUT_1_SOURCE 0xC30 +#define MADERA_DSP6AUX6MIX_INPUT_1_SOURCE 0xC38 +#define MADERA_DSP7LMIX_INPUT_1_SOURCE 0xC40 +#define MADERA_DSP7LMIX_INPUT_1_VOLUME 0xC41 +#define MADERA_DSP7LMIX_INPUT_2_SOURCE 0xC42 +#define MADERA_DSP7LMIX_INPUT_2_VOLUME 0xC43 +#define MADERA_DSP7LMIX_INPUT_3_SOURCE 0xC44 +#define MADERA_DSP7LMIX_INPUT_3_VOLUME 0xC45 +#define MADERA_DSP7LMIX_INPUT_4_SOURCE 0xC46 +#define MADERA_DSP7LMIX_INPUT_4_VOLUME 0xC47 +#define MADERA_DSP7RMIX_INPUT_1_SOURCE 0xC48 +#define MADERA_DSP7RMIX_INPUT_1_VOLUME 0xC49 +#define MADERA_DSP7RMIX_INPUT_2_SOURCE 0xC4A +#define MADERA_DSP7RMIX_INPUT_2_VOLUME 0xC4B +#define MADERA_DSP7RMIX_INPUT_3_SOURCE 0xC4C +#define MADERA_DSP7RMIX_INPUT_3_VOLUME 0xC4D +#define MADERA_DSP7RMIX_INPUT_4_SOURCE 0xC4E +#define MADERA_DSP7RMIX_INPUT_4_VOLUME 0xC4F +#define MADERA_DSP7AUX1MIX_INPUT_1_SOURCE 0xC50 +#define MADERA_DSP7AUX2MIX_INPUT_1_SOURCE 0xC58 +#define MADERA_DSP7AUX3MIX_INPUT_1_SOURCE 0xC60 +#define MADERA_DSP7AUX4MIX_INPUT_1_SOURCE 0xC68 +#define MADERA_DSP7AUX5MIX_INPUT_1_SOURCE 0xC70 +#define MADERA_DSP7AUX6MIX_INPUT_1_SOURCE 0xC78 +#define MADERA_DFC1MIX_INPUT_1_SOURCE 0xDC0 +#define MADERA_DFC2MIX_INPUT_1_SOURCE 0xDC8 +#define MADERA_DFC3MIX_INPUT_1_SOURCE 0xDD0 +#define MADERA_DFC4MIX_INPUT_1_SOURCE 0xDD8 +#define MADERA_DFC5MIX_INPUT_1_SOURCE 0xDE0 +#define MADERA_DFC6MIX_INPUT_1_SOURCE 0xDE8 +#define MADERA_DFC7MIX_INPUT_1_SOURCE 0xDF0 +#define MADERA_DFC8MIX_INPUT_1_SOURCE 0xDF8 +#define MADERA_FX_CTRL1 0xE00 +#define MADERA_FX_CTRL2 0xE01 +#define MADERA_EQ1_1 0xE10 +#define MADERA_EQ1_2 0xE11 +#define MADERA_EQ1_3 0xE12 +#define MADERA_EQ1_4 0xE13 +#define MADERA_EQ1_5 0xE14 +#define MADERA_EQ1_6 0xE15 +#define MADERA_EQ1_7 0xE16 +#define MADERA_EQ1_8 0xE17 +#define MADERA_EQ1_9 0xE18 +#define MADERA_EQ1_10 0xE19 +#define MADERA_EQ1_11 0xE1A +#define MADERA_EQ1_12 0xE1B +#define MADERA_EQ1_13 0xE1C +#define MADERA_EQ1_14 0xE1D +#define MADERA_EQ1_15 0xE1E +#define MADERA_EQ1_16 0xE1F +#define MADERA_EQ1_17 0xE20 +#define MADERA_EQ1_18 0xE21 +#define MADERA_EQ1_19 0xE22 +#define MADERA_EQ1_20 0xE23 +#define MADERA_EQ1_21 0xE24 +#define MADERA_EQ2_1 0xE26 +#define MADERA_EQ2_2 0xE27 +#define MADERA_EQ2_3 0xE28 +#define MADERA_EQ2_4 0xE29 +#define MADERA_EQ2_5 0xE2A +#define MADERA_EQ2_6 0xE2B +#define MADERA_EQ2_7 0xE2C +#define MADERA_EQ2_8 0xE2D +#define MADERA_EQ2_9 0xE2E +#define MADERA_EQ2_10 0xE2F +#define MADERA_EQ2_11 0xE30 +#define MADERA_EQ2_12 0xE31 +#define MADERA_EQ2_13 0xE32 +#define MADERA_EQ2_14 0xE33 +#define MADERA_EQ2_15 0xE34 +#define MADERA_EQ2_16 0xE35 +#define MADERA_EQ2_17 0xE36 +#define MADERA_EQ2_18 0xE37 +#define MADERA_EQ2_19 0xE38 +#define MADERA_EQ2_20 0xE39 +#define MADERA_EQ2_21 0xE3A +#define MADERA_EQ3_1 0xE3C +#define MADERA_EQ3_2 0xE3D +#define MADERA_EQ3_3 0xE3E +#define MADERA_EQ3_4 0xE3F +#define MADERA_EQ3_5 0xE40 +#define MADERA_EQ3_6 0xE41 +#define MADERA_EQ3_7 0xE42 +#define MADERA_EQ3_8 0xE43 +#define MADERA_EQ3_9 0xE44 +#define MADERA_EQ3_10 0xE45 +#define MADERA_EQ3_11 0xE46 +#define MADERA_EQ3_12 0xE47 +#define MADERA_EQ3_13 0xE48 +#define MADERA_EQ3_14 0xE49 +#define MADERA_EQ3_15 0xE4A +#define MADERA_EQ3_16 0xE4B +#define MADERA_EQ3_17 0xE4C +#define MADERA_EQ3_18 0xE4D +#define MADERA_EQ3_19 0xE4E +#define MADERA_EQ3_20 0xE4F +#define MADERA_EQ3_21 0xE50 +#define MADERA_EQ4_1 0xE52 +#define MADERA_EQ4_2 0xE53 +#define MADERA_EQ4_3 0xE54 +#define MADERA_EQ4_4 0xE55 +#define MADERA_EQ4_5 0xE56 +#define MADERA_EQ4_6 0xE57 +#define MADERA_EQ4_7 0xE58 +#define MADERA_EQ4_8 0xE59 +#define MADERA_EQ4_9 0xE5A +#define MADERA_EQ4_10 0xE5B +#define MADERA_EQ4_11 0xE5C +#define MADERA_EQ4_12 0xE5D +#define MADERA_EQ4_13 0xE5E +#define MADERA_EQ4_14 0xE5F +#define MADERA_EQ4_15 0xE60 +#define MADERA_EQ4_16 0xE61 +#define MADERA_EQ4_17 0xE62 +#define MADERA_EQ4_18 0xE63 +#define MADERA_EQ4_19 0xE64 +#define MADERA_EQ4_20 0xE65 +#define MADERA_EQ4_21 0xE66 +#define MADERA_DRC1_CTRL1 0xE80 +#define MADERA_DRC1_CTRL2 0xE81 +#define MADERA_DRC1_CTRL3 0xE82 +#define MADERA_DRC1_CTRL4 0xE83 +#define MADERA_DRC1_CTRL5 0xE84 +#define MADERA_DRC2_CTRL1 0xE88 +#define MADERA_DRC2_CTRL2 0xE89 +#define MADERA_DRC2_CTRL3 0xE8A +#define MADERA_DRC2_CTRL4 0xE8B +#define MADERA_DRC2_CTRL5 0xE8C +#define MADERA_HPLPF1_1 0xEC0 +#define MADERA_HPLPF1_2 0xEC1 +#define MADERA_HPLPF2_1 0xEC4 +#define MADERA_HPLPF2_2 0xEC5 +#define MADERA_HPLPF3_1 0xEC8 +#define MADERA_HPLPF3_2 0xEC9 +#define MADERA_HPLPF4_1 0xECC +#define MADERA_HPLPF4_2 0xECD +#define MADERA_ASRC2_ENABLE 0xED0 +#define MADERA_ASRC2_STATUS 0xED1 +#define MADERA_ASRC2_RATE1 0xED2 +#define MADERA_ASRC2_RATE2 0xED3 +#define MADERA_ASRC1_ENABLE 0xEE0 +#define MADERA_ASRC1_STATUS 0xEE1 +#define MADERA_ASRC1_RATE1 0xEE2 +#define MADERA_ASRC1_RATE2 0xEE3 +#define MADERA_ISRC_1_CTRL_1 0xEF0 +#define MADERA_ISRC_1_CTRL_2 0xEF1 +#define MADERA_ISRC_1_CTRL_3 0xEF2 +#define MADERA_ISRC_2_CTRL_1 0xEF3 +#define MADERA_ISRC_2_CTRL_2 0xEF4 +#define MADERA_ISRC_2_CTRL_3 0xEF5 +#define MADERA_ISRC_3_CTRL_1 0xEF6 +#define MADERA_ISRC_3_CTRL_2 0xEF7 +#define MADERA_ISRC_3_CTRL_3 0xEF8 +#define MADERA_ISRC_4_CTRL_1 0xEF9 +#define MADERA_ISRC_4_CTRL_2 0xEFA +#define MADERA_ISRC_4_CTRL_3 0xEFB +#define MADERA_CLOCK_CONTROL 0xF00 +#define MADERA_ANC_SRC 0xF01 +#define MADERA_DSP_STATUS 0xF02 +#define MADERA_ANC_COEFF_START 0xF08 +#define MADERA_ANC_COEFF_END 0xF12 +#define MADERA_FCL_FILTER_CONTROL 0xF15 +#define MADERA_FCL_ADC_REFORMATTER_CONTROL 0xF17 +#define MADERA_FCL_COEFF_START 0xF18 +#define MADERA_FCL_COEFF_END 0xF69 +#define MADERA_FCR_FILTER_CONTROL 0xF71 +#define MADERA_FCR_ADC_REFORMATTER_CONTROL 0xF73 +#define MADERA_FCR_COEFF_START 0xF74 +#define MADERA_FCR_COEFF_END 0xFC5 +#define MADERA_DAC_COMP_1 0x1300 +#define MADERA_DAC_COMP_2 0x1302 +#define MADERA_FRF_COEFFICIENT_1L_1 0x1380 +#define MADERA_FRF_COEFFICIENT_1L_2 0x1381 +#define MADERA_FRF_COEFFICIENT_1L_3 0x1382 +#define MADERA_FRF_COEFFICIENT_1L_4 0x1383 +#define MADERA_FRF_COEFFICIENT_1R_1 0x1390 +#define MADERA_FRF_COEFFICIENT_1R_2 0x1391 +#define MADERA_FRF_COEFFICIENT_1R_3 0x1392 +#define MADERA_FRF_COEFFICIENT_1R_4 0x1393 +#define MADERA_FRF_COEFFICIENT_2L_1 0x13A0 +#define MADERA_FRF_COEFFICIENT_2L_2 0x13A1 +#define MADERA_FRF_COEFFICIENT_2L_3 0x13A2 +#define MADERA_FRF_COEFFICIENT_2L_4 0x13A3 +#define MADERA_FRF_COEFFICIENT_2R_1 0x13B0 +#define MADERA_FRF_COEFFICIENT_2R_2 0x13B1 +#define MADERA_FRF_COEFFICIENT_2R_3 0x13B2 +#define MADERA_FRF_COEFFICIENT_2R_4 0x13B3 +#define MADERA_FRF_COEFFICIENT_3L_1 0x13C0 +#define MADERA_FRF_COEFFICIENT_3L_2 0x13C1 +#define MADERA_FRF_COEFFICIENT_3L_3 0x13C2 +#define MADERA_FRF_COEFFICIENT_3L_4 0x13C3 +#define MADERA_FRF_COEFFICIENT_3R_1 0x13D0 +#define MADERA_FRF_COEFFICIENT_3R_2 0x13D1 +#define MADERA_FRF_COEFFICIENT_3R_3 0x13D2 +#define MADERA_FRF_COEFFICIENT_3R_4 0x13D3 +#define MADERA_FRF_COEFFICIENT_4L_1 0x13E0 +#define MADERA_FRF_COEFFICIENT_4L_2 0x13E1 +#define MADERA_FRF_COEFFICIENT_4L_3 0x13E2 +#define MADERA_FRF_COEFFICIENT_4L_4 0x13E3 +#define MADERA_FRF_COEFFICIENT_4R_1 0x13F0 +#define MADERA_FRF_COEFFICIENT_4R_2 0x13F1 +#define MADERA_FRF_COEFFICIENT_4R_3 0x13F2 +#define MADERA_FRF_COEFFICIENT_4R_4 0x13F3 +#define CS47L35_FRF_COEFFICIENT_4L_1 0x13A0 +#define CS47L35_FRF_COEFFICIENT_4L_2 0x13A1 +#define CS47L35_FRF_COEFFICIENT_4L_3 0x13A2 +#define CS47L35_FRF_COEFFICIENT_4L_4 0x13A3 +#define CS47L35_FRF_COEFFICIENT_5L_1 0x13B0 +#define CS47L35_FRF_COEFFICIENT_5L_2 0x13B1 +#define CS47L35_FRF_COEFFICIENT_5L_3 0x13B2 +#define CS47L35_FRF_COEFFICIENT_5L_4 0x13B3 +#define CS47L35_FRF_COEFFICIENT_5R_1 0x13C0 +#define CS47L35_FRF_COEFFICIENT_5R_2 0x13C1 +#define CS47L35_FRF_COEFFICIENT_5R_3 0x13C2 +#define CS47L35_FRF_COEFFICIENT_5R_4 0x13C3 +#define MADERA_FRF_COEFFICIENT_5L_1 0x1400 +#define MADERA_FRF_COEFFICIENT_5L_2 0x1401 +#define MADERA_FRF_COEFFICIENT_5L_3 0x1402 +#define MADERA_FRF_COEFFICIENT_5L_4 0x1403 +#define MADERA_FRF_COEFFICIENT_5R_1 0x1410 +#define MADERA_FRF_COEFFICIENT_5R_2 0x1411 +#define MADERA_FRF_COEFFICIENT_5R_3 0x1412 +#define MADERA_FRF_COEFFICIENT_5R_4 0x1413 +#define MADERA_FRF_COEFFICIENT_6L_1 0x1420 +#define MADERA_FRF_COEFFICIENT_6L_2 0x1421 +#define MADERA_FRF_COEFFICIENT_6L_3 0x1422 +#define MADERA_FRF_COEFFICIENT_6L_4 0x1423 +#define MADERA_FRF_COEFFICIENT_6R_1 0x1430 +#define MADERA_FRF_COEFFICIENT_6R_2 0x1431 +#define MADERA_FRF_COEFFICIENT_6R_3 0x1432 +#define MADERA_FRF_COEFFICIENT_6R_4 0x1433 +#define MADERA_DFC1_CTRL 0x1480 +#define MADERA_DFC1_RX 0x1482 +#define MADERA_DFC1_TX 0x1484 +#define MADERA_DFC2_CTRL 0x1486 +#define MADERA_DFC2_RX 0x1488 +#define MADERA_DFC2_TX 0x148A +#define MADERA_DFC3_CTRL 0x148C +#define MADERA_DFC3_RX 0x148E +#define MADERA_DFC3_TX 0x1490 +#define MADERA_DFC4_CTRL 0x1492 +#define MADERA_DFC4_RX 0x1494 +#define MADERA_DFC4_TX 0x1496 +#define MADERA_DFC5_CTRL 0x1498 +#define MADERA_DFC5_RX 0x149A +#define MADERA_DFC5_TX 0x149C +#define MADERA_DFC6_CTRL 0x149E +#define MADERA_DFC6_RX 0x14A0 +#define MADERA_DFC6_TX 0x14A2 +#define MADERA_DFC7_CTRL 0x14A4 +#define MADERA_DFC7_RX 0x14A6 +#define MADERA_DFC7_TX 0x14A8 +#define MADERA_DFC8_CTRL 0x14AA +#define MADERA_DFC8_RX 0x14AC +#define MADERA_DFC8_TX 0x14AE +#define MADERA_DFC_STATUS 0x14B6 +#define MADERA_ADSP2_IRQ0 0x1600 +#define MADERA_ADSP2_IRQ1 0x1601 +#define MADERA_ADSP2_IRQ2 0x1602 +#define MADERA_ADSP2_IRQ3 0x1603 +#define MADERA_ADSP2_IRQ4 0x1604 +#define MADERA_ADSP2_IRQ5 0x1605 +#define MADERA_ADSP2_IRQ6 0x1606 +#define MADERA_ADSP2_IRQ7 0x1607 +#define MADERA_GPIO1_CTRL_1 0x1700 +#define MADERA_GPIO1_CTRL_2 0x1701 +#define MADERA_GPIO2_CTRL_1 0x1702 +#define MADERA_GPIO2_CTRL_2 0x1703 +#define MADERA_GPIO3_CTRL_1 0x1704 +#define MADERA_GPIO3_CTRL_2 0x1705 +#define MADERA_GPIO4_CTRL_1 0x1706 +#define MADERA_GPIO4_CTRL_2 0x1707 +#define MADERA_GPIO5_CTRL_1 0x1708 +#define MADERA_GPIO5_CTRL_2 0x1709 +#define MADERA_GPIO6_CTRL_1 0x170A +#define MADERA_GPIO6_CTRL_2 0x170B +#define MADERA_GPIO7_CTRL_1 0x170C +#define MADERA_GPIO7_CTRL_2 0x170D +#define MADERA_GPIO8_CTRL_1 0x170E +#define MADERA_GPIO8_CTRL_2 0x170F +#define MADERA_GPIO9_CTRL_1 0x1710 +#define MADERA_GPIO9_CTRL_2 0x1711 +#define MADERA_GPIO10_CTRL_1 0x1712 +#define MADERA_GPIO10_CTRL_2 0x1713 +#define MADERA_GPIO11_CTRL_1 0x1714 +#define MADERA_GPIO11_CTRL_2 0x1715 +#define MADERA_GPIO12_CTRL_1 0x1716 +#define MADERA_GPIO12_CTRL_2 0x1717 +#define MADERA_GPIO13_CTRL_1 0x1718 +#define MADERA_GPIO13_CTRL_2 0x1719 +#define MADERA_GPIO14_CTRL_1 0x171A +#define MADERA_GPIO14_CTRL_2 0x171B +#define MADERA_GPIO15_CTRL_1 0x171C +#define MADERA_GPIO15_CTRL_2 0x171D +#define MADERA_GPIO16_CTRL_1 0x171E +#define MADERA_GPIO16_CTRL_2 0x171F +#define MADERA_GPIO17_CTRL_1 0x1720 +#define MADERA_GPIO17_CTRL_2 0x1721 +#define MADERA_GPIO18_CTRL_1 0x1722 +#define MADERA_GPIO18_CTRL_2 0x1723 +#define MADERA_GPIO19_CTRL_1 0x1724 +#define MADERA_GPIO19_CTRL_2 0x1725 +#define MADERA_GPIO20_CTRL_1 0x1726 +#define MADERA_GPIO20_CTRL_2 0x1727 +#define MADERA_GPIO21_CTRL_1 0x1728 +#define MADERA_GPIO21_CTRL_2 0x1729 +#define MADERA_GPIO22_CTRL_1 0x172A +#define MADERA_GPIO22_CTRL_2 0x172B +#define MADERA_GPIO23_CTRL_1 0x172C +#define MADERA_GPIO23_CTRL_2 0x172D +#define MADERA_GPIO24_CTRL_1 0x172E +#define MADERA_GPIO24_CTRL_2 0x172F +#define MADERA_GPIO25_CTRL_1 0x1730 +#define MADERA_GPIO25_CTRL_2 0x1731 +#define MADERA_GPIO26_CTRL_1 0x1732 +#define MADERA_GPIO26_CTRL_2 0x1733 +#define MADERA_GPIO27_CTRL_1 0x1734 +#define MADERA_GPIO27_CTRL_2 0x1735 +#define MADERA_GPIO28_CTRL_1 0x1736 +#define MADERA_GPIO28_CTRL_2 0x1737 +#define MADERA_GPIO29_CTRL_1 0x1738 +#define MADERA_GPIO29_CTRL_2 0x1739 +#define MADERA_GPIO30_CTRL_1 0x173A +#define MADERA_GPIO30_CTRL_2 0x173B +#define MADERA_GPIO31_CTRL_1 0x173C +#define MADERA_GPIO31_CTRL_2 0x173D +#define MADERA_GPIO32_CTRL_1 0x173E +#define MADERA_GPIO32_CTRL_2 0x173F +#define MADERA_GPIO33_CTRL_1 0x1740 +#define MADERA_GPIO33_CTRL_2 0x1741 +#define MADERA_GPIO34_CTRL_1 0x1742 +#define MADERA_GPIO34_CTRL_2 0x1743 +#define MADERA_GPIO35_CTRL_1 0x1744 +#define MADERA_GPIO35_CTRL_2 0x1745 +#define MADERA_GPIO36_CTRL_1 0x1746 +#define MADERA_GPIO36_CTRL_2 0x1747 +#define MADERA_GPIO37_CTRL_1 0x1748 +#define MADERA_GPIO37_CTRL_2 0x1749 +#define MADERA_GPIO38_CTRL_1 0x174A +#define MADERA_GPIO38_CTRL_2 0x174B +#define MADERA_GPIO39_CTRL_1 0x174C +#define MADERA_GPIO39_CTRL_2 0x174D +#define MADERA_GPIO40_CTRL_1 0x174E +#define MADERA_GPIO40_CTRL_2 0x174F +#define MADERA_IRQ1_STATUS_1 0x1800 +#define MADERA_IRQ1_STATUS_2 0x1801 +#define MADERA_IRQ1_STATUS_3 0x1802 +#define MADERA_IRQ1_STATUS_4 0x1803 +#define MADERA_IRQ1_STATUS_5 0x1804 +#define MADERA_IRQ1_STATUS_6 0x1805 +#define MADERA_IRQ1_STATUS_7 0x1806 +#define MADERA_IRQ1_STATUS_8 0x1807 +#define MADERA_IRQ1_STATUS_9 0x1808 +#define MADERA_IRQ1_STATUS_10 0x1809 +#define MADERA_IRQ1_STATUS_11 0x180A +#define MADERA_IRQ1_STATUS_12 0x180B +#define MADERA_IRQ1_STATUS_13 0x180C +#define MADERA_IRQ1_STATUS_14 0x180D +#define MADERA_IRQ1_STATUS_15 0x180E +#define MADERA_IRQ1_STATUS_16 0x180F +#define MADERA_IRQ1_STATUS_17 0x1810 +#define MADERA_IRQ1_STATUS_18 0x1811 +#define MADERA_IRQ1_STATUS_19 0x1812 +#define MADERA_IRQ1_STATUS_20 0x1813 +#define MADERA_IRQ1_STATUS_21 0x1814 +#define MADERA_IRQ1_STATUS_22 0x1815 +#define MADERA_IRQ1_STATUS_23 0x1816 +#define MADERA_IRQ1_STATUS_24 0x1817 +#define MADERA_IRQ1_STATUS_25 0x1818 +#define MADERA_IRQ1_STATUS_26 0x1819 +#define MADERA_IRQ1_STATUS_27 0x181A +#define MADERA_IRQ1_STATUS_28 0x181B +#define MADERA_IRQ1_STATUS_29 0x181C +#define MADERA_IRQ1_STATUS_30 0x181D +#define MADERA_IRQ1_STATUS_31 0x181E +#define MADERA_IRQ1_STATUS_32 0x181F +#define MADERA_IRQ1_STATUS_33 0x1820 +#define MADERA_IRQ1_MASK_1 0x1840 +#define MADERA_IRQ1_MASK_2 0x1841 +#define MADERA_IRQ1_MASK_3 0x1842 +#define MADERA_IRQ1_MASK_4 0x1843 +#define MADERA_IRQ1_MASK_5 0x1844 +#define MADERA_IRQ1_MASK_6 0x1845 +#define MADERA_IRQ1_MASK_7 0x1846 +#define MADERA_IRQ1_MASK_8 0x1847 +#define MADERA_IRQ1_MASK_9 0x1848 +#define MADERA_IRQ1_MASK_10 0x1849 +#define MADERA_IRQ1_MASK_11 0x184A +#define MADERA_IRQ1_MASK_12 0x184B +#define MADERA_IRQ1_MASK_13 0x184C +#define MADERA_IRQ1_MASK_14 0x184D +#define MADERA_IRQ1_MASK_15 0x184E +#define MADERA_IRQ1_MASK_16 0x184F +#define MADERA_IRQ1_MASK_17 0x1850 +#define MADERA_IRQ1_MASK_18 0x1851 +#define MADERA_IRQ1_MASK_19 0x1852 +#define MADERA_IRQ1_MASK_20 0x1853 +#define MADERA_IRQ1_MASK_21 0x1854 +#define MADERA_IRQ1_MASK_22 0x1855 +#define MADERA_IRQ1_MASK_23 0x1856 +#define MADERA_IRQ1_MASK_24 0x1857 +#define MADERA_IRQ1_MASK_25 0x1858 +#define MADERA_IRQ1_MASK_26 0x1859 +#define MADERA_IRQ1_MASK_27 0x185A +#define MADERA_IRQ1_MASK_28 0x185B +#define MADERA_IRQ1_MASK_29 0x185C +#define MADERA_IRQ1_MASK_30 0x185D +#define MADERA_IRQ1_MASK_31 0x185E +#define MADERA_IRQ1_MASK_32 0x185F +#define MADERA_IRQ1_MASK_33 0x1860 +#define MADERA_IRQ1_RAW_STATUS_1 0x1880 +#define MADERA_IRQ1_RAW_STATUS_2 0x1881 +#define MADERA_IRQ1_RAW_STATUS_3 0x1882 +#define MADERA_IRQ1_RAW_STATUS_4 0x1883 +#define MADERA_IRQ1_RAW_STATUS_5 0x1884 +#define MADERA_IRQ1_RAW_STATUS_6 0x1885 +#define MADERA_IRQ1_RAW_STATUS_7 0x1886 +#define MADERA_IRQ1_RAW_STATUS_8 0x1887 +#define MADERA_IRQ1_RAW_STATUS_9 0x1888 +#define MADERA_IRQ1_RAW_STATUS_10 0x1889 +#define MADERA_IRQ1_RAW_STATUS_11 0x188A +#define MADERA_IRQ1_RAW_STATUS_12 0x188B +#define MADERA_IRQ1_RAW_STATUS_13 0x188C +#define MADERA_IRQ1_RAW_STATUS_14 0x188D +#define MADERA_IRQ1_RAW_STATUS_15 0x188E +#define MADERA_IRQ1_RAW_STATUS_16 0x188F +#define MADERA_IRQ1_RAW_STATUS_17 0x1890 +#define MADERA_IRQ1_RAW_STATUS_18 0x1891 +#define MADERA_IRQ1_RAW_STATUS_19 0x1892 +#define MADERA_IRQ1_RAW_STATUS_20 0x1893 +#define MADERA_IRQ1_RAW_STATUS_21 0x1894 +#define MADERA_IRQ1_RAW_STATUS_22 0x1895 +#define MADERA_IRQ1_RAW_STATUS_23 0x1896 +#define MADERA_IRQ1_RAW_STATUS_24 0x1897 +#define MADERA_IRQ1_RAW_STATUS_25 0x1898 +#define MADERA_IRQ1_RAW_STATUS_26 0x1899 +#define MADERA_IRQ1_RAW_STATUS_27 0x189A +#define MADERA_IRQ1_RAW_STATUS_28 0x189D +#define MADERA_IRQ1_RAW_STATUS_29 0x189C +#define MADERA_IRQ1_RAW_STATUS_30 0x189D +#define MADERA_IRQ1_RAW_STATUS_31 0x189E +#define MADERA_IRQ1_RAW_STATUS_32 0x189F +#define MADERA_IRQ1_RAW_STATUS_33 0x18A0 +#define MADERA_IRQ2_STATUS_1 0x1900 +#define MADERA_IRQ2_STATUS_2 0x1901 +#define MADERA_IRQ2_STATUS_6 0x1905 +#define MADERA_IRQ2_STATUS_7 0x1906 +#define MADERA_IRQ2_STATUS_9 0x1908 +#define MADERA_IRQ2_STATUS_11 0x190A +#define MADERA_IRQ2_STATUS_12 0x190B +#define MADERA_IRQ2_STATUS_13 0x190C +#define MADERA_IRQ2_STATUS_14 0x190D +#define MADERA_IRQ2_STATUS_15 0x190E +#define MADERA_IRQ2_STATUS_17 0x1910 +#define MADERA_IRQ2_STATUS_18 0x1911 +#define MADERA_IRQ2_STATUS_19 0x1912 +#define MADERA_IRQ2_STATUS_21 0x1914 +#define MADERA_IRQ2_STATUS_22 0x1915 +#define MADERA_IRQ2_STATUS_23 0x1916 +#define MADERA_IRQ2_STATUS_24 0x1917 +#define MADERA_IRQ2_STATUS_25 0x1918 +#define MADERA_IRQ2_STATUS_27 0x191A +#define MADERA_IRQ2_STATUS_28 0x191B +#define MADERA_IRQ2_STATUS_30 0x191D +#define MADERA_IRQ2_STATUS_31 0x191E +#define MADERA_IRQ2_STATUS_32 0x191F +#define MADERA_IRQ2_STATUS_33 0x1920 +#define MADERA_IRQ2_MASK_1 0x1940 +#define MADERA_IRQ2_MASK_2 0x1941 +#define MADERA_IRQ2_MASK_6 0x1945 +#define MADERA_IRQ2_MASK_7 0x1946 +#define MADERA_IRQ2_MASK_9 0x1948 +#define MADERA_IRQ2_MASK_11 0x194A +#define MADERA_IRQ2_MASK_12 0x194B +#define MADERA_IRQ2_MASK_13 0x194C +#define MADERA_IRQ2_MASK_14 0x194D +#define MADERA_IRQ2_MASK_15 0x194E +#define MADERA_IRQ2_MASK_17 0x1950 +#define MADERA_IRQ2_MASK_18 0x1951 +#define MADERA_IRQ2_MASK_19 0x1952 +#define MADERA_IRQ2_MASK_21 0x1954 +#define MADERA_IRQ2_MASK_22 0x1955 +#define MADERA_IRQ2_MASK_23 0x1956 +#define MADERA_IRQ2_MASK_24 0x1957 +#define MADERA_IRQ2_MASK_25 0x1958 +#define MADERA_IRQ2_MASK_27 0x195A +#define MADERA_IRQ2_MASK_28 0x195B +#define MADERA_IRQ2_MASK_30 0x195D +#define MADERA_IRQ2_MASK_31 0x195E +#define MADERA_IRQ2_MASK_32 0x195F +#define MADERA_IRQ2_MASK_33 0x1960 +#define MADERA_IRQ2_RAW_STATUS_1 0x1980 +#define MADERA_IRQ2_RAW_STATUS_2 0x1981 +#define MADERA_IRQ2_RAW_STATUS_6 0x1985 +#define MADERA_IRQ2_RAW_STATUS_7 0x1986 +#define MADERA_IRQ2_RAW_STATUS_9 0x1988 +#define MADERA_IRQ2_RAW_STATUS_10 0x1989 +#define MADERA_IRQ2_RAW_STATUS_11 0x198A +#define MADERA_IRQ2_RAW_STATUS_12 0x198B +#define MADERA_IRQ2_RAW_STATUS_13 0x198C +#define MADERA_IRQ2_RAW_STATUS_14 0x198D +#define MADERA_IRQ2_RAW_STATUS_15 0x198E +#define MADERA_IRQ2_RAW_STATUS_17 0x1990 +#define MADERA_IRQ2_RAW_STATUS_18 0x1991 +#define MADERA_IRQ2_RAW_STATUS_19 0x1992 +#define MADERA_IRQ2_RAW_STATUS_21 0x1994 +#define MADERA_IRQ2_RAW_STATUS_22 0x1995 +#define MADERA_IRQ2_RAW_STATUS_23 0x1996 +#define MADERA_IRQ2_RAW_STATUS_24 0x1997 +#define MADERA_IRQ2_RAW_STATUS_25 0x1998 +#define MADERA_IRQ2_RAW_STATUS_30 0x199D +#define MADERA_IRQ2_RAW_STATUS_31 0x199E +#define MADERA_IRQ2_RAW_STATUS_32 0x199F +#define MADERA_IRQ2_RAW_STATUS_33 0x19A0 +#define MADERA_INTERRUPT_DEBOUNCE_7 0x1A06 +#define MADERA_INTERRUPT_DEBOUNCE_15 0x1A0E +#define MADERA_IRQ1_CTRL 0x1A80 +#define MADERA_IRQ2_CTRL 0x1A82 +#define MADERA_INTERRUPT_RAW_STATUS_1 0x1AA0 +#define MADERA_WSEQ_SEQUENCE_1 0x3000 +#define MADERA_WSEQ_SEQUENCE_2 0x3002 +#define MADERA_WSEQ_SEQUENCE_3 0x3004 +#define MADERA_WSEQ_SEQUENCE_4 0x3006 +#define MADERA_WSEQ_SEQUENCE_5 0x3008 +#define MADERA_WSEQ_SEQUENCE_6 0x300A +#define MADERA_WSEQ_SEQUENCE_7 0x300C +#define MADERA_WSEQ_SEQUENCE_8 0x300E +#define MADERA_WSEQ_SEQUENCE_9 0x3010 +#define MADERA_WSEQ_SEQUENCE_10 0x3012 +#define MADERA_WSEQ_SEQUENCE_11 0x3014 +#define MADERA_WSEQ_SEQUENCE_12 0x3016 +#define MADERA_WSEQ_SEQUENCE_13 0x3018 +#define MADERA_WSEQ_SEQUENCE_14 0x301A +#define MADERA_WSEQ_SEQUENCE_15 0x301C +#define MADERA_WSEQ_SEQUENCE_16 0x301E +#define MADERA_WSEQ_SEQUENCE_17 0x3020 +#define MADERA_WSEQ_SEQUENCE_18 0x3022 +#define MADERA_WSEQ_SEQUENCE_19 0x3024 +#define MADERA_WSEQ_SEQUENCE_20 0x3026 +#define MADERA_WSEQ_SEQUENCE_21 0x3028 +#define MADERA_WSEQ_SEQUENCE_22 0x302A +#define MADERA_WSEQ_SEQUENCE_23 0x302C +#define MADERA_WSEQ_SEQUENCE_24 0x302E +#define MADERA_WSEQ_SEQUENCE_25 0x3030 +#define MADERA_WSEQ_SEQUENCE_26 0x3032 +#define MADERA_WSEQ_SEQUENCE_27 0x3034 +#define MADERA_WSEQ_SEQUENCE_28 0x3036 +#define MADERA_WSEQ_SEQUENCE_29 0x3038 +#define MADERA_WSEQ_SEQUENCE_30 0x303A +#define MADERA_WSEQ_SEQUENCE_31 0x303C +#define MADERA_WSEQ_SEQUENCE_32 0x303E +#define MADERA_WSEQ_SEQUENCE_33 0x3040 +#define MADERA_WSEQ_SEQUENCE_34 0x3042 +#define MADERA_WSEQ_SEQUENCE_35 0x3044 +#define MADERA_WSEQ_SEQUENCE_36 0x3046 +#define MADERA_WSEQ_SEQUENCE_37 0x3048 +#define MADERA_WSEQ_SEQUENCE_38 0x304A +#define MADERA_WSEQ_SEQUENCE_39 0x304C +#define MADERA_WSEQ_SEQUENCE_40 0x304E +#define MADERA_WSEQ_SEQUENCE_41 0x3050 +#define MADERA_WSEQ_SEQUENCE_42 0x3052 +#define MADERA_WSEQ_SEQUENCE_43 0x3054 +#define MADERA_WSEQ_SEQUENCE_44 0x3056 +#define MADERA_WSEQ_SEQUENCE_45 0x3058 +#define MADERA_WSEQ_SEQUENCE_46 0x305A +#define MADERA_WSEQ_SEQUENCE_47 0x305C +#define MADERA_WSEQ_SEQUENCE_48 0x305E +#define MADERA_WSEQ_SEQUENCE_49 0x3060 +#define MADERA_WSEQ_SEQUENCE_50 0x3062 +#define MADERA_WSEQ_SEQUENCE_51 0x3064 +#define MADERA_WSEQ_SEQUENCE_52 0x3066 +#define MADERA_WSEQ_SEQUENCE_53 0x3068 +#define MADERA_WSEQ_SEQUENCE_54 0x306A +#define MADERA_WSEQ_SEQUENCE_55 0x306C +#define MADERA_WSEQ_SEQUENCE_56 0x306E +#define MADERA_WSEQ_SEQUENCE_57 0x3070 +#define MADERA_WSEQ_SEQUENCE_58 0x3072 +#define MADERA_WSEQ_SEQUENCE_59 0x3074 +#define MADERA_WSEQ_SEQUENCE_60 0x3076 +#define MADERA_WSEQ_SEQUENCE_61 0x3078 +#define MADERA_WSEQ_SEQUENCE_62 0x307A +#define MADERA_WSEQ_SEQUENCE_63 0x307C +#define MADERA_WSEQ_SEQUENCE_64 0x307E +#define MADERA_WSEQ_SEQUENCE_65 0x3080 +#define MADERA_WSEQ_SEQUENCE_66 0x3082 +#define MADERA_WSEQ_SEQUENCE_67 0x3084 +#define MADERA_WSEQ_SEQUENCE_68 0x3086 +#define MADERA_WSEQ_SEQUENCE_69 0x3088 +#define MADERA_WSEQ_SEQUENCE_70 0x308A +#define MADERA_WSEQ_SEQUENCE_71 0x308C +#define MADERA_WSEQ_SEQUENCE_72 0x308E +#define MADERA_WSEQ_SEQUENCE_73 0x3090 +#define MADERA_WSEQ_SEQUENCE_74 0x3092 +#define MADERA_WSEQ_SEQUENCE_75 0x3094 +#define MADERA_WSEQ_SEQUENCE_76 0x3096 +#define MADERA_WSEQ_SEQUENCE_77 0x3098 +#define MADERA_WSEQ_SEQUENCE_78 0x309A +#define MADERA_WSEQ_SEQUENCE_79 0x309C +#define MADERA_WSEQ_SEQUENCE_80 0x309E +#define MADERA_WSEQ_SEQUENCE_81 0x30A0 +#define MADERA_WSEQ_SEQUENCE_82 0x30A2 +#define MADERA_WSEQ_SEQUENCE_83 0x30A4 +#define MADERA_WSEQ_SEQUENCE_84 0x30A6 +#define MADERA_WSEQ_SEQUENCE_85 0x30A8 +#define MADERA_WSEQ_SEQUENCE_86 0x30AA +#define MADERA_WSEQ_SEQUENCE_87 0x30AC +#define MADERA_WSEQ_SEQUENCE_88 0x30AE +#define MADERA_WSEQ_SEQUENCE_89 0x30B0 +#define MADERA_WSEQ_SEQUENCE_90 0x30B2 +#define MADERA_WSEQ_SEQUENCE_91 0x30B4 +#define MADERA_WSEQ_SEQUENCE_92 0x30B6 +#define MADERA_WSEQ_SEQUENCE_93 0x30B8 +#define MADERA_WSEQ_SEQUENCE_94 0x30BA +#define MADERA_WSEQ_SEQUENCE_95 0x30BC +#define MADERA_WSEQ_SEQUENCE_96 0x30BE +#define MADERA_WSEQ_SEQUENCE_97 0x30C0 +#define MADERA_WSEQ_SEQUENCE_98 0x30C2 +#define MADERA_WSEQ_SEQUENCE_99 0x30C4 +#define MADERA_WSEQ_SEQUENCE_100 0x30C6 +#define MADERA_WSEQ_SEQUENCE_101 0x30C8 +#define MADERA_WSEQ_SEQUENCE_102 0x30CA +#define MADERA_WSEQ_SEQUENCE_103 0x30CC +#define MADERA_WSEQ_SEQUENCE_104 0x30CE +#define MADERA_WSEQ_SEQUENCE_105 0x30D0 +#define MADERA_WSEQ_SEQUENCE_106 0x30D2 +#define MADERA_WSEQ_SEQUENCE_107 0x30D4 +#define MADERA_WSEQ_SEQUENCE_108 0x30D6 +#define MADERA_WSEQ_SEQUENCE_109 0x30D8 +#define MADERA_WSEQ_SEQUENCE_110 0x30DA +#define MADERA_WSEQ_SEQUENCE_111 0x30DC +#define MADERA_WSEQ_SEQUENCE_112 0x30DE +#define MADERA_WSEQ_SEQUENCE_113 0x30E0 +#define MADERA_WSEQ_SEQUENCE_114 0x30E2 +#define MADERA_WSEQ_SEQUENCE_115 0x30E4 +#define MADERA_WSEQ_SEQUENCE_116 0x30E6 +#define MADERA_WSEQ_SEQUENCE_117 0x30E8 +#define MADERA_WSEQ_SEQUENCE_118 0x30EA +#define MADERA_WSEQ_SEQUENCE_119 0x30EC +#define MADERA_WSEQ_SEQUENCE_120 0x30EE +#define MADERA_WSEQ_SEQUENCE_121 0x30F0 +#define MADERA_WSEQ_SEQUENCE_122 0x30F2 +#define MADERA_WSEQ_SEQUENCE_123 0x30F4 +#define MADERA_WSEQ_SEQUENCE_124 0x30F6 +#define MADERA_WSEQ_SEQUENCE_125 0x30F8 +#define MADERA_WSEQ_SEQUENCE_126 0x30FA +#define MADERA_WSEQ_SEQUENCE_127 0x30FC +#define MADERA_WSEQ_SEQUENCE_128 0x30FE +#define MADERA_WSEQ_SEQUENCE_129 0x3100 +#define MADERA_WSEQ_SEQUENCE_130 0x3102 +#define MADERA_WSEQ_SEQUENCE_131 0x3104 +#define MADERA_WSEQ_SEQUENCE_132 0x3106 +#define MADERA_WSEQ_SEQUENCE_133 0x3108 +#define MADERA_WSEQ_SEQUENCE_134 0x310A +#define MADERA_WSEQ_SEQUENCE_135 0x310C +#define MADERA_WSEQ_SEQUENCE_136 0x310E +#define MADERA_WSEQ_SEQUENCE_137 0x3110 +#define MADERA_WSEQ_SEQUENCE_138 0x3112 +#define MADERA_WSEQ_SEQUENCE_139 0x3114 +#define MADERA_WSEQ_SEQUENCE_140 0x3116 +#define MADERA_WSEQ_SEQUENCE_141 0x3118 +#define MADERA_WSEQ_SEQUENCE_142 0x311A +#define MADERA_WSEQ_SEQUENCE_143 0x311C +#define MADERA_WSEQ_SEQUENCE_144 0x311E +#define MADERA_WSEQ_SEQUENCE_145 0x3120 +#define MADERA_WSEQ_SEQUENCE_146 0x3122 +#define MADERA_WSEQ_SEQUENCE_147 0x3124 +#define MADERA_WSEQ_SEQUENCE_148 0x3126 +#define MADERA_WSEQ_SEQUENCE_149 0x3128 +#define MADERA_WSEQ_SEQUENCE_150 0x312A +#define MADERA_WSEQ_SEQUENCE_151 0x312C +#define MADERA_WSEQ_SEQUENCE_152 0x312E +#define MADERA_WSEQ_SEQUENCE_153 0x3130 +#define MADERA_WSEQ_SEQUENCE_154 0x3132 +#define MADERA_WSEQ_SEQUENCE_155 0x3134 +#define MADERA_WSEQ_SEQUENCE_156 0x3136 +#define MADERA_WSEQ_SEQUENCE_157 0x3138 +#define MADERA_WSEQ_SEQUENCE_158 0x313A +#define MADERA_WSEQ_SEQUENCE_159 0x313C +#define MADERA_WSEQ_SEQUENCE_160 0x313E +#define MADERA_WSEQ_SEQUENCE_161 0x3140 +#define MADERA_WSEQ_SEQUENCE_162 0x3142 +#define MADERA_WSEQ_SEQUENCE_163 0x3144 +#define MADERA_WSEQ_SEQUENCE_164 0x3146 +#define MADERA_WSEQ_SEQUENCE_165 0x3148 +#define MADERA_WSEQ_SEQUENCE_166 0x314A +#define MADERA_WSEQ_SEQUENCE_167 0x314C +#define MADERA_WSEQ_SEQUENCE_168 0x314E +#define MADERA_WSEQ_SEQUENCE_169 0x3150 +#define MADERA_WSEQ_SEQUENCE_170 0x3152 +#define MADERA_WSEQ_SEQUENCE_171 0x3154 +#define MADERA_WSEQ_SEQUENCE_172 0x3156 +#define MADERA_WSEQ_SEQUENCE_173 0x3158 +#define MADERA_WSEQ_SEQUENCE_174 0x315A +#define MADERA_WSEQ_SEQUENCE_175 0x315C +#define MADERA_WSEQ_SEQUENCE_176 0x315E +#define MADERA_WSEQ_SEQUENCE_177 0x3160 +#define MADERA_WSEQ_SEQUENCE_178 0x3162 +#define MADERA_WSEQ_SEQUENCE_179 0x3164 +#define MADERA_WSEQ_SEQUENCE_180 0x3166 +#define MADERA_WSEQ_SEQUENCE_181 0x3168 +#define MADERA_WSEQ_SEQUENCE_182 0x316A +#define MADERA_WSEQ_SEQUENCE_183 0x316C +#define MADERA_WSEQ_SEQUENCE_184 0x316E +#define MADERA_WSEQ_SEQUENCE_185 0x3170 +#define MADERA_WSEQ_SEQUENCE_186 0x3172 +#define MADERA_WSEQ_SEQUENCE_187 0x3174 +#define MADERA_WSEQ_SEQUENCE_188 0x3176 +#define MADERA_WSEQ_SEQUENCE_189 0x3178 +#define MADERA_WSEQ_SEQUENCE_190 0x317A +#define MADERA_WSEQ_SEQUENCE_191 0x317C +#define MADERA_WSEQ_SEQUENCE_192 0x317E +#define MADERA_WSEQ_SEQUENCE_193 0x3180 +#define MADERA_WSEQ_SEQUENCE_194 0x3182 +#define MADERA_WSEQ_SEQUENCE_195 0x3184 +#define MADERA_WSEQ_SEQUENCE_196 0x3186 +#define MADERA_WSEQ_SEQUENCE_197 0x3188 +#define MADERA_WSEQ_SEQUENCE_198 0x318A +#define MADERA_WSEQ_SEQUENCE_199 0x318C +#define MADERA_WSEQ_SEQUENCE_200 0x318E +#define MADERA_WSEQ_SEQUENCE_201 0x3190 +#define MADERA_WSEQ_SEQUENCE_202 0x3192 +#define MADERA_WSEQ_SEQUENCE_203 0x3194 +#define MADERA_WSEQ_SEQUENCE_204 0x3196 +#define MADERA_WSEQ_SEQUENCE_205 0x3198 +#define MADERA_WSEQ_SEQUENCE_206 0x319A +#define MADERA_WSEQ_SEQUENCE_207 0x319C +#define MADERA_WSEQ_SEQUENCE_208 0x319E +#define MADERA_WSEQ_SEQUENCE_209 0x31A0 +#define MADERA_WSEQ_SEQUENCE_210 0x31A2 +#define MADERA_WSEQ_SEQUENCE_211 0x31A4 +#define MADERA_WSEQ_SEQUENCE_212 0x31A6 +#define MADERA_WSEQ_SEQUENCE_213 0x31A8 +#define MADERA_WSEQ_SEQUENCE_214 0x31AA +#define MADERA_WSEQ_SEQUENCE_215 0x31AC +#define MADERA_WSEQ_SEQUENCE_216 0x31AE +#define MADERA_WSEQ_SEQUENCE_217 0x31B0 +#define MADERA_WSEQ_SEQUENCE_218 0x31B2 +#define MADERA_WSEQ_SEQUENCE_219 0x31B4 +#define MADERA_WSEQ_SEQUENCE_220 0x31B6 +#define MADERA_WSEQ_SEQUENCE_221 0x31B8 +#define MADERA_WSEQ_SEQUENCE_222 0x31BA +#define MADERA_WSEQ_SEQUENCE_223 0x31BC +#define MADERA_WSEQ_SEQUENCE_224 0x31BE +#define MADERA_WSEQ_SEQUENCE_225 0x31C0 +#define MADERA_WSEQ_SEQUENCE_226 0x31C2 +#define MADERA_WSEQ_SEQUENCE_227 0x31C4 +#define MADERA_WSEQ_SEQUENCE_228 0x31C6 +#define MADERA_WSEQ_SEQUENCE_229 0x31C8 +#define MADERA_WSEQ_SEQUENCE_230 0x31CA +#define MADERA_WSEQ_SEQUENCE_231 0x31CC +#define MADERA_WSEQ_SEQUENCE_232 0x31CE +#define MADERA_WSEQ_SEQUENCE_233 0x31D0 +#define MADERA_WSEQ_SEQUENCE_234 0x31D2 +#define MADERA_WSEQ_SEQUENCE_235 0x31D4 +#define MADERA_WSEQ_SEQUENCE_236 0x31D6 +#define MADERA_WSEQ_SEQUENCE_237 0x31D8 +#define MADERA_WSEQ_SEQUENCE_238 0x31DA +#define MADERA_WSEQ_SEQUENCE_239 0x31DC +#define MADERA_WSEQ_SEQUENCE_240 0x31DE +#define MADERA_WSEQ_SEQUENCE_241 0x31E0 +#define MADERA_WSEQ_SEQUENCE_242 0x31E2 +#define MADERA_WSEQ_SEQUENCE_243 0x31E4 +#define MADERA_WSEQ_SEQUENCE_244 0x31E6 +#define MADERA_WSEQ_SEQUENCE_245 0x31E8 +#define MADERA_WSEQ_SEQUENCE_246 0x31EA +#define MADERA_WSEQ_SEQUENCE_247 0x31EC +#define MADERA_WSEQ_SEQUENCE_248 0x31EE +#define MADERA_WSEQ_SEQUENCE_249 0x31F0 +#define MADERA_WSEQ_SEQUENCE_250 0x31F2 +#define MADERA_WSEQ_SEQUENCE_251 0x31F4 +#define MADERA_WSEQ_SEQUENCE_252 0x31F6 +#define MADERA_WSEQ_SEQUENCE_253 0x31F8 +#define CS47L35_OTP_HPDET_CAL_1 0x31F8 +#define CS47L35_OTP_HPDET_CAL_2 0x31FA +#define MADERA_WSEQ_SEQUENCE_254 0x31FA +#define MADERA_WSEQ_SEQUENCE_255 0x31FC +#define MADERA_WSEQ_SEQUENCE_256 0x31FE +#define MADERA_WSEQ_SEQUENCE_257 0x3200 +#define MADERA_WSEQ_SEQUENCE_258 0x3202 +#define MADERA_WSEQ_SEQUENCE_259 0x3204 +#define MADERA_WSEQ_SEQUENCE_260 0x3206 +#define MADERA_WSEQ_SEQUENCE_261 0x3208 +#define MADERA_WSEQ_SEQUENCE_262 0x320A +#define MADERA_WSEQ_SEQUENCE_263 0x320C +#define MADERA_WSEQ_SEQUENCE_264 0x320E +#define MADERA_WSEQ_SEQUENCE_265 0x3210 +#define MADERA_WSEQ_SEQUENCE_266 0x3212 +#define MADERA_WSEQ_SEQUENCE_267 0x3214 +#define MADERA_WSEQ_SEQUENCE_268 0x3216 +#define MADERA_WSEQ_SEQUENCE_269 0x3218 +#define MADERA_WSEQ_SEQUENCE_270 0x321A +#define MADERA_WSEQ_SEQUENCE_271 0x321C +#define MADERA_WSEQ_SEQUENCE_272 0x321E +#define MADERA_WSEQ_SEQUENCE_273 0x3220 +#define MADERA_WSEQ_SEQUENCE_274 0x3222 +#define MADERA_WSEQ_SEQUENCE_275 0x3224 +#define MADERA_WSEQ_SEQUENCE_276 0x3226 +#define MADERA_WSEQ_SEQUENCE_277 0x3228 +#define MADERA_WSEQ_SEQUENCE_278 0x322A +#define MADERA_WSEQ_SEQUENCE_279 0x322C +#define MADERA_WSEQ_SEQUENCE_280 0x322E +#define MADERA_WSEQ_SEQUENCE_281 0x3230 +#define MADERA_WSEQ_SEQUENCE_282 0x3232 +#define MADERA_WSEQ_SEQUENCE_283 0x3234 +#define MADERA_WSEQ_SEQUENCE_284 0x3236 +#define MADERA_WSEQ_SEQUENCE_285 0x3238 +#define MADERA_WSEQ_SEQUENCE_286 0x323A +#define MADERA_WSEQ_SEQUENCE_287 0x323C +#define MADERA_WSEQ_SEQUENCE_288 0x323E +#define MADERA_WSEQ_SEQUENCE_289 0x3240 +#define MADERA_WSEQ_SEQUENCE_290 0x3242 +#define MADERA_WSEQ_SEQUENCE_291 0x3244 +#define MADERA_WSEQ_SEQUENCE_292 0x3246 +#define MADERA_WSEQ_SEQUENCE_293 0x3248 +#define MADERA_WSEQ_SEQUENCE_294 0x324A +#define MADERA_WSEQ_SEQUENCE_295 0x324C +#define MADERA_WSEQ_SEQUENCE_296 0x324E +#define MADERA_WSEQ_SEQUENCE_297 0x3250 +#define MADERA_WSEQ_SEQUENCE_298 0x3252 +#define MADERA_WSEQ_SEQUENCE_299 0x3254 +#define MADERA_WSEQ_SEQUENCE_300 0x3256 +#define MADERA_WSEQ_SEQUENCE_301 0x3258 +#define MADERA_WSEQ_SEQUENCE_302 0x325A +#define MADERA_WSEQ_SEQUENCE_303 0x325C +#define MADERA_WSEQ_SEQUENCE_304 0x325E +#define MADERA_WSEQ_SEQUENCE_305 0x3260 +#define MADERA_WSEQ_SEQUENCE_306 0x3262 +#define MADERA_WSEQ_SEQUENCE_307 0x3264 +#define MADERA_WSEQ_SEQUENCE_308 0x3266 +#define MADERA_WSEQ_SEQUENCE_309 0x3268 +#define MADERA_WSEQ_SEQUENCE_310 0x326A +#define MADERA_WSEQ_SEQUENCE_311 0x326C +#define MADERA_WSEQ_SEQUENCE_312 0x326E +#define MADERA_WSEQ_SEQUENCE_313 0x3270 +#define MADERA_WSEQ_SEQUENCE_314 0x3272 +#define MADERA_WSEQ_SEQUENCE_315 0x3274 +#define MADERA_WSEQ_SEQUENCE_316 0x3276 +#define MADERA_WSEQ_SEQUENCE_317 0x3278 +#define MADERA_WSEQ_SEQUENCE_318 0x327A +#define MADERA_WSEQ_SEQUENCE_319 0x327C +#define MADERA_WSEQ_SEQUENCE_320 0x327E +#define MADERA_WSEQ_SEQUENCE_321 0x3280 +#define MADERA_WSEQ_SEQUENCE_322 0x3282 +#define MADERA_WSEQ_SEQUENCE_323 0x3284 +#define MADERA_WSEQ_SEQUENCE_324 0x3286 +#define MADERA_WSEQ_SEQUENCE_325 0x3288 +#define MADERA_WSEQ_SEQUENCE_326 0x328A +#define MADERA_WSEQ_SEQUENCE_327 0x328C +#define MADERA_WSEQ_SEQUENCE_328 0x328E +#define MADERA_WSEQ_SEQUENCE_329 0x3290 +#define MADERA_WSEQ_SEQUENCE_330 0x3292 +#define MADERA_WSEQ_SEQUENCE_331 0x3294 +#define MADERA_WSEQ_SEQUENCE_332 0x3296 +#define MADERA_WSEQ_SEQUENCE_333 0x3298 +#define MADERA_WSEQ_SEQUENCE_334 0x329A +#define MADERA_WSEQ_SEQUENCE_335 0x329C +#define MADERA_WSEQ_SEQUENCE_336 0x329E +#define MADERA_WSEQ_SEQUENCE_337 0x32A0 +#define MADERA_WSEQ_SEQUENCE_338 0x32A2 +#define MADERA_WSEQ_SEQUENCE_339 0x32A4 +#define MADERA_WSEQ_SEQUENCE_340 0x32A6 +#define MADERA_WSEQ_SEQUENCE_341 0x32A8 +#define MADERA_WSEQ_SEQUENCE_342 0x32AA +#define MADERA_WSEQ_SEQUENCE_343 0x32AC +#define MADERA_WSEQ_SEQUENCE_344 0x32AE +#define MADERA_WSEQ_SEQUENCE_345 0x32B0 +#define MADERA_WSEQ_SEQUENCE_346 0x32B2 +#define MADERA_WSEQ_SEQUENCE_347 0x32B4 +#define MADERA_WSEQ_SEQUENCE_348 0x32B6 +#define MADERA_WSEQ_SEQUENCE_349 0x32B8 +#define MADERA_WSEQ_SEQUENCE_350 0x32BA +#define MADERA_WSEQ_SEQUENCE_351 0x32BC +#define MADERA_WSEQ_SEQUENCE_352 0x32BE +#define MADERA_WSEQ_SEQUENCE_353 0x32C0 +#define MADERA_WSEQ_SEQUENCE_354 0x32C2 +#define MADERA_WSEQ_SEQUENCE_355 0x32C4 +#define MADERA_WSEQ_SEQUENCE_356 0x32C6 +#define MADERA_WSEQ_SEQUENCE_357 0x32C8 +#define MADERA_WSEQ_SEQUENCE_358 0x32CA +#define MADERA_WSEQ_SEQUENCE_359 0x32CC +#define MADERA_WSEQ_SEQUENCE_360 0x32CE +#define MADERA_WSEQ_SEQUENCE_361 0x32D0 +#define MADERA_WSEQ_SEQUENCE_362 0x32D2 +#define MADERA_WSEQ_SEQUENCE_363 0x32D4 +#define MADERA_WSEQ_SEQUENCE_364 0x32D6 +#define MADERA_WSEQ_SEQUENCE_365 0x32D8 +#define MADERA_WSEQ_SEQUENCE_366 0x32DA +#define MADERA_WSEQ_SEQUENCE_367 0x32DC +#define MADERA_WSEQ_SEQUENCE_368 0x32DE +#define MADERA_WSEQ_SEQUENCE_369 0x32E0 +#define MADERA_WSEQ_SEQUENCE_370 0x32E2 +#define MADERA_WSEQ_SEQUENCE_371 0x32E4 +#define MADERA_WSEQ_SEQUENCE_372 0x32E6 +#define MADERA_WSEQ_SEQUENCE_373 0x32E8 +#define MADERA_WSEQ_SEQUENCE_374 0x32EA +#define MADERA_WSEQ_SEQUENCE_375 0x32EC +#define MADERA_WSEQ_SEQUENCE_376 0x32EE +#define MADERA_WSEQ_SEQUENCE_377 0x32F0 +#define MADERA_WSEQ_SEQUENCE_378 0x32F2 +#define MADERA_WSEQ_SEQUENCE_379 0x32F4 +#define MADERA_WSEQ_SEQUENCE_380 0x32F6 +#define MADERA_WSEQ_SEQUENCE_381 0x32F8 +#define MADERA_WSEQ_SEQUENCE_382 0x32FA +#define MADERA_WSEQ_SEQUENCE_383 0x32FC +#define MADERA_WSEQ_SEQUENCE_384 0x32FE +#define MADERA_WSEQ_SEQUENCE_385 0x3300 +#define MADERA_WSEQ_SEQUENCE_386 0x3302 +#define MADERA_WSEQ_SEQUENCE_387 0x3304 +#define MADERA_WSEQ_SEQUENCE_388 0x3306 +#define MADERA_WSEQ_SEQUENCE_389 0x3308 +#define MADERA_WSEQ_SEQUENCE_390 0x330A +#define MADERA_WSEQ_SEQUENCE_391 0x330C +#define MADERA_WSEQ_SEQUENCE_392 0x330E +#define MADERA_WSEQ_SEQUENCE_393 0x3310 +#define MADERA_WSEQ_SEQUENCE_394 0x3312 +#define MADERA_WSEQ_SEQUENCE_395 0x3314 +#define MADERA_WSEQ_SEQUENCE_396 0x3316 +#define MADERA_WSEQ_SEQUENCE_397 0x3318 +#define MADERA_WSEQ_SEQUENCE_398 0x331A +#define MADERA_WSEQ_SEQUENCE_399 0x331C +#define MADERA_WSEQ_SEQUENCE_400 0x331E +#define MADERA_WSEQ_SEQUENCE_401 0x3320 +#define MADERA_WSEQ_SEQUENCE_402 0x3322 +#define MADERA_WSEQ_SEQUENCE_403 0x3324 +#define MADERA_WSEQ_SEQUENCE_404 0x3326 +#define MADERA_WSEQ_SEQUENCE_405 0x3328 +#define MADERA_WSEQ_SEQUENCE_406 0x332A +#define MADERA_WSEQ_SEQUENCE_407 0x332C +#define MADERA_WSEQ_SEQUENCE_408 0x332E +#define MADERA_WSEQ_SEQUENCE_409 0x3330 +#define MADERA_WSEQ_SEQUENCE_410 0x3332 +#define MADERA_WSEQ_SEQUENCE_411 0x3334 +#define MADERA_WSEQ_SEQUENCE_412 0x3336 +#define MADERA_WSEQ_SEQUENCE_413 0x3338 +#define MADERA_WSEQ_SEQUENCE_414 0x333A +#define MADERA_WSEQ_SEQUENCE_415 0x333C +#define MADERA_WSEQ_SEQUENCE_416 0x333E +#define MADERA_WSEQ_SEQUENCE_417 0x3340 +#define MADERA_WSEQ_SEQUENCE_418 0x3342 +#define MADERA_WSEQ_SEQUENCE_419 0x3344 +#define MADERA_WSEQ_SEQUENCE_420 0x3346 +#define MADERA_WSEQ_SEQUENCE_421 0x3348 +#define MADERA_WSEQ_SEQUENCE_422 0x334A +#define MADERA_WSEQ_SEQUENCE_423 0x334C +#define MADERA_WSEQ_SEQUENCE_424 0x334E +#define MADERA_WSEQ_SEQUENCE_425 0x3350 +#define MADERA_WSEQ_SEQUENCE_426 0x3352 +#define MADERA_WSEQ_SEQUENCE_427 0x3354 +#define MADERA_WSEQ_SEQUENCE_428 0x3356 +#define MADERA_WSEQ_SEQUENCE_429 0x3358 +#define MADERA_WSEQ_SEQUENCE_430 0x335A +#define MADERA_WSEQ_SEQUENCE_431 0x335C +#define MADERA_WSEQ_SEQUENCE_432 0x335E +#define MADERA_WSEQ_SEQUENCE_433 0x3360 +#define MADERA_WSEQ_SEQUENCE_434 0x3362 +#define MADERA_WSEQ_SEQUENCE_435 0x3364 +#define MADERA_WSEQ_SEQUENCE_436 0x3366 +#define MADERA_WSEQ_SEQUENCE_437 0x3368 +#define MADERA_WSEQ_SEQUENCE_438 0x336A +#define MADERA_WSEQ_SEQUENCE_439 0x336C +#define MADERA_WSEQ_SEQUENCE_440 0x336E +#define MADERA_WSEQ_SEQUENCE_441 0x3370 +#define MADERA_WSEQ_SEQUENCE_442 0x3372 +#define MADERA_WSEQ_SEQUENCE_443 0x3374 +#define MADERA_WSEQ_SEQUENCE_444 0x3376 +#define MADERA_WSEQ_SEQUENCE_445 0x3378 +#define MADERA_WSEQ_SEQUENCE_446 0x337A +#define MADERA_WSEQ_SEQUENCE_447 0x337C +#define MADERA_WSEQ_SEQUENCE_448 0x337E +#define MADERA_WSEQ_SEQUENCE_449 0x3380 +#define MADERA_WSEQ_SEQUENCE_450 0x3382 +#define MADERA_WSEQ_SEQUENCE_451 0x3384 +#define MADERA_WSEQ_SEQUENCE_452 0x3386 +#define MADERA_WSEQ_SEQUENCE_453 0x3388 +#define MADERA_WSEQ_SEQUENCE_454 0x338A +#define MADERA_WSEQ_SEQUENCE_455 0x338C +#define MADERA_WSEQ_SEQUENCE_456 0x338E +#define MADERA_WSEQ_SEQUENCE_457 0x3390 +#define MADERA_WSEQ_SEQUENCE_458 0x3392 +#define MADERA_WSEQ_SEQUENCE_459 0x3394 +#define MADERA_WSEQ_SEQUENCE_460 0x3396 +#define MADERA_WSEQ_SEQUENCE_461 0x3398 +#define MADERA_WSEQ_SEQUENCE_462 0x339A +#define MADERA_WSEQ_SEQUENCE_463 0x339C +#define MADERA_WSEQ_SEQUENCE_464 0x339E +#define MADERA_WSEQ_SEQUENCE_465 0x33A0 +#define MADERA_WSEQ_SEQUENCE_466 0x33A2 +#define MADERA_WSEQ_SEQUENCE_467 0x33A4 +#define MADERA_WSEQ_SEQUENCE_468 0x33A6 +#define MADERA_WSEQ_SEQUENCE_469 0x33A8 +#define MADERA_WSEQ_SEQUENCE_470 0x33AA +#define MADERA_WSEQ_SEQUENCE_471 0x33AC +#define MADERA_WSEQ_SEQUENCE_472 0x33AE +#define MADERA_WSEQ_SEQUENCE_473 0x33B0 +#define MADERA_WSEQ_SEQUENCE_474 0x33B2 +#define MADERA_WSEQ_SEQUENCE_475 0x33B4 +#define MADERA_WSEQ_SEQUENCE_476 0x33B6 +#define MADERA_WSEQ_SEQUENCE_477 0x33B8 +#define MADERA_WSEQ_SEQUENCE_478 0x33BA +#define MADERA_WSEQ_SEQUENCE_479 0x33BC +#define MADERA_WSEQ_SEQUENCE_480 0x33BE +#define MADERA_WSEQ_SEQUENCE_481 0x33C0 +#define MADERA_WSEQ_SEQUENCE_482 0x33C2 +#define MADERA_WSEQ_SEQUENCE_483 0x33C4 +#define MADERA_WSEQ_SEQUENCE_484 0x33C6 +#define MADERA_WSEQ_SEQUENCE_485 0x33C8 +#define MADERA_WSEQ_SEQUENCE_486 0x33CA +#define MADERA_WSEQ_SEQUENCE_487 0x33CC +#define MADERA_WSEQ_SEQUENCE_488 0x33CE +#define MADERA_WSEQ_SEQUENCE_489 0x33D0 +#define MADERA_WSEQ_SEQUENCE_490 0x33D2 +#define MADERA_WSEQ_SEQUENCE_491 0x33D4 +#define MADERA_WSEQ_SEQUENCE_492 0x33D6 +#define MADERA_WSEQ_SEQUENCE_493 0x33D8 +#define MADERA_WSEQ_SEQUENCE_494 0x33DA +#define MADERA_WSEQ_SEQUENCE_495 0x33DC +#define MADERA_WSEQ_SEQUENCE_496 0x33DE +#define MADERA_WSEQ_SEQUENCE_497 0x33E0 +#define MADERA_WSEQ_SEQUENCE_498 0x33E2 +#define MADERA_WSEQ_SEQUENCE_499 0x33E4 +#define MADERA_WSEQ_SEQUENCE_500 0x33E6 +#define MADERA_WSEQ_SEQUENCE_501 0x33E8 +#define MADERA_WSEQ_SEQUENCE_502 0x33EA +#define MADERA_WSEQ_SEQUENCE_503 0x33EC +#define MADERA_WSEQ_SEQUENCE_504 0x33EE +#define MADERA_WSEQ_SEQUENCE_505 0x33F0 +#define MADERA_WSEQ_SEQUENCE_506 0x33F2 +#define MADERA_WSEQ_SEQUENCE_507 0x33F4 +#define MADERA_WSEQ_SEQUENCE_508 0x33F6 +#define CS47L85_OTP_HPDET_CAL_1 0x33F8 +#define CS47L85_OTP_HPDET_CAL_2 0x33FA +#define MADERA_OTP_HPDET_CAL_1 0x20004 +#define MADERA_OTP_HPDET_CAL_2 0x20006 +#define MADERA_DSP1_CONFIG_1 0x0FFE00 +#define MADERA_DSP1_CONFIG_2 0x0FFE02 +#define MADERA_DSP1_STATUS_1 0x0FFE04 +#define MADERA_DSP1_STATUS_2 0x0FFE06 +#define MADERA_DSP1_STATUS_3 0x0FFE08 +#define MADERA_DSP1_WATCHDOG_1 0x0FFE0A +#define MADERA_DSP1_DMA_CONFIG_1 0x0FFE30 +#define MADERA_DSP1_DMA_CONFIG_2 0x0FFE32 +#define MADERA_DSP1_DMA_CONFIG_3 0x0FFE34 +#define MADERA_DSP1_DMA_CONFIG_4 0x0FFE36 +#define MADERA_DSP1_SCRATCH_1 0x0FFE40 +#define MADERA_DSP1_SCRATCH_2 0x0FFE42 +#define MADERA_DSP1_BUS_ERROR_ADDR 0xFFE52 +#define MADERA_DSP1_REGION_LOCK_STS_0 0xFFE64 +#define MADERA_DSP1_REGION_LOCK_1___DSP1_REGION_LOCK_0 0xFFE66 +#define MADERA_DSP1_REGION_LOCK_3___DSP1_REGION_LOCK_2 0xFFE68 +#define MADERA_DSP1_REGION_LOCK_5___DSP1_REGION_LOCK_4 0xFFE6A +#define MADERA_DSP1_REGION_LOCK_7___DSP1_REGION_LOCK_6 0xFFE6C +#define MADERA_DSP1_REGION_LOCK_9___DSP1_REGION_LOCK_8 0xFFE6E +#define MADERA_DSP1_REGION_LOCK_CTRL_0 0xFFE7A +#define MADERA_DSP1_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0xFFE7C +#define MADERA_DSP2_CONFIG_1 0x17FE00 +#define MADERA_DSP2_CONFIG_2 0x17FE02 +#define MADERA_DSP2_STATUS_1 0x17FE04 +#define MADERA_DSP2_STATUS_2 0x17FE06 +#define MADERA_DSP2_STATUS_3 0x17FE08 +#define MADERA_DSP2_WATCHDOG_1 0x17FE0A +#define MADERA_DSP2_DMA_CONFIG_1 0x17FE30 +#define MADERA_DSP2_DMA_CONFIG_2 0x17FE32 +#define MADERA_DSP2_DMA_CONFIG_3 0x17FE34 +#define MADERA_DSP2_DMA_CONFIG_4 0x17FE36 +#define MADERA_DSP2_SCRATCH_1 0x17FE40 +#define MADERA_DSP2_SCRATCH_2 0x17FE42 +#define MADERA_DSP2_BUS_ERROR_ADDR 0x17FE52 +#define MADERA_DSP2_REGION_LOCK_STS_0 0x17FE64 +#define MADERA_DSP2_REGION_LOCK_1___DSP2_REGION_LOCK_0 0x17FE66 +#define MADERA_DSP2_REGION_LOCK_3___DSP2_REGION_LOCK_2 0x17FE68 +#define MADERA_DSP2_REGION_LOCK_5___DSP2_REGION_LOCK_4 0x17FE6A +#define MADERA_DSP2_REGION_LOCK_7___DSP2_REGION_LOCK_6 0x17FE6C +#define MADERA_DSP2_REGION_LOCK_9___DSP2_REGION_LOCK_8 0x17FE6E +#define MADERA_DSP2_REGION_LOCK_CTRL_0 0x17FE7A +#define MADERA_DSP2_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x17FE7C +#define MADERA_DSP3_CONFIG_1 0x1FFE00 +#define MADERA_DSP3_CONFIG_2 0x1FFE02 +#define MADERA_DSP3_STATUS_1 0x1FFE04 +#define MADERA_DSP3_STATUS_2 0x1FFE06 +#define MADERA_DSP3_STATUS_3 0x1FFE08 +#define MADERA_DSP3_WATCHDOG_1 0x1FFE0A +#define MADERA_DSP3_DMA_CONFIG_1 0x1FFE30 +#define MADERA_DSP3_DMA_CONFIG_2 0x1FFE32 +#define MADERA_DSP3_DMA_CONFIG_3 0x1FFE34 +#define MADERA_DSP3_DMA_CONFIG_4 0x1FFE36 +#define MADERA_DSP3_SCRATCH_1 0x1FFE40 +#define MADERA_DSP3_SCRATCH_2 0x1FFE42 +#define MADERA_DSP3_BUS_ERROR_ADDR 0x1FFE52 +#define MADERA_DSP3_REGION_LOCK_STS_0 0x1FFE64 +#define MADERA_DSP3_REGION_LOCK_1___DSP3_REGION_LOCK_0 0x1FFE66 +#define MADERA_DSP3_REGION_LOCK_3___DSP3_REGION_LOCK_2 0x1FFE68 +#define MADERA_DSP3_REGION_LOCK_5___DSP3_REGION_LOCK_4 0x1FFE6A +#define MADERA_DSP3_REGION_LOCK_7___DSP3_REGION_LOCK_6 0x1FFE6C +#define MADERA_DSP3_REGION_LOCK_9___DSP3_REGION_LOCK_8 0x1FFE6E +#define MADERA_DSP3_REGION_LOCK_CTRL_0 0x1FFE7A +#define MADERA_DSP3_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x1FFE7C +#define MADERA_DSP4_CONFIG_1 0x27FE00 +#define MADERA_DSP4_CONFIG_2 0x27FE02 +#define MADERA_DSP4_STATUS_1 0x27FE04 +#define MADERA_DSP4_STATUS_2 0x27FE06 +#define MADERA_DSP4_STATUS_3 0x27FE08 +#define MADERA_DSP4_WATCHDOG_1 0x27FE0A +#define MADERA_DSP4_DMA_CONFIG_1 0x27FE30 +#define MADERA_DSP4_DMA_CONFIG_2 0x27FE32 +#define MADERA_DSP4_DMA_CONFIG_3 0x27FE34 +#define MADERA_DSP4_DMA_CONFIG_4 0x27FE36 +#define MADERA_DSP4_SCRATCH_1 0x27FE40 +#define MADERA_DSP4_SCRATCH_2 0x27FE42 +#define MADERA_DSP4_BUS_ERROR_ADDR 0x27FE52 +#define MADERA_DSP4_REGION_LOCK_STS_0 0x27FE64 +#define MADERA_DSP4_REGION_LOCK_1___DSP4_REGION_LOCK_0 0x27FE66 +#define MADERA_DSP4_REGION_LOCK_3___DSP4_REGION_LOCK_2 0x27FE68 +#define MADERA_DSP4_REGION_LOCK_5___DSP4_REGION_LOCK_4 0x27FE6A +#define MADERA_DSP4_REGION_LOCK_7___DSP4_REGION_LOCK_6 0x27FE6C +#define MADERA_DSP4_REGION_LOCK_9___DSP4_REGION_LOCK_8 0x27FE6E +#define MADERA_DSP4_REGION_LOCK_CTRL_0 0x27FE7A +#define MADERA_DSP4_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x27FE7C +#define MADERA_DSP5_CONFIG_1 0x2FFE00 +#define MADERA_DSP5_CONFIG_2 0x2FFE02 +#define MADERA_DSP5_STATUS_1 0x2FFE04 +#define MADERA_DSP5_STATUS_2 0x2FFE06 +#define MADERA_DSP5_STATUS_3 0x2FFE08 +#define MADERA_DSP5_WATCHDOG_1 0x2FFE0A +#define MADERA_DSP5_DMA_CONFIG_1 0x2FFE30 +#define MADERA_DSP5_DMA_CONFIG_2 0x2FFE32 +#define MADERA_DSP5_DMA_CONFIG_3 0x2FFE34 +#define MADERA_DSP5_DMA_CONFIG_4 0x2FFE36 +#define MADERA_DSP5_SCRATCH_1 0x2FFE40 +#define MADERA_DSP5_SCRATCH_2 0x2FFE42 +#define MADERA_DSP5_BUS_ERROR_ADDR 0x2FFE52 +#define MADERA_DSP5_REGION_LOCK_STS_0 0x2FFE64 +#define MADERA_DSP5_REGION_LOCK_1___DSP5_REGION_LOCK_0 0x2FFE66 +#define MADERA_DSP5_REGION_LOCK_3___DSP5_REGION_LOCK_2 0x2FFE68 +#define MADERA_DSP5_REGION_LOCK_5___DSP5_REGION_LOCK_4 0x2FFE6A +#define MADERA_DSP5_REGION_LOCK_7___DSP5_REGION_LOCK_6 0x2FFE6C +#define MADERA_DSP5_REGION_LOCK_9___DSP5_REGION_LOCK_8 0x2FFE6E +#define MADERA_DSP5_REGION_LOCK_CTRL_0 0x2FFE7A +#define MADERA_DSP5_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x2FFE7C +#define MADERA_DSP6_CONFIG_1 0x37FE00 +#define MADERA_DSP6_CONFIG_2 0x37FE02 +#define MADERA_DSP6_STATUS_1 0x37FE04 +#define MADERA_DSP6_STATUS_2 0x37FE06 +#define MADERA_DSP6_STATUS_3 0x37FE08 +#define MADERA_DSP6_WATCHDOG_1 0x37FE0A +#define MADERA_DSP6_DMA_CONFIG_1 0x37FE30 +#define MADERA_DSP6_DMA_CONFIG_2 0x37FE32 +#define MADERA_DSP6_DMA_CONFIG_3 0x37FE34 +#define MADERA_DSP6_DMA_CONFIG_4 0x37FE36 +#define MADERA_DSP6_SCRATCH_1 0x37FE40 +#define MADERA_DSP6_SCRATCH_2 0x37FE42 +#define MADERA_DSP6_BUS_ERROR_ADDR 0x37FE52 +#define MADERA_DSP6_REGION_LOCK_STS_0 0x37FE64 +#define MADERA_DSP6_REGION_LOCK_1___DSP6_REGION_LOCK_0 0x37FE66 +#define MADERA_DSP6_REGION_LOCK_3___DSP6_REGION_LOCK_2 0x37FE68 +#define MADERA_DSP6_REGION_LOCK_5___DSP6_REGION_LOCK_4 0x37FE6A +#define MADERA_DSP6_REGION_LOCK_7___DSP6_REGION_LOCK_6 0x37FE6C +#define MADERA_DSP6_REGION_LOCK_9___DSP6_REGION_LOCK_8 0x37FE6E +#define MADERA_DSP6_REGION_LOCK_CTRL_0 0x37FE7A +#define MADERA_DSP6_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x37FE7C +#define MADERA_DSP7_CONFIG_1 0x3FFE00 +#define MADERA_DSP7_CONFIG_2 0x3FFE02 +#define MADERA_DSP7_STATUS_1 0x3FFE04 +#define MADERA_DSP7_STATUS_2 0x3FFE06 +#define MADERA_DSP7_STATUS_3 0x3FFE08 +#define MADERA_DSP7_WATCHDOG_1 0x3FFE0A +#define MADERA_DSP7_DMA_CONFIG_1 0x3FFE30 +#define MADERA_DSP7_DMA_CONFIG_2 0x3FFE32 +#define MADERA_DSP7_DMA_CONFIG_3 0x3FFE34 +#define MADERA_DSP7_DMA_CONFIG_4 0x3FFE36 +#define MADERA_DSP7_SCRATCH_1 0x3FFE40 +#define MADERA_DSP7_SCRATCH_2 0x3FFE42 +#define MADERA_DSP7_BUS_ERROR_ADDR 0x3FFE52 +#define MADERA_DSP7_REGION_LOCK_STS_0 0x3FFE64 +#define MADERA_DSP7_REGION_LOCK_1___DSP7_REGION_LOCK_0 0x3FFE66 +#define MADERA_DSP7_REGION_LOCK_3___DSP7_REGION_LOCK_2 0x3FFE68 +#define MADERA_DSP7_REGION_LOCK_5___DSP7_REGION_LOCK_4 0x3FFE6A +#define MADERA_DSP7_REGION_LOCK_7___DSP7_REGION_LOCK_6 0x3FFE6C +#define MADERA_DSP7_REGION_LOCK_9___DSP7_REGION_LOCK_8 0x3FFE6E +#define MADERA_DSP7_REGION_LOCK_CTRL_0 0x3FFE7A +#define MADERA_DSP7_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x3FFE7C + +/* (0x0000) Software_Reset */ +#define MADERA_SW_RST_DEV_ID1_MASK 0xFFFF +#define MADERA_SW_RST_DEV_ID1_SHIFT 0 +#define MADERA_SW_RST_DEV_ID1_WIDTH 16 + +/* (0x0001) Hardware_Revision */ +#define MADERA_HW_REVISION_MASK 0x00FF +#define MADERA_HW_REVISION_SHIFT 0 +#define MADERA_HW_REVISION_WIDTH 8 + +/* (0x0016) Write_Sequencer_Ctrl_0 */ +#define MADERA_WSEQ_ABORT 0x0800 +#define MADERA_WSEQ_ABORT_MASK 0x0800 +#define MADERA_WSEQ_ABORT_SHIFT 11 +#define MADERA_WSEQ_ABORT_WIDTH 1 +#define MADERA_WSEQ_START 0x0400 +#define MADERA_WSEQ_START_MASK 0x0400 +#define MADERA_WSEQ_START_SHIFT 10 +#define MADERA_WSEQ_START_WIDTH 1 +#define MADERA_WSEQ_ENA 0x0200 +#define MADERA_WSEQ_ENA_MASK 0x0200 +#define MADERA_WSEQ_ENA_SHIFT 9 +#define MADERA_WSEQ_ENA_WIDTH 1 +#define MADERA_WSEQ_START_INDEX_MASK 0x01FF +#define MADERA_WSEQ_START_INDEX_SHIFT 0 +#define MADERA_WSEQ_START_INDEX_WIDTH 9 + +/* (0x0017) Write_Sequencer_Ctrl_1 */ +#define MADERA_WSEQ_BUSY 0x0200 +#define MADERA_WSEQ_BUSY_MASK 0x0200 +#define MADERA_WSEQ_BUSY_SHIFT 9 +#define MADERA_WSEQ_BUSY_WIDTH 1 +#define MADERA_WSEQ_CURRENT_INDEX_MASK 0x01FF +#define MADERA_WSEQ_CURRENT_INDEX_SHIFT 0 +#define MADERA_WSEQ_CURRENT_INDEX_WIDTH 9 + +/* (0x0018) Write_Sequencer_Ctrl_2 */ +#define MADERA_LOAD_DEFAULTS 0x0002 +#define MADERA_LOAD_DEFAULTS_MASK 0x0002 +#define MADERA_LOAD_DEFAULTS_SHIFT 1 +#define MADERA_LOAD_DEFAULTS_WIDTH 1 +#define MADERA_WSEQ_LOAD_MEM 0x0001 +#define MADERA_WSEQ_LOAD_MEM_MASK 0x0001 +#define MADERA_WSEQ_LOAD_MEM_SHIFT 0 +#define MADERA_WSEQ_LOAD_MEM_WIDTH 1 + +/* (0x0020) Tone_Generator_1 */ +#define MADERA_TONE_RATE_MASK 0xF800 +#define MADERA_TONE_RATE_SHIFT 11 +#define MADERA_TONE_RATE_WIDTH 5 +#define MADERA_TONE_OFFSET_MASK 0x0300 +#define MADERA_TONE_OFFSET_SHIFT 8 +#define MADERA_TONE_OFFSET_WIDTH 2 +#define MADERA_TONE2_OVD 0x0020 +#define MADERA_TONE2_OVD_MASK 0x0020 +#define MADERA_TONE2_OVD_SHIFT 5 +#define MADERA_TONE2_OVD_WIDTH 1 +#define MADERA_TONE1_OVD 0x0010 +#define MADERA_TONE1_OVD_MASK 0x0010 +#define MADERA_TONE1_OVD_SHIFT 4 +#define MADERA_TONE1_OVD_WIDTH 1 +#define MADERA_TONE2_ENA 0x0002 +#define MADERA_TONE2_ENA_MASK 0x0002 +#define MADERA_TONE2_ENA_SHIFT 1 +#define MADERA_TONE2_ENA_WIDTH 1 +#define MADERA_TONE1_ENA 0x0001 +#define MADERA_TONE1_ENA_MASK 0x0001 +#define MADERA_TONE1_ENA_SHIFT 0 +#define MADERA_TONE1_ENA_WIDTH 1 + +/* (0x0021) Tone_Generator_2 */ +#define MADERA_TONE1_LVL_0_MASK 0xFFFF +#define MADERA_TONE1_LVL_0_SHIFT 0 +#define MADERA_TONE1_LVL_0_WIDTH 16 + +/* (0x0022) Tone_Generator_3 */ +#define MADERA_TONE1_LVL_MASK 0x00FF +#define MADERA_TONE1_LVL_SHIFT 0 +#define MADERA_TONE1_LVL_WIDTH 8 + +/* (0x0023) Tone_Generator_4 */ +#define MADERA_TONE2_LVL_0_MASK 0xFFFF +#define MADERA_TONE2_LVL_0_SHIFT 0 +#define MADERA_TONE2_LVL_0_WIDTH 16 + +/* (0x0024) Tone_Generator_5 */ +#define MADERA_TONE2_LVL_MASK 0x00FF +#define MADERA_TONE2_LVL_SHIFT 0 +#define MADERA_TONE2_LVL_WIDTH 8 + +/* (0x0030) PWM_Drive_1 */ +#define MADERA_PWM_RATE_MASK 0xF800 +#define MADERA_PWM_RATE_SHIFT 11 +#define MADERA_PWM_RATE_WIDTH 5 +#define MADERA_PWM_CLK_SEL_MASK 0x0700 +#define MADERA_PWM_CLK_SEL_SHIFT 8 +#define MADERA_PWM_CLK_SEL_WIDTH 3 +#define MADERA_PWM2_OVD 0x0020 +#define MADERA_PWM2_OVD_MASK 0x0020 +#define MADERA_PWM2_OVD_SHIFT 5 +#define MADERA_PWM2_OVD_WIDTH 1 +#define MADERA_PWM1_OVD 0x0010 +#define MADERA_PWM1_OVD_MASK 0x0010 +#define MADERA_PWM1_OVD_SHIFT 4 +#define MADERA_PWM1_OVD_WIDTH 1 +#define MADERA_PWM2_ENA 0x0002 +#define MADERA_PWM2_ENA_MASK 0x0002 +#define MADERA_PWM2_ENA_SHIFT 1 +#define MADERA_PWM2_ENA_WIDTH 1 +#define MADERA_PWM1_ENA 0x0001 +#define MADERA_PWM1_ENA_MASK 0x0001 +#define MADERA_PWM1_ENA_SHIFT 0 +#define MADERA_PWM1_ENA_WIDTH 1 + +/* (0x0031) PWM_Drive_2 */ +#define MADERA_PWM1_LVL_MASK 0x03FF +#define MADERA_PWM1_LVL_SHIFT 0 +#define MADERA_PWM1_LVL_WIDTH 10 + +/* (0x0032) PWM_Drive_3 */ +#define MADERA_PWM2_LVL_MASK 0x03FF +#define MADERA_PWM2_LVL_SHIFT 0 +#define MADERA_PWM2_LVL_WIDTH 10 + +/* (0x0041) Sequence_control */ +#define MADERA_WSEQ_ENA_MICD_CLAMP_FALL 0x0080 +#define MADERA_WSEQ_ENA_MICD_CLAMP_FALL_MASK 0x0080 +#define MADERA_WSEQ_ENA_MICD_CLAMP_FALL_SHIFT 7 +#define MADERA_WSEQ_ENA_MICD_CLAMP_FALL_WIDTH 1 +#define MADERA_WSEQ_ENA_MICD_CLAMP_RISE 0x0040 +#define MADERA_WSEQ_ENA_MICD_CLAMP_RISE_MASK 0x0040 +#define MADERA_WSEQ_ENA_MICD_CLAMP_RISE_SHIFT 6 +#define MADERA_WSEQ_ENA_MICD_CLAMP_RISE_WIDTH 1 + +/* (0x0090) Haptics_Control_1 */ +#define MADERA_HAP_RATE_MASK 0xF800 +#define MADERA_HAP_RATE_SHIFT 11 +#define MADERA_HAP_RATE_WIDTH 5 +#define MADERA_ONESHOT_TRIG 0x0010 +#define MADERA_ONESHOT_TRIG_MASK 0x0010 +#define MADERA_ONESHOT_TRIG_SHIFT 4 +#define MADERA_ONESHOT_TRIG_WIDTH 1 +#define MADERA_HAP_CTRL_MASK 0x000C +#define MADERA_HAP_CTRL_SHIFT 2 +#define MADERA_HAP_CTRL_WIDTH 2 +#define MADERA_HAP_ACT 0x0002 +#define MADERA_HAP_ACT_MASK 0x0002 +#define MADERA_HAP_ACT_SHIFT 1 +#define MADERA_HAP_ACT_WIDTH 1 + +/* (0x0091) Haptics_Control_2 */ +#define MADERA_LRA_FREQ_MASK 0x7FFF +#define MADERA_LRA_FREQ_SHIFT 0 +#define MADERA_LRA_FREQ_WIDTH 15 + +/* (0x0092) Haptics_phase_1_intensity */ +#define MADERA_PHASE1_INTENSITY_MASK 0x00FF +#define MADERA_PHASE1_INTENSITY_SHIFT 0 +#define MADERA_PHASE1_INTENSITY_WIDTH 8 + +/* (0x0093) Haptics_phase_1_duration */ +#define MADERA_PHASE1_DURATION_MASK 0x01FF +#define MADERA_PHASE1_DURATION_SHIFT 0 +#define MADERA_PHASE1_DURATION_WIDTH 9 + +/* (0x0094) Haptics_phase_2_intensity */ +#define MADERA_PHASE2_INTENSITY_MASK 0x00FF +#define MADERA_PHASE2_INTENSITY_SHIFT 0 +#define MADERA_PHASE2_INTENSITY_WIDTH 8 + +/* (0x0095) Haptics_phase_2_duration */ +#define MADERA_PHASE2_DURATION_MASK 0x07FF +#define MADERA_PHASE2_DURATION_SHIFT 0 +#define MADERA_PHASE2_DURATION_WIDTH 11 + +/* (0x0096) Haptics_phase_3_intensity */ +#define MADERA_PHASE3_INTENSITY_MASK 0x00FF +#define MADERA_PHASE3_INTENSITY_SHIFT 0 +#define MADERA_PHASE3_INTENSITY_WIDTH 8 + +/* (0x0097) Haptics_phase_3_duration */ +#define MADERA_PHASE3_DURATION_MASK 0x01FF +#define MADERA_PHASE3_DURATION_SHIFT 0 +#define MADERA_PHASE3_DURATION_WIDTH 9 + +/* (0x0098) Haptics_Status */ +#define MADERA_ONESHOT_STS 0x0001 +#define MADERA_ONESHOT_STS_MASK 0x0001 +#define MADERA_ONESHOT_STS_SHIFT 0 +#define MADERA_ONESHOT_STS_WIDTH 1 + +/* (0x00A0) Comfort_Noise_Generator */ +#define MADERA_NOISE_GEN_ENA 0x0020 +#define MADERA_NOISE_GEN_ENA_MASK 0x0020 +#define MADERA_NOISE_GEN_ENA_SHIFT 5 +#define MADERA_NOISE_GEN_ENA_WIDTH 1 +#define MADERA_NOISE_GEN_GAIN_MASK 0x001F +#define MADERA_NOISE_GEN_GAIN_SHIFT 0 +#define MADERA_NOISE_GEN_GAIN_WIDTH 5 + +/* (0x0100) Clock_32k_1 */ +#define MADERA_CLK_32K_ENA 0x0040 +#define MADERA_CLK_32K_ENA_MASK 0x0040 +#define MADERA_CLK_32K_ENA_SHIFT 6 +#define MADERA_CLK_32K_ENA_WIDTH 1 +#define MADERA_CLK_32K_SRC_MASK 0x0003 +#define MADERA_CLK_32K_SRC_SHIFT 0 +#define MADERA_CLK_32K_SRC_WIDTH 2 + +/* (0x0101) System_Clock_1 */ +#define MADERA_SYSCLK_FRAC 0x8000 +#define MADERA_SYSCLK_FRAC_MASK 0x8000 +#define MADERA_SYSCLK_FRAC_SHIFT 15 +#define MADERA_SYSCLK_FRAC_WIDTH 1 +#define MADERA_SYSCLK_FREQ_MASK 0x0700 +#define MADERA_SYSCLK_FREQ_SHIFT 8 +#define MADERA_SYSCLK_FREQ_WIDTH 3 +#define MADERA_SYSCLK_ENA 0x0040 +#define MADERA_SYSCLK_ENA_MASK 0x0040 +#define MADERA_SYSCLK_ENA_SHIFT 6 +#define MADERA_SYSCLK_ENA_WIDTH 1 +#define MADERA_SYSCLK_SRC_MASK 0x000F +#define MADERA_SYSCLK_SRC_SHIFT 0 +#define MADERA_SYSCLK_SRC_WIDTH 4 + +/* (0x0102) Sample_rate_1 */ +#define MADERA_SAMPLE_RATE_1_MASK 0x001F +#define MADERA_SAMPLE_RATE_1_SHIFT 0 +#define MADERA_SAMPLE_RATE_1_WIDTH 5 + +/* (0x0103) Sample_rate_2 */ +#define MADERA_SAMPLE_RATE_2_MASK 0x001F +#define MADERA_SAMPLE_RATE_2_SHIFT 0 +#define MADERA_SAMPLE_RATE_2_WIDTH 5 + +/* (0x0104) Sample_rate_3 */ +#define MADERA_SAMPLE_RATE_3_MASK 0x001F +#define MADERA_SAMPLE_RATE_3_SHIFT 0 +#define MADERA_SAMPLE_RATE_3_WIDTH 5 + +/* (0x010A) Sample_rate_1_status */ +#define MADERA_SAMPLE_RATE_1_STS_MASK 0x001F +#define MADERA_SAMPLE_RATE_1_STS_SHIFT 0 +#define MADERA_SAMPLE_RATE_1_STS_WIDTH 5 + +/* (0x010B) Sample_rate_2_status */ +#define MADERA_SAMPLE_RATE_2_STS_MASK 0x001F +#define MADERA_SAMPLE_RATE_2_STS_SHIFT 0 +#define MADERA_SAMPLE_RATE_2_STS_WIDTH 5 + +/* (0x010C) Sample_rate_3_status */ +#define MADERA_SAMPLE_RATE_3_STS_MASK 0x001F +#define MADERA_SAMPLE_RATE_3_STS_SHIFT 0 +#define MADERA_SAMPLE_RATE_3_STS_WIDTH 5 + +/* (0x0112) Async_clock_1 */ +#define MADERA_ASYNC_CLK_FREQ_MASK 0x0700 +#define MADERA_ASYNC_CLK_FREQ_SHIFT 8 +#define MADERA_ASYNC_CLK_FREQ_WIDTH 3 +#define MADERA_ASYNC_CLK_ENA 0x0040 +#define MADERA_ASYNC_CLK_ENA_MASK 0x0040 +#define MADERA_ASYNC_CLK_ENA_SHIFT 6 +#define MADERA_ASYNC_CLK_ENA_WIDTH 1 +#define MADERA_ASYNC_CLK_SRC_MASK 0x000F +#define MADERA_ASYNC_CLK_SRC_SHIFT 0 +#define MADERA_ASYNC_CLK_SRC_WIDTH 4 + +/* (0x0113) Async_sample_rate_1 */ +#define MADERA_ASYNC_SAMPLE_RATE_1_MASK 0x001F +#define MADERA_ASYNC_SAMPLE_RATE_1_SHIFT 0 +#define MADERA_ASYNC_SAMPLE_RATE_1_WIDTH 5 + +/* (0x0114) Async_sample_rate_2 */ +#define MADERA_ASYNC_SAMPLE_RATE_2_MASK 0x001F +#define MADERA_ASYNC_SAMPLE_RATE_2_SHIFT 0 +#define MADERA_ASYNC_SAMPLE_RATE_2_WIDTH 5 + +/* (0x011B) Async_sample_rate_1_status */ +#define MADERA_ASYNC_SAMPLE_RATE_1_STS_MASK 0x001F +#define MADERA_ASYNC_SAMPLE_RATE_1_STS_SHIFT 0 +#define MADERA_ASYNC_SAMPLE_RATE_1_STS_WIDTH 5 + +/* (0x011C) Async_sample_rate_2_status */ +#define MADERA_ASYNC_SAMPLE_RATE_2_STS_MASK 0x001F +#define MADERA_ASYNC_SAMPLE_RATE_2_STS_SHIFT 0 +#define MADERA_ASYNC_SAMPLE_RATE_2_STS_WIDTH 5 + +/* (0x0120) DSP_Clock_1 */ +#define MADERA_DSP_CLK_FREQ_LEGACY 0x0700 +#define MADERA_DSP_CLK_FREQ_LEGACY_MASK 0x0700 +#define MADERA_DSP_CLK_FREQ_LEGACY_SHIFT 8 +#define MADERA_DSP_CLK_FREQ_LEGACY_WIDTH 3 +#define MADERA_DSP_CLK_ENA 0x0040 +#define MADERA_DSP_CLK_ENA_MASK 0x0040 +#define MADERA_DSP_CLK_ENA_SHIFT 6 +#define MADERA_DSP_CLK_ENA_WIDTH 1 +#define MADERA_DSP_CLK_SRC 0x000F +#define MADERA_DSP_CLK_SRC_MASK 0x000F +#define MADERA_DSP_CLK_SRC_SHIFT 0 +#define MADERA_DSP_CLK_SRC_WIDTH 4 + +/* (0x0122) DSP_Clock_2 */ +#define MADERA_DSP_CLK_FREQ_MASK 0x03FF +#define MADERA_DSP_CLK_FREQ_SHIFT 0 +#define MADERA_DSP_CLK_FREQ_WIDTH 10 + +/* (0x0149) Output_system_clock */ +#define MADERA_OPCLK_ENA 0x8000 +#define MADERA_OPCLK_ENA_MASK 0x8000 +#define MADERA_OPCLK_ENA_SHIFT 15 +#define MADERA_OPCLK_ENA_WIDTH 1 +#define MADERA_OPCLK_DIV_MASK 0x00F8 +#define MADERA_OPCLK_DIV_SHIFT 3 +#define MADERA_OPCLK_DIV_WIDTH 5 +#define MADERA_OPCLK_SEL_MASK 0x0007 +#define MADERA_OPCLK_SEL_SHIFT 0 +#define MADERA_OPCLK_SEL_WIDTH 3 + +/* (0x014A) Output_async_clock */ +#define MADERA_OPCLK_ASYNC_ENA 0x8000 +#define MADERA_OPCLK_ASYNC_ENA_MASK 0x8000 +#define MADERA_OPCLK_ASYNC_ENA_SHIFT 15 +#define MADERA_OPCLK_ASYNC_ENA_WIDTH 1 +#define MADERA_OPCLK_ASYNC_DIV_MASK 0x00F8 +#define MADERA_OPCLK_ASYNC_DIV_SHIFT 3 +#define MADERA_OPCLK_ASYNC_DIV_WIDTH 5 +#define MADERA_OPCLK_ASYNC_SEL_MASK 0x0007 +#define MADERA_OPCLK_ASYNC_SEL_SHIFT 0 +#define MADERA_OPCLK_ASYNC_SEL_WIDTH 3 + +/* (0x0152) Rate_Estimator_1 */ +#define MADERA_TRIG_ON_STARTUP 0x0010 +#define MADERA_TRIG_ON_STARTUP_MASK 0x0010 +#define MADERA_TRIG_ON_STARTUP_SHIFT 4 +#define MADERA_TRIG_ON_STARTUP_WIDTH 1 +#define MADERA_LRCLK_SRC_MASK 0x000E +#define MADERA_LRCLK_SRC_SHIFT 1 +#define MADERA_LRCLK_SRC_WIDTH 3 +#define MADERA_RATE_EST_ENA 0x0001 +#define MADERA_RATE_EST_ENA_MASK 0x0001 +#define MADERA_RATE_EST_ENA_SHIFT 0 +#define MADERA_RATE_EST_ENA_WIDTH 1 + +/* (0x0153) Rate_Estimator_2 */ +#define MADERA_SAMPLE_RATE_DETECT_A_MASK 0x001F +#define MADERA_SAMPLE_RATE_DETECT_A_SHIFT 0 +#define MADERA_SAMPLE_RATE_DETECT_A_WIDTH 5 + +/* (0x0154) Rate_Estimator_3 */ +#define MADERA_SAMPLE_RATE_DETECT_B_MASK 0x001F +#define MADERA_SAMPLE_RATE_DETECT_B_SHIFT 0 +#define MADERA_SAMPLE_RATE_DETECT_B_WIDTH 5 + +/* (0x0155) Rate_Estimator_4 */ +#define MADERA_SAMPLE_RATE_DETECT_C_MASK 0x001F +#define MADERA_SAMPLE_RATE_DETECT_C_SHIFT 0 +#define MADERA_SAMPLE_RATE_DETECT_C_WIDTH 5 + +/* (0x0156) Rate_Estimator_5 */ +#define MADERA_SAMPLE_RATE_DETECT_D_MASK 0x001F +#define MADERA_SAMPLE_RATE_DETECT_D_SHIFT 0 +#define MADERA_SAMPLE_RATE_DETECT_D_WIDTH 5 + +/* (0x0171) FLL1_Control_1 */ +#define MADERA_FLL1_FREERUN 0x0002 +#define MADERA_FLL1_FREERUN_MASK 0x0002 +#define MADERA_FLL1_FREERUN_SHIFT 1 +#define MADERA_FLL1_FREERUN_WIDTH 1 +#define MADERA_FLL1_ENA 0x0001 +#define MADERA_FLL1_ENA_MASK 0x0001 +#define MADERA_FLL1_ENA_SHIFT 0 +#define MADERA_FLL1_ENA_WIDTH 1 + +/* (0x0172) FLL1_Control_2 */ +#define MADERA_FLL1_CTRL_UPD 0x8000 +#define MADERA_FLL1_CTRL_UPD_MASK 0x8000 +#define MADERA_FLL1_CTRL_UPD_SHIFT 15 +#define MADERA_FLL1_CTRL_UPD_WIDTH 1 +#define MADERA_FLL1_N_MASK 0x03FF +#define MADERA_FLL1_N_SHIFT 0 +#define MADERA_FLL1_N_WIDTH 10 + +/* (0x0173) FLL1_Control_3 */ +#define MADERA_FLL1_THETA_MASK 0xFFFF +#define MADERA_FLL1_THETA_SHIFT 0 +#define MADERA_FLL1_THETA_WIDTH 16 + +/* (0x0174) FLL1_Control_4 */ +#define MADERA_FLL1_LAMBDA_MASK 0xFFFF +#define MADERA_FLL1_LAMBDA_SHIFT 0 +#define MADERA_FLL1_LAMBDA_WIDTH 16 + +/* (0x0175) FLL1_Control_5 */ +#define MADERA_FLL1_FRATIO_MASK 0x0F00 +#define MADERA_FLL1_FRATIO_SHIFT 8 +#define MADERA_FLL1_FRATIO_WIDTH 4 + +/* (0x0176) FLL1_Control_6 */ +#define MADERA_FLL1_REFCLK_DIV_MASK 0x00C0 +#define MADERA_FLL1_REFCLK_DIV_SHIFT 6 +#define MADERA_FLL1_REFCLK_DIV_WIDTH 2 +#define MADERA_FLL1_REFCLK_SRC_MASK 0x000F +#define MADERA_FLL1_REFCLK_SRC_SHIFT 0 +#define MADERA_FLL1_REFCLK_SRC_WIDTH 4 + +/* (0x0177) FLL1_Loop_Filter_Test_1 */ +#define MADERA_FLL1_FRC_INTEG_UPD 0x8000 +#define MADERA_FLL1_FRC_INTEG_UPD_MASK 0x8000 +#define MADERA_FLL1_FRC_INTEG_UPD_SHIFT 15 +#define MADERA_FLL1_FRC_INTEG_UPD_WIDTH 1 +#define MADERA_FLL1_FRC_INTEG_VAL_MASK 0x0FFF +#define MADERA_FLL1_FRC_INTEG_VAL_SHIFT 0 +#define MADERA_FLL1_FRC_INTEG_VAL_WIDTH 12 + +/* (0x0179) FLL1_Control_7 */ +#define MADERA_FLL1_GAIN_MASK 0x003c +#define MADERA_FLL1_GAIN_SHIFT 2 +#define MADERA_FLL1_GAIN_WIDTH 4 + +/* (0x017A) FLL1_EFS_2 */ +#define MADERA_FLL1_PHASE_GAIN_MASK 0xF000 +#define MADERA_FLL1_PHASE_GAIN_SHIFT 12 +#define MADERA_FLL1_PHASE_GAIN_WIDTH 4 +#define MADERA_FLL1_PHASE_ENA_MASK 0x0800 +#define MADERA_FLL1_PHASE_ENA_SHIFT 11 +#define MADERA_FLL1_PHASE_ENA_WIDTH 1 + +/* (0x0181) FLL1_Synchroniser_1 */ +#define MADERA_FLL1_SYNC_ENA 0x0001 +#define MADERA_FLL1_SYNC_ENA_MASK 0x0001 +#define MADERA_FLL1_SYNC_ENA_SHIFT 0 +#define MADERA_FLL1_SYNC_ENA_WIDTH 1 + +/* (0x0182) FLL1_Synchroniser_2 */ +#define MADERA_FLL1_SYNC_N_MASK 0x03FF +#define MADERA_FLL1_SYNC_N_SHIFT 0 +#define MADERA_FLL1_SYNC_N_WIDTH 10 + +/* (0x0183) FLL1_Synchroniser_3 */ +#define MADERA_FLL1_SYNC_THETA_MASK 0xFFFF +#define MADERA_FLL1_SYNC_THETA_SHIFT 0 +#define MADERA_FLL1_SYNC_THETA_WIDTH 16 + +/* (0x0184) FLL1_Synchroniser_4 */ +#define MADERA_FLL1_SYNC_LAMBDA_MASK 0xFFFF +#define MADERA_FLL1_SYNC_LAMBDA_SHIFT 0 +#define MADERA_FLL1_SYNC_LAMBDA_WIDTH 16 + +/* (0x0185) FLL1_Synchroniser_5 */ +#define MADERA_FLL1_SYNC_FRATIO_MASK 0x0700 +#define MADERA_FLL1_SYNC_FRATIO_SHIFT 8 +#define MADERA_FLL1_SYNC_FRATIO_WIDTH 3 + +/* (0x0186) FLL1_Synchroniser_6 */ +#define MADERA_FLL1_SYNCCLK_DIV_MASK 0x00C0 +#define MADERA_FLL1_SYNCCLK_DIV_SHIFT 6 +#define MADERA_FLL1_SYNCCLK_DIV_WIDTH 2 +#define MADERA_FLL1_SYNCCLK_SRC_MASK 0x000F +#define MADERA_FLL1_SYNCCLK_SRC_SHIFT 0 +#define MADERA_FLL1_SYNCCLK_SRC_WIDTH 4 + +/* (0x0187) FLL1_Synchroniser_7 */ +#define MADERA_FLL1_SYNC_GAIN_MASK 0x003c +#define MADERA_FLL1_SYNC_GAIN_SHIFT 2 +#define MADERA_FLL1_SYNC_GAIN_WIDTH 4 +#define MADERA_FLL1_SYNC_DFSAT 0x0001 +#define MADERA_FLL1_SYNC_DFSAT_MASK 0x0001 +#define MADERA_FLL1_SYNC_DFSAT_SHIFT 0 +#define MADERA_FLL1_SYNC_DFSAT_WIDTH 1 + +/* (0x0189) FLL1_Spread_Spectrum */ +#define MADERA_FLL1_SS_AMPL_MASK 0x0030 +#define MADERA_FLL1_SS_AMPL_SHIFT 4 +#define MADERA_FLL1_SS_AMPL_WIDTH 2 +#define MADERA_FLL1_SS_FREQ_MASK 0x000C +#define MADERA_FLL1_SS_FREQ_SHIFT 2 +#define MADERA_FLL1_SS_FREQ_WIDTH 2 +#define MADERA_FLL1_SS_SEL_MASK 0x0003 +#define MADERA_FLL1_SS_SEL_SHIFT 0 +#define MADERA_FLL1_SS_SEL_WIDTH 2 + +/* (0x018A) FLL1_GPIO_Clock */ +#define MADERA_FLL1_GPCLK_DIV_MASK 0x00FE +#define MADERA_FLL1_GPCLK_DIV_SHIFT 1 +#define MADERA_FLL1_GPCLK_DIV_WIDTH 7 +#define MADERA_FLL1_GPCLK_ENA 0x0001 +#define MADERA_FLL1_GPCLK_ENA_MASK 0x0001 +#define MADERA_FLL1_GPCLK_ENA_SHIFT 0 +#define MADERA_FLL1_GPCLK_ENA_WIDTH 1 + +/* (0x0191) FLL2_Control_1 */ +#define MADERA_FLL2_FREERUN 0x0002 +#define MADERA_FLL2_FREERUN_MASK 0x0002 +#define MADERA_FLL2_FREERUN_SHIFT 1 +#define MADERA_FLL2_FREERUN_WIDTH 1 +#define MADERA_FLL2_ENA 0x0001 +#define MADERA_FLL2_ENA_MASK 0x0001 +#define MADERA_FLL2_ENA_SHIFT 0 +#define MADERA_FLL2_ENA_WIDTH 1 + +/* (0x0192) FLL2_Control_2 */ +#define MADERA_FLL2_CTRL_UPD 0x8000 +#define MADERA_FLL2_CTRL_UPD_MASK 0x8000 +#define MADERA_FLL2_CTRL_UPD_SHIFT 15 +#define MADERA_FLL2_CTRL_UPD_WIDTH 1 +#define MADERA_FLL2_N_MASK 0x03FF +#define MADERA_FLL2_N_SHIFT 0 +#define MADERA_FLL2_N_WIDTH 10 + +/* (0x0193) FLL2_Control_3 */ +#define MADERA_FLL2_THETA_MASK 0xFFFF +#define MADERA_FLL2_THETA_SHIFT 0 +#define MADERA_FLL2_THETA_WIDTH 16 + +/* (0x0194) FLL2_Control_4 */ +#define MADERA_FLL2_LAMBDA_MASK 0xFFFF +#define MADERA_FLL2_LAMBDA_SHIFT 0 +#define MADERA_FLL2_LAMBDA_WIDTH 16 + +/* (0x0195) FLL2_Control_5 */ +#define MADERA_FLL2_FRATIO_MASK 0x0700 +#define MADERA_FLL2_FRATIO_SHIFT 8 +#define MADERA_FLL2_FRATIO_WIDTH 3 + +/* (0x0196) FLL2_Control_6 */ +#define MADERA_FLL2_REFCLK_DIV_MASK 0x00C0 +#define MADERA_FLL2_REFCLK_DIV_SHIFT 6 +#define MADERA_FLL2_REFCLK_DIV_WIDTH 2 +#define MADERA_FLL2_REFCLK_SRC_MASK 0x000F +#define MADERA_FLL2_REFCLK_SRC_SHIFT 0 +#define MADERA_FLL2_REFCLK_SRC_WIDTH 4 + +/* (0x0197) FLL2_Loop_Filter_Test_1 */ +#define MADERA_FLL2_FRC_INTEG_UPD 0x8000 +#define MADERA_FLL2_FRC_INTEG_UPD_MASK 0x8000 +#define MADERA_FLL2_FRC_INTEG_UPD_SHIFT 15 +#define MADERA_FLL2_FRC_INTEG_UPD_WIDTH 1 +#define MADERA_FLL2_FRC_INTEG_VAL_MASK 0x0FFF +#define MADERA_FLL2_FRC_INTEG_VAL_SHIFT 0 +#define MADERA_FLL2_FRC_INTEG_VAL_WIDTH 12 + +/* (0x0199) FLL2_Control_7 */ +#define MADERA_FLL2_GAIN_MASK 0x003c +#define MADERA_FLL2_GAIN_SHIFT 2 +#define MADERA_FLL2_GAIN_WIDTH 4 + +/* (0x019A) FLL2_EFS_2 */ +#define MADERA_FLL2_PHASE_GAIN_MASK 0xF000 +#define MADERA_FLL2_PHASE_GAIN_SHIFT 12 +#define MADERA_FLL2_PHASE_GAIN_WIDTH 4 +#define MADERA_FLL2_PHASE_ENA_MASK 0x0800 +#define MADERA_FLL2_PHASE_ENA_SHIFT 11 +#define MADERA_FLL2_PHASE_ENA_WIDTH 1 + +/* (0x01A1) FLL2_Synchroniser_1 */ +#define MADERA_FLL2_SYNC_ENA 0x0001 +#define MADERA_FLL2_SYNC_ENA_MASK 0x0001 +#define MADERA_FLL2_SYNC_ENA_SHIFT 0 +#define MADERA_FLL2_SYNC_ENA_WIDTH 1 + +/* (0x01A2) FLL2_Synchroniser_2 */ +#define MADERA_FLL2_SYNC_N_MASK 0x03FF +#define MADERA_FLL2_SYNC_N_SHIFT 0 +#define MADERA_FLL2_SYNC_N_WIDTH 10 + +/* (0x01A3) FLL2_Synchroniser_3 */ +#define MADERA_FLL2_SYNC_THETA_MASK 0xFFFF +#define MADERA_FLL2_SYNC_THETA_SHIFT 0 +#define MADERA_FLL2_SYNC_THETA_WIDTH 16 + +/* (0x01A4) FLL2_Synchroniser_4 */ +#define MADERA_FLL2_SYNC_LAMBDA_MASK 0xFFFF +#define MADERA_FLL2_SYNC_LAMBDA_SHIFT 0 +#define MADERA_FLL2_SYNC_LAMBDA_WIDTH 16 + +/* (0x01A5) FLL2_Synchroniser_5 */ +#define MADERA_FLL2_SYNC_FRATIO_MASK 0x0700 +#define MADERA_FLL2_SYNC_FRATIO_SHIFT 8 +#define MADERA_FLL2_SYNC_FRATIO_WIDTH 3 + +/* (0x01A6) FLL2_Synchroniser_6 */ +#define MADERA_FLL2_SYNCCLK_DIV_MASK 0x00C0 +#define MADERA_FLL2_SYNCCLK_DIV_SHIFT 6 +#define MADERA_FLL2_SYNCCLK_DIV_WIDTH 2 +#define MADERA_FLL2_SYNCCLK_SRC_MASK 0x000F +#define MADERA_FLL2_SYNCCLK_SRC_SHIFT 0 +#define MADERA_FLL2_SYNCCLK_SRC_WIDTH 4 + +/* (0x01A7) FLL2_Synchroniser_7 */ +#define MADERA_FLL2_SYNC_GAIN_MASK 0x003c +#define MADERA_FLL2_SYNC_GAIN_SHIFT 2 +#define MADERA_FLL2_SYNC_GAIN_WIDTH 4 +#define MADERA_FLL2_SYNC_DFSAT 0x0001 +#define MADERA_FLL2_SYNC_DFSAT_MASK 0x0001 +#define MADERA_FLL2_SYNC_DFSAT_SHIFT 0 +#define MADERA_FLL2_SYNC_DFSAT_WIDTH 1 + +/* (0x01A9) FLL2_Spread_Spectrum */ +#define MADERA_FLL2_SS_AMPL_MASK 0x0030 +#define MADERA_FLL2_SS_AMPL_SHIFT 4 +#define MADERA_FLL2_SS_AMPL_WIDTH 2 +#define MADERA_FLL2_SS_FREQ_MASK 0x000C +#define MADERA_FLL2_SS_FREQ_SHIFT 2 +#define MADERA_FLL2_SS_FREQ_WIDTH 2 +#define MADERA_FLL2_SS_SEL_MASK 0x0003 +#define MADERA_FLL2_SS_SEL_SHIFT 0 +#define MADERA_FLL2_SS_SEL_WIDTH 2 + +/* (0x01AA) FLL2_GPIO_Clock */ +#define MADERA_FLL2_GPCLK_DIV_MASK 0x00FE +#define MADERA_FLL2_GPCLK_DIV_SHIFT 1 +#define MADERA_FLL2_GPCLK_DIV_WIDTH 7 +#define MADERA_FLL2_GPCLK_ENA 0x0001 +#define MADERA_FLL2_GPCLK_ENA_MASK 0x0001 +#define MADERA_FLL2_GPCLK_ENA_SHIFT 0 +#define MADERA_FLL2_GPCLK_ENA_WIDTH 1 + +/* (0x01B1) FLL3_Control_1 */ +#define MADERA_FLL3_FREERUN 0x0002 +#define MADERA_FLL3_FREERUN_MASK 0x0002 +#define MADERA_FLL3_FREERUN_SHIFT 1 +#define MADERA_FLL3_FREERUN_WIDTH 1 +#define MADERA_FLL3_ENA 0x0001 +#define MADERA_FLL3_ENA_MASK 0x0001 +#define MADERA_FLL3_ENA_SHIFT 0 +#define MADERA_FLL3_ENA_WIDTH 1 + +/* (0x01B2) FLL3_Control_2 */ +#define MADERA_FLL3_CTRL_UPD 0x8000 +#define MADERA_FLL3_CTRL_UPD_MASK 0x8000 +#define MADERA_FLL3_CTRL_UPD_SHIFT 15 +#define MADERA_FLL3_CTRL_UPD_WIDTH 1 +#define MADERA_FLL3_N_MASK 0x03FF +#define MADERA_FLL3_N_SHIFT 0 +#define MADERA_FLL3_N_WIDTH 10 + +/* (0x01B3) FLL3_Control_3 */ +#define MADERA_FLL3_THETA_MASK 0xFFFF +#define MADERA_FLL3_THETA_SHIFT 0 +#define MADERA_FLL3_THETA_WIDTH 16 + +/* (0x01B4) FLL3_Control_4 */ +#define MADERA_FLL3_LAMBDA_MASK 0xFFFF +#define MADERA_FLL3_LAMBDA_SHIFT 0 +#define MADERA_FLL3_LAMBDA_WIDTH 16 + +/* (0x01B5) FLL3_Control_5 */ +#define MADERA_FLL3_FRATIO_MASK 0x0700 +#define MADERA_FLL3_FRATIO_SHIFT 8 +#define MADERA_FLL3_FRATIO_WIDTH 3 + +/* (0x01B6) FLL3_Control_6 */ +#define MADERA_FLL3_REFCLK_DIV_MASK 0x00C0 +#define MADERA_FLL3_REFCLK_DIV_SHIFT 6 +#define MADERA_FLL3_REFCLK_DIV_WIDTH 2 +#define MADERA_FLL3_REFCLK_SRC_MASK 0x000F +#define MADERA_FLL3_REFCLK_SRC_SHIFT 0 +#define MADERA_FLL3_REFCLK_SRC_WIDTH 4 + +/* (0x01B7) FLL3_Loop_Filter_Test_1 */ +#define MADERA_FLL3_FRC_INTEG_UPD 0x8000 +#define MADERA_FLL3_FRC_INTEG_UPD_MASK 0x8000 +#define MADERA_FLL3_FRC_INTEG_UPD_SHIFT 15 +#define MADERA_FLL3_FRC_INTEG_UPD_WIDTH 1 +#define MADERA_FLL3_FRC_INTEG_VAL_MASK 0x0FFF +#define MADERA_FLL3_FRC_INTEG_VAL_SHIFT 0 +#define MADERA_FLL3_FRC_INTEG_VAL_WIDTH 12 + +/* (0x01B9) FLL3_Control_7 */ +#define MADERA_FLL3_GAIN_MASK 0x003c +#define MADERA_FLL3_GAIN_SHIFT 2 +#define MADERA_FLL3_GAIN_WIDTH 4 + +/* (0x01C1) FLL3_Synchroniser_1 */ +#define MADERA_FLL3_SYNC_ENA 0x0001 +#define MADERA_FLL3_SYNC_ENA_MASK 0x0001 +#define MADERA_FLL3_SYNC_ENA_SHIFT 0 +#define MADERA_FLL3_SYNC_ENA_WIDTH 1 + +/* (0x01C2) FLL3_Synchroniser_2 */ +#define MADERA_FLL3_SYNC_N_MASK 0x03FF +#define MADERA_FLL3_SYNC_N_SHIFT 0 +#define MADERA_FLL3_SYNC_N_WIDTH 10 + +/* (0x01C3) FLL3_Synchroniser_3 */ +#define MADERA_FLL3_SYNC_THETA_MASK 0xFFFF +#define MADERA_FLL3_SYNC_THETA_SHIFT 0 +#define MADERA_FLL3_SYNC_THETA_WIDTH 16 + +/* (0x01C4) FLL3_Synchroniser_4 */ +#define MADERA_FLL3_SYNC_LAMBDA_MASK 0xFFFF +#define MADERA_FLL3_SYNC_LAMBDA_SHIFT 0 +#define MADERA_FLL3_SYNC_LAMBDA_WIDTH 16 + +/* (0x01C5) FLL3_Synchroniser_5 */ +#define MADERA_FLL3_SYNC_FRATIO_MASK 0x0700 +#define MADERA_FLL3_SYNC_FRATIO_SHIFT 8 +#define MADERA_FLL3_SYNC_FRATIO_WIDTH 3 + +/* (0x01C6) FLL3_Synchroniser_6 */ +#define MADERA_FLL3_SYNCCLK_DIV_MASK 0x00C0 +#define MADERA_FLL3_SYNCCLK_DIV_SHIFT 6 +#define MADERA_FLL3_SYNCCLK_DIV_WIDTH 2 +#define MADERA_FLL3_SYNCCLK_SRC_MASK 0x000F +#define MADERA_FLL3_SYNCCLK_SRC_SHIFT 0 +#define MADERA_FLL3_SYNCCLK_SRC_WIDTH 4 + +/* (0x01C7) FLL3_Synchroniser_7 */ +#define MADERA_FLL3_SYNC_GAIN_MASK 0x003c +#define MADERA_FLL3_SYNC_GAIN_SHIFT 2 +#define MADERA_FLL3_SYNC_GAIN_WIDTH 4 +#define MADERA_FLL3_SYNC_DFSAT 0x0001 +#define MADERA_FLL3_SYNC_DFSAT_MASK 0x0001 +#define MADERA_FLL3_SYNC_DFSAT_SHIFT 0 +#define MADERA_FLL3_SYNC_DFSAT_WIDTH 1 + +/* (0x01C9) FLL3_Spread_Spectrum */ +#define MADERA_FLL3_SS_AMPL_MASK 0x0030 +#define MADERA_FLL3_SS_AMPL_SHIFT 4 +#define MADERA_FLL3_SS_AMPL_WIDTH 2 +#define MADERA_FLL3_SS_FREQ_MASK 0x000C +#define MADERA_FLL3_SS_FREQ_SHIFT 2 +#define MADERA_FLL3_SS_FREQ_WIDTH 2 +#define MADERA_FLL3_SS_SEL_MASK 0x0003 +#define MADERA_FLL3_SS_SEL_SHIFT 0 +#define MADERA_FLL3_SS_SEL_WIDTH 2 + +/* (0x01CA) FLL3_GPIO_Clock */ +#define MADERA_FLL3_GPCLK_DIV_MASK 0x00FE +#define MADERA_FLL3_GPCLK_DIV_SHIFT 1 +#define MADERA_FLL3_GPCLK_DIV_WIDTH 7 +#define MADERA_FLL3_GPCLK_DIV_ENA 0x0001 +#define MADERA_FLL3_GPCLK_DIV_ENA_MASK 0x0001 +#define MADERA_FLL3_GPCLK_DIV_ENA_SHIFT 0 +#define MADERA_FLL3_GPCLK_DIV_ENA_WIDTH 1 + +/* (0x01D1) FLL_AO_Control_1 */ +#define MADERA_FLL_AO_HOLD 0x0004 +#define MADERA_FLL_AO_HOLD_MASK 0x0004 +#define MADERA_FLL_AO_HOLD_SHIFT 2 +#define MADERA_FLL_AO_HOLD_WIDTH 1 +#define MADERA_FLL_AO_FREERUN 0x0002 +#define MADERA_FLL_AO_FREERUN_MASK 0x0002 +#define MADERA_FLL_AO_FREERUN_SHIFT 1 +#define MADERA_FLL_AO_FREERUN_WIDTH 1 +#define MADERA_FLL_AO_ENA 0x0001 +#define MADERA_FLL_AO_ENA_MASK 0x0001 +#define MADERA_FLL_AO_ENA_SHIFT 0 +#define MADERA_FLL_AO_ENA_WIDTH 1 + +/* (0x01D2) FLL_AO_Control_2 */ +#define MADERA_FLL_AO_CTRL_UPD 0x8000 +#define MADERA_FLL_AO_CTRL_UPD_MASK 0x8000 +#define MADERA_FLL_AO_CTRL_UPD_SHIFT 15 +#define MADERA_FLL_AO_CTRL_UPD_WIDTH 1 +#define MADERA_FLL_AO_N_MASK 0x03FF +#define MADERA_FLL_AO_N_SHIFT 0 +#define MADERA_FLL_AO_N_WIDTH 10 + +/* (0x01D3) FLL_AO_Control_3 */ +#define MADERA_FLL_AO_THETA_MASK 0x00FF +#define MADERA_FLL_AO_THETA_SHIFT 0 +#define MADERA_FLL_AO_THETA_WIDTH 8 + +/* (0x01D4) FLL_AO_Control_4 */ +#define MADERA_FLL_AO_LAMBDA_MASK 0x00FF +#define MADERA_FLL_AO_LAMBDA_SHIFT 0 +#define MADERA_FLL_AO_LAMBDA_WIDTH 8 + +/* (0x01D5) FLL_AO_Control_5 */ +#define MADERA_FLL_AO_FB_DIV_MASK 0x00FF +#define MADERA_FLL_AO_FB_DIV_SHIFT 0 +#define MADERA_FLL_AO_FB_DIV_WIDTH 8 + +/* (0x01D6) FLL_AO_Control_6 */ +#define MADERA_FLL_AO_REFDET_ENA 0x8000 +#define MADERA_FLL_AO_REFDET_ENA_MASK 0x8000 +#define MADERA_FLL_AO_REFDET_ENA_SHIFT 15 +#define MADERA_FLL_AO_REFDET_ENA_WIDTH 1 +#define MADERA_FLL_AO_REFCLK_DIV_MASK 0x00C0 +#define MADERA_FLL_AO_REFCLK_DIV_SHIFT 6 +#define MADERA_FLL_AO_REFCLK_DIV_WIDTH 2 +#define MADERA_FLL_AO_REFCLK_SRC_MASK 0x000F +#define MADERA_FLL_AO_REFCLK_SRC_SHIFT 0 +#define MADERA_FLL_AO_REFCLK_SRC_WIDTH 4 + +/* (0x01D8) FLL_AO_Control_7 */ +#define MADERA_FLL_AO_GAIN_MASK 0x000F +#define MADERA_FLL_AO_GAIN_SHIFT 0 +#define MADERA_FLL_AO_GAIN_WIDTH 4 + +/* (0x01DA) FLL_AO_Control_8 */ +#define MADERA_FLL_AO_HS_DITH_TUNE_MASK 0xF000 +#define MADERA_FLL_AO_HS_DITH_TUNE_SHIFT 12 +#define MADERA_FLL_AO_HS_DITH_TUNE_WIDTH 4 +#define MADERA_FLL_AO_LS_DITH_TUNE_SHAPED_MASK 0x00F0 +#define MADERA_FLL_AO_LS_DITH_TUNE_SHAPED_SHIFT 4 +#define MADERA_FLL_AO_LS_DITH_TUNE_SHAPED_WIDTH 4 +#define MADERA_FLL_AO_LS_DITH_TUNE_NONSHAPED_MASK 0x000F +#define MADERA_FLL_AO_LS_DITH_TUNE_NONSHAPED_SHIFT 0 +#define MADERA_FLL_AO_LS_DITH_TUNE_NONSHAPED_WIDTH 4 + +/* (0x01DB) FLL_AO_Control_9 */ +#define MADERA_FLL_AO_TR_RATE_MASK 0x000F +#define MADERA_FLL_AO_TR_RATE_SHIFT 0 +#define MADERA_FLL_AO_TR_RATE_WIDTH 4 + +/* (0x01DC) FLL_AO_Control_10 */ +#define MADERA_FLL_AO_PHASEDET_ENA 0x1000 +#define MADERA_FLL_AO_PHASEDET_ENA_MASK 0x1000 +#define MADERA_FLL_AO_PHASEDET_ENA_SHIFT 12 +#define MADERA_FLL_AO_PHASEDET_ENA_WIDTH 1 +#define MADERA_FLL_AO_WLR_SDM_FRC_ENA 0x0800 +#define MADERA_FLL_AO_WLR_SDM_FRC_ENA_MASK 0x0800 +#define MADERA_FLL_AO_WLR_SDM_FRC_ENA_SHIFT 11 +#define MADERA_FLL_AO_WLR_SDM_FRC_ENA_WIDTH 1 +#define MADERA_FLL_AO_WLR_SDM_ENA 0x0400 +#define MADERA_FLL_AO_WLR_SDM_ENA_MASK 0x0400 +#define MADERA_FLL_AO_WLR_SDM_ENA_SHIFT 10 +#define MADERA_FLL_AO_WLR_SDM_ENA_WIDTH 1 +#define MADERA_FLL_AO_SYNC_EFS_ENA 0x0200 +#define MADERA_FLL_AO_SYNC_EFS_ENA_MASK 0x0200 +#define MADERA_FLL_AO_SYNC_EFS_ENA_SHIFT 9 +#define MADERA_FLL_AO_SYNC_EFS_ENA_WIDTH 1 +#define MADERA_FLL_AO_LS_DITH_ENA 0x0080 +#define MADERA_FLL_AO_LS_DITH_ENA_MASK 0x0080 +#define MADERA_FLL_AO_LS_DITH_ENA_SHIFT 7 +#define MADERA_FLL_AO_LS_DITH_ENA_WIDTH 1 +#define MADERA_FLL_AO_HS_DITH_ENA 0x0040 +#define MADERA_FLL_AO_HS_DITH_ENA_MASK 0x0040 +#define MADERA_FLL_AO_HS_DITH_ENA_SHIFT 6 +#define MADERA_FLL_AO_HS_DITH_ENA_WIDTH 1 +#define MADERA_FLL_AO_OSF_FRC_ENA 0x0010 +#define MADERA_FLL_AO_OSF_FRC_ENA_MASK 0x0010 +#define MADERA_FLL_AO_OSF_FRC_ENA_SHIFT 4 +#define MADERA_FLL_AO_OSF_FRC_ENA_WIDTH 1 +#define MADERA_FLL_AO_OSF_ENA 0x0008 +#define MADERA_FLL_AO_OSF_ENA_MASK 0x0008 +#define MADERA_FLL_AO_OSF_ENA_SHIFT 3 +#define MADERA_FLL_AO_OSF_ENA_WIDTH 1 +#define MADERA_FLL_AO_AUTO_DFSAT_ENA 0x0002 +#define MADERA_FLL_AO_AUTO_DFSAT_ENA_MASK 0x0002 +#define MADERA_FLL_AO_AUTO_DFSAT_ENA_SHIFT 1 +#define MADERA_FLL_AO_AUTO_DFSAT_ENA_WIDTH 1 +#define MADERA_FLL_AO_DFSAT_ENA 0x0001 +#define MADERA_FLL_AO_DFSAT_ENA_MASK 0x0001 +#define MADERA_FLL_AO_DFSAT_ENA_SHIFT 0 +#define MADERA_FLL_AO_DFSAT_ENA_WIDTH 1 + +/* (0x01DD) FLL_AO_Control_11 */ +#define MADERA_FLL_AO_LOCKDET_PHASE_MASK 0x0080 +#define MADERA_FLL_AO_LOCKDET_PHASE_MASK_MASK 0x0080 +#define MADERA_FLL_AO_LOCKDET_PHASE_MASK_SHIFT 7 +#define MADERA_FLL_AO_LOCKDET_PHASE_MASK_WIDTH 1 +#define MADERA_FLL_AO_LOCKDET_THR_MASK 0x001E +#define MADERA_FLL_AO_LOCKDET_THR_SHIFT 1 +#define MADERA_FLL_AO_LOCKDET_THR_WIDTH 4 +#define MADERA_FLL_AO_LOCKDET_ENA 0x0001 +#define MADERA_FLL_AO_LOCKDET_ENA_MASK 0x0001 +#define MADERA_FLL_AO_LOCKDET_ENA_SHIFT 0 +#define MADERA_FLL_AO_LOCKDET_ENA_WIDTH 1 + +/* (0x0200) Mic_Charge_Pump_1 */ +#define MADERA_CPMIC_DISCH 0x0004 +#define MADERA_CPMIC_DISCH_MASK 0x0004 +#define MADERA_CPMIC_DISCH_SHIFT 2 +#define MADERA_CPMIC_DISCH_WIDTH 1 +#define MADERA_CPMIC_BYPASS 0x0002 +#define MADERA_CPMIC_BYPASS_MASK 0x0002 +#define MADERA_CPMIC_BYPASS_SHIFT 1 +#define MADERA_CPMIC_BYPASS_WIDTH 1 +#define MADERA_CPMIC_ENA 0x0001 +#define MADERA_CPMIC_ENA_MASK 0x0001 +#define MADERA_CPMIC_ENA_SHIFT 0 +#define MADERA_CPMIC_ENA_WIDTH 1 + +/* (0x0210) LDO1_Control_1 */ +#define MADERA_LDO1_VSEL_MASK 0x07E0 +#define MADERA_LDO1_VSEL_SHIFT 5 +#define MADERA_LDO1_VSEL_WIDTH 6 +#define MADERA_LDO1_FAST 0x0010 +#define MADERA_LDO1_FAST_MASK 0x0010 +#define MADERA_LDO1_FAST_SHIFT 4 +#define MADERA_LDO1_FAST_WIDTH 1 +#define MADERA_LDO1_DISCH 0x0004 +#define MADERA_LDO1_DISCH_MASK 0x0004 +#define MADERA_LDO1_DISCH_SHIFT 2 +#define MADERA_LDO1_DISCH_WIDTH 1 +#define MADERA_LDO1_BYPASS 0x0002 +#define MADERA_LDO1_BYPASS_MASK 0x0002 +#define MADERA_LDO1_BYPASS_SHIFT 1 +#define MADERA_LDO1_BYPASS_WIDTH 1 +#define MADERA_LDO1_ENA 0x0001 +#define MADERA_LDO1_ENA_MASK 0x0001 +#define MADERA_LDO1_ENA_SHIFT 0 +#define MADERA_LDO1_ENA_WIDTH 1 + +/* (0x0213) LDO2_Control_1 */ +#define MADERA_LDO2_VSEL_MASK 0x07E0 +#define MADERA_LDO2_VSEL_SHIFT 5 +#define MADERA_LDO2_VSEL_WIDTH 6 +#define MADERA_LDO2_FAST 0x0010 +#define MADERA_LDO2_FAST_MASK 0x0010 +#define MADERA_LDO2_FAST_SHIFT 4 +#define MADERA_LDO2_FAST_WIDTH 1 +#define MADERA_LDO2_DISCH 0x0004 +#define MADERA_LDO2_DISCH_MASK 0x0004 +#define MADERA_LDO2_DISCH_SHIFT 2 +#define MADERA_LDO2_DISCH_WIDTH 1 +#define MADERA_LDO2_BYPASS 0x0002 +#define MADERA_LDO2_BYPASS_MASK 0x0002 +#define MADERA_LDO2_BYPASS_SHIFT 1 +#define MADERA_LDO2_BYPASS_WIDTH 1 +#define MADERA_LDO2_ENA 0x0001 +#define MADERA_LDO2_ENA_MASK 0x0001 +#define MADERA_LDO2_ENA_SHIFT 0 +#define MADERA_LDO2_ENA_WIDTH 1 + +/* (0x0218) Mic_Bias_Ctrl_1 */ +#define MADERA_MICB1_EXT_CAP 0x8000 +#define MADERA_MICB1_EXT_CAP_MASK 0x8000 +#define MADERA_MICB1_EXT_CAP_SHIFT 15 +#define MADERA_MICB1_EXT_CAP_WIDTH 1 +#define MADERA_MICB1_LVL_MASK 0x01E0 +#define MADERA_MICB1_LVL_SHIFT 5 +#define MADERA_MICB1_LVL_WIDTH 4 +#define MADERA_MICB1_FAST 0x0010 +#define MADERA_MICB1_FAST_MASK 0x0010 +#define MADERA_MICB1_FAST_SHIFT 4 +#define MADERA_MICB1_FAST_WIDTH 1 +#define MADERA_MICB1_RATE 0x0008 +#define MADERA_MICB1_RATE_MASK 0x0008 +#define MADERA_MICB1_RATE_SHIFT 3 +#define MADERA_MICB1_RATE_WIDTH 1 +#define MADERA_MICB1_DISCH 0x0004 +#define MADERA_MICB1_DISCH_MASK 0x0004 +#define MADERA_MICB1_DISCH_SHIFT 2 +#define MADERA_MICB1_DISCH_WIDTH 1 +#define MADERA_MICB1_BYPASS 0x0002 +#define MADERA_MICB1_BYPASS_MASK 0x0002 +#define MADERA_MICB1_BYPASS_SHIFT 1 +#define MADERA_MICB1_BYPASS_WIDTH 1 +#define MADERA_MICB1_ENA 0x0001 +#define MADERA_MICB1_ENA_MASK 0x0001 +#define MADERA_MICB1_ENA_SHIFT 0 +#define MADERA_MICB1_ENA_WIDTH 1 + +/* (0x0219) Mic_Bias_Ctrl_2 */ +#define MADERA_MICB2_EXT_CAP 0x8000 +#define MADERA_MICB2_EXT_CAP_MASK 0x8000 +#define MADERA_MICB2_EXT_CAP_SHIFT 15 +#define MADERA_MICB2_EXT_CAP_WIDTH 1 +#define MADERA_MICB2_LVL_MASK 0x01E0 +#define MADERA_MICB2_LVL_SHIFT 5 +#define MADERA_MICB2_LVL_WIDTH 4 +#define MADERA_MICB2_FAST 0x0010 +#define MADERA_MICB2_FAST_MASK 0x0010 +#define MADERA_MICB2_FAST_SHIFT 4 +#define MADERA_MICB2_FAST_WIDTH 1 +#define MADERA_MICB2_RATE 0x0008 +#define MADERA_MICB2_RATE_MASK 0x0008 +#define MADERA_MICB2_RATE_SHIFT 3 +#define MADERA_MICB2_RATE_WIDTH 1 +#define MADERA_MICB2_DISCH 0x0004 +#define MADERA_MICB2_DISCH_MASK 0x0004 +#define MADERA_MICB2_DISCH_SHIFT 2 +#define MADERA_MICB2_DISCH_WIDTH 1 +#define MADERA_MICB2_BYPASS 0x0002 +#define MADERA_MICB2_BYPASS_MASK 0x0002 +#define MADERA_MICB2_BYPASS_SHIFT 1 +#define MADERA_MICB2_BYPASS_WIDTH 1 +#define MADERA_MICB2_ENA 0x0001 +#define MADERA_MICB2_ENA_MASK 0x0001 +#define MADERA_MICB2_ENA_SHIFT 0 +#define MADERA_MICB2_ENA_WIDTH 1 + +/* (0x021A) Mic_Bias_Ctrl_3 */ +#define MADERA_MICB3_EXT_CAP 0x8000 +#define MADERA_MICB3_EXT_CAP_MASK 0x8000 +#define MADERA_MICB3_EXT_CAP_SHIFT 15 +#define MADERA_MICB3_EXT_CAP_WIDTH 1 +#define MADERA_MICB3_LVL_MASK 0x01E0 +#define MADERA_MICB3_LVL_SHIFT 5 +#define MADERA_MICB3_LVL_WIDTH 4 +#define MADERA_MICB3_FAST 0x0010 +#define MADERA_MICB3_FAST_MASK 0x0010 +#define MADERA_MICB3_FAST_SHIFT 4 +#define MADERA_MICB3_FAST_WIDTH 1 +#define MADERA_MICB3_RATE 0x0008 +#define MADERA_MICB3_RATE_MASK 0x0008 +#define MADERA_MICB3_RATE_SHIFT 3 +#define MADERA_MICB3_RATE_WIDTH 1 +#define MADERA_MICB3_DISCH 0x0004 +#define MADERA_MICB3_DISCH_MASK 0x0004 +#define MADERA_MICB3_DISCH_SHIFT 2 +#define MADERA_MICB3_DISCH_WIDTH 1 +#define MADERA_MICB3_BYPASS 0x0002 +#define MADERA_MICB3_BYPASS_MASK 0x0002 +#define MADERA_MICB3_BYPASS_SHIFT 1 +#define MADERA_MICB3_BYPASS_WIDTH 1 +#define MADERA_MICB3_ENA 0x0001 +#define MADERA_MICB3_ENA_MASK 0x0001 +#define MADERA_MICB3_ENA_SHIFT 0 +#define MADERA_MICB3_ENA_WIDTH 1 + +/* (0x021B) Mic_Bias_Ctrl_4 */ +#define MADERA_MICB4_EXT_CAP 0x8000 +#define MADERA_MICB4_EXT_CAP_MASK 0x8000 +#define MADERA_MICB4_EXT_CAP_SHIFT 15 +#define MADERA_MICB4_EXT_CAP_WIDTH 1 +#define MADERA_MICB4_LVL_MASK 0x01E0 +#define MADERA_MICB4_LVL_SHIFT 5 +#define MADERA_MICB4_LVL_WIDTH 4 +#define MADERA_MICB4_FAST 0x0010 +#define MADERA_MICB4_FAST_MASK 0x0010 +#define MADERA_MICB4_FAST_SHIFT 4 +#define MADERA_MICB4_FAST_WIDTH 1 +#define MADERA_MICB4_RATE 0x0008 +#define MADERA_MICB4_RATE_MASK 0x0008 +#define MADERA_MICB4_RATE_SHIFT 3 +#define MADERA_MICB4_RATE_WIDTH 1 +#define MADERA_MICB4_DISCH 0x0004 +#define MADERA_MICB4_DISCH_MASK 0x0004 +#define MADERA_MICB4_DISCH_SHIFT 2 +#define MADERA_MICB4_DISCH_WIDTH 1 +#define MADERA_MICB4_BYPASS 0x0002 +#define MADERA_MICB4_BYPASS_MASK 0x0002 +#define MADERA_MICB4_BYPASS_SHIFT 1 +#define MADERA_MICB4_BYPASS_WIDTH 1 +#define MADERA_MICB4_ENA 0x0001 +#define MADERA_MICB4_ENA_MASK 0x0001 +#define MADERA_MICB4_ENA_SHIFT 0 +#define MADERA_MICB4_ENA_WIDTH 1 + +/* (0x021C) Mic_Bias_Ctrl_5 */ +#define MADERA_MICB1D_BYP 0x4000 +#define MADERA_MICB1D_BYP_MASK 0x4000 +#define MADERA_MICB1D_BYP_SHIFT 14 +#define MADERA_MICB1D_BYP_WIDTH 1 +#define MADERA_MICB1D_DISCH 0x2000 +#define MADERA_MICB1D_DISCH_MASK 0x2000 +#define MADERA_MICB1D_DISCH_SHIFT 13 +#define MADERA_MICB1D_DISCH_WIDTH 1 +#define MADERA_MICB1D_ENA 0x1000 +#define MADERA_MICB1D_ENA_MASK 0x1000 +#define MADERA_MICB1D_ENA_SHIFT 12 +#define MADERA_MICB1D_ENA_WIDTH 1 +#define MADERA_MICB1C_BYP 0x0400 +#define MADERA_MICB1C_BYP_MASK 0x0400 +#define MADERA_MICB1C_BYP_SHIFT 10 +#define MADERA_MICB1C_BYP_WIDTH 1 +#define MADERA_MICB1C_DISCH 0x0200 +#define MADERA_MICB1C_DISCH_MASK 0x0200 +#define MADERA_MICB1C_DISCH_SHIFT 9 +#define MADERA_MICB1C_DISCH_WIDTH 1 +#define MADERA_MICB1C_ENA 0x0100 +#define MADERA_MICB1C_ENA_MASK 0x0100 +#define MADERA_MICB1C_ENA_SHIFT 8 +#define MADERA_MICB1C_ENA_WIDTH 1 +#define MADERA_MICB1B_BYP 0x0040 +#define MADERA_MICB1B_BYP_MASK 0x0040 +#define MADERA_MICB1B_BYP_SHIFT 6 +#define MADERA_MICB1B_BYP_WIDTH 1 +#define MADERA_MICB1B_DISCH 0x0020 +#define MADERA_MICB1B_DISCH_MASK 0x0020 +#define MADERA_MICB1B_DISCH_SHIFT 5 +#define MADERA_MICB1B_DISCH_WIDTH 1 +#define MADERA_MICB1B_ENA 0x0010 +#define MADERA_MICB1B_ENA_MASK 0x0010 +#define MADERA_MICB1B_ENA_SHIFT 4 +#define MADERA_MICB1B_ENA_WIDTH 1 +#define MADERA_MICB1A_BYP 0x0004 +#define MADERA_MICB1A_BYP_MASK 0x0004 +#define MADERA_MICB1A_BYP_SHIFT 2 +#define MADERA_MICB1A_BYP_WIDTH 1 +#define MADERA_MICB1A_DISCH 0x0002 +#define MADERA_MICB1A_DISCH_MASK 0x0002 +#define MADERA_MICB1A_DISCH_SHIFT 1 +#define MADERA_MICB1A_DISCH_WIDTH 1 +#define MADERA_MICB1A_ENA 0x0001 +#define MADERA_MICB1A_ENA_MASK 0x0001 +#define MADERA_MICB1A_ENA_SHIFT 0 +#define MADERA_MICB1A_ENA_WIDTH 1 + +/* (0x021E) Mic_Bias_Ctrl_6 */ +#define MADERA_MICB2D_BYP 0x4000 +#define MADERA_MICB2D_BYP_MASK 0x4000 +#define MADERA_MICB2D_BYP_SHIFT 14 +#define MADERA_MICB2D_BYP_WIDTH 1 +#define MADERA_MICB2D_DISCH 0x2000 +#define MADERA_MICB2D_DISCH_MASK 0x2000 +#define MADERA_MICB2D_DISCH_SHIFT 13 +#define MADERA_MICB2D_DISCH_WIDTH 1 +#define MADERA_MICB2D_ENA 0x1000 +#define MADERA_MICB2D_ENA_MASK 0x1000 +#define MADERA_MICB2D_ENA_SHIFT 12 +#define MADERA_MICB2D_ENA_WIDTH 1 +#define MADERA_MICB2C_BYP 0x0400 +#define MADERA_MICB2C_BYP_MASK 0x0400 +#define MADERA_MICB2C_BYP_SHIFT 10 +#define MADERA_MICB2C_BYP_WIDTH 1 +#define MADERA_MICB2C_DISCH 0x0200 +#define MADERA_MICB2C_DISCH_MASK 0x0200 +#define MADERA_MICB2C_DISCH_SHIFT 9 +#define MADERA_MICB2C_DISCH_WIDTH 1 +#define MADERA_MICB2C_ENA 0x0100 +#define MADERA_MICB2C_ENA_MASK 0x0100 +#define MADERA_MICB2C_ENA_SHIFT 8 +#define MADERA_MICB2C_ENA_WIDTH 1 +#define MADERA_MICB2B_BYP 0x0040 +#define MADERA_MICB2B_BYP_MASK 0x0040 +#define MADERA_MICB2B_BYP_SHIFT 6 +#define MADERA_MICB2B_BYP_WIDTH 1 +#define MADERA_MICB2B_DISCH 0x0020 +#define MADERA_MICB2B_DISCH_MASK 0x0020 +#define MADERA_MICB2B_DISCH_SHIFT 5 +#define MADERA_MICB2B_DISCH_WIDTH 1 +#define MADERA_MICB2B_ENA 0x0010 +#define MADERA_MICB2B_ENA_MASK 0x0010 +#define MADERA_MICB2B_ENA_SHIFT 4 +#define MADERA_MICB2B_ENA_WIDTH 1 +#define MADERA_MICB2A_BYP 0x0004 +#define MADERA_MICB2A_BYP_MASK 0x0004 +#define MADERA_MICB2A_BYP_SHIFT 2 +#define MADERA_MICB2A_BYP_WIDTH 1 +#define MADERA_MICB2A_DISCH 0x0002 +#define MADERA_MICB2A_DISCH_MASK 0x0002 +#define MADERA_MICB2A_DISCH_SHIFT 1 +#define MADERA_MICB2A_DISCH_WIDTH 1 +#define MADERA_MICB2A_ENA 0x0001 +#define MADERA_MICB2A_ENA_MASK 0x0001 +#define MADERA_MICB2A_ENA_SHIFT 0 +#define MADERA_MICB2A_ENA_WIDTH 1 + +/* (0x0225) - HP Ctrl 1L */ +#define MADERA_RMV_SHRT_HP1L 0x4000 +#define MADERA_RMV_SHRT_HP1L_MASK 0x4000 +#define MADERA_RMV_SHRT_HP1L_SHIFT 14 +#define MADERA_RMV_SHRT_HP1L_WIDTH 1 +#define MADERA_HP1L_FLWR 0x0004 +#define MADERA_HP1L_FLWR_MASK 0x0004 +#define MADERA_HP1L_FLWR_SHIFT 2 +#define MADERA_HP1L_FLWR_WIDTH 1 +#define MADERA_HP1L_SHRTI 0x0002 +#define MADERA_HP1L_SHRTI_MASK 0x0002 +#define MADERA_HP1L_SHRTI_SHIFT 1 +#define MADERA_HP1L_SHRTI_WIDTH 1 +#define MADERA_HP1L_SHRTO 0x0001 +#define MADERA_HP1L_SHRTO_MASK 0x0001 +#define MADERA_HP1L_SHRTO_SHIFT 0 +#define MADERA_HP1L_SHRTO_WIDTH 1 + +/* (0x0226) - HP Ctrl 1R */ +#define MADERA_RMV_SHRT_HP1R 0x4000 +#define MADERA_RMV_SHRT_HP1R_MASK 0x4000 +#define MADERA_RMV_SHRT_HP1R_SHIFT 14 +#define MADERA_RMV_SHRT_HP1R_WIDTH 1 +#define MADERA_HP1R_FLWR 0x0004 +#define MADERA_HP1R_FLWR_MASK 0x0004 +#define MADERA_HP1R_FLWR_SHIFT 2 +#define MADERA_HP1R_FLWR_WIDTH 1 +#define MADERA_HP1R_SHRTI 0x0002 +#define MADERA_HP1R_SHRTI_MASK 0x0002 +#define MADERA_HP1R_SHRTI_SHIFT 1 +#define MADERA_HP1R_SHRTI_WIDTH 1 +#define MADERA_HP1R_SHRTO 0x0001 +#define MADERA_HP1R_SHRTO_MASK 0x0001 +#define MADERA_HP1R_SHRTO_SHIFT 0 +#define MADERA_HP1R_SHRTO_WIDTH 1 + +/* (0x027E) - EDRE HP stereo control */ +#define MADERA_HP3_EDRE_STEREO 0x0004 +#define MADERA_HP3_EDRE_STEREO_MASK 0x0004 +#define MADERA_HP3_EDRE_STEREO_SHIFT 2 +#define MADERA_HP3_EDRE_STEREO_WIDTH 1 +#define MADERA_HP2_EDRE_STEREO 0x0002 +#define MADERA_HP2_EDRE_STEREO_MASK 0x0002 +#define MADERA_HP2_EDRE_STEREO_SHIFT 1 +#define MADERA_HP2_EDRE_STEREO_WIDTH 1 +#define MADERA_HP1_EDRE_STEREO 0x0001 +#define MADERA_HP1_EDRE_STEREO_MASK 0x0001 +#define MADERA_HP1_EDRE_STEREO_SHIFT 0 +#define MADERA_HP1_EDRE_STEREO_WIDTH 1 + +/* (0x0293) Accessory_Detect_Mode_1 */ +#define MADERA_ACCDET_SRC 0x2000 +#define MADERA_ACCDET_SRC_MASK 0x2000 +#define MADERA_ACCDET_SRC_SHIFT 13 +#define MADERA_ACCDET_SRC_WIDTH 1 +#define MADERA_ACCDET_POLARITY_INV_ENA 0x0080 +#define MADERA_ACCDET_POLARITY_INV_ENA_MASK 0x0080 +#define MADERA_ACCDET_POLARITY_INV_ENA_SHIFT 7 +#define MADERA_ACCDET_POLARITY_INV_ENA_WIDTH 1 +#define MADERA_ACCDET_MODE_MASK 0x0007 +#define MADERA_ACCDET_MODE_SHIFT 0 +#define MADERA_ACCDET_MODE_WIDTH 3 + +/* (0x0299) Headphone_Detect_0 */ +#define MADERA_HPD_GND_SEL 0x0007 +#define MADERA_HPD_GND_SEL_MASK 0x0007 +#define MADERA_HPD_GND_SEL_SHIFT 0 +#define MADERA_HPD_GND_SEL_WIDTH 3 +#define MADERA_HPD_SENSE_SEL 0x00F0 +#define MADERA_HPD_SENSE_SEL_MASK 0x00F0 +#define MADERA_HPD_SENSE_SEL_SHIFT 4 +#define MADERA_HPD_SENSE_SEL_WIDTH 4 +#define MADERA_HPD_FRC_SEL 0x0F00 +#define MADERA_HPD_FRC_SEL_MASK 0x0F00 +#define MADERA_HPD_FRC_SEL_SHIFT 8 +#define MADERA_HPD_FRC_SEL_WIDTH 4 +#define MADERA_HPD_OUT_SEL 0x7000 +#define MADERA_HPD_OUT_SEL_MASK 0x7000 +#define MADERA_HPD_OUT_SEL_SHIFT 12 +#define MADERA_HPD_OUT_SEL_WIDTH 3 +#define MADERA_HPD_OVD_ENA_SEL 0x8000 +#define MADERA_HPD_OVD_ENA_SEL_MASK 0x8000 +#define MADERA_HPD_OVD_ENA_SEL_SHIFT 15 +#define MADERA_HPD_OVD_ENA_SEL_WIDTH 1 + +/* (0x029B) Headphone_Detect_1 */ +#define MADERA_HP_IMPEDANCE_RANGE_MASK 0x0600 +#define MADERA_HP_IMPEDANCE_RANGE_SHIFT 9 +#define MADERA_HP_IMPEDANCE_RANGE_WIDTH 2 +#define MADERA_HP_STEP_SIZE 0x0100 +#define MADERA_HP_STEP_SIZE_MASK 0x0100 +#define MADERA_HP_STEP_SIZE_SHIFT 8 +#define MADERA_HP_STEP_SIZE_WIDTH 1 +#define MADERA_HP_HOLDTIME_MASK 0x00E0 +#define MADERA_HP_HOLDTIME_SHIFT 5 +#define MADERA_HP_HOLDTIME_WIDTH 3 +#define MADERA_HP_CLK_DIV_MASK 0x0018 +#define MADERA_HP_CLK_DIV_SHIFT 3 +#define MADERA_HP_CLK_DIV_WIDTH 2 +#define MADERA_HP_IDAC_STEER 0x0004 +#define MADERA_HP_IDAC_STEER_MASK 0x0004 +#define MADERA_HP_IDAC_STEER_SHIFT 2 +#define MADERA_HP_IDAC_STEER_WIDTH 1 +#define MADERA_HP_RATE_MASK 0x0006 +#define MADERA_HP_RATE_SHIFT 1 +#define MADERA_HP_RATE_WIDTH 2 +#define MADERA_HP_POLL 0x0001 +#define MADERA_HP_POLL_MASK 0x0001 +#define MADERA_HP_POLL_SHIFT 0 +#define MADERA_HP_POLL_WIDTH 1 + +/* (0x029C) Headphone_Detect_2 */ +#define MADERA_HP_DONE_MASK 0x8000 +#define MADERA_HP_DONE_SHIFT 15 +#define MADERA_HP_DONE_WIDTH 1 +#define MADERA_HP_LVL_MASK 0x7FFF +#define MADERA_HP_LVL_SHIFT 0 +#define MADERA_HP_LVL_WIDTH 15 + +/* (0x029D) Headphone_Detect_3 */ +#define MADERA_HP_DACVAL_MASK 0x03FF +#define MADERA_HP_DACVAL_SHIFT 0 +#define MADERA_HP_DACVAL_WIDTH 10 + +/* (0x029F) - Headphone Detect 5 */ +#define MADERA_HP_DACVAL_DOWN_MASK 0x03FF +#define MADERA_HP_DACVAL_DOWN_SHIFT 0 +#define MADERA_HP_DACVAL_DOWN_WIDTH 10 + +/* (0x02A2) Mic_Detect_1_Control_0 */ +#define MADERA_MICD1_GND_MASK 0x0007 +#define MADERA_MICD1_GND_SHIFT 0 +#define MADERA_MICD1_GND_WIDTH 3 +#define MADERA_MICD1_SENSE_MASK 0x00F0 +#define MADERA_MICD1_SENSE_SHIFT 4 +#define MADERA_MICD1_SENSE_WIDTH 4 +#define MADERA_MICD1_ADC_MODE_MASK 0x8000 +#define MADERA_MICD1_ADC_MODE_SHIFT 15 +#define MADERA_MICD1_ADC_MODE_WIDTH 1 + +/* (0x02A3) Mic_Detect_1_Control_1 */ +#define MADERA_MICD_BIAS_STARTTIME_MASK 0xF000 +#define MADERA_MICD_BIAS_STARTTIME_SHIFT 12 +#define MADERA_MICD_BIAS_STARTTIME_WIDTH 4 +#define MADERA_MICD_RATE_MASK 0x0F00 +#define MADERA_MICD_RATE_SHIFT 8 +#define MADERA_MICD_RATE_WIDTH 4 +#define MADERA_MICD_BIAS_SRC_MASK 0x00F0 +#define MADERA_MICD_BIAS_SRC_SHIFT 4 +#define MADERA_MICD_BIAS_SRC_WIDTH 4 +#define MADERA_MICD_DBTIME 0x0002 +#define MADERA_MICD_DBTIME_MASK 0x0002 +#define MADERA_MICD_DBTIME_SHIFT 1 +#define MADERA_MICD_DBTIME_WIDTH 1 +#define MADERA_MICD_ENA 0x0001 +#define MADERA_MICD_ENA_MASK 0x0001 +#define MADERA_MICD_ENA_SHIFT 0 +#define MADERA_MICD_ENA_WIDTH 1 + +/* (0x02A4) Mic_Detect_1_Control_2 */ +#define MADERA_MICD_LVL_SEL_MASK 0x00FF +#define MADERA_MICD_LVL_SEL_SHIFT 0 +#define MADERA_MICD_LVL_SEL_WIDTH 8 + +/* (0x02A5) Mic_Detect_1_Control_3 */ +#define MADERA_MICD_LVL_0 0x0004 +#define MADERA_MICD_LVL_1 0x0008 +#define MADERA_MICD_LVL_2 0x0010 +#define MADERA_MICD_LVL_3 0x0020 +#define MADERA_MICD_LVL_4 0x0040 +#define MADERA_MICD_LVL_5 0x0080 +#define MADERA_MICD_LVL_6 0x0100 +#define MADERA_MICD_LVL_7 0x0200 +#define MADERA_MICD_LVL_8 0x0400 +#define MADERA_MICD_LVL_MASK 0x07FC +#define MADERA_MICD_LVL_SHIFT 2 +#define MADERA_MICD_LVL_WIDTH 9 +#define MADERA_MICD_VALID 0x0002 +#define MADERA_MICD_VALID_MASK 0x0002 +#define MADERA_MICD_VALID_SHIFT 1 +#define MADERA_MICD_VALID_WIDTH 1 +#define MADERA_MICD_STS 0x0001 +#define MADERA_MICD_STS_MASK 0x0001 +#define MADERA_MICD_STS_SHIFT 0 +#define MADERA_MICD_STS_WIDTH 1 + +/* (0x02AB) Mic_Detect_1_Control_4 */ +#define MADERA_MICDET_ADCVAL_DIFF_MASK 0xFF00 +#define MADERA_MICDET_ADCVAL_DIFF_SHIFT 8 +#define MADERA_MICDET_ADCVAL_DIFF_WIDTH 8 +#define MADERA_MICDET_ADCVAL_MASK 0x007F +#define MADERA_MICDET_ADCVAL_SHIFT 0 +#define MADERA_MICDET_ADCVAL_WIDTH 7 + +/* (0x02B2) Mic_Detect_2_Control_0 */ +#define MADERA_MICD2_ADC_MODE 0x8000 +#define MADERA_MICD2_ADC_MODE_MASK 0x8000 +#define MADERA_MICD2_ADC_MODE_SHIFT 15 +#define MADERA_MICD2_ADC_MODE_WIDTH 1 +#define MADERA_MICD2_SENSE_SEL 0x0070 +#define MADERA_MICD2_SENSE_SEL_MASK 0x0070 +#define MADERA_MICD2_SENSE_SEL_SHIFT 4 +#define MADERA_MICD2_SENSE_SEL_WIDTH 3 +#define MADERA_MICD2_GND_SEL 0x0007 +#define MADERA_MICD2_GND_SEL_MASK 0x0007 +#define MADERA_MICD2_GND_SEL_SHIFT 0 +#define MADERA_MICD2_GND_SEL_WIDTH 3 + +/* (0x02B3) Mic_Detect_2_Control_1 */ +#define MADERA_MICD2_BIAS_STARTTIME 0xF000 +#define MADERA_MICD2_BIAS_STARTTIME_MASK 0xF000 +#define MADERA_MICD2_BIAS_STARTTIME_SHIFT 12 +#define MADERA_MICD2_BIAS_STARTTIME_WIDTH 4 +#define MADERA_MICD2_RATE 0x0F00 +#define MADERA_MICD2_RATE_MASK 0x0F00 +#define MADERA_MICD2_RATE_SHIFT 8 +#define MADERA_MICD2_RATE_WIDTH 4 +#define MADERA_MICD2_BIAS_SRC 0x00F0 +#define MADERA_MICD2_BIAS_SRC_MASK 0x00F0 +#define MADERA_MICD2_BIAS_SRC_SHIFT 4 +#define MADERA_MICD2_BIAS_SRC_WIDTH 4 +#define MADERA_MICD2_DBTIME 0x0002 +#define MADERA_MICD2_DBTIME_MASK 0x0002 +#define MADERA_MICD2_DBTIME_SHIFT 1 +#define MADERA_MICD2_DBTIME_WIDTH 1 +#define MADERA_MICD2_ENA 0x0001 +#define MADERA_MICD2_ENA_MASK 0x0001 +#define MADERA_MICD2_ENA_SHIFT 0 +#define MADERA_MICD2_ENA_WIDTH 1 + +/* (0x02B4) Mic_Detect_2_Control_2 */ +#define MADERA_MICD2_LVL_SEL_MASK 0x00FF +#define MADERA_MICD2_LVL_SEL_SHIFT 0 +#define MADERA_MICD2_LVL_SEL_WIDTH 8 + +/* (0x02B5) Mic_Detect_2_Control_3 */ +#define MADERA_MICD2_LVL 0x07FC +#define MADERA_MICD2_LVL_MASK 0x07FC +#define MADERA_MICD2_LVL_SHIFT 2 +#define MADERA_MICD2_LVL_WIDTH 9 +#define MADERA_MICD2_VALID 0x0002 +#define MADERA_MICD2_VALID_MASK 0x0002 +#define MADERA_MICD2_VALID_SHIFT 1 +#define MADERA_MICD2_VALID_WIDTH 1 +#define MADERA_MICD2_STS 0x0001 +#define MADERA_MICD2_STS_MASK 0x0001 +#define MADERA_MICD2_STS_SHIFT 0 +#define MADERA_MICD2_STS_WIDTH 1 + +/* (0x02BB) Mic_Detect_2_Control_4 */ +#define MADERA_MICD2_ADCVAL_DIFF 0xFF00 +#define MADERA_MICD2_ADCVAL_DIFF_MASK 0xFF00 +#define MADERA_MICD2_ADCVAL_DIFF_SHIFT 8 +#define MADERA_MICD2_ADCVAL_DIFF_WIDTH 8 +#define MADERA_MICD2_ADCVAL 0x007F +#define MADERA_MICD2_ADCVAL_MASK 0x007F +#define MADERA_MICD2_ADCVAL_SHIFT 0 +#define MADERA_MICD2_ADCVAL_WIDTH 7 + +/* (0x02C6) Micd_Clamp_control */ +#define MADERA_MICD_CLAMP_OVD 0x0010 +#define MADERA_MICD_CLAMP_OVD_MASK 0x0010 +#define MADERA_MICD_CLAMP_OVD_SHIFT 4 +#define MADERA_MICD_CLAMP_OVD_WIDTH 1 +#define MADERA_MICD_CLAMP_MODE_MASK 0x000F +#define MADERA_MICD_CLAMP_MODE_SHIFT 0 +#define MADERA_MICD_CLAMP_MODE_WIDTH 4 + +/* (0x02C8) GP_Switch_1 */ +#define MADERA_SW2_MODE_MASK 0x000C +#define MADERA_SW2_MODE_SHIFT 2 +#define MADERA_SW2_MODE_WIDTH 2 +#define MADERA_SW1_MODE_MASK 0x0003 +#define MADERA_SW1_MODE_SHIFT 0 +#define MADERA_SW1_MODE_WIDTH 2 + +/* (0x02D3) Jack_detect_analogue */ +#define MADERA_JD2_ENA 0x0002 +#define MADERA_JD2_ENA_MASK 0x0002 +#define MADERA_JD2_ENA_SHIFT 1 +#define MADERA_JD2_ENA_WIDTH 1 +#define MADERA_JD1_ENA 0x0001 +#define MADERA_JD1_ENA_MASK 0x0001 +#define MADERA_JD1_ENA_SHIFT 0 +#define MADERA_JD1_ENA_WIDTH 1 + +/* (0x0300) Input_Enables */ +#define MADERA_IN6L_ENA 0x0800 +#define MADERA_IN6L_ENA_MASK 0x0800 +#define MADERA_IN6L_ENA_SHIFT 11 +#define MADERA_IN6L_ENA_WIDTH 1 +#define MADERA_IN6R_ENA 0x0400 +#define MADERA_IN6R_ENA_MASK 0x0400 +#define MADERA_IN6R_ENA_SHIFT 10 +#define MADERA_IN6R_ENA_WIDTH 1 +#define MADERA_IN5L_ENA 0x0200 +#define MADERA_IN5L_ENA_MASK 0x0200 +#define MADERA_IN5L_ENA_SHIFT 9 +#define MADERA_IN5L_ENA_WIDTH 1 +#define MADERA_IN5R_ENA 0x0100 +#define MADERA_IN5R_ENA_MASK 0x0100 +#define MADERA_IN5R_ENA_SHIFT 8 +#define MADERA_IN5R_ENA_WIDTH 1 +#define MADERA_IN4L_ENA 0x0080 +#define MADERA_IN4L_ENA_MASK 0x0080 +#define MADERA_IN4L_ENA_SHIFT 7 +#define MADERA_IN4L_ENA_WIDTH 1 +#define MADERA_IN4R_ENA 0x0040 +#define MADERA_IN4R_ENA_MASK 0x0040 +#define MADERA_IN4R_ENA_SHIFT 6 +#define MADERA_IN4R_ENA_WIDTH 1 +#define MADERA_IN3L_ENA 0x0020 +#define MADERA_IN3L_ENA_MASK 0x0020 +#define MADERA_IN3L_ENA_SHIFT 5 +#define MADERA_IN3L_ENA_WIDTH 1 +#define MADERA_IN3R_ENA 0x0010 +#define MADERA_IN3R_ENA_MASK 0x0010 +#define MADERA_IN3R_ENA_SHIFT 4 +#define MADERA_IN3R_ENA_WIDTH 1 +#define MADERA_IN2L_ENA 0x0008 +#define MADERA_IN2L_ENA_MASK 0x0008 +#define MADERA_IN2L_ENA_SHIFT 3 +#define MADERA_IN2L_ENA_WIDTH 1 +#define MADERA_IN2R_ENA 0x0004 +#define MADERA_IN2R_ENA_MASK 0x0004 +#define MADERA_IN2R_ENA_SHIFT 2 +#define MADERA_IN2R_ENA_WIDTH 1 +#define MADERA_IN1L_ENA 0x0002 +#define MADERA_IN1L_ENA_MASK 0x0002 +#define MADERA_IN1L_ENA_SHIFT 1 +#define MADERA_IN1L_ENA_WIDTH 1 +#define MADERA_IN1R_ENA 0x0001 +#define MADERA_IN1R_ENA_MASK 0x0001 +#define MADERA_IN1R_ENA_SHIFT 0 +#define MADERA_IN1R_ENA_WIDTH 1 + +/* (0x0308) Input_Rate */ +#define MADERA_IN_RATE_MASK 0xF800 +#define MADERA_IN_RATE_SHIFT 11 +#define MADERA_IN_RATE_WIDTH 5 +#define MADERA_IN_MODE_MASK 0x0400 +#define MADERA_IN_MODE_SHIFT 10 +#define MADERA_IN_MODE_WIDTH 1 + +/* (0x0309) Input_Volume_Ramp */ +#define MADERA_IN_VD_RAMP_MASK 0x0070 +#define MADERA_IN_VD_RAMP_SHIFT 4 +#define MADERA_IN_VD_RAMP_WIDTH 3 +#define MADERA_IN_VI_RAMP_MASK 0x0007 +#define MADERA_IN_VI_RAMP_SHIFT 0 +#define MADERA_IN_VI_RAMP_WIDTH 3 + +/* (0x030C) HPF_Control */ +#define MADERA_IN_HPF_CUT_MASK 0x0007 +#define MADERA_IN_HPF_CUT_SHIFT 0 +#define MADERA_IN_HPF_CUT_WIDTH 3 + +/* (0x0310) IN1L_Control */ +#define MADERA_IN1L_HPF_MASK 0x8000 +#define MADERA_IN1L_HPF_SHIFT 15 +#define MADERA_IN1L_HPF_WIDTH 1 +#define MADERA_IN1_DMIC_SUP_MASK 0x1800 +#define MADERA_IN1_DMIC_SUP_SHIFT 11 +#define MADERA_IN1_DMIC_SUP_WIDTH 2 +#define MADERA_IN1_MODE_MASK 0x0400 +#define MADERA_IN1_MODE_SHIFT 10 +#define MADERA_IN1_MODE_WIDTH 1 +#define MADERA_IN1_SINGLE_ENDED_MASK 0x0200 +#define MADERA_IN1_SINGLE_ENDED_SHIFT 9 +#define MADERA_IN1_SINGLE_ENDED_WIDTH 1 +#define MADERA_IN1L_PGA_VOL_MASK 0x00FE +#define MADERA_IN1L_PGA_VOL_SHIFT 1 +#define MADERA_IN1L_PGA_VOL_WIDTH 7 + +/* (0x0311) ADC_Digital_Volume_1L */ +#define MADERA_IN1L_SRC_MASK 0x4000 +#define MADERA_IN1L_SRC_SHIFT 14 +#define MADERA_IN1L_SRC_WIDTH 1 +#define MADERA_IN1L_SRC_SE_MASK 0x2000 +#define MADERA_IN1L_SRC_SE_SHIFT 13 +#define MADERA_IN1L_SRC_SE_WIDTH 1 +#define MADERA_IN1L_LP_MODE 0x0800 +#define MADERA_IN1L_LP_MODE_MASK 0x0800 +#define MADERA_IN1L_LP_MODE_SHIFT 11 +#define MADERA_IN1L_LP_MODE_WIDTH 1 +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN1L_MUTE 0x0100 +#define MADERA_IN1L_MUTE_MASK 0x0100 +#define MADERA_IN1L_MUTE_SHIFT 8 +#define MADERA_IN1L_MUTE_WIDTH 1 +#define MADERA_IN1L_DIG_VOL_MASK 0x00FF +#define MADERA_IN1L_DIG_VOL_SHIFT 0 +#define MADERA_IN1L_DIG_VOL_WIDTH 8 + +/* (0x0312) DMIC1L_Control */ +#define MADERA_IN1_DMICL_DLY_MASK 0x003F +#define MADERA_IN1_DMICL_DLY_SHIFT 0 +#define MADERA_IN1_DMICL_DLY_WIDTH 6 +#define MADERA_IN1_OSR_MASK 0x0700 +#define MADERA_IN1_OSR_SHIFT 8 +#define MADERA_IN1_OSR_WIDTH 3 + +/* (0x0313) IN1L_Rate_Control */ +#define MADERA_IN1L_RATE_MASK 0xF800 +#define MADERA_IN1L_RATE_SHIFT 11 +#define MADERA_IN1L_RATE_WIDTH 5 + +/* (0x0314) IN1R_Control */ +#define MADERA_IN1R_HPF_MASK 0x8000 +#define MADERA_IN1R_HPF_SHIFT 15 +#define MADERA_IN1R_HPF_WIDTH 1 +#define MADERA_IN1R_PGA_VOL_MASK 0x00FE +#define MADERA_IN1R_PGA_VOL_SHIFT 1 +#define MADERA_IN1R_PGA_VOL_WIDTH 7 +#define MADERA_IN1_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN1_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN1_DMICCLK_SRC_WIDTH 2 + +/* (0x0315) ADC_Digital_Volume_1R */ +#define MADERA_IN1R_SRC_MASK 0x4000 +#define MADERA_IN1R_SRC_SHIFT 14 +#define MADERA_IN1R_SRC_WIDTH 1 +#define MADERA_IN1R_SRC_SE_MASK 0x2000 +#define MADERA_IN1R_SRC_SE_SHIFT 13 +#define MADERA_IN1R_SRC_SE_WIDTH 1 +#define MADERA_IN1R_LP_MODE 0x0800 +#define MADERA_IN1R_LP_MODE_MASK 0x0800 +#define MADERA_IN1R_LP_MODE_SHIFT 11 +#define MADERA_IN1R_LP_MODE_WIDTH 1 +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN1R_MUTE 0x0100 +#define MADERA_IN1R_MUTE_MASK 0x0100 +#define MADERA_IN1R_MUTE_SHIFT 8 +#define MADERA_IN1R_MUTE_WIDTH 1 +#define MADERA_IN1R_DIG_VOL_MASK 0x00FF +#define MADERA_IN1R_DIG_VOL_SHIFT 0 +#define MADERA_IN1R_DIG_VOL_WIDTH 8 + +/* (0x0316) DMIC1R_Control */ +#define MADERA_IN1_DMICR_DLY_MASK 0x003F +#define MADERA_IN1_DMICR_DLY_SHIFT 0 +#define MADERA_IN1_DMICR_DLY_WIDTH 6 + +/* (0x0317) IN1R_Rate_Control */ +#define MADERA_IN1R_RATE_MASK 0xF800 +#define MADERA_IN1R_RATE_SHIFT 11 +#define MADERA_IN1R_RATE_WIDTH 5 + +/* (0x0318) IN2L_Control */ +#define MADERA_IN2L_HPF_MASK 0x8000 +#define MADERA_IN2L_HPF_SHIFT 15 +#define MADERA_IN2L_HPF_WIDTH 1 +#define MADERA_IN2_DMIC_SUP_MASK 0x1800 +#define MADERA_IN2_DMIC_SUP_SHIFT 11 +#define MADERA_IN2_DMIC_SUP_WIDTH 2 +#define MADERA_IN2_MODE_MASK 0x0400 +#define MADERA_IN2_MODE_SHIFT 10 +#define MADERA_IN2_MODE_WIDTH 1 +#define MADERA_IN2_SINGLE_ENDED_MASK 0x0200 +#define MADERA_IN2_SINGLE_ENDED_SHIFT 9 +#define MADERA_IN2_SINGLE_ENDED_WIDTH 1 +#define MADERA_IN2L_PGA_VOL_MASK 0x00FE +#define MADERA_IN2L_PGA_VOL_SHIFT 1 +#define MADERA_IN2L_PGA_VOL_WIDTH 7 + +/* (0x0319) ADC_Digital_Volume_2L */ +#define MADERA_IN2L_SRC_MASK 0x4000 +#define MADERA_IN2L_SRC_SHIFT 14 +#define MADERA_IN2L_SRC_WIDTH 1 +#define MADERA_IN2L_SRC_SE_MASK 0x2000 +#define MADERA_IN2L_SRC_SE_SHIFT 13 +#define MADERA_IN2L_SRC_SE_WIDTH 1 +#define MADERA_IN2L_LP_MODE 0x0800 +#define MADERA_IN2L_LP_MODE_MASK 0x0800 +#define MADERA_IN2L_LP_MODE_SHIFT 11 +#define MADERA_IN2L_LP_MODE_WIDTH 1 +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN2L_MUTE 0x0100 +#define MADERA_IN2L_MUTE_MASK 0x0100 +#define MADERA_IN2L_MUTE_SHIFT 8 +#define MADERA_IN2L_MUTE_WIDTH 1 +#define MADERA_IN2L_DIG_VOL_MASK 0x00FF +#define MADERA_IN2L_DIG_VOL_SHIFT 0 +#define MADERA_IN2L_DIG_VOL_WIDTH 8 + +/* (0x031A) DMIC2L_Control */ +#define MADERA_IN2_DMICL_DLY_MASK 0x003F +#define MADERA_IN2_DMICL_DLY_SHIFT 0 +#define MADERA_IN2_DMICL_DLY_WIDTH 6 +#define MADERA_IN2_OSR_MASK 0x0700 +#define MADERA_IN2_OSR_SHIFT 8 +#define MADERA_IN2_OSR_WIDTH 3 + +/* (0x031B) IN2L_Rate_Control */ +#define MADERA_IN2L_RATE_MASK 0xF800 +#define MADERA_IN2L_RATE_SHIFT 11 +#define MADERA_IN2L_RATE_WIDTH 5 + +/* (0x031C) IN2R_Control */ +#define MADERA_IN2R_HPF_MASK 0x8000 +#define MADERA_IN2R_HPF_SHIFT 15 +#define MADERA_IN2R_HPF_WIDTH 1 +#define MADERA_IN2R_PGA_VOL_MASK 0x00FE +#define MADERA_IN2R_PGA_VOL_SHIFT 1 +#define MADERA_IN2R_PGA_VOL_WIDTH 7 +#define MADERA_IN2_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN2_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN2_DMICCLK_SRC_WIDTH 2 + +/* (0x031D) ADC_Digital_Volume_2R */ +#define MADERA_IN2R_SRC_MASK 0x4000 +#define MADERA_IN2R_SRC_SHIFT 14 +#define MADERA_IN2R_SRC_WIDTH 1 +#define MADERA_IN2R_SRC_SE_MASK 0x2000 +#define MADERA_IN2R_SRC_SE_SHIFT 13 +#define MADERA_IN2R_SRC_SE_WIDTH 1 +#define MADERA_IN2R_LP_MODE 0x0800 +#define MADERA_IN2R_LP_MODE_MASK 0x0800 +#define MADERA_IN2R_LP_MODE_SHIFT 11 +#define MADERA_IN2R_LP_MODE_WIDTH 1 +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN2R_MUTE 0x0100 +#define MADERA_IN2R_MUTE_MASK 0x0100 +#define MADERA_IN2R_MUTE_SHIFT 8 +#define MADERA_IN2R_MUTE_WIDTH 1 +#define MADERA_IN2R_DIG_VOL_MASK 0x00FF +#define MADERA_IN2R_DIG_VOL_SHIFT 0 +#define MADERA_IN2R_DIG_VOL_WIDTH 8 + +/* (0x031E) DMIC2R_Control */ +#define MADERA_IN2_DMICR_DLY_MASK 0x003F +#define MADERA_IN2_DMICR_DLY_SHIFT 0 +#define MADERA_IN2_DMICR_DLY_WIDTH 6 + +/* (0x031F) IN2R_Rate_Control */ +#define MADERA_IN2R_RATE_MASK 0xF800 +#define MADERA_IN2R_RATE_SHIFT 11 +#define MADERA_IN2R_RATE_WIDTH 5 + +/* (0x0320) IN3L_Control */ +#define MADERA_IN3L_HPF_MASK 0x8000 +#define MADERA_IN3L_HPF_SHIFT 15 +#define MADERA_IN3L_HPF_WIDTH 1 +#define MADERA_IN3_DMIC_SUP_MASK 0x1800 +#define MADERA_IN3_DMIC_SUP_SHIFT 11 +#define MADERA_IN3_DMIC_SUP_WIDTH 2 +#define MADERA_IN3_MODE_MASK 0x0400 +#define MADERA_IN3_MODE_SHIFT 10 +#define MADERA_IN3_MODE_WIDTH 1 +#define MADERA_IN3_SINGLE_ENDED_MASK 0x0200 +#define MADERA_IN3_SINGLE_ENDED_SHIFT 9 +#define MADERA_IN3_SINGLE_ENDED_WIDTH 1 +#define MADERA_IN3L_PGA_VOL_MASK 0x00FE +#define MADERA_IN3L_PGA_VOL_SHIFT 1 +#define MADERA_IN3L_PGA_VOL_WIDTH 7 + +/* (0x0321) ADC_Digital_Volume_3L */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN3L_MUTE 0x0100 +#define MADERA_IN3L_MUTE_MASK 0x0100 +#define MADERA_IN3L_MUTE_SHIFT 8 +#define MADERA_IN3L_MUTE_WIDTH 1 +#define MADERA_IN3L_DIG_VOL_MASK 0x00FF +#define MADERA_IN3L_DIG_VOL_SHIFT 0 +#define MADERA_IN3L_DIG_VOL_WIDTH 8 + +/* (0x0322) DMIC3L_Control */ +#define MADERA_IN3_DMICL_DLY_MASK 0x003F +#define MADERA_IN3_DMICL_DLY_SHIFT 0 +#define MADERA_IN3_DMICL_DLY_WIDTH 6 +#define MADERA_IN3_OSR_MASK 0x0700 +#define MADERA_IN3_OSR_SHIFT 8 +#define MADERA_IN3_OSR_WIDTH 3 + +/* (0x0323) IN3L_Rate_Control */ +#define MADERA_IN3L_RATE_MASK 0xF800 +#define MADERA_IN3L_RATE_SHIFT 11 +#define MADERA_IN3L_RATE_WIDTH 5 + +/* (0x0324) IN3R_Control */ +#define MADERA_IN3R_HPF_MASK 0x8000 +#define MADERA_IN3R_HPF_SHIFT 15 +#define MADERA_IN3R_HPF_WIDTH 1 +#define MADERA_IN3R_PGA_VOL_MASK 0x00FE +#define MADERA_IN3R_PGA_VOL_SHIFT 1 +#define MADERA_IN3R_PGA_VOL_WIDTH 7 +#define MADERA_IN3_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN3_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN3_DMICCLK_SRC_WIDTH 2 + +/* (0x0325) ADC_Digital_Volume_3R */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN3R_MUTE 0x0100 +#define MADERA_IN3R_MUTE_MASK 0x0100 +#define MADERA_IN3R_MUTE_SHIFT 8 +#define MADERA_IN3R_MUTE_WIDTH 1 +#define MADERA_IN3R_DIG_VOL_MASK 0x00FF +#define MADERA_IN3R_DIG_VOL_SHIFT 0 +#define MADERA_IN3R_DIG_VOL_WIDTH 8 + +/* (0x0326) DMIC3R_Control */ +#define MADERA_IN3_DMICR_DLY_MASK 0x003F +#define MADERA_IN3_DMICR_DLY_SHIFT 0 +#define MADERA_IN3_DMICR_DLY_WIDTH 6 + +/* (0x0327) IN3R_Rate_Control */ +#define MADERA_IN3R_RATE_MASK 0xF800 +#define MADERA_IN3R_RATE_SHIFT 11 +#define MADERA_IN3R_RATE_WIDTH 5 + +/* (0x0328) IN4L_Control */ +#define MADERA_IN4L_HPF_MASK 0x8000 +#define MADERA_IN4L_HPF_SHIFT 15 +#define MADERA_IN4L_HPF_WIDTH 1 +#define MADERA_IN4_DMIC_SUP_MASK 0x1800 +#define MADERA_IN4_DMIC_SUP_SHIFT 11 +#define MADERA_IN4_DMIC_SUP_WIDTH 2 + +/* (0x0329) ADC_Digital_Volume_4L */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN4L_MUTE 0x0100 +#define MADERA_IN4L_MUTE_MASK 0x0100 +#define MADERA_IN4L_MUTE_SHIFT 8 +#define MADERA_IN4L_MUTE_WIDTH 1 +#define MADERA_IN4L_DIG_VOL_MASK 0x00FF +#define MADERA_IN4L_DIG_VOL_SHIFT 0 +#define MADERA_IN4L_DIG_VOL_WIDTH 8 + +/* (0x032A) DMIC4L_Control */ +#define MADERA_IN4L_DMIC_DLY_MASK 0x003F +#define MADERA_IN4L_DMIC_DLY_SHIFT 0 +#define MADERA_IN4L_DMIC_DLY_WIDTH 6 +#define MADERA_IN4_OSR_MASK 0x0700 +#define MADERA_IN4_OSR_SHIFT 8 +#define MADERA_IN4_OSR_WIDTH 3 + +/* (0x032B) IN4L_Rate_Control */ +#define MADERA_IN4L_RATE_MASK 0xF800 +#define MADERA_IN4L_RATE_SHIFT 11 +#define MADERA_IN4L_RATE_WIDTH 5 + +/* (0x032C) IN4R_Control */ +#define MADERA_IN4R_HPF_MASK 0x8000 +#define MADERA_IN4R_HPF_SHIFT 15 +#define MADERA_IN4R_HPF_WIDTH 1 +#define MADERA_IN4_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN4_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN4_DMICCLK_SRC_WIDTH 2 + +/* (0x032D) ADC_Digital_Volume_4R */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN4R_MUTE 0x0100 +#define MADERA_IN4R_MUTE_MASK 0x0100 +#define MADERA_IN4R_MUTE_SHIFT 8 +#define MADERA_IN4R_MUTE_WIDTH 1 +#define MADERA_IN4R_DIG_VOL_MASK 0x00FF +#define MADERA_IN4R_DIG_VOL_SHIFT 0 +#define MADERA_IN4R_DIG_VOL_WIDTH 8 + +/* (0x032E) DMIC4R_Control */ +#define MADERA_IN4R_DMIC_DLY_MASK 0x003F +#define MADERA_IN4R_DMIC_DLY_SHIFT 0 +#define MADERA_IN4R_DMIC_DLY_WIDTH 6 + +/* (0x032F) IN4R_Rate_Control */ +#define MADERA_IN4R_RATE_MASK 0xF800 +#define MADERA_IN4R_RATE_SHIFT 11 +#define MADERA_IN4R_RATE_WIDTH 5 + +/* (0x0330) IN5L_Control */ +#define MADERA_IN5L_HPF_MASK 0x8000 +#define MADERA_IN5L_HPF_SHIFT 15 +#define MADERA_IN5L_HPF_WIDTH 1 +#define MADERA_IN5_DMIC_SUP_MASK 0x1800 +#define MADERA_IN5_DMIC_SUP_SHIFT 11 +#define MADERA_IN5_DMIC_SUP_WIDTH 2 + +/* (0x0331) ADC_Digital_Volume_5L */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN5L_MUTE 0x0100 +#define MADERA_IN5L_MUTE_MASK 0x0100 +#define MADERA_IN5L_MUTE_SHIFT 8 +#define MADERA_IN5L_MUTE_WIDTH 1 +#define MADERA_IN5L_DIG_VOL_MASK 0x00FF +#define MADERA_IN5L_DIG_VOL_SHIFT 0 +#define MADERA_IN5L_DIG_VOL_WIDTH 8 + +/* (0x0332) DMIC5L_Control */ +#define MADERA_IN5L_DMIC_DLY_MASK 0x003F +#define MADERA_IN5L_DMIC_DLY_SHIFT 0 +#define MADERA_IN5L_DMIC_DLY_WIDTH 6 +#define MADERA_IN5_OSR_MASK 0x0700 +#define MADERA_IN5_OSR_SHIFT 8 +#define MADERA_IN5_OSR_WIDTH 3 + +/* (0x0333) IN5L_Rate_Control */ +#define MADERA_IN5L_RATE_MASK 0x7800 +#define MADERA_IN5L_RATE_SHIFT 11 +#define MADERA_IN5L_RATE_WIDTH 4 + +/* (0x0334) IN5R_Control */ +#define MADERA_IN5R_HPF_MASK 0x8000 +#define MADERA_IN5R_HPF_SHIFT 15 +#define MADERA_IN5R_HPF_WIDTH 1 +#define MADERA_IN5_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN5_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN5_DMICCLK_SRC_WIDTH 2 + +/* (0x0335) ADC_Digital_Volume_5R */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN5R_MUTE 0x0100 +#define MADERA_IN5R_MUTE_MASK 0x0100 +#define MADERA_IN5R_MUTE_SHIFT 8 +#define MADERA_IN5R_MUTE_WIDTH 1 +#define MADERA_IN5R_DIG_VOL_MASK 0x00FF +#define MADERA_IN5R_DIG_VOL_SHIFT 0 +#define MADERA_IN5R_DIG_VOL_WIDTH 8 + +/* (0x0336) DMIC5R_Control */ +#define MADERA_IN5R_DMIC_DLY_MASK 0x003F +#define MADERA_IN5R_DMIC_DLY_SHIFT 0 +#define MADERA_IN5R_DMIC_DLY_WIDTH 6 + +/* (0x0337) IN5R_Rate_Control */ +#define MADERA_IN5R_RATE_MASK 0x7800 +#define MADERA_IN5R_RATE_SHIFT 11 +#define MADERA_IN5R_RATE_WIDTH 4 + +/* (0x0338) IN6L_Control */ +#define MADERA_IN6L_HPF_MASK 0x8000 +#define MADERA_IN6L_HPF_SHIFT 15 +#define MADERA_IN6L_HPF_WIDTH 1 +#define MADERA_IN6_DMIC_SUP_MASK 0x1800 +#define MADERA_IN6_DMIC_SUP_SHIFT 11 +#define MADERA_IN6_DMIC_SUP_WIDTH 2 + +/* (0x0339) ADC_Digital_Volume_6L */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN6L_MUTE 0x0100 +#define MADERA_IN6L_MUTE_MASK 0x0100 +#define MADERA_IN6L_MUTE_SHIFT 8 +#define MADERA_IN6L_MUTE_WIDTH 1 +#define MADERA_IN6L_DIG_VOL_MASK 0x00FF +#define MADERA_IN6L_DIG_VOL_SHIFT 0 +#define MADERA_IN6L_DIG_VOL_WIDTH 8 + +/* (0x033A) DMIC6L_Control */ +#define MADERA_IN6L_DMIC_DLY_MASK 0x003F +#define MADERA_IN6L_DMIC_DLY_SHIFT 0 +#define MADERA_IN6L_DMIC_DLY_WIDTH 6 +#define MADERA_IN6_OSR_MASK 0x0700 +#define MADERA_IN6_OSR_SHIFT 8 +#define MADERA_IN6_OSR_WIDTH 3 + +/* (0x033C) IN6R_Control */ +#define MADERA_IN6R_HPF_MASK 0x8000 +#define MADERA_IN6R_HPF_SHIFT 15 +#define MADERA_IN6R_HPF_WIDTH 1 + +/* (0x033D) ADC_Digital_Volume_6R */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN6R_MUTE 0x0100 +#define MADERA_IN6R_MUTE_MASK 0x0100 +#define MADERA_IN6R_MUTE_SHIFT 8 +#define MADERA_IN6R_MUTE_WIDTH 1 +#define MADERA_IN6R_DIG_VOL_MASK 0x00FF +#define MADERA_IN6R_DIG_VOL_SHIFT 0 +#define MADERA_IN6R_DIG_VOL_WIDTH 8 + +/* (0x033E) DMIC6R_Control */ +#define MADERA_IN6R_DMIC_DLY_MASK 0x003F +#define MADERA_IN6R_DMIC_DLY_SHIFT 0 +#define MADERA_IN6R_DMIC_DLY_WIDTH 6 +#define MADERA_IN6_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN6_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN6_DMICCLK_SRC_WIDTH 2 + +/* (0x0400) Output_Enables_1 */ +#define MADERA_EP_SEL 0x8000 +#define MADERA_EP_SEL_MASK 0x8000 +#define MADERA_EP_SEL_SHIFT 15 +#define MADERA_EP_SEL_WIDTH 1 +#define MADERA_OUT6L_ENA 0x0800 +#define MADERA_OUT6L_ENA_MASK 0x0800 +#define MADERA_OUT6L_ENA_SHIFT 11 +#define MADERA_OUT6L_ENA_WIDTH 1 +#define MADERA_OUT6R_ENA 0x0400 +#define MADERA_OUT6R_ENA_MASK 0x0400 +#define MADERA_OUT6R_ENA_SHIFT 10 +#define MADERA_OUT6R_ENA_WIDTH 1 +#define MADERA_OUT5L_ENA 0x0200 +#define MADERA_OUT5L_ENA_MASK 0x0200 +#define MADERA_OUT5L_ENA_SHIFT 9 +#define MADERA_OUT5L_ENA_WIDTH 1 +#define MADERA_OUT5R_ENA 0x0100 +#define MADERA_OUT5R_ENA_MASK 0x0100 +#define MADERA_OUT5R_ENA_SHIFT 8 +#define MADERA_OUT5R_ENA_WIDTH 1 +#define MADERA_OUT4L_ENA 0x0080 +#define MADERA_OUT4L_ENA_MASK 0x0080 +#define MADERA_OUT4L_ENA_SHIFT 7 +#define MADERA_OUT4L_ENA_WIDTH 1 +#define MADERA_OUT4R_ENA 0x0040 +#define MADERA_OUT4R_ENA_MASK 0x0040 +#define MADERA_OUT4R_ENA_SHIFT 6 +#define MADERA_OUT4R_ENA_WIDTH 1 +#define MADERA_OUT3L_ENA 0x0020 +#define MADERA_OUT3L_ENA_MASK 0x0020 +#define MADERA_OUT3L_ENA_SHIFT 5 +#define MADERA_OUT3L_ENA_WIDTH 1 +#define MADERA_OUT3R_ENA 0x0010 +#define MADERA_OUT3R_ENA_MASK 0x0010 +#define MADERA_OUT3R_ENA_SHIFT 4 +#define MADERA_OUT3R_ENA_WIDTH 1 +#define MADERA_OUT2L_ENA 0x0008 +#define MADERA_OUT2L_ENA_MASK 0x0008 +#define MADERA_OUT2L_ENA_SHIFT 3 +#define MADERA_OUT2L_ENA_WIDTH 1 +#define MADERA_OUT2R_ENA 0x0004 +#define MADERA_OUT2R_ENA_MASK 0x0004 +#define MADERA_OUT2R_ENA_SHIFT 2 +#define MADERA_OUT2R_ENA_WIDTH 1 +#define MADERA_OUT1L_ENA 0x0002 +#define MADERA_OUT1L_ENA_MASK 0x0002 +#define MADERA_OUT1L_ENA_SHIFT 1 +#define MADERA_OUT1L_ENA_WIDTH 1 +#define MADERA_OUT1R_ENA 0x0001 +#define MADERA_OUT1R_ENA_MASK 0x0001 +#define MADERA_OUT1R_ENA_SHIFT 0 +#define MADERA_OUT1R_ENA_WIDTH 1 + +/* (0x0401) Output_Status_1 */ +#define MADERA_OUT6L_ENA_STS 0x0800 +#define MADERA_OUT6L_ENA_STS_MASK 0x0800 +#define MADERA_OUT6L_ENA_STS_SHIFT 11 +#define MADERA_OUT6L_ENA_STS_WIDTH 1 +#define MADERA_OUT6R_ENA_STS 0x0400 +#define MADERA_OUT6R_ENA_STS_MASK 0x0400 +#define MADERA_OUT6R_ENA_STS_SHIFT 10 +#define MADERA_OUT6R_ENA_STS_WIDTH 1 +#define MADERA_OUT5L_ENA_STS 0x0200 +#define MADERA_OUT5L_ENA_STS_MASK 0x0200 +#define MADERA_OUT5L_ENA_STS_SHIFT 9 +#define MADERA_OUT5L_ENA_STS_WIDTH 1 +#define MADERA_OUT5R_ENA_STS 0x0100 +#define MADERA_OUT5R_ENA_STS_MASK 0x0100 +#define MADERA_OUT5R_ENA_STS_SHIFT 8 +#define MADERA_OUT5R_ENA_STS_WIDTH 1 +#define MADERA_OUT4L_ENA_STS 0x0080 +#define MADERA_OUT4L_ENA_STS_MASK 0x0080 +#define MADERA_OUT4L_ENA_STS_SHIFT 7 +#define MADERA_OUT4L_ENA_STS_WIDTH 1 +#define MADERA_OUT4R_ENA_STS 0x0040 +#define MADERA_OUT4R_ENA_STS_MASK 0x0040 +#define MADERA_OUT4R_ENA_STS_SHIFT 6 +#define MADERA_OUT4R_ENA_STS_WIDTH 1 + +/* (0x0408) Output_Rate_1 */ +#define MADERA_OUT_RATE_MASK 0xF800 +#define MADERA_OUT_RATE_SHIFT 11 +#define MADERA_OUT_RATE_WIDTH 5 +#define MADERA_CP_DAC_MODE_MASK 0x0040 +#define MADERA_CP_DAC_MODE_SHIFT 6 +#define MADERA_CP_DAC_MODE_WIDTH 1 + +/* (0x0409) Output_Volume_Ramp */ +#define MADERA_OUT_VD_RAMP_MASK 0x0070 +#define MADERA_OUT_VD_RAMP_SHIFT 4 +#define MADERA_OUT_VD_RAMP_WIDTH 3 +#define MADERA_OUT_VI_RAMP_MASK 0x0007 +#define MADERA_OUT_VI_RAMP_SHIFT 0 +#define MADERA_OUT_VI_RAMP_WIDTH 3 + +/* (0x0410) Output_Path_Config_1L */ +#define MADERA_OUT1_LP_MODE 0x8000 +#define MADERA_OUT1_LP_MODE_MASK 0x8000 +#define MADERA_OUT1_LP_MODE_SHIFT 15 +#define MADERA_OUT1_LP_MODE_WIDTH 1 +#define MADERA_OUT1_OSR 0x2000 +#define MADERA_OUT1_OSR_MASK 0x2000 +#define MADERA_OUT1_OSR_SHIFT 13 +#define MADERA_OUT1_OSR_WIDTH 1 +#define MADERA_OUT1_MONO 0x1000 +#define MADERA_OUT1_MONO_MASK 0x1000 +#define MADERA_OUT1_MONO_SHIFT 12 +#define MADERA_OUT1_MONO_WIDTH 1 +#define MADERA_OUT1L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT1L_ANC_SRC_SHIFT 10 +#define MADERA_OUT1L_ANC_SRC_WIDTH 2 +#define MADERA_OUT1L_PGA_VOL_MASK 0x00FE +#define MADERA_OUT1L_PGA_VOL_SHIFT 1 +#define MADERA_OUT1L_PGA_VOL_WIDTH 7 + +/* (0x0411) DAC_Digital_Volume_1L */ +#define MADERA_OUT1L_VU 0x0200 +#define MADERA_OUT1L_VU_MASK 0x0200 +#define MADERA_OUT1L_VU_SHIFT 9 +#define MADERA_OUT1L_VU_WIDTH 1 +#define MADERA_OUT1L_MUTE 0x0100 +#define MADERA_OUT1L_MUTE_MASK 0x0100 +#define MADERA_OUT1L_MUTE_SHIFT 8 +#define MADERA_OUT1L_MUTE_WIDTH 1 +#define MADERA_OUT1L_VOL_MASK 0x00FF +#define MADERA_OUT1L_VOL_SHIFT 0 +#define MADERA_OUT1L_VOL_WIDTH 8 + +/* (0x0412) Output_Path_Config_1 */ +#define MADERA_HP1_GND_SEL_MASK 0x0007 +#define MADERA_HP1_GND_SEL_SHIFT 0 +#define MADERA_HP1_GND_SEL_WIDTH 3 + +/* (0x0413) Noise_Gate_Select_1L */ +#define MADERA_OUT1L_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT1L_NGATE_SRC_SHIFT 0 +#define MADERA_OUT1L_NGATE_SRC_WIDTH 12 + +/* (0x0414) Output_Path_Config_1R */ +#define MADERA_OUT1R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT1R_ANC_SRC_SHIFT 10 +#define MADERA_OUT1R_ANC_SRC_WIDTH 2 +#define MADERA_OUT1R_PGA_VOL_MASK 0x00FE +#define MADERA_OUT1R_PGA_VOL_SHIFT 1 +#define MADERA_OUT1R_PGA_VOL_WIDTH 7 + +/* (0x0415) DAC_Digital_Volume_1R */ +#define MADERA_OUT1R_VU 0x0200 +#define MADERA_OUT1R_VU_MASK 0x0200 +#define MADERA_OUT1R_VU_SHIFT 9 +#define MADERA_OUT1R_VU_WIDTH 1 +#define MADERA_OUT1R_MUTE 0x0100 +#define MADERA_OUT1R_MUTE_MASK 0x0100 +#define MADERA_OUT1R_MUTE_SHIFT 8 +#define MADERA_OUT1R_MUTE_WIDTH 1 +#define MADERA_OUT1R_VOL_MASK 0x00FF +#define MADERA_OUT1R_VOL_SHIFT 0 +#define MADERA_OUT1R_VOL_WIDTH 8 + +/* (0x0417) Noise_Gate_Select_1R */ +#define MADERA_OUT1R_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT1R_NGATE_SRC_SHIFT 0 +#define MADERA_OUT1R_NGATE_SRC_WIDTH 12 + +/* (0x0418) Output_Path_Config_2L */ +#define MADERA_OUT2_LP_MODE 0x8000 +#define MADERA_OUT2_LP_MODE_MASK 0x8000 +#define MADERA_OUT2_LP_MODE_SHIFT 15 +#define MADERA_OUT2_LP_MODE_WIDTH 1 +#define MADERA_OUT2_OSR 0x2000 +#define MADERA_OUT2_OSR_MASK 0x2000 +#define MADERA_OUT2_OSR_SHIFT 13 +#define MADERA_OUT2_OSR_WIDTH 1 +#define MADERA_OUT2_MONO 0x1000 +#define MADERA_OUT2_MONO_MASK 0x1000 +#define MADERA_OUT2_MONO_SHIFT 12 +#define MADERA_OUT2_MONO_WIDTH 1 +#define MADERA_OUT2L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT2L_ANC_SRC_SHIFT 10 +#define MADERA_OUT2L_ANC_SRC_WIDTH 2 +#define MADERA_OUT2L_PGA_VOL_MASK 0x00FE +#define MADERA_OUT2L_PGA_VOL_SHIFT 1 +#define MADERA_OUT2L_PGA_VOL_WIDTH 7 + +/* (0x0419) DAC_Digital_Volume_2L */ +#define MADERA_OUT2L_VU 0x0200 +#define MADERA_OUT2L_VU_MASK 0x0200 +#define MADERA_OUT2L_VU_SHIFT 9 +#define MADERA_OUT2L_VU_WIDTH 1 +#define MADERA_OUT2L_MUTE 0x0100 +#define MADERA_OUT2L_MUTE_MASK 0x0100 +#define MADERA_OUT2L_MUTE_SHIFT 8 +#define MADERA_OUT2L_MUTE_WIDTH 1 +#define MADERA_OUT2L_VOL_MASK 0x00FF +#define MADERA_OUT2L_VOL_SHIFT 0 +#define MADERA_OUT2L_VOL_WIDTH 8 + +/* (0x041A) Output_Path_Config_2 */ +#define MADERA_HP2_GND_SEL_MASK 0x0007 +#define MADERA_HP2_GND_SEL_SHIFT 0 +#define MADERA_HP2_GND_SEL_WIDTH 3 + +/* (0x041B) Noise_Gate_Select_2L */ +#define MADERA_OUT2L_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT2L_NGATE_SRC_SHIFT 0 +#define MADERA_OUT2L_NGATE_SRC_WIDTH 12 + +/* (0x041C) Output_Path_Config_2R */ +#define MADERA_OUT2R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT2R_ANC_SRC_SHIFT 10 +#define MADERA_OUT2R_ANC_SRC_WIDTH 2 +#define MADERA_OUT2R_PGA_VOL_MASK 0x00FE +#define MADERA_OUT2R_PGA_VOL_SHIFT 1 +#define MADERA_OUT2R_PGA_VOL_WIDTH 7 + +/* (0x041D) DAC_Digital_Volume_2R */ +#define MADERA_OUT2R_VU 0x0200 +#define MADERA_OUT2R_VU_MASK 0x0200 +#define MADERA_OUT2R_VU_SHIFT 9 +#define MADERA_OUT2R_VU_WIDTH 1 +#define MADERA_OUT2R_MUTE 0x0100 +#define MADERA_OUT2R_MUTE_MASK 0x0100 +#define MADERA_OUT2R_MUTE_SHIFT 8 +#define MADERA_OUT2R_MUTE_WIDTH 1 +#define MADERA_OUT2R_VOL_MASK 0x00FF +#define MADERA_OUT2R_VOL_SHIFT 0 +#define MADERA_OUT2R_VOL_WIDTH 8 + +/* (0x041F) Noise_Gate_Select_2R */ +#define MADERA_OUT2R_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT2R_NGATE_SRC_SHIFT 0 +#define MADERA_OUT2R_NGATE_SRC_WIDTH 12 + +/* (0x0420) Output_Path_Config_3L */ +#define MADERA_OUT3_LP_MODE 0x8000 +#define MADERA_OUT3_LP_MODE_MASK 0x8000 +#define MADERA_OUT3_LP_MODE_SHIFT 15 +#define MADERA_OUT3_LP_MODE_WIDTH 1 +#define MADERA_OUT3_OSR 0x2000 +#define MADERA_OUT3_OSR_MASK 0x2000 +#define MADERA_OUT3_OSR_SHIFT 13 +#define MADERA_OUT3_OSR_WIDTH 1 +#define MADERA_OUT3_MONO 0x1000 +#define MADERA_OUT3_MONO_MASK 0x1000 +#define MADERA_OUT3_MONO_SHIFT 12 +#define MADERA_OUT3_MONO_WIDTH 1 +#define MADERA_OUT3L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT3L_ANC_SRC_SHIFT 10 +#define MADERA_OUT3L_ANC_SRC_WIDTH 2 +#define MADERA_OUT3L_PGA_VOL_MASK 0x00FE +#define MADERA_OUT3L_PGA_VOL_SHIFT 1 +#define MADERA_OUT3L_PGA_VOL_WIDTH 7 + +/* (0x0421) DAC_Digital_Volume_3L */ +#define MADERA_OUT3L_VU 0x0200 +#define MADERA_OUT3L_VU_MASK 0x0200 +#define MADERA_OUT3L_VU_SHIFT 9 +#define MADERA_OUT3L_VU_WIDTH 1 +#define MADERA_OUT3L_MUTE 0x0100 +#define MADERA_OUT3L_MUTE_MASK 0x0100 +#define MADERA_OUT3L_MUTE_SHIFT 8 +#define MADERA_OUT3L_MUTE_WIDTH 1 +#define MADERA_OUT3L_VOL_MASK 0x00FF +#define MADERA_OUT3L_VOL_SHIFT 0 +#define MADERA_OUT3L_VOL_WIDTH 8 + +/* (0x0423) Noise_Gate_Select_3L */ +#define MADERA_OUT3_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT3_NGATE_SRC_SHIFT 0 +#define MADERA_OUT3_NGATE_SRC_WIDTH 12 + +/* (0x0424) Output_Path_Config_3R */ +#define MADERA_OUT3R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT3R_ANC_SRC_SHIFT 10 +#define MADERA_OUT3R_ANC_SRC_WIDTH 2 +#define MADERA_OUT3R_PGA_VOL_MASK 0x00FE +#define MADERA_OUT3R_PGA_VOL_SHIFT 1 +#define MADERA_OUT3R_PGA_VOL_WIDTH 7 + +/* (0x0425) DAC_Digital_Volume_3R */ +#define MADERA_OUT3R_VU 0x0200 +#define MADERA_OUT3R_VU_MASK 0x0200 +#define MADERA_OUT3R_VU_SHIFT 9 +#define MADERA_OUT3R_VU_WIDTH 1 +#define MADERA_OUT3R_MUTE 0x0100 +#define MADERA_OUT3R_MUTE_MASK 0x0100 +#define MADERA_OUT3R_MUTE_SHIFT 8 +#define MADERA_OUT3R_MUTE_WIDTH 1 +#define MADERA_OUT3R_VOL_MASK 0x00FF +#define MADERA_OUT3R_VOL_SHIFT 0 +#define MADERA_OUT3R_VOL_WIDTH 8 + +/* (0x0428) Output_Path_Config_4L */ +#define MADERA_OUT4_OSR 0x2000 +#define MADERA_OUT4_OSR_MASK 0x2000 +#define MADERA_OUT4_OSR_SHIFT 13 +#define MADERA_OUT4_OSR_WIDTH 1 +#define MADERA_OUT4L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT4L_ANC_SRC_SHIFT 10 +#define MADERA_OUT4L_ANC_SRC_WIDTH 2 + +/* (0x0429) DAC_Digital_Volume_4L */ +#define MADERA_OUT4L_VU 0x0200 +#define MADERA_OUT4L_VU_MASK 0x0200 +#define MADERA_OUT4L_VU_SHIFT 9 +#define MADERA_OUT4L_VU_WIDTH 1 +#define MADERA_OUT4L_MUTE 0x0100 +#define MADERA_OUT4L_MUTE_MASK 0x0100 +#define MADERA_OUT4L_MUTE_SHIFT 8 +#define MADERA_OUT4L_MUTE_WIDTH 1 +#define MADERA_OUT4L_VOL_MASK 0x00FF +#define MADERA_OUT4L_VOL_SHIFT 0 +#define MADERA_OUT4L_VOL_WIDTH 8 + +/* (0x042B) Noise_Gate_Select_4L */ +#define MADERA_OUT4L_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT4L_NGATE_SRC_SHIFT 0 +#define MADERA_OUT4L_NGATE_SRC_WIDTH 12 + +/* (0x042C) Output_Path_Config_4R */ +#define MADERA_OUT4R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT4R_ANC_SRC_SHIFT 10 +#define MADERA_OUT4R_ANC_SRC_WIDTH 2 + +/* (0x042D) DAC_Digital_Volume_4R */ +#define MADERA_OUT4R_VU 0x0200 +#define MADERA_OUT4R_VU_MASK 0x0200 +#define MADERA_OUT4R_VU_SHIFT 9 +#define MADERA_OUT4R_VU_WIDTH 1 +#define MADERA_OUT4R_MUTE 0x0100 +#define MADERA_OUT4R_MUTE_MASK 0x0100 +#define MADERA_OUT4R_MUTE_SHIFT 8 +#define MADERA_OUT4R_MUTE_WIDTH 1 +#define MADERA_OUT4R_VOL_MASK 0x00FF +#define MADERA_OUT4R_VOL_SHIFT 0 +#define MADERA_OUT4R_VOL_WIDTH 8 + +/* (0x042F) Noise_Gate_Select_4R */ +#define MADERA_OUT4R_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT4R_NGATE_SRC_SHIFT 0 +#define MADERA_OUT4R_NGATE_SRC_WIDTH 12 + +/* (0x0430) Output_Path_Config_5L */ +#define MADERA_OUT5_OSR 0x2000 +#define MADERA_OUT5_OSR_MASK 0x2000 +#define MADERA_OUT5_OSR_SHIFT 13 +#define MADERA_OUT5_OSR_WIDTH 1 +#define MADERA_OUT5L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT5L_ANC_SRC_SHIFT 10 +#define MADERA_OUT5L_ANC_SRC_WIDTH 2 + +/* (0x0431) DAC_Digital_Volume_5L */ +#define MADERA_OUT5L_VU 0x0200 +#define MADERA_OUT5L_VU_MASK 0x0200 +#define MADERA_OUT5L_VU_SHIFT 9 +#define MADERA_OUT5L_VU_WIDTH 1 +#define MADERA_OUT5L_MUTE 0x0100 +#define MADERA_OUT5L_MUTE_MASK 0x0100 +#define MADERA_OUT5L_MUTE_SHIFT 8 +#define MADERA_OUT5L_MUTE_WIDTH 1 +#define MADERA_OUT5L_VOL_MASK 0x00FF +#define MADERA_OUT5L_VOL_SHIFT 0 +#define MADERA_OUT5L_VOL_WIDTH 8 + +/* (0x0433) Noise_Gate_Select_5L */ +#define MADERA_OUT5L_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT5L_NGATE_SRC_SHIFT 0 +#define MADERA_OUT5L_NGATE_SRC_WIDTH 12 + +/* (0x0434) Output_Path_Config_5R */ +#define MADERA_OUT5R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT5R_ANC_SRC_SHIFT 10 +#define MADERA_OUT5R_ANC_SRC_WIDTH 2 + +/* (0x0435) DAC_Digital_Volume_5R */ +#define MADERA_OUT5R_VU 0x0200 +#define MADERA_OUT5R_VU_MASK 0x0200 +#define MADERA_OUT5R_VU_SHIFT 9 +#define MADERA_OUT5R_VU_WIDTH 1 +#define MADERA_OUT5R_MUTE 0x0100 +#define MADERA_OUT5R_MUTE_MASK 0x0100 +#define MADERA_OUT5R_MUTE_SHIFT 8 +#define MADERA_OUT5R_MUTE_WIDTH 1 +#define MADERA_OUT5R_VOL_MASK 0x00FF +#define MADERA_OUT5R_VOL_SHIFT 0 +#define MADERA_OUT5R_VOL_WIDTH 8 + +/* (0x0437) Noise_Gate_Select_5R */ +#define MADERA_OUT5R_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT5R_NGATE_SRC_SHIFT 0 +#define MADERA_OUT5R_NGATE_SRC_WIDTH 12 + +/* (0x0438) Output_Path_Config_6L */ +#define MADERA_OUT6_OSR 0x2000 +#define MADERA_OUT6_OSR_MASK 0x2000 +#define MADERA_OUT6_OSR_SHIFT 13 +#define MADERA_OUT6_OSR_WIDTH 1 +#define MADERA_OUT6L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT6L_ANC_SRC_SHIFT 10 +#define MADERA_OUT6L_ANC_SRC_WIDTH 2 + +/* (0x0439) DAC_Digital_Volume_6L */ +#define MADERA_OUT6L_VU 0x0200 +#define MADERA_OUT6L_VU_MASK 0x0200 +#define MADERA_OUT6L_VU_SHIFT 9 +#define MADERA_OUT6L_VU_WIDTH 1 +#define MADERA_OUT6L_MUTE 0x0100 +#define MADERA_OUT6L_MUTE_MASK 0x0100 +#define MADERA_OUT6L_MUTE_SHIFT 8 +#define MADERA_OUT6L_MUTE_WIDTH 1 +#define MADERA_OUT6L_VOL_MASK 0x00FF +#define MADERA_OUT6L_VOL_SHIFT 0 +#define MADERA_OUT6L_VOL_WIDTH 8 + +/* (0x043B) Noise_Gate_Select_6L */ +#define MADERA_OUT6L_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT6L_NGATE_SRC_SHIFT 0 +#define MADERA_OUT6L_NGATE_SRC_WIDTH 12 + +/* (0x043C) Output_Path_Config_6R */ +#define MADERA_OUT6R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT6R_ANC_SRC_SHIFT 10 +#define MADERA_OUT6R_ANC_SRC_WIDTH 2 + +/* (0x043D) DAC_Digital_Volume_6R */ +#define MADERA_OUT6R_VU 0x0200 +#define MADERA_OUT6R_VU_MASK 0x0200 +#define MADERA_OUT6R_VU_SHIFT 9 +#define MADERA_OUT6R_VU_WIDTH 1 +#define MADERA_OUT6R_MUTE 0x0100 +#define MADERA_OUT6R_MUTE_MASK 0x0100 +#define MADERA_OUT6R_MUTE_SHIFT 8 +#define MADERA_OUT6R_MUTE_WIDTH 1 +#define MADERA_OUT6R_VOL_MASK 0x00FF +#define MADERA_OUT6R_VOL_SHIFT 0 +#define MADERA_OUT6R_VOL_WIDTH 8 + +/* (0x043F) Noise_Gate_Select_6R */ +#define MADERA_OUT6R_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT6R_NGATE_SRC_SHIFT 0 +#define MADERA_OUT6R_NGATE_SRC_WIDTH 12 + +/* (0x0440) - DRE Enable */ +#define MADERA_DRE3R_ENA 0x0020 +#define MADERA_DRE3R_ENA_MASK 0x0020 +#define MADERA_DRE3R_ENA_SHIFT 5 +#define MADERA_DRE3R_ENA_WIDTH 1 +#define MADERA_DRE3L_ENA 0x0010 +#define MADERA_DRE3L_ENA_MASK 0x0010 +#define MADERA_DRE3L_ENA_SHIFT 4 +#define MADERA_DRE3L_ENA_WIDTH 1 +#define MADERA_DRE2R_ENA 0x0008 +#define MADERA_DRE2R_ENA_MASK 0x0008 +#define MADERA_DRE2R_ENA_SHIFT 3 +#define MADERA_DRE2R_ENA_WIDTH 1 +#define MADERA_DRE2L_ENA 0x0004 +#define MADERA_DRE2L_ENA_MASK 0x0004 +#define MADERA_DRE2L_ENA_SHIFT 2 +#define MADERA_DRE2L_ENA_WIDTH 1 +#define MADERA_DRE1R_ENA 0x0002 +#define MADERA_DRE1R_ENA_MASK 0x0002 +#define MADERA_DRE1R_ENA_SHIFT 1 +#define MADERA_DRE1R_ENA_WIDTH 1 +#define MADERA_DRE1L_ENA 0x0001 +#define MADERA_DRE1L_ENA_MASK 0x0001 +#define MADERA_DRE1L_ENA_SHIFT 0 +#define MADERA_DRE1L_ENA_WIDTH 1 + +/* (0x0448) - EDRE_Enable */ +#define MADERA_EDRE_OUT4L_THR3_ENA 0x0800 +#define MADERA_EDRE_OUT4L_THR3_ENA_MASK 0x0800 +#define MADERA_EDRE_OUT4L_THR3_ENA_SHIFT 11 +#define MADERA_EDRE_OUT4L_THR3_ENA_WIDTH 1 +#define MADERA_EDRE_OUT4R_THR3_ENA 0x0400 +#define MADERA_EDRE_OUT4R_THR3_ENA_MASK 0x0400 +#define MADERA_EDRE_OUT4R_THR3_ENA_SHIFT 10 +#define MADERA_EDRE_OUT4R_THR3_ENA_WIDTH 1 +#define MADERA_EDRE_OUT4L_THR2_ENA 0x0200 +#define MADERA_EDRE_OUT4L_THR2_ENA_MASK 0x0200 +#define MADERA_EDRE_OUT4L_THR2_ENA_SHIFT 9 +#define MADERA_EDRE_OUT4L_THR2_ENA_WIDTH 1 +#define MADERA_EDRE_OUT4R_THR2_ENA 0x0100 +#define MADERA_EDRE_OUT4R_THR2_ENA_MASK 0x0100 +#define MADERA_EDRE_OUT4R_THR2_ENA_SHIFT 8 +#define MADERA_EDRE_OUT4R_THR2_ENA_WIDTH 1 +#define MADERA_EDRE_OUT4L_THR1_ENA 0x0080 +#define MADERA_EDRE_OUT4L_THR1_ENA_MASK 0x0080 +#define MADERA_EDRE_OUT4L_THR1_ENA_SHIFT 7 +#define MADERA_EDRE_OUT4L_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT4R_THR1_ENA 0x0040 +#define MADERA_EDRE_OUT4R_THR1_ENA_MASK 0x0040 +#define MADERA_EDRE_OUT4R_THR1_ENA_SHIFT 6 +#define MADERA_EDRE_OUT4R_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT3L_THR1_ENA 0x0020 +#define MADERA_EDRE_OUT3L_THR1_ENA_MASK 0x0020 +#define MADERA_EDRE_OUT3L_THR1_ENA_SHIFT 5 +#define MADERA_EDRE_OUT3L_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT3R_THR1_ENA 0x0010 +#define MADERA_EDRE_OUT3R_THR1_ENA_MASK 0x0010 +#define MADERA_EDRE_OUT3R_THR1_ENA_SHIFT 4 +#define MADERA_EDRE_OUT3R_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT2L_THR1_ENA 0x0008 +#define MADERA_EDRE_OUT2L_THR1_ENA_MASK 0x0008 +#define MADERA_EDRE_OUT2L_THR1_ENA_SHIFT 3 +#define MADERA_EDRE_OUT2L_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT2R_THR1_ENA 0x0004 +#define MADERA_EDRE_OUT2R_THR1_ENA_MASK 0x0004 +#define MADERA_EDRE_OUT2R_THR1_ENA_SHIFT 2 +#define MADERA_EDRE_OUT2R_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT1L_THR1_ENA 0x0002 +#define MADERA_EDRE_OUT1L_THR1_ENA_MASK 0x0002 +#define MADERA_EDRE_OUT1L_THR1_ENA_SHIFT 1 +#define MADERA_EDRE_OUT1L_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT1R_THR1_ENA 0x0001 +#define MADERA_EDRE_OUT1R_THR1_ENA_MASK 0x0001 +#define MADERA_EDRE_OUT1R_THR1_ENA_SHIFT 0 +#define MADERA_EDRE_OUT1R_THR1_ENA_WIDTH 1 + +/* (0x044A) - EDRE_Manual */ +#define MADERA_EDRE_OUT3L_MANUAL 0x0020 +#define MADERA_EDRE_OUT3L_MANUAL_MASK 0x0020 +#define MADERA_EDRE_OUT3L_MANUAL_SHIFT 5 +#define MADERA_EDRE_OUT3L_MANUAL_WIDTH 1 +#define MADERA_EDRE_OUT3R_MANUAL 0x0010 +#define MADERA_EDRE_OUT3R_MANUAL_MASK 0x0010 +#define MADERA_EDRE_OUT3R_MANUAL_SHIFT 4 +#define MADERA_EDRE_OUT3R_MANUAL_WIDTH 1 +#define MADERA_EDRE_OUT2L_MANUAL 0x0008 +#define MADERA_EDRE_OUT2L_MANUAL_MASK 0x0008 +#define MADERA_EDRE_OUT2L_MANUAL_SHIFT 3 +#define MADERA_EDRE_OUT2L_MANUAL_WIDTH 1 +#define MADERA_EDRE_OUT2R_MANUAL 0x0004 +#define MADERA_EDRE_OUT2R_MANUAL_MASK 0x0004 +#define MADERA_EDRE_OUT2R_MANUAL_SHIFT 2 +#define MADERA_EDRE_OUT2R_MANUAL_WIDTH 1 +#define MADERA_EDRE_OUT1L_MANUAL 0x0002 +#define MADERA_EDRE_OUT1L_MANUAL_MASK 0x0002 +#define MADERA_EDRE_OUT1L_MANUAL_SHIFT 1 +#define MADERA_EDRE_OUT1L_MANUAL_WIDTH 1 +#define MADERA_EDRE_OUT1R_MANUAL 0x0001 +#define MADERA_EDRE_OUT1R_MANUAL_MASK 0x0001 +#define MADERA_EDRE_OUT1R_MANUAL_SHIFT 0 +#define MADERA_EDRE_OUT1R_MANUAL_WIDTH 1 + +/* (0x0450) - DAC AEC Control 1 */ +#define MADERA_AEC1_LOOPBACK_SRC_MASK 0x003C +#define MADERA_AEC1_LOOPBACK_SRC_SHIFT 2 +#define MADERA_AEC1_LOOPBACK_SRC_WIDTH 4 +#define MADERA_AEC1_ENA_STS 0x0002 +#define MADERA_AEC1_ENA_STS_MASK 0x0002 +#define MADERA_AEC1_ENA_STS_SHIFT 1 +#define MADERA_AEC1_ENA_STS_WIDTH 1 +#define MADERA_AEC1_LOOPBACK_ENA 0x0001 +#define MADERA_AEC1_LOOPBACK_ENA_MASK 0x0001 +#define MADERA_AEC1_LOOPBACK_ENA_SHIFT 0 +#define MADERA_AEC1_LOOPBACK_ENA_WIDTH 1 + +/* (0x0451) DAC_AEC_Control_2 */ +#define MADERA_AEC2_LOOPBACK_SRC_MASK 0x003C +#define MADERA_AEC2_LOOPBACK_SRC_SHIFT 2 +#define MADERA_AEC2_LOOPBACK_SRC_WIDTH 4 +#define MADERA_AEC2_ENA_STS 0x0002 +#define MADERA_AEC2_ENA_STS_MASK 0x0002 +#define MADERA_AEC2_ENA_STS_SHIFT 1 +#define MADERA_AEC2_ENA_STS_WIDTH 1 +#define MADERA_AEC2_LOOPBACK_ENA 0x0001 +#define MADERA_AEC2_LOOPBACK_ENA_MASK 0x0001 +#define MADERA_AEC2_LOOPBACK_ENA_SHIFT 0 +#define MADERA_AEC2_LOOPBACK_ENA_WIDTH 1 + +/* (0x0458) Noise_Gate_Control */ +#define MADERA_NGATE_HOLD_MASK 0x0030 +#define MADERA_NGATE_HOLD_SHIFT 4 +#define MADERA_NGATE_HOLD_WIDTH 2 +#define MADERA_NGATE_THR_MASK 0x000E +#define MADERA_NGATE_THR_SHIFT 1 +#define MADERA_NGATE_THR_WIDTH 3 +#define MADERA_NGATE_ENA 0x0001 +#define MADERA_NGATE_ENA_MASK 0x0001 +#define MADERA_NGATE_ENA_SHIFT 0 +#define MADERA_NGATE_ENA_WIDTH 1 + +/* (0x0490) PDM_SPK1_CTRL_1 */ +#define MADERA_SPK1R_MUTE 0x2000 +#define MADERA_SPK1R_MUTE_MASK 0x2000 +#define MADERA_SPK1R_MUTE_SHIFT 13 +#define MADERA_SPK1R_MUTE_WIDTH 1 +#define MADERA_SPK1L_MUTE 0x1000 +#define MADERA_SPK1L_MUTE_MASK 0x1000 +#define MADERA_SPK1L_MUTE_SHIFT 12 +#define MADERA_SPK1L_MUTE_WIDTH 1 +#define MADERA_SPK1_MUTE_ENDIAN 0x0100 +#define MADERA_SPK1_MUTE_ENDIAN_MASK 0x0100 +#define MADERA_SPK1_MUTE_ENDIAN_SHIFT 8 +#define MADERA_SPK1_MUTE_ENDIAN_WIDTH 1 +#define MADERA_SPK1_MUTE_SEQ1_MASK 0x00FF +#define MADERA_SPK1_MUTE_SEQ1_SHIFT 0 +#define MADERA_SPK1_MUTE_SEQ1_WIDTH 8 + +/* (0x0491) PDM_SPK1_CTRL_2 */ +#define MADERA_SPK1_FMT 0x0001 +#define MADERA_SPK1_FMT_MASK 0x0001 +#define MADERA_SPK1_FMT_SHIFT 0 +#define MADERA_SPK1_FMT_WIDTH 1 + +/* (0x0492) PDM_SPK2_CTRL_1 */ +#define MADERA_SPK2R_MUTE 0x2000 +#define MADERA_SPK2R_MUTE_MASK 0x2000 +#define MADERA_SPK2R_MUTE_SHIFT 13 +#define MADERA_SPK2R_MUTE_WIDTH 1 +#define MADERA_SPK2L_MUTE 0x1000 +#define MADERA_SPK2L_MUTE_MASK 0x1000 +#define MADERA_SPK2L_MUTE_SHIFT 12 +#define MADERA_SPK2L_MUTE_WIDTH 1 +#define MADERA_SPK2_MUTE_ENDIAN 0x0100 +#define MADERA_SPK2_MUTE_ENDIAN_MASK 0x0100 +#define MADERA_SPK2_MUTE_ENDIAN_SHIFT 8 +#define MADERA_SPK2_MUTE_ENDIAN_WIDTH 1 +#define MADERA_SPK2_MUTE_SEQ_MASK 0x00FF +#define MADERA_SPK2_MUTE_SEQ_SHIFT 0 +#define MADERA_SPK2_MUTE_SEQ_WIDTH 8 + +/* (0x0493) PDM_SPK2_CTRL_2 */ +#define MADERA_SPK2_FMT 0x0001 +#define MADERA_SPK2_FMT_MASK 0x0001 +#define MADERA_SPK2_FMT_SHIFT 0 +#define MADERA_SPK2_FMT_WIDTH 1 + +/* (0x04A0) - HP1 Short Circuit Ctrl */ +#define MADERA_HP1_SC_ENA 0x1000 +#define MADERA_HP1_SC_ENA_MASK 0x1000 +#define MADERA_HP1_SC_ENA_SHIFT 12 +#define MADERA_HP1_SC_ENA_WIDTH 1 + +/* (0x04A1) - HP2 Short Circuit Ctrl */ +#define MADERA_HP2_SC_ENA 0x1000 +#define MADERA_HP2_SC_ENA_MASK 0x1000 +#define MADERA_HP2_SC_ENA_SHIFT 12 +#define MADERA_HP2_SC_ENA_WIDTH 1 + +/* (0x04A2) - HP3 Short Circuit Ctrl */ +#define MADERA_HP3_SC_ENA 0x1000 +#define MADERA_HP3_SC_ENA_MASK 0x1000 +#define MADERA_HP3_SC_ENA_SHIFT 12 +#define MADERA_HP3_SC_ENA_WIDTH 1 + +/* (0x04A4) HP Test Ctrl 1 */ +#define MADERA_HP1_TST_CAP_SEL_MASK 0x0003 +#define MADERA_HP1_TST_CAP_SEL_SHIFT 0 +#define MADERA_HP1_TST_CAP_SEL_WIDTH 2 + +/* (0x04A8) - HP_Test_Ctrl_5 */ +#define MADERA_HP1L_TST_CINT 0x4000 +#define MADERA_HP1L_TST_CINT_MASK 0x4000 +#define MADERA_HP1L_TST_CINT_SHIFT 14 +#define MADERA_HP1L_TST_CINT_WIDTH 1 +#define MADERA_HP1L_TST_GBW 0x3000 +#define MADERA_HP1L_TST_GBW_MASK 0x3000 +#define MADERA_HP1L_TST_GBW_SHIFT 12 +#define MADERA_HP1L_TST_GBW_WIDTH 2 +#define MADERA_HP1L_TST_PGAS 0x0800 +#define MADERA_HP1L_TST_PGAS_MASK 0x0800 +#define MADERA_HP1L_TST_PGAS_SHIFT 11 +#define MADERA_HP1L_TST_PGAS_WIDTH 1 +#define MADERA_HP1L_TST_DUMP 0x0400 +#define MADERA_HP1L_TST_DUMP_MASK 0x0400 +#define MADERA_HP1L_TST_DUMP_SHIFT 10 +#define MADERA_HP1L_TST_DUMP_WIDTH 1 +#define MADERA_HP1L_TST_RST 0x0200 +#define MADERA_HP1L_TST_RST_MASK 0x0200 +#define MADERA_HP1L_TST_RST_SHIFT 9 +#define MADERA_HP1L_TST_RST_WIDTH 1 +#define MADERA_HP1L_ONEFLT 0x0100 +#define MADERA_HP1L_ONEFLT_MASK 0x0100 +#define MADERA_HP1L_ONEFLT_SHIFT 8 +#define MADERA_HP1L_ONEFLT_WIDTH 1 +#define MADERA_HP1L_TST_THDOFF 0x00C0 +#define MADERA_HP1L_TST_THDOFF_MASK 0x00C0 +#define MADERA_HP1L_TST_THDOFF_SHIFT 6 +#define MADERA_HP1L_TST_THDOFF_WIDTH 2 +#define MADERA_HP1L_CTRL_IOUT 0x0030 +#define MADERA_HP1L_CTRL_IOUT_MASK 0x0030 +#define MADERA_HP1L_CTRL_IOUT_SHIFT 4 +#define MADERA_HP1L_CTRL_IOUT_WIDTH 2 +#define MADERA_HP1L_TST_ILG 0x0008 +#define MADERA_HP1L_TST_ILG_MASK 0x0008 +#define MADERA_HP1L_TST_ILG_SHIFT 3 +#define MADERA_HP1L_TST_ILG_WIDTH 1 +#define MADERA_HP1L_TST_IBIAS 0x0003 +#define MADERA_HP1L_TST_IBIAS_MASK 0x0003 +#define MADERA_HP1L_TST_IBIAS_SHIFT 0 +#define MADERA_HP1L_TST_IBIAS_WIDTH 2 + +/* (0x04A9) - HP_Test_Ctrl_6 */ +#define MADERA_HP1R_TST_CINT 0x4000 +#define MADERA_HP1R_TST_CINT_MASK 0x4000 +#define MADERA_HP1R_TST_CINT_SHIFT 14 +#define MADERA_HP1R_TST_CINT_WIDTH 1 +#define MADERA_HP1R_TST_GBW 0x3000 +#define MADERA_HP1R_TST_GBW_MASK 0x3000 +#define MADERA_HP1R_TST_GBW_SHIFT 12 +#define MADERA_HP1R_TST_GBW_WIDTH 2 +#define MADERA_HP1R_TST_PGAS 0x0800 +#define MADERA_HP1R_TST_PGAS_MASK 0x0800 +#define MADERA_HP1R_TST_PGAS_SHIFT 11 +#define MADERA_HP1R_TST_PGAS_WIDTH 1 +#define MADERA_HP1R_TST_DUMP 0x0400 +#define MADERA_HP1R_TST_DUMP_MASK 0x0400 +#define MADERA_HP1R_TST_DUMP_SHIFT 10 +#define MADERA_HP1R_TST_DUMP_WIDTH 1 +#define MADERA_HP1R_TST_RST 0x0200 +#define MADERA_HP1R_TST_RST_MASK 0x0200 +#define MADERA_HP1R_TST_RST_SHIFT 9 +#define MADERA_HP1R_TST_RST_WIDTH 1 +#define MADERA_HP1R_ONEFLT 0x0100 +#define MADERA_HP1R_ONEFLT_MASK 0x0100 +#define MADERA_HP1R_ONEFLT_SHIFT 8 +#define MADERA_HP1R_ONEFLT_WIDTH 1 +#define MADERA_HP1R_TST_THDOFF 0x00C0 +#define MADERA_HP1R_TST_THDOFF_MASK 0x00C0 +#define MADERA_HP1R_TST_THDOFF_SHIFT 6 +#define MADERA_HP1R_TST_THDOFF_WIDTH 2 +#define MADERA_HP1R_CTRL_IOUT 0x0030 +#define MADERA_HP1R_CTRL_IOUT_MASK 0x0030 +#define MADERA_HP1R_CTRL_IOUT_SHIFT 4 +#define MADERA_HP1R_CTRL_IOUT_WIDTH 2 +#define MADERA_HP1R_TST_ILG 0x0008 +#define MADERA_HP1R_TST_ILG_MASK 0x0008 +#define MADERA_HP1R_TST_ILG_SHIFT 3 +#define MADERA_HP1R_TST_ILG_WIDTH 1 +#define MADERA_HP1R_TST_IBIAS 0x0003 +#define MADERA_HP1R_TST_IBIAS_MASK 0x0003 +#define MADERA_HP1R_TST_IBIAS_SHIFT 0 +#define MADERA_HP1R_TST_IBIAS_WIDTH 2 + +/* (0x0500) AIF1_BCLK_Ctrl */ +#define MADERA_AIF1_BCLK_INV 0x0080 +#define MADERA_AIF1_BCLK_INV_MASK 0x0080 +#define MADERA_AIF1_BCLK_INV_SHIFT 7 +#define MADERA_AIF1_BCLK_INV_WIDTH 1 +#define MADERA_AIF1_BCLK_FRC 0x0040 +#define MADERA_AIF1_BCLK_FRC_MASK 0x0040 +#define MADERA_AIF1_BCLK_FRC_SHIFT 6 +#define MADERA_AIF1_BCLK_FRC_WIDTH 1 +#define MADERA_AIF1_BCLK_MSTR 0x0020 +#define MADERA_AIF1_BCLK_MSTR_MASK 0x0020 +#define MADERA_AIF1_BCLK_MSTR_SHIFT 5 +#define MADERA_AIF1_BCLK_MSTR_WIDTH 1 +#define MADERA_AIF1_BCLK_FREQ_MASK 0x001F +#define MADERA_AIF1_BCLK_FREQ_SHIFT 0 +#define MADERA_AIF1_BCLK_FREQ_WIDTH 5 + +/* (0x0501) AIF1_Tx_Pin_Ctrl */ +#define MADERA_AIF1TX_DAT_TRI 0x0020 +#define MADERA_AIF1TX_DAT_TRI_MASK 0x0020 +#define MADERA_AIF1TX_DAT_TRI_SHIFT 5 +#define MADERA_AIF1TX_DAT_TRI_WIDTH 1 +#define MADERA_AIF1TX_LRCLK_SRC 0x0008 +#define MADERA_AIF1TX_LRCLK_SRC_MASK 0x0008 +#define MADERA_AIF1TX_LRCLK_SRC_SHIFT 3 +#define MADERA_AIF1TX_LRCLK_SRC_WIDTH 1 +#define MADERA_AIF1TX_LRCLK_INV 0x0004 +#define MADERA_AIF1TX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF1TX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF1TX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF1TX_LRCLK_FRC 0x0002 +#define MADERA_AIF1TX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF1TX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF1TX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF1TX_LRCLK_MSTR 0x0001 +#define MADERA_AIF1TX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF1TX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF1TX_LRCLK_MSTR_WIDTH 1 + +/* (0x0502) AIF1_Rx_Pin_Ctrl */ +#define MADERA_AIF1RX_LRCLK_INV 0x0004 +#define MADERA_AIF1RX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF1RX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF1RX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF1RX_LRCLK_FRC 0x0002 +#define MADERA_AIF1RX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF1RX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF1RX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF1RX_LRCLK_MSTR 0x0001 +#define MADERA_AIF1RX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF1RX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF1RX_LRCLK_MSTR_WIDTH 1 + +/* (0x0503) AIF1_Rate_Ctrl */ +#define MADERA_AIF1_RATE_MASK 0xF800 +#define MADERA_AIF1_RATE_SHIFT 11 +#define MADERA_AIF1_RATE_WIDTH 5 +#define MADERA_AIF1_TRI 0x0040 +#define MADERA_AIF1_TRI_MASK 0x0040 +#define MADERA_AIF1_TRI_SHIFT 6 +#define MADERA_AIF1_TRI_WIDTH 1 + +/* (0x0504) AIF1_Format */ +#define MADERA_AIF1_FMT_MASK 0x0007 +#define MADERA_AIF1_FMT_SHIFT 0 +#define MADERA_AIF1_FMT_WIDTH 3 + +/* (0x0506) AIF1_Rx_BCLK_Rate */ +#define MADERA_AIF1RX_BCPF_MASK 0x1FFF +#define MADERA_AIF1RX_BCPF_SHIFT 0 +#define MADERA_AIF1RX_BCPF_WIDTH 13 + +/* (0x0507) AIF1_Frame_Ctrl_1 */ +#define MADERA_AIF1TX_WL_MASK 0x3F00 +#define MADERA_AIF1TX_WL_SHIFT 8 +#define MADERA_AIF1TX_WL_WIDTH 6 +#define MADERA_AIF1TX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF1TX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF1TX_SLOT_LEN_WIDTH 8 + +/* (0x0508) AIF1_Frame_Ctrl_2 */ +#define MADERA_AIF1RX_WL_MASK 0x3F00 +#define MADERA_AIF1RX_WL_SHIFT 8 +#define MADERA_AIF1RX_WL_WIDTH 6 +#define MADERA_AIF1RX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF1RX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF1RX_SLOT_LEN_WIDTH 8 + +/* (0x0509) AIF1_Frame_Ctrl_3 */ +#define MADERA_AIF1TX1_SLOT_MASK 0x003F +#define MADERA_AIF1TX1_SLOT_SHIFT 0 +#define MADERA_AIF1TX1_SLOT_WIDTH 6 + +/* (0x050A) AIF1_Frame_Ctrl_4 */ +#define MADERA_AIF1TX2_SLOT_MASK 0x003F +#define MADERA_AIF1TX2_SLOT_SHIFT 0 +#define MADERA_AIF1TX2_SLOT_WIDTH 6 + +/* (0x050B) AIF1_Frame_Ctrl_5 */ +#define MADERA_AIF1TX3_SLOT_MASK 0x003F +#define MADERA_AIF1TX3_SLOT_SHIFT 0 +#define MADERA_AIF1TX3_SLOT_WIDTH 6 + +/* (0x050C) AIF1_Frame_Ctrl_6 */ +#define MADERA_AIF1TX4_SLOT_MASK 0x003F +#define MADERA_AIF1TX4_SLOT_SHIFT 0 +#define MADERA_AIF1TX4_SLOT_WIDTH 6 + +/* (0x050D) AIF1_Frame_Ctrl_7 */ +#define MADERA_AIF1TX5_SLOT_MASK 0x003F +#define MADERA_AIF1TX5_SLOT_SHIFT 0 +#define MADERA_AIF1TX5_SLOT_WIDTH 6 + +/* (0x050E) AIF1_Frame_Ctrl_8 */ +#define MADERA_AIF1TX6_SLOT_MASK 0x003F +#define MADERA_AIF1TX6_SLOT_SHIFT 0 +#define MADERA_AIF1TX6_SLOT_WIDTH 6 + +/* (0x050F) AIF1_Frame_Ctrl_9 */ +#define MADERA_AIF1TX7_SLOT_MASK 0x003F +#define MADERA_AIF1TX7_SLOT_SHIFT 0 +#define MADERA_AIF1TX7_SLOT_WIDTH 6 + +/* (0x0510) AIF1_Frame_Ctrl_10 */ +#define MADERA_AIF1TX8_SLOT_MASK 0x003F +#define MADERA_AIF1TX8_SLOT_SHIFT 0 +#define MADERA_AIF1TX8_SLOT_WIDTH 6 + +/* (0x0511) AIF1_Frame_Ctrl_11 */ +#define MADERA_AIF1RX1_SLOT_MASK 0x003F +#define MADERA_AIF1RX1_SLOT_SHIFT 0 +#define MADERA_AIF1RX1_SLOT_WIDTH 6 + +/* (0x0512) AIF1_Frame_Ctrl_12 */ +#define MADERA_AIF1RX2_SLOT_MASK 0x003F +#define MADERA_AIF1RX2_SLOT_SHIFT 0 +#define MADERA_AIF1RX2_SLOT_WIDTH 6 + +/* (0x0513) AIF1_Frame_Ctrl_13 */ +#define MADERA_AIF1RX3_SLOT_MASK 0x003F +#define MADERA_AIF1RX3_SLOT_SHIFT 0 +#define MADERA_AIF1RX3_SLOT_WIDTH 6 + +/* (0x0514) AIF1_Frame_Ctrl_14 */ +#define MADERA_AIF1RX4_SLOT_MASK 0x003F +#define MADERA_AIF1RX4_SLOT_SHIFT 0 +#define MADERA_AIF1RX4_SLOT_WIDTH 6 + +/* (0x0515) AIF1_Frame_Ctrl_15 */ +#define MADERA_AIF1RX5_SLOT_MASK 0x003F +#define MADERA_AIF1RX5_SLOT_SHIFT 0 +#define MADERA_AIF1RX5_SLOT_WIDTH 6 + +/* (0x0516) AIF1_Frame_Ctrl_16 */ +#define MADERA_AIF1RX6_SLOT_MASK 0x003F +#define MADERA_AIF1RX6_SLOT_SHIFT 0 +#define MADERA_AIF1RX6_SLOT_WIDTH 6 + +/* (0x0517) AIF1_Frame_Ctrl_17 */ +#define MADERA_AIF1RX7_SLOT_MASK 0x003F +#define MADERA_AIF1RX7_SLOT_SHIFT 0 +#define MADERA_AIF1RX7_SLOT_WIDTH 6 + +/* (0x0518) AIF1_Frame_Ctrl_18 */ +#define MADERA_AIF1RX8_SLOT_MASK 0x003F +#define MADERA_AIF1RX8_SLOT_SHIFT 0 +#define MADERA_AIF1RX8_SLOT_WIDTH 6 + +/* (0x0519) AIF1_Tx_Enables */ +#define MADERA_AIF1TX8_ENA 0x0080 +#define MADERA_AIF1TX8_ENA_MASK 0x0080 +#define MADERA_AIF1TX8_ENA_SHIFT 7 +#define MADERA_AIF1TX8_ENA_WIDTH 1 +#define MADERA_AIF1TX7_ENA 0x0040 +#define MADERA_AIF1TX7_ENA_MASK 0x0040 +#define MADERA_AIF1TX7_ENA_SHIFT 6 +#define MADERA_AIF1TX7_ENA_WIDTH 1 +#define MADERA_AIF1TX6_ENA 0x0020 +#define MADERA_AIF1TX6_ENA_MASK 0x0020 +#define MADERA_AIF1TX6_ENA_SHIFT 5 +#define MADERA_AIF1TX6_ENA_WIDTH 1 +#define MADERA_AIF1TX5_ENA 0x0010 +#define MADERA_AIF1TX5_ENA_MASK 0x0010 +#define MADERA_AIF1TX5_ENA_SHIFT 4 +#define MADERA_AIF1TX5_ENA_WIDTH 1 +#define MADERA_AIF1TX4_ENA 0x0008 +#define MADERA_AIF1TX4_ENA_MASK 0x0008 +#define MADERA_AIF1TX4_ENA_SHIFT 3 +#define MADERA_AIF1TX4_ENA_WIDTH 1 +#define MADERA_AIF1TX3_ENA 0x0004 +#define MADERA_AIF1TX3_ENA_MASK 0x0004 +#define MADERA_AIF1TX3_ENA_SHIFT 2 +#define MADERA_AIF1TX3_ENA_WIDTH 1 +#define MADERA_AIF1TX2_ENA 0x0002 +#define MADERA_AIF1TX2_ENA_MASK 0x0002 +#define MADERA_AIF1TX2_ENA_SHIFT 1 +#define MADERA_AIF1TX2_ENA_WIDTH 1 +#define MADERA_AIF1TX1_ENA 0x0001 +#define MADERA_AIF1TX1_ENA_MASK 0x0001 +#define MADERA_AIF1TX1_ENA_SHIFT 0 +#define MADERA_AIF1TX1_ENA_WIDTH 1 + +/* (0x051A) AIF1_Rx_Enables */ +#define MADERA_AIF1RX8_ENA 0x0080 +#define MADERA_AIF1RX8_ENA_MASK 0x0080 +#define MADERA_AIF1RX8_ENA_SHIFT 7 +#define MADERA_AIF1RX8_ENA_WIDTH 1 +#define MADERA_AIF1RX7_ENA 0x0040 +#define MADERA_AIF1RX7_ENA_MASK 0x0040 +#define MADERA_AIF1RX7_ENA_SHIFT 6 +#define MADERA_AIF1RX7_ENA_WIDTH 1 +#define MADERA_AIF1RX6_ENA 0x0020 +#define MADERA_AIF1RX6_ENA_MASK 0x0020 +#define MADERA_AIF1RX6_ENA_SHIFT 5 +#define MADERA_AIF1RX6_ENA_WIDTH 1 +#define MADERA_AIF1RX5_ENA 0x0010 +#define MADERA_AIF1RX5_ENA_MASK 0x0010 +#define MADERA_AIF1RX5_ENA_SHIFT 4 +#define MADERA_AIF1RX5_ENA_WIDTH 1 +#define MADERA_AIF1RX4_ENA 0x0008 +#define MADERA_AIF1RX4_ENA_MASK 0x0008 +#define MADERA_AIF1RX4_ENA_SHIFT 3 +#define MADERA_AIF1RX4_ENA_WIDTH 1 +#define MADERA_AIF1RX3_ENA 0x0004 +#define MADERA_AIF1RX3_ENA_MASK 0x0004 +#define MADERA_AIF1RX3_ENA_SHIFT 2 +#define MADERA_AIF1RX3_ENA_WIDTH 1 +#define MADERA_AIF1RX2_ENA 0x0002 +#define MADERA_AIF1RX2_ENA_MASK 0x0002 +#define MADERA_AIF1RX2_ENA_SHIFT 1 +#define MADERA_AIF1RX2_ENA_WIDTH 1 +#define MADERA_AIF1RX1_ENA 0x0001 +#define MADERA_AIF1RX1_ENA_MASK 0x0001 +#define MADERA_AIF1RX1_ENA_SHIFT 0 +#define MADERA_AIF1RX1_ENA_WIDTH 1 + +/* (0x051B) - AIF1 Force Write */ +#define MADERA_AIF1_FRC_WR 0x0001 +#define MADERA_AIF1_FRC_WR_MASK 0x0001 +#define MADERA_AIF1_FRC_WR_SHIFT 0 +#define MADERA_AIF1_FRC_WR_WIDTH 1 + +/* (0x0540) AIF2_BCLK_Ctrl */ +#define MADERA_AIF2_BCLK_INV 0x0080 +#define MADERA_AIF2_BCLK_INV_MASK 0x0080 +#define MADERA_AIF2_BCLK_INV_SHIFT 7 +#define MADERA_AIF2_BCLK_INV_WIDTH 1 +#define MADERA_AIF2_BCLK_FRC 0x0040 +#define MADERA_AIF2_BCLK_FRC_MASK 0x0040 +#define MADERA_AIF2_BCLK_FRC_SHIFT 6 +#define MADERA_AIF2_BCLK_FRC_WIDTH 1 +#define MADERA_AIF2_BCLK_MSTR 0x0020 +#define MADERA_AIF2_BCLK_MSTR_MASK 0x0020 +#define MADERA_AIF2_BCLK_MSTR_SHIFT 5 +#define MADERA_AIF2_BCLK_MSTR_WIDTH 1 +#define MADERA_AIF2_BCLK_FREQ_MASK 0x001F +#define MADERA_AIF2_BCLK_FREQ_SHIFT 0 +#define MADERA_AIF2_BCLK_FREQ_WIDTH 5 + +/* (0x0541) AIF2_Tx_Pin_Ctrl */ +#define MADERA_AIF2TX_DAT_TRI 0x0020 +#define MADERA_AIF2TX_DAT_TRI_MASK 0x0020 +#define MADERA_AIF2TX_DAT_TRI_SHIFT 5 +#define MADERA_AIF2TX_DAT_TRI_WIDTH 1 +#define MADERA_AIF2TX_LRCLK_SRC 0x0008 +#define MADERA_AIF2TX_LRCLK_SRC_MASK 0x0008 +#define MADERA_AIF2TX_LRCLK_SRC_SHIFT 3 +#define MADERA_AIF2TX_LRCLK_SRC_WIDTH 1 +#define MADERA_AIF2TX_LRCLK_INV 0x0004 +#define MADERA_AIF2TX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF2TX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF2TX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF2TX_LRCLK_FRC 0x0002 +#define MADERA_AIF2TX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF2TX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF2TX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF2TX_LRCLK_MSTR 0x0001 +#define MADERA_AIF2TX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF2TX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF2TX_LRCLK_MSTR_WIDTH 1 + +/* (0x0542) AIF2_Rx_Pin_Ctrl */ +#define MADERA_AIF2RX_LRCLK_INV 0x0004 +#define MADERA_AIF2RX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF2RX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF2RX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF2RX_LRCLK_FRC 0x0002 +#define MADERA_AIF2RX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF2RX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF2RX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF2RX_LRCLK_MSTR 0x0001 +#define MADERA_AIF2RX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF2RX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF2RX_LRCLK_MSTR_WIDTH 1 + +/* (0x0543) AIF2_Rate_Ctrl */ +#define MADERA_AIF2_RATE_MASK 0xF800 +#define MADERA_AIF2_RATE_SHIFT 11 +#define MADERA_AIF2_RATE_WIDTH 5 +#define MADERA_AIF2_TRI 0x0040 +#define MADERA_AIF2_TRI_MASK 0x0040 +#define MADERA_AIF2_TRI_SHIFT 6 +#define MADERA_AIF2_TRI_WIDTH 1 + +/* (0x0544) AIF2_Format */ +#define MADERA_AIF2_FMT_MASK 0x0007 +#define MADERA_AIF2_FMT_SHIFT 0 +#define MADERA_AIF2_FMT_WIDTH 3 + +/* (0x0546) AIF2_Rx_BCLK_Rate */ +#define MADERA_AIF2RX_BCPF_MASK 0x1FFF +#define MADERA_AIF2RX_BCPF_SHIFT 0 +#define MADERA_AIF2RX_BCPF_WIDTH 13 + +/* (0x0547) AIF2_Frame_Ctrl_1 */ +#define MADERA_AIF2TX_WL_MASK 0x3F00 +#define MADERA_AIF2TX_WL_SHIFT 8 +#define MADERA_AIF2TX_WL_WIDTH 6 +#define MADERA_AIF2TX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF2TX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF2TX_SLOT_LEN_WIDTH 8 + +/* (0x0548) AIF2_Frame_Ctrl_2 */ +#define MADERA_AIF2RX_WL_MASK 0x3F00 +#define MADERA_AIF2RX_WL_SHIFT 8 +#define MADERA_AIF2RX_WL_WIDTH 6 +#define MADERA_AIF2RX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF2RX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF2RX_SLOT_LEN_WIDTH 8 + +/* (0x0549) AIF2_Frame_Ctrl_3 */ +#define MADERA_AIF2TX1_SLOT_MASK 0x003F +#define MADERA_AIF2TX1_SLOT_SHIFT 0 +#define MADERA_AIF2TX1_SLOT_WIDTH 6 + +/* (0x054A) AIF2_Frame_Ctrl_4 */ +#define MADERA_AIF2TX2_SLOT_MASK 0x003F +#define MADERA_AIF2TX2_SLOT_SHIFT 0 +#define MADERA_AIF2TX2_SLOT_WIDTH 6 + +/* (0x054B) AIF2_Frame_Ctrl_5 */ +#define MADERA_AIF2TX3_SLOT_MASK 0x003F +#define MADERA_AIF2TX3_SLOT_SHIFT 0 +#define MADERA_AIF2TX3_SLOT_WIDTH 6 + +/* (0x054C) AIF2_Frame_Ctrl_6 */ +#define MADERA_AIF2TX4_SLOT_MASK 0x003F +#define MADERA_AIF2TX4_SLOT_SHIFT 0 +#define MADERA_AIF2TX4_SLOT_WIDTH 6 + + +/* (0x054D) AIF2_Frame_Ctrl_7 */ +#define MADERA_AIF2TX5_SLOT_MASK 0x003F +#define MADERA_AIF2TX5_SLOT_SHIFT 0 +#define MADERA_AIF2TX5_SLOT_WIDTH 6 + +/* (0x054E) AIF2_Frame_Ctrl_8 */ +#define MADERA_AIF2TX6_SLOT_MASK 0x003F +#define MADERA_AIF2TX6_SLOT_SHIFT 0 +#define MADERA_AIF2TX6_SLOT_WIDTH 6 + +/* (0x054F) AIF2_Frame_Ctrl_9 */ +#define MADERA_AIF2TX7_SLOT_MASK 0x003F +#define MADERA_AIF2TX7_SLOT_SHIFT 0 +#define MADERA_AIF2TX7_SLOT_WIDTH 6 +/* (0x0550) AIF2_Frame_Ctrl_10 */ +#define MADERA_AIF2TX8_SLOT_MASK 0x003F +#define MADERA_AIF2TX8_SLOT_SHIFT 0 +#define MADERA_AIF2TX8_SLOT_WIDTH 6 + +/* (0x0551) AIF2_Frame_Ctrl_11 */ +#define MADERA_AIF2RX1_SLOT_MASK 0x003F +#define MADERA_AIF2RX1_SLOT_SHIFT 0 +#define MADERA_AIF2RX1_SLOT_WIDTH 6 + +/* (0x0552) AIF2_Frame_Ctrl_12 */ +#define MADERA_AIF2RX2_SLOT_MASK 0x003F +#define MADERA_AIF2RX2_SLOT_SHIFT 0 +#define MADERA_AIF2RX2_SLOT_WIDTH 6 + +/* (0x0553) AIF2_Frame_Ctrl_13 */ +#define MADERA_AIF2RX3_SLOT_MASK 0x003F +#define MADERA_AIF2RX3_SLOT_SHIFT 0 +#define MADERA_AIF2RX3_SLOT_WIDTH 6 + +/* (0x0554) AIF2_Frame_Ctrl_14 */ +#define MADERA_AIF2RX4_SLOT_MASK 0x003F +#define MADERA_AIF2RX4_SLOT_SHIFT 0 +#define MADERA_AIF2RX4_SLOT_WIDTH 6 + +/* (0x0555) AIF2_Frame_Ctrl_15 */ +#define MADERA_AIF2RX5_SLOT_MASK 0x003F +#define MADERA_AIF2RX5_SLOT_SHIFT 0 +#define MADERA_AIF2RX5_SLOT_WIDTH 6 + +/* (0x0556) AIF2_Frame_Ctrl_16 */ +#define MADERA_AIF2RX6_SLOT_MASK 0x003F +#define MADERA_AIF2RX6_SLOT_SHIFT 0 +#define MADERA_AIF2RX6_SLOT_WIDTH 6 + +/* (0x0557) AIF2_Frame_Ctrl_17 */ +#define MADERA_AIF2RX7_SLOT_MASK 0x003F +#define MADERA_AIF2RX7_SLOT_SHIFT 0 +#define MADERA_AIF2RX7_SLOT_WIDTH 6 + +/* (0x0558) AIF2_Frame_Ctrl_18 */ +#define MADERA_AIF2RX8_SLOT_MASK 0x003F +#define MADERA_AIF2RX8_SLOT_SHIFT 0 +#define MADERA_AIF2RX8_SLOT_WIDTH 6 + +/* (0x0559) AIF2_Tx_Enables */ +#define MADERA_AIF2TX8_ENA 0x0080 +#define MADERA_AIF2TX8_ENA_MASK 0x0080 +#define MADERA_AIF2TX8_ENA_SHIFT 7 +#define MADERA_AIF2TX8_ENA_WIDTH 1 +#define MADERA_AIF2TX7_ENA 0x0040 +#define MADERA_AIF2TX7_ENA_MASK 0x0040 +#define MADERA_AIF2TX7_ENA_SHIFT 6 +#define MADERA_AIF2TX7_ENA_WIDTH 1 +#define MADERA_AIF2TX6_ENA 0x0020 +#define MADERA_AIF2TX6_ENA_MASK 0x0020 +#define MADERA_AIF2TX6_ENA_SHIFT 5 +#define MADERA_AIF2TX6_ENA_WIDTH 1 +#define MADERA_AIF2TX5_ENA 0x0010 +#define MADERA_AIF2TX5_ENA_MASK 0x0010 +#define MADERA_AIF2TX5_ENA_SHIFT 4 +#define MADERA_AIF2TX5_ENA_WIDTH 1 +#define MADERA_AIF2TX4_ENA 0x0008 +#define MADERA_AIF2TX4_ENA_MASK 0x0008 +#define MADERA_AIF2TX4_ENA_SHIFT 3 +#define MADERA_AIF2TX4_ENA_WIDTH 1 +#define MADERA_AIF2TX3_ENA 0x0004 +#define MADERA_AIF2TX3_ENA_MASK 0x0004 +#define MADERA_AIF2TX3_ENA_SHIFT 2 +#define MADERA_AIF2TX3_ENA_WIDTH 1 +#define MADERA_AIF2TX2_ENA 0x0002 +#define MADERA_AIF2TX2_ENA_MASK 0x0002 +#define MADERA_AIF2TX2_ENA_SHIFT 1 +#define MADERA_AIF2TX2_ENA_WIDTH 1 +#define MADERA_AIF2TX1_ENA 0x0001 +#define MADERA_AIF2TX1_ENA_MASK 0x0001 +#define MADERA_AIF2TX1_ENA_SHIFT 0 +#define MADERA_AIF2TX1_ENA_WIDTH 1 + +/* (0x055A) AIF2_Rx_Enables */ +#define MADERA_AIF2RX8_ENA 0x0080 +#define MADERA_AIF2RX8_ENA_MASK 0x0080 +#define MADERA_AIF2RX8_ENA_SHIFT 7 +#define MADERA_AIF2RX8_ENA_WIDTH 1 +#define MADERA_AIF2RX7_ENA 0x0040 +#define MADERA_AIF2RX7_ENA_MASK 0x0040 +#define MADERA_AIF2RX7_ENA_SHIFT 6 +#define MADERA_AIF2RX7_ENA_WIDTH 1 +#define MADERA_AIF2RX6_ENA 0x0020 +#define MADERA_AIF2RX6_ENA_MASK 0x0020 +#define MADERA_AIF2RX6_ENA_SHIFT 5 +#define MADERA_AIF2RX6_ENA_WIDTH 1 +#define MADERA_AIF2RX5_ENA 0x0010 +#define MADERA_AIF2RX5_ENA_MASK 0x0010 +#define MADERA_AIF2RX5_ENA_SHIFT 4 +#define MADERA_AIF2RX5_ENA_WIDTH 1 +#define MADERA_AIF2RX4_ENA 0x0008 +#define MADERA_AIF2RX4_ENA_MASK 0x0008 +#define MADERA_AIF2RX4_ENA_SHIFT 3 +#define MADERA_AIF2RX4_ENA_WIDTH 1 +#define MADERA_AIF2RX3_ENA 0x0004 +#define MADERA_AIF2RX3_ENA_MASK 0x0004 +#define MADERA_AIF2RX3_ENA_SHIFT 2 +#define MADERA_AIF2RX3_ENA_WIDTH 1 +#define MADERA_AIF2RX2_ENA 0x0002 +#define MADERA_AIF2RX2_ENA_MASK 0x0002 +#define MADERA_AIF2RX2_ENA_SHIFT 1 +#define MADERA_AIF2RX2_ENA_WIDTH 1 +#define MADERA_AIF2RX1_ENA 0x0001 +#define MADERA_AIF2RX1_ENA_MASK 0x0001 +#define MADERA_AIF2RX1_ENA_SHIFT 0 +#define MADERA_AIF2RX1_ENA_WIDTH 1 + +/* (0x055B) - AIF2 Force Write */ +#define MADERA_AIF2_FRC_WR 0x0001 +#define MADERA_AIF2_FRC_WR_MASK 0x0001 +#define MADERA_AIF2_FRC_WR_SHIFT 0 +#define MADERA_AIF2_FRC_WR_WIDTH 1 + +/* (0x0580) AIF3_BCLK_Ctrl */ +#define MADERA_AIF3_BCLK_INV 0x0080 +#define MADERA_AIF3_BCLK_INV_MASK 0x0080 +#define MADERA_AIF3_BCLK_INV_SHIFT 7 +#define MADERA_AIF3_BCLK_INV_WIDTH 1 +#define MADERA_AIF3_BCLK_FRC 0x0040 +#define MADERA_AIF3_BCLK_FRC_MASK 0x0040 +#define MADERA_AIF3_BCLK_FRC_SHIFT 6 +#define MADERA_AIF3_BCLK_FRC_WIDTH 1 +#define MADERA_AIF3_BCLK_MSTR 0x0020 +#define MADERA_AIF3_BCLK_MSTR_MASK 0x0020 +#define MADERA_AIF3_BCLK_MSTR_SHIFT 5 +#define MADERA_AIF3_BCLK_MSTR_WIDTH 1 +#define MADERA_AIF3_BCLK_FREQ_MASK 0x001F +#define MADERA_AIF3_BCLK_FREQ_SHIFT 0 +#define MADERA_AIF3_BCLK_FREQ_WIDTH 5 + +/* (0x0581) AIF3_Tx_Pin_Ctrl */ +#define MADERA_AIF3TX_DAT_TRI 0x0020 +#define MADERA_AIF3TX_DAT_TRI_MASK 0x0020 +#define MADERA_AIF3TX_DAT_TRI_SHIFT 5 +#define MADERA_AIF3TX_DAT_TRI_WIDTH 1 +#define MADERA_AIF3TX_LRCLK_SRC 0x0008 +#define MADERA_AIF3TX_LRCLK_SRC_MASK 0x0008 +#define MADERA_AIF3TX_LRCLK_SRC_SHIFT 3 +#define MADERA_AIF3TX_LRCLK_SRC_WIDTH 1 +#define MADERA_AIF3TX_LRCLK_INV 0x0004 +#define MADERA_AIF3TX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF3TX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF3TX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF3TX_LRCLK_FRC 0x0002 +#define MADERA_AIF3TX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF3TX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF3TX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF3TX_LRCLK_MSTR 0x0001 +#define MADERA_AIF3TX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF3TX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF3TX_LRCLK_MSTR_WIDTH 1 + +/* (0x0582) AIF3_Rx_Pin_Ctrl */ +#define MADERA_AIF3RX_LRCLK_INV 0x0004 +#define MADERA_AIF3RX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF3RX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF3RX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF3RX_LRCLK_FRC 0x0002 +#define MADERA_AIF3RX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF3RX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF3RX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF3RX_LRCLK_MSTR 0x0001 +#define MADERA_AIF3RX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF3RX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF3RX_LRCLK_MSTR_WIDTH 1 + +/* (0x0583) AIF3_Rate_Ctrl */ +#define MADERA_AIF3_RATE_MASK 0xF800 +#define MADERA_AIF3_RATE_SHIFT 11 +#define MADERA_AIF3_RATE_WIDTH 5 +#define MADERA_AIF3_TRI 0x0040 +#define MADERA_AIF3_TRI_MASK 0x0040 +#define MADERA_AIF3_TRI_SHIFT 6 +#define MADERA_AIF3_TRI_WIDTH 1 + +/* (0x0584) AIF3_Format */ +#define MADERA_AIF3_FMT_MASK 0x0007 +#define MADERA_AIF3_FMT_SHIFT 0 +#define MADERA_AIF3_FMT_WIDTH 3 + +/* (0x0586) AIF3_Rx_BCLK_Rate */ +#define MADERA_AIF3RX_BCPF_MASK 0x1FFF +#define MADERA_AIF3RX_BCPF_SHIFT 0 +#define MADERA_AIF3RX_BCPF_WIDTH 13 + +/* (0x0587) AIF3_Frame_Ctrl_1 */ +#define MADERA_AIF3TX_WL_MASK 0x3F00 +#define MADERA_AIF3TX_WL_SHIFT 8 +#define MADERA_AIF3TX_WL_WIDTH 6 +#define MADERA_AIF3TX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF3TX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF3TX_SLOT_LEN_WIDTH 8 + +/* (0x0588) AIF3_Frame_Ctrl_2 */ +#define MADERA_AIF3RX_WL_MASK 0x3F00 +#define MADERA_AIF3RX_WL_SHIFT 8 +#define MADERA_AIF3RX_WL_WIDTH 6 +#define MADERA_AIF3RX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF3RX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF3RX_SLOT_LEN_WIDTH 8 + +/* (0x0589) AIF3_Frame_Ctrl_3 */ +#define MADERA_AIF3TX1_SLOT_MASK 0x003F +#define MADERA_AIF3TX1_SLOT_SHIFT 0 +#define MADERA_AIF3TX1_SLOT_WIDTH 6 + +/* (0x058A) AIF3_Frame_Ctrl_4 */ +#define MADERA_AIF3TX2_SLOT_MASK 0x003F +#define MADERA_AIF3TX2_SLOT_SHIFT 0 +#define MADERA_AIF3TX2_SLOT_WIDTH 6 + +/* (0x0591) AIF3_Frame_Ctrl_11 */ +#define MADERA_AIF3RX1_SLOT_MASK 0x003F +#define MADERA_AIF3RX1_SLOT_SHIFT 0 +#define MADERA_AIF3RX1_SLOT_WIDTH 6 + +/* (0x0592) AIF3_Frame_Ctrl_12 */ +#define MADERA_AIF3RX2_SLOT_MASK 0x003F +#define MADERA_AIF3RX2_SLOT_SHIFT 0 +#define MADERA_AIF3RX2_SLOT_WIDTH 6 + +/* (0x0599) AIF3_Tx_Enables */ +#define MADERA_AIF3TX2_ENA 0x0002 +#define MADERA_AIF3TX2_ENA_MASK 0x0002 +#define MADERA_AIF3TX2_ENA_SHIFT 1 +#define MADERA_AIF3TX2_ENA_WIDTH 1 +#define MADERA_AIF3TX1_ENA 0x0001 +#define MADERA_AIF3TX1_ENA_MASK 0x0001 +#define MADERA_AIF3TX1_ENA_SHIFT 0 +#define MADERA_AIF3TX1_ENA_WIDTH 1 + +/* (0x059A) AIF3_Rx_Enables */ +#define MADERA_AIF3RX2_ENA 0x0002 +#define MADERA_AIF3RX2_ENA_MASK 0x0002 +#define MADERA_AIF3RX2_ENA_SHIFT 1 +#define MADERA_AIF3RX2_ENA_WIDTH 1 +#define MADERA_AIF3RX1_ENA 0x0001 +#define MADERA_AIF3RX1_ENA_MASK 0x0001 +#define MADERA_AIF3RX1_ENA_SHIFT 0 +#define MADERA_AIF3RX1_ENA_WIDTH 1 + +/* (0x059B) - AIF3 Force Write */ +#define MADERA_AIF3_FRC_WR 0x0001 +#define MADERA_AIF3_FRC_WR_MASK 0x0001 +#define MADERA_AIF3_FRC_WR_SHIFT 0 +#define MADERA_AIF3_FRC_WR_WIDTH 1 + +/* (0x05A0) AIF4_BCLK_Ctrl */ +#define MADERA_AIF4_BCLK_INV 0x0080 +#define MADERA_AIF4_BCLK_INV_MASK 0x0080 +#define MADERA_AIF4_BCLK_INV_SHIFT 7 +#define MADERA_AIF4_BCLK_INV_WIDTH 1 +#define MADERA_AIF4_BCLK_FRC 0x0040 +#define MADERA_AIF4_BCLK_FRC_MASK 0x0040 +#define MADERA_AIF4_BCLK_FRC_SHIFT 6 +#define MADERA_AIF4_BCLK_FRC_WIDTH 1 +#define MADERA_AIF4_BCLK_MSTR 0x0020 +#define MADERA_AIF4_BCLK_MSTR_MASK 0x0020 +#define MADERA_AIF4_BCLK_MSTR_SHIFT 5 +#define MADERA_AIF4_BCLK_MSTR_WIDTH 1 +#define MADERA_AIF4_BCLK_FREQ_MASK 0x001F +#define MADERA_AIF4_BCLK_FREQ_SHIFT 0 +#define MADERA_AIF4_BCLK_FREQ_WIDTH 5 + +/* (0x05A1) AIF4_Tx_Pin_Ctrl */ +#define MADERA_AIF4TX_DAT_TRI 0x0020 +#define MADERA_AIF4TX_DAT_TRI_MASK 0x0020 +#define MADERA_AIF4TX_DAT_TRI_SHIFT 5 +#define MADERA_AIF4TX_DAT_TRI_WIDTH 1 +#define MADERA_AIF4TX_LRCLK_SRC 0x0008 +#define MADERA_AIF4TX_LRCLK_SRC_MASK 0x0008 +#define MADERA_AIF4TX_LRCLK_SRC_SHIFT 3 +#define MADERA_AIF4TX_LRCLK_SRC_WIDTH 1 +#define MADERA_AIF4TX_LRCLK_INV 0x0004 +#define MADERA_AIF4TX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF4TX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF4TX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF4TX_LRCLK_FRC 0x0002 +#define MADERA_AIF4TX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF4TX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF4TX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF4TX_LRCLK_MSTR 0x0001 +#define MADERA_AIF4TX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF4TX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF4TX_LRCLK_MSTR_WIDTH 1 + +/* (0x05A2) AIF4_Rx_Pin_Ctrl */ +#define MADERA_AIF4RX_LRCLK_INV 0x0004 +#define MADERA_AIF4RX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF4RX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF4RX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF4RX_LRCLK_FRC 0x0002 +#define MADERA_AIF4RX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF4RX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF4RX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF4RX_LRCLK_MSTR 0x0001 +#define MADERA_AIF4RX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF4RX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF4RX_LRCLK_MSTR_WIDTH 1 + +/* (0x05A3) AIF4_Rate_Ctrl */ +#define MADERA_AIF4_RATE_MASK 0x7800 +#define MADERA_AIF4_RATE_SHIFT 11 +#define MADERA_AIF4_RATE_WIDTH 4 +#define MADERA_AIF4_TRI 0x0040 +#define MADERA_AIF4_TRI_MASK 0x0040 +#define MADERA_AIF4_TRI_SHIFT 6 +#define MADERA_AIF4_TRI_WIDTH 1 + +/* (0x05A4) AIF4_Format */ +#define MADERA_AIF4_FMT_MASK 0x0007 +#define MADERA_AIF4_FMT_SHIFT 0 +#define MADERA_AIF4_FMT_WIDTH 3 + +/* (0x05A6) AIF4_Rx_BCLK_Rate */ +#define MADERA_AIF4RX_BCPF_MASK 0x1FFF +#define MADERA_AIF4RX_BCPF_SHIFT 0 +#define MADERA_AIF4RX_BCPF_WIDTH 13 + +/* (0x05A7) AIF4_Frame_Ctrl_1 */ +#define MADERA_AIF4TX_WL_MASK 0x3F00 +#define MADERA_AIF4TX_WL_SHIFT 8 +#define MADERA_AIF4TX_WL_WIDTH 6 +#define MADERA_AIF4TX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF4TX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF4TX_SLOT_LEN_WIDTH 8 + +/* (0x05A8) AIF4_Frame_Ctrl_2 */ +#define MADERA_AIF4RX_WL_MASK 0x3F00 +#define MADERA_AIF4RX_WL_SHIFT 8 +#define MADERA_AIF4RX_WL_WIDTH 6 +#define MADERA_AIF4RX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF4RX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF4RX_SLOT_LEN_WIDTH 8 + +/* (0x05A9) AIF4_Frame_Ctrl_3 */ +#define MADERA_AIF4TX1_SLOT_MASK 0x003F +#define MADERA_AIF4TX1_SLOT_SHIFT 0 +#define MADERA_AIF4TX1_SLOT_WIDTH 6 + +/* (0x05AA) AIF4_Frame_Ctrl_4 */ +#define MADERA_AIF4TX2_SLOT_MASK 0x003F +#define MADERA_AIF4TX2_SLOT_SHIFT 0 +#define MADERA_AIF4TX2_SLOT_WIDTH 6 + +/* (0x05B1) AIF4_Frame_Ctrl_11 */ +#define MADERA_AIF4RX1_SLOT_MASK 0x003F +#define MADERA_AIF4RX1_SLOT_SHIFT 0 +#define MADERA_AIF4RX1_SLOT_WIDTH 6 + +/* (0x05B2) AIF4_Frame_Ctrl_12 */ +#define MADERA_AIF4RX2_SLOT_MASK 0x003F +#define MADERA_AIF4RX2_SLOT_SHIFT 0 +#define MADERA_AIF4RX2_SLOT_WIDTH 6 + +/* (0x05B9) AIF4_Tx_Enables */ +#define MADERA_AIF4TX2_ENA 0x0002 +#define MADERA_AIF4TX2_ENA_MASK 0x0002 +#define MADERA_AIF4TX2_ENA_SHIFT 1 +#define MADERA_AIF4TX2_ENA_WIDTH 1 +#define MADERA_AIF4TX1_ENA 0x0001 +#define MADERA_AIF4TX1_ENA_MASK 0x0001 +#define MADERA_AIF4TX1_ENA_SHIFT 0 +#define MADERA_AIF4TX1_ENA_WIDTH 1 + +/* (0x05BA) AIF4_Rx_Enables */ +#define MADERA_AIF4RX2_ENA 0x0002 +#define MADERA_AIF4RX2_ENA_MASK 0x0002 +#define MADERA_AIF4RX2_ENA_SHIFT 1 +#define MADERA_AIF4RX2_ENA_WIDTH 1 +#define MADERA_AIF4RX1_ENA 0x0001 +#define MADERA_AIF4RX1_ENA_MASK 0x0001 +#define MADERA_AIF4RX1_ENA_SHIFT 0 +#define MADERA_AIF4RX1_ENA_WIDTH 1 + +/* (0x05BB) - AIF4 Force Write */ +#define MADERA_AIF4_FRC_WR 0x0001 +#define MADERA_AIF4_FRC_WR_MASK 0x0001 +#define MADERA_AIF4_FRC_WR_SHIFT 0 +#define MADERA_AIF4_FRC_WR_WIDTH 1 + +/* (0x05C2) SPD1_TX_Control */ +#define MADERA_SPD1_VAL2 0x2000 +#define MADERA_SPD1_VAL2_MASK 0x2000 +#define MADERA_SPD1_VAL2_SHIFT 13 +#define MADERA_SPD1_VAL2_WIDTH 1 +#define MADERA_SPD1_VAL1 0x1000 +#define MADERA_SPD1_VAL1_MASK 0x1000 +#define MADERA_SPD1_VAL1_SHIFT 12 +#define MADERA_SPD1_VAL1_WIDTH 1 +#define MADERA_SPD1_RATE_MASK 0x00F0 +#define MADERA_SPD1_RATE_SHIFT 4 +#define MADERA_SPD1_RATE_WIDTH 4 +#define MADERA_SPD1_ENA 0x0001 +#define MADERA_SPD1_ENA_MASK 0x0001 +#define MADERA_SPD1_ENA_SHIFT 0 +#define MADERA_SPD1_ENA_WIDTH 1 + +/* (0x05C3) SPD1_TX_Channel_Status_1 */ +#define MADERA_SPD1_CATCODE_MASK 0xFF00 +#define MADERA_SPD1_CATCODE_SHIFT 8 +#define MADERA_SPD1_CATCODE_WIDTH 8 +#define MADERA_SPD1_CHSTMODE_MASK 0x00C0 +#define MADERA_SPD1_CHSTMODE_SHIFT 6 +#define MADERA_SPD1_CHSTMODE_WIDTH 2 +#define MADERA_SPD1_PREEMPH_MASK 0x0038 +#define MADERA_SPD1_PREEMPH_SHIFT 3 +#define MADERA_SPD1_PREEMPH_WIDTH 3 +#define MADERA_SPD1_NOCOPY 0x0004 +#define MADERA_SPD1_NOCOPY_MASK 0x0004 +#define MADERA_SPD1_NOCOPY_SHIFT 2 +#define MADERA_SPD1_NOCOPY_WIDTH 1 +#define MADERA_SPD1_NOAUDIO 0x0002 +#define MADERA_SPD1_NOAUDIO_MASK 0x0002 +#define MADERA_SPD1_NOAUDIO_SHIFT 1 +#define MADERA_SPD1_NOAUDIO_WIDTH 1 +#define MADERA_SPD1_PRO 0x0001 +#define MADERA_SPD1_PRO_MASK 0x0001 +#define MADERA_SPD1_PRO_SHIFT 0 +#define MADERA_SPD1_PRO_WIDTH 1 + +/* (0x05C4) SPD1_TX_Channel_Status_2 */ +#define MADERA_SPD1_FREQ_MASK 0xF000 +#define MADERA_SPD1_FREQ_SHIFT 12 +#define MADERA_SPD1_FREQ_WIDTH 4 +#define MADERA_SPD1_CHNUM2_MASK 0x0F00 +#define MADERA_SPD1_CHNUM2_SHIFT 8 +#define MADERA_SPD1_CHNUM2_WIDTH 4 +#define MADERA_SPD1_CHNUM1_MASK 0x00F0 +#define MADERA_SPD1_CHNUM1_SHIFT 4 +#define MADERA_SPD1_CHNUM1_WIDTH 4 +#define MADERA_SPD1_SRCNUM_MASK 0x000F +#define MADERA_SPD1_SRCNUM_SHIFT 0 +#define MADERA_SPD1_SRCNUM_WIDTH 4 + +/* (0x05C5) SPD1_TX_Channel_Status_3 */ +#define MADERA_SPD1_ORGSAMP_MASK 0x0F00 +#define MADERA_SPD1_ORGSAMP_SHIFT 8 +#define MADERA_SPD1_ORGSAMP_WIDTH 4 +#define MADERA_SPD1_TXWL_MASK 0x00E0 +#define MADERA_SPD1_TXWL_SHIFT 5 +#define MADERA_SPD1_TXWL_WIDTH 3 +#define MADERA_SPD1_MAXWL 0x0010 +#define MADERA_SPD1_MAXWL_MASK 0x0010 +#define MADERA_SPD1_MAXWL_SHIFT 4 +#define MADERA_SPD1_MAXWL_WIDTH 1 +#define MADERA_SPD1_CS31_30_MASK 0x000C +#define MADERA_SPD1_CS31_30_SHIFT 2 +#define MADERA_SPD1_CS31_30_WIDTH 2 +#define MADERA_SPD1_CLKACU_MASK 0x0003 +#define MADERA_SPD1_CLKACU_SHIFT 2 +#define MADERA_SPD1_CLKACU_WIDTH 0 + +/* (0x05E3) SLIMbus_Framer_Ref_Gear */ +#define MADERA_SLIMCLK_SRC 0x0010 +#define MADERA_SLIMCLK_SRC_MASK 0x0010 +#define MADERA_SLIMCLK_SRC_SHIFT 4 +#define MADERA_SLIMCLK_SRC_WIDTH 1 +#define MADERA_FRAMER_REF_GEAR_MASK 0x000F +#define MADERA_FRAMER_REF_GEAR_SHIFT 0 +#define MADERA_FRAMER_REF_GEAR_WIDTH 4 + +/* (0x05E5) SLIMbus_Rates_1 */ +#define MADERA_SLIMRX2_RATE_MASK 0xF800 +#define MADERA_SLIMRX2_RATE_SHIFT 11 +#define MADERA_SLIMRX2_RATE_WIDTH 5 +#define MADERA_SLIMRX1_RATE_MASK 0x00F8 +#define MADERA_SLIMRX1_RATE_SHIFT 3 +#define MADERA_SLIMRX1_RATE_WIDTH 5 + +/* (0x05E6) SLIMbus_Rates_2 */ +#define MADERA_SLIMRX4_RATE_MASK 0xF800 +#define MADERA_SLIMRX4_RATE_SHIFT 11 +#define MADERA_SLIMRX4_RATE_WIDTH 5 +#define MADERA_SLIMRX3_RATE_MASK 0x00F8 +#define MADERA_SLIMRX3_RATE_SHIFT 3 +#define MADERA_SLIMRX3_RATE_WIDTH 5 + +/* (0x05E7) SLIMbus_Rates_3 */ +#define MADERA_SLIMRX6_RATE_MASK 0xF800 +#define MADERA_SLIMRX6_RATE_SHIFT 11 +#define MADERA_SLIMRX6_RATE_WIDTH 5 +#define MADERA_SLIMRX5_RATE_MASK 0x00F8 +#define MADERA_SLIMRX5_RATE_SHIFT 3 +#define MADERA_SLIMRX5_RATE_WIDTH 5 + +/* (0x05E8) SLIMbus_Rates_4 */ +#define MADERA_SLIMRX8_RATE_MASK 0xF800 +#define MADERA_SLIMRX8_RATE_SHIFT 11 +#define MADERA_SLIMRX8_RATE_WIDTH 5 +#define MADERA_SLIMRX7_RATE_MASK 0x00F8 +#define MADERA_SLIMRX7_RATE_SHIFT 3 +#define MADERA_SLIMRX7_RATE_WIDTH 5 + +/* (0x05E9) SLIMbus_Rates_5 */ +#define MADERA_SLIMTX2_RATE_MASK 0xF800 +#define MADERA_SLIMTX2_RATE_SHIFT 11 +#define MADERA_SLIMTX2_RATE_WIDTH 5 +#define MADERA_SLIMTX1_RATE_MASK 0x00F8 +#define MADERA_SLIMTX1_RATE_SHIFT 3 +#define MADERA_SLIMTX1_RATE_WIDTH 5 + +/* (0x05EA) SLIMbus_Rates_6 */ +#define MADERA_SLIMTX4_RATE_MASK 0xF800 +#define MADERA_SLIMTX4_RATE_SHIFT 11 +#define MADERA_SLIMTX4_RATE_WIDTH 5 +#define MADERA_SLIMTX3_RATE_MASK 0x00F8 +#define MADERA_SLIMTX3_RATE_SHIFT 3 +#define MADERA_SLIMTX3_RATE_WIDTH 5 + +/* (0x05EB) SLIMbus_Rates_7 */ +#define MADERA_SLIMTX6_RATE_MASK 0xF800 +#define MADERA_SLIMTX6_RATE_SHIFT 11 +#define MADERA_SLIMTX6_RATE_WIDTH 5 +#define MADERA_SLIMTX5_RATE_MASK 0x00F8 +#define MADERA_SLIMTX5_RATE_SHIFT 3 +#define MADERA_SLIMTX5_RATE_WIDTH 5 + +/* (0x05EC) SLIMbus_Rates_8 */ +#define MADERA_SLIMTX8_RATE_MASK 0xF800 +#define MADERA_SLIMTX8_RATE_SHIFT 11 +#define MADERA_SLIMTX8_RATE_WIDTH 5 +#define MADERA_SLIMTX7_RATE_MASK 0x00F8 +#define MADERA_SLIMTX7_RATE_SHIFT 3 +#define MADERA_SLIMTX7_RATE_WIDTH 5 + +/* (0x05F5) SLIMbus_RX_Channel_Enable */ +#define MADERA_SLIMRX8_ENA 0x0080 +#define MADERA_SLIMRX8_ENA_MASK 0x0080 +#define MADERA_SLIMRX8_ENA_SHIFT 7 +#define MADERA_SLIMRX8_ENA_WIDTH 1 +#define MADERA_SLIMRX7_ENA 0x0040 +#define MADERA_SLIMRX7_ENA_MASK 0x0040 +#define MADERA_SLIMRX7_ENA_SHIFT 6 +#define MADERA_SLIMRX7_ENA_WIDTH 1 +#define MADERA_SLIMRX6_ENA 0x0020 +#define MADERA_SLIMRX6_ENA_MASK 0x0020 +#define MADERA_SLIMRX6_ENA_SHIFT 5 +#define MADERA_SLIMRX6_ENA_WIDTH 1 +#define MADERA_SLIMRX5_ENA 0x0010 +#define MADERA_SLIMRX5_ENA_MASK 0x0010 +#define MADERA_SLIMRX5_ENA_SHIFT 4 +#define MADERA_SLIMRX5_ENA_WIDTH 1 +#define MADERA_SLIMRX4_ENA 0x0008 +#define MADERA_SLIMRX4_ENA_MASK 0x0008 +#define MADERA_SLIMRX4_ENA_SHIFT 3 +#define MADERA_SLIMRX4_ENA_WIDTH 1 +#define MADERA_SLIMRX3_ENA 0x0004 +#define MADERA_SLIMRX3_ENA_MASK 0x0004 +#define MADERA_SLIMRX3_ENA_SHIFT 2 +#define MADERA_SLIMRX3_ENA_WIDTH 1 +#define MADERA_SLIMRX2_ENA 0x0002 +#define MADERA_SLIMRX2_ENA_MASK 0x0002 +#define MADERA_SLIMRX2_ENA_SHIFT 1 +#define MADERA_SLIMRX2_ENA_WIDTH 1 +#define MADERA_SLIMRX1_ENA 0x0001 +#define MADERA_SLIMRX1_ENA_MASK 0x0001 +#define MADERA_SLIMRX1_ENA_SHIFT 0 +#define MADERA_SLIMRX1_ENA_WIDTH 1 + +/* (0x05F6) SLIMbus_TX_Channel_Enable */ +#define MADERA_SLIMTX8_ENA 0x0080 +#define MADERA_SLIMTX8_ENA_MASK 0x0080 +#define MADERA_SLIMTX8_ENA_SHIFT 7 +#define MADERA_SLIMTX8_ENA_WIDTH 1 +#define MADERA_SLIMTX7_ENA 0x0040 +#define MADERA_SLIMTX7_ENA_MASK 0x0040 +#define MADERA_SLIMTX7_ENA_SHIFT 6 +#define MADERA_SLIMTX7_ENA_WIDTH 1 +#define MADERA_SLIMTX6_ENA 0x0020 +#define MADERA_SLIMTX6_ENA_MASK 0x0020 +#define MADERA_SLIMTX6_ENA_SHIFT 5 +#define MADERA_SLIMTX6_ENA_WIDTH 1 +#define MADERA_SLIMTX5_ENA 0x0010 +#define MADERA_SLIMTX5_ENA_MASK 0x0010 +#define MADERA_SLIMTX5_ENA_SHIFT 4 +#define MADERA_SLIMTX5_ENA_WIDTH 1 +#define MADERA_SLIMTX4_ENA 0x0008 +#define MADERA_SLIMTX4_ENA_MASK 0x0008 +#define MADERA_SLIMTX4_ENA_SHIFT 3 +#define MADERA_SLIMTX4_ENA_WIDTH 1 +#define MADERA_SLIMTX3_ENA 0x0004 +#define MADERA_SLIMTX3_ENA_MASK 0x0004 +#define MADERA_SLIMTX3_ENA_SHIFT 2 +#define MADERA_SLIMTX3_ENA_WIDTH 1 +#define MADERA_SLIMTX2_ENA 0x0002 +#define MADERA_SLIMTX2_ENA_MASK 0x0002 +#define MADERA_SLIMTX2_ENA_SHIFT 1 +#define MADERA_SLIMTX2_ENA_WIDTH 1 +#define MADERA_SLIMTX1_ENA 0x0001 +#define MADERA_SLIMTX1_ENA_MASK 0x0001 +#define MADERA_SLIMTX1_ENA_SHIFT 0 +#define MADERA_SLIMTX1_ENA_WIDTH 1 + +/* (0x05F7) SLIMbus_RX_Port_Status */ +#define MADERA_SLIMRX8_PORT_STS 0x0080 +#define MADERA_SLIMRX8_PORT_STS_MASK 0x0080 +#define MADERA_SLIMRX8_PORT_STS_SHIFT 7 +#define MADERA_SLIMRX8_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX7_PORT_STS 0x0040 +#define MADERA_SLIMRX7_PORT_STS_MASK 0x0040 +#define MADERA_SLIMRX7_PORT_STS_SHIFT 6 +#define MADERA_SLIMRX7_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX6_PORT_STS 0x0020 +#define MADERA_SLIMRX6_PORT_STS_MASK 0x0020 +#define MADERA_SLIMRX6_PORT_STS_SHIFT 5 +#define MADERA_SLIMRX6_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX5_PORT_STS 0x0010 +#define MADERA_SLIMRX5_PORT_STS_MASK 0x0010 +#define MADERA_SLIMRX5_PORT_STS_SHIFT 4 +#define MADERA_SLIMRX5_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX4_PORT_STS 0x0008 +#define MADERA_SLIMRX4_PORT_STS_MASK 0x0008 +#define MADERA_SLIMRX4_PORT_STS_SHIFT 3 +#define MADERA_SLIMRX4_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX3_PORT_STS 0x0004 +#define MADERA_SLIMRX3_PORT_STS_MASK 0x0004 +#define MADERA_SLIMRX3_PORT_STS_SHIFT 2 +#define MADERA_SLIMRX3_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX2_PORT_STS 0x0002 +#define MADERA_SLIMRX2_PORT_STS_MASK 0x0002 +#define MADERA_SLIMRX2_PORT_STS_SHIFT 1 +#define MADERA_SLIMRX2_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX1_PORT_STS 0x0001 +#define MADERA_SLIMRX1_PORT_STS_MASK 0x0001 +#define MADERA_SLIMRX1_PORT_STS_SHIFT 0 +#define MADERA_SLIMRX1_PORT_STS_WIDTH 1 + +/* (0x05F8) SLIMbus_TX_Port_Status */ +#define MADERA_SLIMTX8_PORT_STS 0x0080 +#define MADERA_SLIMTX8_PORT_STS_MASK 0x0080 +#define MADERA_SLIMTX8_PORT_STS_SHIFT 7 +#define MADERA_SLIMTX8_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX7_PORT_STS 0x0040 +#define MADERA_SLIMTX7_PORT_STS_MASK 0x0040 +#define MADERA_SLIMTX7_PORT_STS_SHIFT 6 +#define MADERA_SLIMTX7_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX6_PORT_STS 0x0020 +#define MADERA_SLIMTX6_PORT_STS_MASK 0x0020 +#define MADERA_SLIMTX6_PORT_STS_SHIFT 5 +#define MADERA_SLIMTX6_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX5_PORT_STS 0x0010 +#define MADERA_SLIMTX5_PORT_STS_MASK 0x0010 +#define MADERA_SLIMTX5_PORT_STS_SHIFT 4 +#define MADERA_SLIMTX5_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX4_PORT_STS 0x0008 +#define MADERA_SLIMTX4_PORT_STS_MASK 0x0008 +#define MADERA_SLIMTX4_PORT_STS_SHIFT 3 +#define MADERA_SLIMTX4_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX3_PORT_STS 0x0004 +#define MADERA_SLIMTX3_PORT_STS_MASK 0x0004 +#define MADERA_SLIMTX3_PORT_STS_SHIFT 2 +#define MADERA_SLIMTX3_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX2_PORT_STS 0x0002 +#define MADERA_SLIMTX2_PORT_STS_MASK 0x0002 +#define MADERA_SLIMTX2_PORT_STS_SHIFT 1 +#define MADERA_SLIMTX2_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX1_PORT_STS 0x0001 +#define MADERA_SLIMTX1_PORT_STS_MASK 0x0001 +#define MADERA_SLIMTX1_PORT_STS_SHIFT 0 +#define MADERA_SLIMTX1_PORT_STS_WIDTH 1 + +/* (0x0E00) FX_Ctrl1 */ +#define MADERA_FX_RATE_MASK 0xF800 +#define MADERA_FX_RATE_SHIFT 11 +#define MADERA_FX_RATE_WIDTH 5 + +/* (0x0E01) FX_Ctrl2 */ +#define MADERA_FX_STS_MASK 0xFFF0 +#define MADERA_FX_STS_SHIFT 4 +#define MADERA_FX_STS_WIDTH 12 + +/* (0x0E10) EQ1_1 */ +#define MADERA_EQ1_B1_GAIN_MASK 0xF800 +#define MADERA_EQ1_B1_GAIN_SHIFT 11 +#define MADERA_EQ1_B1_GAIN_WIDTH 5 +#define MADERA_EQ1_B2_GAIN_MASK 0x07C0 +#define MADERA_EQ1_B2_GAIN_SHIFT 6 +#define MADERA_EQ1_B2_GAIN_WIDTH 5 +#define MADERA_EQ1_B3_GAIN_MASK 0x003E +#define MADERA_EQ1_B3_GAIN_SHIFT 1 +#define MADERA_EQ1_B3_GAIN_WIDTH 5 +#define MADERA_EQ1_ENA 0x0001 +#define MADERA_EQ1_ENA_MASK 0x0001 +#define MADERA_EQ1_ENA_SHIFT 0 +#define MADERA_EQ1_ENA_WIDTH 1 + +/* (0x0E11) EQ1_2 */ +#define MADERA_EQ1_B4_GAIN_MASK 0xF800 +#define MADERA_EQ1_B4_GAIN_SHIFT 11 +#define MADERA_EQ1_B4_GAIN_WIDTH 5 +#define MADERA_EQ1_B5_GAIN_MASK 0x07C0 +#define MADERA_EQ1_B5_GAIN_SHIFT 6 +#define MADERA_EQ1_B5_GAIN_WIDTH 5 +#define MADERA_EQ1_B1_MODE 0x0001 +#define MADERA_EQ1_B1_MODE_MASK 0x0001 +#define MADERA_EQ1_B1_MODE_SHIFT 0 +#define MADERA_EQ1_B1_MODE_WIDTH 1 + +/* (0x0E12) EQ1_3 */ +#define MADERA_EQ1_B1_A_MASK 0xFFFF +#define MADERA_EQ1_B1_A_SHIFT 0 +#define MADERA_EQ1_B1_A_WIDTH 16 + +/* (0x0E13) EQ1_4 */ +#define MADERA_EQ1_B1_B_MASK 0xFFFF +#define MADERA_EQ1_B1_B_SHIFT 0 +#define MADERA_EQ1_B1_B_WIDTH 16 + +/* (0x0E14) EQ1_5 */ +#define MADERA_EQ1_B1_PG_MASK 0xFFFF +#define MADERA_EQ1_B1_PG_SHIFT 0 +#define MADERA_EQ1_B1_PG_WIDTH 16 + +/* (0x0E15) EQ1_6 */ +#define MADERA_EQ1_B2_A_MASK 0xFFFF +#define MADERA_EQ1_B2_A_SHIFT 0 +#define MADERA_EQ1_B2_A_WIDTH 16 + +/* (0x0E16) EQ1_7 */ +#define MADERA_EQ1_B2_B_MASK 0xFFFF +#define MADERA_EQ1_B2_B_SHIFT 0 +#define MADERA_EQ1_B2_B_WIDTH 16 + +/* (0x0E17) EQ1_8 */ +#define MADERA_EQ1_B2_C_MASK 0xFFFF +#define MADERA_EQ1_B2_C_SHIFT 0 +#define MADERA_EQ1_B2_C_WIDTH 16 + +/* (0x0E18) EQ1_9 */ +#define MADERA_EQ1_B2_PG_MASK 0xFFFF +#define MADERA_EQ1_B2_PG_SHIFT 0 +#define MADERA_EQ1_B2_PG_WIDTH 16 + +/* (0x0E19) EQ1_10 */ +#define MADERA_EQ1_B3_A_MASK 0xFFFF +#define MADERA_EQ1_B3_A_SHIFT 0 +#define MADERA_EQ1_B3_A_WIDTH 16 + +/* (0x0E1A) EQ1_11 */ +#define MADERA_EQ1_B3_B_MASK 0xFFFF +#define MADERA_EQ1_B3_B_SHIFT 0 +#define MADERA_EQ1_B3_B_WIDTH 16 + +/* (0x0E1B) EQ1_12 */ +#define MADERA_EQ1_B3_C_MASK 0xFFFF +#define MADERA_EQ1_B3_C_SHIFT 0 +#define MADERA_EQ1_B3_C_WIDTH 16 + +/* (0x0E1C) EQ1_13 */ +#define MADERA_EQ1_B3_PG_MASK 0xFFFF +#define MADERA_EQ1_B3_PG_SHIFT 0 +#define MADERA_EQ1_B3_PG_WIDTH 16 + +/* (0x0E1D) EQ1_14 */ +#define MADERA_EQ1_B4_A_MASK 0xFFFF +#define MADERA_EQ1_B4_A_SHIFT 0 +#define MADERA_EQ1_B4_A_WIDTH 16 + +/* (0x0E1E) EQ1_15 */ +#define MADERA_EQ1_B4_B_MASK 0xFFFF +#define MADERA_EQ1_B4_B_SHIFT 0 +#define MADERA_EQ1_B4_B_WIDTH 16 + +/* (0x0E1F) EQ1_16 */ +#define MADERA_EQ1_B4_C_MASK 0xFFFF +#define MADERA_EQ1_B4_C_SHIFT 0 +#define MADERA_EQ1_B4_C_WIDTH 16 + +/* (0x0E20) EQ1_17 */ +#define MADERA_EQ1_B4_PG_MASK 0xFFFF +#define MADERA_EQ1_B4_PG_SHIFT 0 +#define MADERA_EQ1_B4_PG_WIDTH 16 + +/* (0x0E21) EQ1_18 */ +#define MADERA_EQ1_B5_A_MASK 0xFFFF +#define MADERA_EQ1_B5_A_SHIFT 0 +#define MADERA_EQ1_B5_A_WIDTH 16 + +/* (0x0E22) EQ1_19 */ +#define MADERA_EQ1_B5_B_MASK 0xFFFF +#define MADERA_EQ1_B5_B_SHIFT 0 +#define MADERA_EQ1_B5_B_WIDTH 16 + +/* (0x0E23) EQ1_20 */ +#define MADERA_EQ1_B5_PG_MASK 0xFFFF +#define MADERA_EQ1_B5_PG_SHIFT 0 +#define MADERA_EQ1_B5_PG_WIDTH 16 + +/* (0x0E24) EQ1_21 */ +#define MADERA_EQ1_B1_C_MASK 0xFFFF +#define MADERA_EQ1_B1_C_SHIFT 0 +#define MADERA_EQ1_B1_C_WIDTH 16 + +/* (0x0E26) EQ2_1 */ +#define MADERA_EQ2_B1_GAIN_MASK 0xF800 +#define MADERA_EQ2_B1_GAIN_SHIFT 11 +#define MADERA_EQ2_B1_GAIN_WIDTH 5 +#define MADERA_EQ2_B2_GAIN_MASK 0x07C0 +#define MADERA_EQ2_B2_GAIN_SHIFT 6 +#define MADERA_EQ2_B2_GAIN_WIDTH 5 +#define MADERA_EQ2_B3_GAIN_MASK 0x003E +#define MADERA_EQ2_B3_GAIN_SHIFT 1 +#define MADERA_EQ2_B3_GAIN_WIDTH 5 +#define MADERA_EQ2_ENA 0x0001 +#define MADERA_EQ2_ENA_MASK 0x0001 +#define MADERA_EQ2_ENA_SHIFT 0 +#define MADERA_EQ2_ENA_WIDTH 1 + +/* (0x0E27) EQ2_2 */ +#define MADERA_EQ2_B4_GAIN_MASK 0xF800 +#define MADERA_EQ2_B4_GAIN_SHIFT 11 +#define MADERA_EQ2_B4_GAIN_WIDTH 5 +#define MADERA_EQ2_B5_GAIN_MASK 0x07C0 +#define MADERA_EQ2_B5_GAIN_SHIFT 6 +#define MADERA_EQ2_B5_GAIN_WIDTH 5 +#define MADERA_EQ2_B1_MODE 0x0001 +#define MADERA_EQ2_B1_MODE_MASK 0x0001 +#define MADERA_EQ2_B1_MODE_SHIFT 0 +#define MADERA_EQ2_B1_MODE_WIDTH 1 + +/* (0x0E28) EQ2_3 */ +#define MADERA_EQ2_B1_A_MASK 0xFFFF +#define MADERA_EQ2_B1_A_SHIFT 0 +#define MADERA_EQ2_B1_A_WIDTH 16 + +/* (0x0E29) EQ2_4 */ +#define MADERA_EQ2_B1_B_MASK 0xFFFF +#define MADERA_EQ2_B1_B_SHIFT 0 +#define MADERA_EQ2_B1_B_WIDTH 16 + +/* (0x0E2A) EQ2_5 */ +#define MADERA_EQ2_B1_PG_MASK 0xFFFF +#define MADERA_EQ2_B1_PG_SHIFT 0 +#define MADERA_EQ2_B1_PG_WIDTH 16 + +/* (0x0E2B) EQ2_6 */ +#define MADERA_EQ2_B2_A_MASK 0xFFFF +#define MADERA_EQ2_B2_A_SHIFT 0 +#define MADERA_EQ2_B2_A_WIDTH 16 + +/* (0x0E2C) EQ2_7 */ +#define MADERA_EQ2_B2_B_MASK 0xFFFF +#define MADERA_EQ2_B2_B_SHIFT 0 +#define MADERA_EQ2_B2_B_WIDTH 16 + +/* (0x0E2D) EQ2_8 */ +#define MADERA_EQ2_B2_C_MASK 0xFFFF +#define MADERA_EQ2_B2_C_SHIFT 0 +#define MADERA_EQ2_B2_C_WIDTH 16 + +/* (0x0E2E) EQ2_9 */ +#define MADERA_EQ2_B2_PG_MASK 0xFFFF +#define MADERA_EQ2_B2_PG_SHIFT 0 +#define MADERA_EQ2_B2_PG_WIDTH 16 + +/* (0x0E2F) EQ2_10 */ +#define MADERA_EQ2_B3_A_MASK 0xFFFF +#define MADERA_EQ2_B3_A_SHIFT 0 +#define MADERA_EQ2_B3_A_WIDTH 16 + +/* (0x0E30) EQ2_11 */ +#define MADERA_EQ2_B3_B_MASK 0xFFFF +#define MADERA_EQ2_B3_B_SHIFT 0 +#define MADERA_EQ2_B3_B_WIDTH 16 + +/* (0x0E31) EQ2_12 */ +#define MADERA_EQ2_B3_C_MASK 0xFFFF +#define MADERA_EQ2_B3_C_SHIFT 0 +#define MADERA_EQ2_B3_C_WIDTH 16 + +/* (0x0E32) EQ2_13 */ +#define MADERA_EQ2_B3_PG_MASK 0xFFFF +#define MADERA_EQ2_B3_PG_SHIFT 0 +#define MADERA_EQ2_B3_PG_WIDTH 16 + +/* (0x0E33) EQ2_14 */ +#define MADERA_EQ2_B4_A_MASK 0xFFFF +#define MADERA_EQ2_B4_A_SHIFT 0 +#define MADERA_EQ2_B4_A_WIDTH 16 + +/* (0x0E34) EQ2_15 */ +#define MADERA_EQ2_B4_B_MASK 0xFFFF +#define MADERA_EQ2_B4_B_SHIFT 0 +#define MADERA_EQ2_B4_B_WIDTH 16 + +/* (0x0E35) EQ2_16 */ +#define MADERA_EQ2_B4_C_MASK 0xFFFF +#define MADERA_EQ2_B4_C_SHIFT 0 +#define MADERA_EQ2_B4_C_WIDTH 16 + +/* (0x0E36) EQ2_17 */ +#define MADERA_EQ2_B4_PG_MASK 0xFFFF +#define MADERA_EQ2_B4_PG_SHIFT 0 +#define MADERA_EQ2_B4_PG_WIDTH 16 + +/* (0x0E37) EQ2_18 */ +#define MADERA_EQ2_B5_A_MASK 0xFFFF +#define MADERA_EQ2_B5_A_SHIFT 0 +#define MADERA_EQ2_B5_A_WIDTH 16 + +/* (0x0E38) EQ2_19 */ +#define MADERA_EQ2_B5_B_MASK 0xFFFF +#define MADERA_EQ2_B5_B_SHIFT 0 +#define MADERA_EQ2_B5_B_WIDTH 16 + +/* (0x0E39) EQ2_20 */ +#define MADERA_EQ2_B5_PG_MASK 0xFFFF +#define MADERA_EQ2_B5_PG_SHIFT 0 +#define MADERA_EQ2_B5_PG_WIDTH 16 + +/* (0x0E3A) EQ2_21 */ +#define MADERA_EQ2_B1_C_MASK 0xFFFF +#define MADERA_EQ2_B1_C_SHIFT 0 +#define MADERA_EQ2_B1_C_WIDTH 16 + +/* (0x0E3C) EQ3_1 */ +#define MADERA_EQ3_B1_GAIN_MASK 0xF800 +#define MADERA_EQ3_B1_GAIN_SHIFT 11 +#define MADERA_EQ3_B1_GAIN_WIDTH 5 +#define MADERA_EQ3_B2_GAIN_MASK 0x07C0 +#define MADERA_EQ3_B2_GAIN_SHIFT 6 +#define MADERA_EQ3_B2_GAIN_WIDTH 5 +#define MADERA_EQ3_B3_GAIN_MASK 0x003E +#define MADERA_EQ3_B3_GAIN_SHIFT 1 +#define MADERA_EQ3_B3_GAIN_WIDTH 5 +#define MADERA_EQ3_ENA 0x0001 +#define MADERA_EQ3_ENA_MASK 0x0001 +#define MADERA_EQ3_ENA_SHIFT 0 +#define MADERA_EQ3_ENA_WIDTH 1 + +/* (0x0E3D) EQ3_2 */ +#define MADERA_EQ3_B4_GAIN_MASK 0xF800 +#define MADERA_EQ3_B4_GAIN_SHIFT 11 +#define MADERA_EQ3_B4_GAIN_WIDTH 5 +#define MADERA_EQ3_B5_GAIN_MASK 0x07C0 +#define MADERA_EQ3_B5_GAIN_SHIFT 6 +#define MADERA_EQ3_B5_GAIN_WIDTH 5 +#define MADERA_EQ3_B1_MODE 0x0001 +#define MADERA_EQ3_B1_MODE_MASK 0x0001 +#define MADERA_EQ3_B1_MODE_SHIFT 0 +#define MADERA_EQ3_B1_MODE_WIDTH 1 + +/* (0x0E3E) EQ3_3 */ +#define MADERA_EQ3_B1_A_MASK 0xFFFF +#define MADERA_EQ3_B1_A_SHIFT 0 +#define MADERA_EQ3_B1_A_WIDTH 16 + +/* (0x0E3F) EQ3_4 */ +#define MADERA_EQ3_B1_B_MASK 0xFFFF +#define MADERA_EQ3_B1_B_SHIFT 0 +#define MADERA_EQ3_B1_B_WIDTH 16 + +/* (0x0E40) EQ3_5 */ +#define MADERA_EQ3_B1_PG_MASK 0xFFFF +#define MADERA_EQ3_B1_PG_SHIFT 0 +#define MADERA_EQ3_B1_PG_WIDTH 16 + +/* (0x0E41) EQ3_6 */ +#define MADERA_EQ3_B2_A_MASK 0xFFFF +#define MADERA_EQ3_B2_A_SHIFT 0 +#define MADERA_EQ3_B2_A_WIDTH 16 + +/* (0x0E42) EQ3_7 */ +#define MADERA_EQ3_B2_B_MASK 0xFFFF +#define MADERA_EQ3_B2_B_SHIFT 0 +#define MADERA_EQ3_B2_B_WIDTH 16 + +/* (0x0E43) EQ3_8 */ +#define MADERA_EQ3_B2_C_MASK 0xFFFF +#define MADERA_EQ3_B2_C_SHIFT 0 +#define MADERA_EQ3_B2_C_WIDTH 16 + +/* (0x0E44) EQ3_9 */ +#define MADERA_EQ3_B2_PG_MASK 0xFFFF +#define MADERA_EQ3_B2_PG_SHIFT 0 +#define MADERA_EQ3_B2_PG_WIDTH 16 + +/* (0x0E45) EQ3_10 */ +#define MADERA_EQ3_B3_A_MASK 0xFFFF +#define MADERA_EQ3_B3_A_SHIFT 0 +#define MADERA_EQ3_B3_A_WIDTH 16 + +/* (0x0E46) EQ3_11 */ +#define MADERA_EQ3_B3_B_MASK 0xFFFF +#define MADERA_EQ3_B3_B_SHIFT 0 +#define MADERA_EQ3_B3_B_WIDTH 16 + +/* (0x0E47) EQ3_12 */ +#define MADERA_EQ3_B3_C_MASK 0xFFFF +#define MADERA_EQ3_B3_C_SHIFT 0 +#define MADERA_EQ3_B3_C_WIDTH 16 + +/* (0x0E48) EQ3_13 */ +#define MADERA_EQ3_B3_PG_MASK 0xFFFF +#define MADERA_EQ3_B3_PG_SHIFT 0 +#define MADERA_EQ3_B3_PG_WIDTH 16 + +/* (0x0E49) EQ3_14 */ +#define MADERA_EQ3_B4_A_MASK 0xFFFF +#define MADERA_EQ3_B4_A_SHIFT 0 +#define MADERA_EQ3_B4_A_WIDTH 16 + +/* (0x0E4A) EQ3_15 */ +#define MADERA_EQ3_B4_B_MASK 0xFFFF +#define MADERA_EQ3_B4_B_SHIFT 0 +#define MADERA_EQ3_B4_B_WIDTH 16 + +/* (0x0E4B) EQ3_16 */ +#define MADERA_EQ3_B4_C_MASK 0xFFFF +#define MADERA_EQ3_B4_C_SHIFT 0 +#define MADERA_EQ3_B4_C_WIDTH 16 + +/* (0x0E4C) EQ3_17 */ +#define MADERA_EQ3_B4_PG_MASK 0xFFFF +#define MADERA_EQ3_B4_PG_SHIFT 0 +#define MADERA_EQ3_B4_PG_WIDTH 16 + +/* (0x0E4D) EQ3_18 */ +#define MADERA_EQ3_B5_A_MASK 0xFFFF +#define MADERA_EQ3_B5_A_SHIFT 0 +#define MADERA_EQ3_B5_A_WIDTH 16 + +/* (0x0E4E) EQ3_19 */ +#define MADERA_EQ3_B5_B_MASK 0xFFFF +#define MADERA_EQ3_B5_B_SHIFT 0 +#define MADERA_EQ3_B5_B_WIDTH 16 + +/* (0x0E4F) EQ3_20 */ +#define MADERA_EQ3_B5_PG_MASK 0xFFFF +#define MADERA_EQ3_B5_PG_SHIFT 0 +#define MADERA_EQ3_B5_PG_WIDTH 16 + +/* (0x0E50) EQ3_21 */ +#define MADERA_EQ3_B1_C_MASK 0xFFFF +#define MADERA_EQ3_B1_C_SHIFT 0 +#define MADERA_EQ3_B1_C_WIDTH 16 + +/* (0x0E52) EQ4_1 */ +#define MADERA_EQ4_B1_GAIN_MASK 0xF800 +#define MADERA_EQ4_B1_GAIN_SHIFT 11 +#define MADERA_EQ4_B1_GAIN_WIDTH 5 +#define MADERA_EQ4_B2_GAIN_MASK 0x07C0 +#define MADERA_EQ4_B2_GAIN_SHIFT 6 +#define MADERA_EQ4_B2_GAIN_WIDTH 5 +#define MADERA_EQ4_B3_GAIN_MASK 0x003E +#define MADERA_EQ4_B3_GAIN_SHIFT 1 +#define MADERA_EQ4_B3_GAIN_WIDTH 5 +#define MADERA_EQ4_ENA 0x0001 +#define MADERA_EQ4_ENA_MASK 0x0001 +#define MADERA_EQ4_ENA_SHIFT 0 +#define MADERA_EQ4_ENA_WIDTH 1 + +/* (0x0E53) EQ4_2 */ +#define MADERA_EQ4_B4_GAIN_MASK 0xF800 +#define MADERA_EQ4_B4_GAIN_SHIFT 11 +#define MADERA_EQ4_B4_GAIN_WIDTH 5 +#define MADERA_EQ4_B5_GAIN_MASK 0x07C0 +#define MADERA_EQ4_B5_GAIN_SHIFT 6 +#define MADERA_EQ4_B5_GAIN_WIDTH 5 +#define MADERA_EQ4_B1_MODE 0x0001 +#define MADERA_EQ4_B1_MODE_MASK 0x0001 +#define MADERA_EQ4_B1_MODE_SHIFT 0 +#define MADERA_EQ4_B1_MODE_WIDTH 1 + +/* (0x0E54) EQ4_3 */ +#define MADERA_EQ4_B1_A_MASK 0xFFFF +#define MADERA_EQ4_B1_A_SHIFT 0 +#define MADERA_EQ4_B1_A_WIDTH 16 + +/* (0x0E55) EQ4_4 */ +#define MADERA_EQ4_B1_B_MASK 0xFFFF +#define MADERA_EQ4_B1_B_SHIFT 0 +#define MADERA_EQ4_B1_B_WIDTH 16 + +/* (0x0E56) EQ4_5 */ +#define MADERA_EQ4_B1_PG_MASK 0xFFFF +#define MADERA_EQ4_B1_PG_SHIFT 0 +#define MADERA_EQ4_B1_PG_WIDTH 16 + +/* (0x0E57) EQ4_6 */ +#define MADERA_EQ4_B2_A_MASK 0xFFFF +#define MADERA_EQ4_B2_A_SHIFT 0 +#define MADERA_EQ4_B2_A_WIDTH 16 + +/* (0x0E58) EQ4_7 */ +#define MADERA_EQ4_B2_B_MASK 0xFFFF +#define MADERA_EQ4_B2_B_SHIFT 0 +#define MADERA_EQ4_B2_B_WIDTH 16 + +/* (0x0E59) EQ4_8 */ +#define MADERA_EQ4_B2_C_MASK 0xFFFF +#define MADERA_EQ4_B2_C_SHIFT 0 +#define MADERA_EQ4_B2_C_WIDTH 16 + +/* (0x0E5A) EQ4_9 */ +#define MADERA_EQ4_B2_PG_MASK 0xFFFF +#define MADERA_EQ4_B2_PG_SHIFT 0 +#define MADERA_EQ4_B2_PG_WIDTH 16 + +/* (0x0E5B) EQ4_10 */ +#define MADERA_EQ4_B3_A_MASK 0xFFFF +#define MADERA_EQ4_B3_A_SHIFT 0 +#define MADERA_EQ4_B3_A_WIDTH 16 + +/* (0x0E5C) EQ4_11 */ +#define MADERA_EQ4_B3_B_MASK 0xFFFF +#define MADERA_EQ4_B3_B_SHIFT 0 +#define MADERA_EQ4_B3_B_WIDTH 16 + +/* (0x0E5D) EQ4_12 */ +#define MADERA_EQ4_B3_C_MASK 0xFFFF +#define MADERA_EQ4_B3_C_SHIFT 0 +#define MADERA_EQ4_B3_C_WIDTH 16 + +/* (0x0E5E) EQ4_13 */ +#define MADERA_EQ4_B3_PG_MASK 0xFFFF +#define MADERA_EQ4_B3_PG_SHIFT 0 +#define MADERA_EQ4_B3_PG_WIDTH 16 + +/* (0x0E5F) EQ4_14 */ +#define MADERA_EQ4_B4_A_MASK 0xFFFF +#define MADERA_EQ4_B4_A_SHIFT 0 +#define MADERA_EQ4_B4_A_WIDTH 16 + +/* (0x0E60) EQ4_15 */ +#define MADERA_EQ4_B4_B_MASK 0xFFFF +#define MADERA_EQ4_B4_B_SHIFT 0 +#define MADERA_EQ4_B4_B_WIDTH 16 + +/* (0x0E61) EQ4_16 */ +#define MADERA_EQ4_B4_C_MASK 0xFFFF +#define MADERA_EQ4_B4_C_SHIFT 0 +#define MADERA_EQ4_B4_C_WIDTH 16 + +/* (0x0E62) EQ4_17 */ +#define MADERA_EQ4_B4_PG_MASK 0xFFFF +#define MADERA_EQ4_B4_PG_SHIFT 0 +#define MADERA_EQ4_B4_PG_WIDTH 16 + +/* (0x0E63) EQ4_18 */ +#define MADERA_EQ4_B5_A_MASK 0xFFFF +#define MADERA_EQ4_B5_A_SHIFT 0 +#define MADERA_EQ4_B5_A_WIDTH 16 + +/* (0x0E64) EQ4_19 */ +#define MADERA_EQ4_B5_B_MASK 0xFFFF +#define MADERA_EQ4_B5_B_SHIFT 0 +#define MADERA_EQ4_B5_B_WIDTH 16 + +/* (0x0E65) EQ4_20 */ +#define MADERA_EQ4_B5_PG_MASK 0xFFFF +#define MADERA_EQ4_B5_PG_SHIFT 0 +#define MADERA_EQ4_B5_PG_WIDTH 16 + +/* (0x0E66) EQ4_21 */ +#define MADERA_EQ4_B1_C_MASK 0xFFFF +#define MADERA_EQ4_B1_C_SHIFT 0 +#define MADERA_EQ4_B1_C_WIDTH 16 + +/* (0x0E80) DRC1_ctrl1 */ +#define MADERA_DRC1_SIG_DET_RMS_MASK 0xF800 +#define MADERA_DRC1_SIG_DET_RMS_SHIFT 11 +#define MADERA_DRC1_SIG_DET_RMS_WIDTH 5 +#define MADERA_DRC1_SIG_DET_PK_MASK 0x0600 +#define MADERA_DRC1_SIG_DET_PK_SHIFT 9 +#define MADERA_DRC1_SIG_DET_PK_WIDTH 2 +#define MADERA_DRC1_NG_ENA 0x0100 +#define MADERA_DRC1_NG_ENA_MASK 0x0100 +#define MADERA_DRC1_NG_ENA_SHIFT 8 +#define MADERA_DRC1_NG_ENA_WIDTH 1 +#define MADERA_DRC1_SIG_DET_MODE 0x0080 +#define MADERA_DRC1_SIG_DET_MODE_MASK 0x0080 +#define MADERA_DRC1_SIG_DET_MODE_SHIFT 7 +#define MADERA_DRC1_SIG_DET_MODE_WIDTH 1 +#define MADERA_DRC1_SIG_DET 0x0040 +#define MADERA_DRC1_SIG_DET_MASK 0x0040 +#define MADERA_DRC1_SIG_DET_SHIFT 6 +#define MADERA_DRC1_SIG_DET_WIDTH 1 +#define MADERA_DRC1_KNEE2_OP_ENA 0x0020 +#define MADERA_DRC1_KNEE2_OP_ENA_MASK 0x0020 +#define MADERA_DRC1_KNEE2_OP_ENA_SHIFT 5 +#define MADERA_DRC1_KNEE2_OP_ENA_WIDTH 1 +#define MADERA_DRC1_QR 0x0010 +#define MADERA_DRC1_QR_MASK 0x0010 +#define MADERA_DRC1_QR_SHIFT 4 +#define MADERA_DRC1_QR_WIDTH 1 +#define MADERA_DRC1_ANTICLIP 0x0008 +#define MADERA_DRC1_ANTICLIP_MASK 0x0008 +#define MADERA_DRC1_ANTICLIP_SHIFT 3 +#define MADERA_DRC1_ANTICLIP_WIDTH 1 +#define MADERA_DRC1L_ENA 0x0002 +#define MADERA_DRC1L_ENA_MASK 0x0002 +#define MADERA_DRC1L_ENA_SHIFT 1 +#define MADERA_DRC1L_ENA_WIDTH 1 +#define MADERA_DRC1R_ENA 0x0001 +#define MADERA_DRC1R_ENA_MASK 0x0001 +#define MADERA_DRC1R_ENA_SHIFT 0 +#define MADERA_DRC1R_ENA_WIDTH 1 + +/* (0x0E81) DRC1_ctrl2 */ +#define MADERA_DRC1_ATK_MASK 0x1E00 +#define MADERA_DRC1_ATK_SHIFT 9 +#define MADERA_DRC1_ATK_WIDTH 4 +#define MADERA_DRC1_DCY_MASK 0x01E0 +#define MADERA_DRC1_DCY_SHIFT 5 +#define MADERA_DRC1_DCY_WIDTH 4 +#define MADERA_DRC1_MINGAIN_MASK 0x001C +#define MADERA_DRC1_MINGAIN_SHIFT 2 +#define MADERA_DRC1_MINGAIN_WIDTH 3 +#define MADERA_DRC1_MAXGAIN_MASK 0x0003 +#define MADERA_DRC1_MAXGAIN_SHIFT 0 +#define MADERA_DRC1_MAXGAIN_WIDTH 2 + +/* (0x0E82) DRC1_ctrl3 */ +#define MADERA_DRC1_NG_MINGAIN_MASK 0xF000 +#define MADERA_DRC1_NG_MINGAIN_SHIFT 12 +#define MADERA_DRC1_NG_MINGAIN_WIDTH 4 +#define MADERA_DRC1_NG_EXP_MASK 0x0C00 +#define MADERA_DRC1_NG_EXP_SHIFT 10 +#define MADERA_DRC1_NG_EXP_WIDTH 2 +#define MADERA_DRC1_QR_THR_MASK 0x0300 +#define MADERA_DRC1_QR_THR_SHIFT 8 +#define MADERA_DRC1_QR_THR_WIDTH 2 +#define MADERA_DRC1_QR_DCY_MASK 0x00C0 +#define MADERA_DRC1_QR_DCY_SHIFT 6 +#define MADERA_DRC1_QR_DCY_WIDTH 2 +#define MADERA_DRC1_HI_COMP_MASK 0x0038 +#define MADERA_DRC1_HI_COMP_SHIFT 3 +#define MADERA_DRC1_HI_COMP_WIDTH 3 +#define MADERA_DRC1_LO_COMP_MASK 0x0007 +#define MADERA_DRC1_LO_COMP_SHIFT 0 +#define MADERA_DRC1_LO_COMP_WIDTH 3 + +/* (0x0E83) DRC1_ctrl4 */ +#define MADERA_DRC1_KNEE_IP_MASK 0x07E0 +#define MADERA_DRC1_KNEE_IP_SHIFT 5 +#define MADERA_DRC1_KNEE_IP_WIDTH 6 +#define MADERA_DRC1_KNEE_OP_MASK 0x001F +#define MADERA_DRC1_KNEE_OP_SHIFT 0 +#define MADERA_DRC1_KNEE_OP_WIDTH 5 + +/* (0x0E84) DRC1_ctrl5 */ +#define MADERA_DRC1_KNEE2_IP_MASK 0x03E0 +#define MADERA_DRC1_KNEE2_IP_SHIFT 5 +#define MADERA_DRC1_KNEE2_IP_WIDTH 5 +#define MADERA_DRC1_KNEE2_OP_MASK 0x001F +#define MADERA_DRC1_KNEE2_OP_SHIFT 0 +#define MADERA_DRC1_KNEE2_OP_WIDTH 5 + +/* (0x0E88) DRC2_ctrl1 */ +#define MADERA_DRC2_SIG_DET_RMS_MASK 0xF800 +#define MADERA_DRC2_SIG_DET_RMS_SHIFT 11 +#define MADERA_DRC2_SIG_DET_RMS_WIDTH 5 +#define MADERA_DRC2_SIG_DET_PK_MASK 0x0600 +#define MADERA_DRC2_SIG_DET_PK_SHIFT 9 +#define MADERA_DRC2_SIG_DET_PK_WIDTH 2 +#define MADERA_DRC2_NG_ENA 0x0100 +#define MADERA_DRC2_NG_ENA_MASK 0x0100 +#define MADERA_DRC2_NG_ENA_SHIFT 8 +#define MADERA_DRC2_NG_ENA_WIDTH 1 +#define MADERA_DRC2_SIG_DET_MODE 0x0080 +#define MADERA_DRC2_SIG_DET_MODE_MASK 0x0080 +#define MADERA_DRC2_SIG_DET_MODE_SHIFT 7 +#define MADERA_DRC2_SIG_DET_MODE_WIDTH 1 +#define MADERA_DRC2_SIG_DET 0x0040 +#define MADERA_DRC2_SIG_DET_MASK 0x0040 +#define MADERA_DRC2_SIG_DET_SHIFT 6 +#define MADERA_DRC2_SIG_DET_WIDTH 1 +#define MADERA_DRC2_KNEE2_OP_ENA 0x0020 +#define MADERA_DRC2_KNEE2_OP_ENA_MASK 0x0020 +#define MADERA_DRC2_KNEE2_OP_ENA_SHIFT 5 +#define MADERA_DRC2_KNEE2_OP_ENA_WIDTH 1 +#define MADERA_DRC2_QR 0x0010 +#define MADERA_DRC2_QR_MASK 0x0010 +#define MADERA_DRC2_QR_SHIFT 4 +#define MADERA_DRC2_QR_WIDTH 1 +#define MADERA_DRC2_ANTICLIP 0x0008 +#define MADERA_DRC2_ANTICLIP_MASK 0x0008 +#define MADERA_DRC2_ANTICLIP_SHIFT 3 +#define MADERA_DRC2_ANTICLIP_WIDTH 1 +#define MADERA_DRC2L_ENA 0x0002 +#define MADERA_DRC2L_ENA_MASK 0x0002 +#define MADERA_DRC2L_ENA_SHIFT 1 +#define MADERA_DRC2L_ENA_WIDTH 1 +#define MADERA_DRC2R_ENA 0x0001 +#define MADERA_DRC2R_ENA_MASK 0x0001 +#define MADERA_DRC2R_ENA_SHIFT 0 +#define MADERA_DRC2R_ENA_WIDTH 1 + +/* (0x0E89) DRC2_ctrl2 */ +#define MADERA_DRC2_ATK_MASK 0x1E00 +#define MADERA_DRC2_ATK_SHIFT 9 +#define MADERA_DRC2_ATK_WIDTH 4 +#define MADERA_DRC2_DCY_MASK 0x01E0 +#define MADERA_DRC2_DCY_SHIFT 5 +#define MADERA_DRC2_DCY_WIDTH 4 +#define MADERA_DRC2_MINGAIN_MASK 0x001C +#define MADERA_DRC2_MINGAIN_SHIFT 2 +#define MADERA_DRC2_MINGAIN_WIDTH 3 +#define MADERA_DRC2_MAXGAIN_MASK 0x0003 +#define MADERA_DRC2_MAXGAIN_SHIFT 0 +#define MADERA_DRC2_MAXGAIN_WIDTH 2 + +/* (0x0E8A) DRC2_ctrl3 */ +#define MADERA_DRC2_NG_MINGAIN_MASK 0xF000 +#define MADERA_DRC2_NG_MINGAIN_SHIFT 12 +#define MADERA_DRC2_NG_MINGAIN_WIDTH 4 +#define MADERA_DRC2_NG_EXP_MASK 0x0C00 +#define MADERA_DRC2_NG_EXP_SHIFT 10 +#define MADERA_DRC2_NG_EXP_WIDTH 2 +#define MADERA_DRC2_QR_THR_MASK 0x0300 +#define MADERA_DRC2_QR_THR_SHIFT 8 +#define MADERA_DRC2_QR_THR_WIDTH 2 +#define MADERA_DRC2_QR_DCY_MASK 0x00C0 +#define MADERA_DRC2_QR_DCY_SHIFT 6 +#define MADERA_DRC2_QR_DCY_WIDTH 2 +#define MADERA_DRC2_HI_COMP_MASK 0x0038 +#define MADERA_DRC2_HI_COMP_SHIFT 3 +#define MADERA_DRC2_HI_COMP_WIDTH 3 +#define MADERA_DRC2_LO_COMP_MASK 0x0007 +#define MADERA_DRC2_LO_COMP_SHIFT 0 +#define MADERA_DRC2_LO_COMP_WIDTH 3 + +/* (0x0E8B) DRC2_ctrl4 */ +#define MADERA_DRC2_KNEE_IP_MASK 0x07E0 +#define MADERA_DRC2_KNEE_IP_SHIFT 5 +#define MADERA_DRC2_KNEE_IP_WIDTH 6 +#define MADERA_DRC2_KNEE_OP_MASK 0x001F +#define MADERA_DRC2_KNEE_OP_SHIFT 0 +#define MADERA_DRC2_KNEE_OP_WIDTH 5 + +/* (0x0E8C) DRC2_ctrl5 */ +#define MADERA_DRC2_KNEE2_IP_MASK 0x03E0 +#define MADERA_DRC2_KNEE2_IP_SHIFT 5 +#define MADERA_DRC2_KNEE2_IP_WIDTH 5 +#define MADERA_DRC2_KNEE2_OP_MASK 0x001F +#define MADERA_DRC2_KNEE2_OP_SHIFT 0 +#define MADERA_DRC2_KNEE2_OP_WIDTH 5 + +/* (0x0EC0) HPLPF1_1 */ +#define MADERA_LHPF1_MODE 0x0002 +#define MADERA_LHPF1_MODE_MASK 0x0002 +#define MADERA_LHPF1_MODE_SHIFT 1 +#define MADERA_LHPF1_MODE_WIDTH 1 +#define MADERA_LHPF1_ENA 0x0001 +#define MADERA_LHPF1_ENA_MASK 0x0001 +#define MADERA_LHPF1_ENA_SHIFT 0 +#define MADERA_LHPF1_ENA_WIDTH 1 + +/* (0x0EC1) HPLPF1_2 */ +#define MADERA_LHPF1_COEFF_MASK 0xFFFF +#define MADERA_LHPF1_COEFF_SHIFT 0 +#define MADERA_LHPF1_COEFF_WIDTH 16 + +/* (0x0EC4) HPLPF2_1 */ +#define MADERA_LHPF2_MODE 0x0002 +#define MADERA_LHPF2_MODE_MASK 0x0002 +#define MADERA_LHPF2_MODE_SHIFT 1 +#define MADERA_LHPF2_MODE_WIDTH 1 +#define MADERA_LHPF2_ENA 0x0001 +#define MADERA_LHPF2_ENA_MASK 0x0001 +#define MADERA_LHPF2_ENA_SHIFT 0 +#define MADERA_LHPF2_ENA_WIDTH 1 + +/* (0x0EC5) HPLPF2_2 */ +#define MADERA_LHPF2_COEFF_MASK 0xFFFF +#define MADERA_LHPF2_COEFF_SHIFT 0 +#define MADERA_LHPF2_COEFF_WIDTH 16 + +/* (0x0EC8) HPLPF3_1 */ +#define MADERA_LHPF3_MODE 0x0002 +#define MADERA_LHPF3_MODE_MASK 0x0002 +#define MADERA_LHPF3_MODE_SHIFT 1 +#define MADERA_LHPF3_MODE_WIDTH 1 +#define MADERA_LHPF3_ENA 0x0001 +#define MADERA_LHPF3_ENA_MASK 0x0001 +#define MADERA_LHPF3_ENA_SHIFT 0 +#define MADERA_LHPF3_ENA_WIDTH 1 + +/* (0x0EC9) HPLPF3_2 */ +#define MADERA_LHPF3_COEFF_MASK 0xFFFF +#define MADERA_LHPF3_COEFF_SHIFT 0 +#define MADERA_LHPF3_COEFF_WIDTH 16 + +/* (0x0ECC) HPLPF4_1 */ +#define MADERA_LHPF4_MODE 0x0002 +#define MADERA_LHPF4_MODE_MASK 0x0002 +#define MADERA_LHPF4_MODE_SHIFT 1 +#define MADERA_LHPF4_MODE_WIDTH 1 +#define MADERA_LHPF4_ENA 0x0001 +#define MADERA_LHPF4_ENA_MASK 0x0001 +#define MADERA_LHPF4_ENA_SHIFT 0 +#define MADERA_LHPF4_ENA_WIDTH 1 + +/* (0x0ECD) HPLPF4_2 */ +#define MADERA_LHPF4_COEFF_MASK 0xFFFF +#define MADERA_LHPF4_COEFF_SHIFT 0 +#define MADERA_LHPF4_COEFF_WIDTH 16 + +/* (0x0ED0) ASRC2_ENABLE */ +#define MADERA_ASRC2_IN2L_ENA 0x0008 +#define MADERA_ASRC2_IN2L_ENA_MASK 0x0008 +#define MADERA_ASRC2_IN2L_ENA_SHIFT 3 +#define MADERA_ASRC2_IN2L_ENA_WIDTH 1 +#define MADERA_ASRC2_IN2R_ENA 0x0004 +#define MADERA_ASRC2_IN2R_ENA_MASK 0x0004 +#define MADERA_ASRC2_IN2R_ENA_SHIFT 2 +#define MADERA_ASRC2_IN2R_ENA_WIDTH 1 +#define MADERA_ASRC2_IN1L_ENA 0x0002 +#define MADERA_ASRC2_IN1L_ENA_MASK 0x0002 +#define MADERA_ASRC2_IN1L_ENA_SHIFT 1 +#define MADERA_ASRC2_IN1L_ENA_WIDTH 1 +#define MADERA_ASRC2_IN1R_ENA 0x0001 +#define MADERA_ASRC2_IN1R_ENA_MASK 0x0001 +#define MADERA_ASRC2_IN1R_ENA_SHIFT 0 +#define MADERA_ASRC2_IN1R_ENA_WIDTH 1 + +/* (0x0ED2) ASRC2_RATE1 */ +#define MADERA_ASRC2_RATE1_MASK 0xF800 +#define MADERA_ASRC2_RATE1_SHIFT 11 +#define MADERA_ASRC2_RATE1_WIDTH 5 + +/* (0x0ED3) ASRC2_RATE2 */ +#define MADERA_ASRC2_RATE2_MASK 0xF800 +#define MADERA_ASRC2_RATE2_SHIFT 11 +#define MADERA_ASRC2_RATE2_WIDTH 5 + +/* (0x0EE0) ASRC1_ENABLE */ +#define MADERA_ASRC1_IN2L_ENA 0x0008 +#define MADERA_ASRC1_IN2L_ENA_MASK 0x0008 +#define MADERA_ASRC1_IN2L_ENA_SHIFT 3 +#define MADERA_ASRC1_IN2L_ENA_WIDTH 1 +#define MADERA_ASRC1_IN2R_ENA 0x0004 +#define MADERA_ASRC1_IN2R_ENA_MASK 0x0004 +#define MADERA_ASRC1_IN2R_ENA_SHIFT 2 +#define MADERA_ASRC1_IN2R_ENA_WIDTH 1 +#define MADERA_ASRC1_IN1L_ENA 0x0002 +#define MADERA_ASRC1_IN1L_ENA_MASK 0x0002 +#define MADERA_ASRC1_IN1L_ENA_SHIFT 1 +#define MADERA_ASRC1_IN1L_ENA_WIDTH 1 +#define MADERA_ASRC1_IN1R_ENA 0x0001 +#define MADERA_ASRC1_IN1R_ENA_MASK 0x0001 +#define MADERA_ASRC1_IN1R_ENA_SHIFT 0 +#define MADERA_ASRC1_IN1R_ENA_WIDTH 1 + +/* (0x0EE2) ASRC1_RATE1 */ +#define MADERA_ASRC1_RATE1_MASK 0xF800 +#define MADERA_ASRC1_RATE1_SHIFT 11 +#define MADERA_ASRC1_RATE1_WIDTH 5 + +/* (0x0EE3) ASRC1_RATE2 */ +#define MADERA_ASRC1_RATE2_MASK 0xF800 +#define MADERA_ASRC1_RATE2_SHIFT 11 +#define MADERA_ASRC1_RATE2_WIDTH 5 + +/* (0x0EF0) - ISRC1 CTRL 1 */ +#define MADERA_ISRC1_FSH_MASK 0xF800 +#define MADERA_ISRC1_FSH_SHIFT 11 +#define MADERA_ISRC1_FSH_WIDTH 5 +#define MADERA_ISRC1_CLK_SEL_MASK 0x0700 +#define MADERA_ISRC1_CLK_SEL_SHIFT 8 +#define MADERA_ISRC1_CLK_SEL_WIDTH 3 + +/* (0x0EF1) ISRC1_CTRL_2 */ +#define MADERA_ISRC1_FSL_MASK 0xF800 +#define MADERA_ISRC1_FSL_SHIFT 11 +#define MADERA_ISRC1_FSL_WIDTH 5 + +/* (0x0EF2) ISRC1_CTRL_3 */ +#define MADERA_ISRC1_INT1_ENA 0x8000 +#define MADERA_ISRC1_INT1_ENA_MASK 0x8000 +#define MADERA_ISRC1_INT1_ENA_SHIFT 15 +#define MADERA_ISRC1_INT1_ENA_WIDTH 1 +#define MADERA_ISRC1_INT2_ENA 0x4000 +#define MADERA_ISRC1_INT2_ENA_MASK 0x4000 +#define MADERA_ISRC1_INT2_ENA_SHIFT 14 +#define MADERA_ISRC1_INT2_ENA_WIDTH 1 +#define MADERA_ISRC1_INT3_ENA 0x2000 +#define MADERA_ISRC1_INT3_ENA_MASK 0x2000 +#define MADERA_ISRC1_INT3_ENA_SHIFT 13 +#define MADERA_ISRC1_INT3_ENA_WIDTH 1 +#define MADERA_ISRC1_INT4_ENA 0x1000 +#define MADERA_ISRC1_INT4_ENA_MASK 0x1000 +#define MADERA_ISRC1_INT4_ENA_SHIFT 12 +#define MADERA_ISRC1_INT4_ENA_WIDTH 1 +#define MADERA_ISRC1_DEC1_ENA 0x0200 +#define MADERA_ISRC1_DEC1_ENA_MASK 0x0200 +#define MADERA_ISRC1_DEC1_ENA_SHIFT 9 +#define MADERA_ISRC1_DEC1_ENA_WIDTH 1 +#define MADERA_ISRC1_DEC2_ENA 0x0100 +#define MADERA_ISRC1_DEC2_ENA_MASK 0x0100 +#define MADERA_ISRC1_DEC2_ENA_SHIFT 8 +#define MADERA_ISRC1_DEC2_ENA_WIDTH 1 +#define MADERA_ISRC1_DEC3_ENA 0x0080 +#define MADERA_ISRC1_DEC3_ENA_MASK 0x0080 +#define MADERA_ISRC1_DEC3_ENA_SHIFT 7 +#define MADERA_ISRC1_DEC3_ENA_WIDTH 1 +#define MADERA_ISRC1_DEC4_ENA 0x0040 +#define MADERA_ISRC1_DEC4_ENA_MASK 0x0040 +#define MADERA_ISRC1_DEC4_ENA_SHIFT 6 +#define MADERA_ISRC1_DEC4_ENA_WIDTH 1 +#define MADERA_ISRC1_NOTCH_ENA 0x0001 +#define MADERA_ISRC1_NOTCH_ENA_MASK 0x0001 +#define MADERA_ISRC1_NOTCH_ENA_SHIFT 0 +#define MADERA_ISRC1_NOTCH_ENA_WIDTH 1 + +/* (0x0EF3) ISRC2_CTRL_1 */ +#define MADERA_ISRC2_FSH_MASK 0xF800 +#define MADERA_ISRC2_FSH_SHIFT 11 +#define MADERA_ISRC2_FSH_WIDTH 5 +#define MADERA_ISRC2_CLK_SEL_MASK 0x0700 +#define MADERA_ISRC2_CLK_SEL_SHIFT 8 +#define MADERA_ISRC2_CLK_SEL_WIDTH 3 + +/* (0x0EF4) ISRC2_CTRL_2 */ +#define MADERA_ISRC2_FSL_MASK 0xF800 +#define MADERA_ISRC2_FSL_SHIFT 11 +#define MADERA_ISRC2_FSL_WIDTH 5 + +/* (0x0EF5) ISRC2_CTRL_3 */ +#define MADERA_ISRC2_INT1_ENA 0x8000 +#define MADERA_ISRC2_INT1_ENA_MASK 0x8000 +#define MADERA_ISRC2_INT1_ENA_SHIFT 15 +#define MADERA_ISRC2_INT1_ENA_WIDTH 1 +#define MADERA_ISRC2_INT2_ENA 0x4000 +#define MADERA_ISRC2_INT2_ENA_MASK 0x4000 +#define MADERA_ISRC2_INT2_ENA_SHIFT 14 +#define MADERA_ISRC2_INT2_ENA_WIDTH 1 +#define MADERA_ISRC2_INT3_ENA 0x2000 +#define MADERA_ISRC2_INT3_ENA_MASK 0x2000 +#define MADERA_ISRC2_INT3_ENA_SHIFT 13 +#define MADERA_ISRC2_INT3_ENA_WIDTH 1 +#define MADERA_ISRC2_INT4_ENA 0x1000 +#define MADERA_ISRC2_INT4_ENA_MASK 0x1000 +#define MADERA_ISRC2_INT4_ENA_SHIFT 12 +#define MADERA_ISRC2_INT4_ENA_WIDTH 1 +#define MADERA_ISRC2_DEC1_ENA 0x0200 +#define MADERA_ISRC2_DEC1_ENA_MASK 0x0200 +#define MADERA_ISRC2_DEC1_ENA_SHIFT 9 +#define MADERA_ISRC2_DEC1_ENA_WIDTH 1 +#define MADERA_ISRC2_DEC2_ENA 0x0100 +#define MADERA_ISRC2_DEC2_ENA_MASK 0x0100 +#define MADERA_ISRC2_DEC2_ENA_SHIFT 8 +#define MADERA_ISRC2_DEC2_ENA_WIDTH 1 +#define MADERA_ISRC2_DEC3_ENA 0x0080 +#define MADERA_ISRC2_DEC3_ENA_MASK 0x0080 +#define MADERA_ISRC2_DEC3_ENA_SHIFT 7 +#define MADERA_ISRC2_DEC3_ENA_WIDTH 1 +#define MADERA_ISRC2_DEC4_ENA 0x0040 +#define MADERA_ISRC2_DEC4_ENA_MASK 0x0040 +#define MADERA_ISRC2_DEC4_ENA_SHIFT 6 +#define MADERA_ISRC2_DEC4_ENA_WIDTH 1 +#define MADERA_ISRC2_NOTCH_ENA 0x0001 +#define MADERA_ISRC2_NOTCH_ENA_MASK 0x0001 +#define MADERA_ISRC2_NOTCH_ENA_SHIFT 0 +#define MADERA_ISRC2_NOTCH_ENA_WIDTH 1 + +/* (0x0EF6) ISRC3_CTRL_1 */ +#define MADERA_ISRC3_FSH_MASK 0xF800 +#define MADERA_ISRC3_FSH_SHIFT 11 +#define MADERA_ISRC3_FSH_WIDTH 5 +#define MADERA_ISRC3_CLK_SEL_MASK 0x0700 +#define MADERA_ISRC3_CLK_SEL_SHIFT 8 +#define MADERA_ISRC3_CLK_SEL_WIDTH 3 + +/* (0x0EF7) ISRC3_CTRL_2 */ +#define MADERA_ISRC3_FSL_MASK 0xF800 +#define MADERA_ISRC3_FSL_SHIFT 11 +#define MADERA_ISRC3_FSL_WIDTH 5 + +/* (0x0EF8) ISRC3_CTRL_3 */ +#define MADERA_ISRC3_INT1_ENA 0x8000 +#define MADERA_ISRC3_INT1_ENA_MASK 0x8000 +#define MADERA_ISRC3_INT1_ENA_SHIFT 15 +#define MADERA_ISRC3_INT1_ENA_WIDTH 1 +#define MADERA_ISRC3_INT2_ENA 0x4000 +#define MADERA_ISRC3_INT2_ENA_MASK 0x4000 +#define MADERA_ISRC3_INT2_ENA_SHIFT 14 +#define MADERA_ISRC3_INT2_ENA_WIDTH 1 +#define MADERA_ISRC3_INT3_ENA 0x2000 +#define MADERA_ISRC3_INT3_ENA_MASK 0x2000 +#define MADERA_ISRC3_INT3_ENA_SHIFT 13 +#define MADERA_ISRC3_INT3_ENA_WIDTH 1 +#define MADERA_ISRC3_INT4_ENA 0x1000 +#define MADERA_ISRC3_INT4_ENA_MASK 0x1000 +#define MADERA_ISRC3_INT4_ENA_SHIFT 12 +#define MADERA_ISRC3_INT4_ENA_WIDTH 1 +#define MADERA_ISRC3_DEC1_ENA 0x0200 +#define MADERA_ISRC3_DEC1_ENA_MASK 0x0200 +#define MADERA_ISRC3_DEC1_ENA_SHIFT 9 +#define MADERA_ISRC3_DEC1_ENA_WIDTH 1 +#define MADERA_ISRC3_DEC2_ENA 0x0100 +#define MADERA_ISRC3_DEC2_ENA_MASK 0x0100 +#define MADERA_ISRC3_DEC2_ENA_SHIFT 8 +#define MADERA_ISRC3_DEC2_ENA_WIDTH 1 +#define MADERA_ISRC3_DEC3_ENA 0x0080 +#define MADERA_ISRC3_DEC3_ENA_MASK 0x0080 +#define MADERA_ISRC3_DEC3_ENA_SHIFT 7 +#define MADERA_ISRC3_DEC3_ENA_WIDTH 1 +#define MADERA_ISRC3_DEC4_ENA 0x0040 +#define MADERA_ISRC3_DEC4_ENA_MASK 0x0040 +#define MADERA_ISRC3_DEC4_ENA_SHIFT 6 +#define MADERA_ISRC3_DEC4_ENA_WIDTH 1 +#define MADERA_ISRC3_NOTCH_ENA 0x0001 +#define MADERA_ISRC3_NOTCH_ENA_MASK 0x0001 +#define MADERA_ISRC3_NOTCH_ENA_SHIFT 0 +#define MADERA_ISRC3_NOTCH_ENA_WIDTH 1 + +/* (0x0EF9) ISRC4_CTRL_1 */ +#define MADERA_ISRC4_FSH_MASK 0xF800 +#define MADERA_ISRC4_FSH_SHIFT 11 +#define MADERA_ISRC4_FSH_WIDTH 5 +#define MADERA_ISRC4_CLK_SEL_MASK 0x0700 +#define MADERA_ISRC4_CLK_SEL_SHIFT 8 +#define MADERA_ISRC4_CLK_SEL_WIDTH 3 + +/* (0x0EFA) ISRC4_CTRL_2 */ +#define MADERA_ISRC4_FSL_MASK 0xF800 +#define MADERA_ISRC4_FSL_SHIFT 11 +#define MADERA_ISRC4_FSL_WIDTH 5 + +/* (0x0EFB) ISRC4_CTRL_3 */ +#define MADERA_ISRC4_INT1_ENA 0x8000 +#define MADERA_ISRC4_INT1_ENA_MASK 0x8000 +#define MADERA_ISRC4_INT1_ENA_SHIFT 15 +#define MADERA_ISRC4_INT1_ENA_WIDTH 1 +#define MADERA_ISRC4_INT2_ENA 0x4000 +#define MADERA_ISRC4_INT2_ENA_MASK 0x4000 +#define MADERA_ISRC4_INT2_ENA_SHIFT 14 +#define MADERA_ISRC4_INT2_ENA_WIDTH 1 +#define MADERA_ISRC4_INT3_ENA 0x2000 +#define MADERA_ISRC4_INT3_ENA_MASK 0x2000 +#define MADERA_ISRC4_INT3_ENA_SHIFT 13 +#define MADERA_ISRC4_INT3_ENA_WIDTH 1 +#define MADERA_ISRC4_INT4_ENA 0x1000 +#define MADERA_ISRC4_INT4_ENA_MASK 0x1000 +#define MADERA_ISRC4_INT4_ENA_SHIFT 12 +#define MADERA_ISRC4_INT4_ENA_WIDTH 1 +#define MADERA_ISRC4_DEC1_ENA 0x0200 +#define MADERA_ISRC4_DEC1_ENA_MASK 0x0200 +#define MADERA_ISRC4_DEC1_ENA_SHIFT 9 +#define MADERA_ISRC4_DEC1_ENA_WIDTH 1 +#define MADERA_ISRC4_DEC2_ENA 0x0100 +#define MADERA_ISRC4_DEC2_ENA_MASK 0x0100 +#define MADERA_ISRC4_DEC2_ENA_SHIFT 8 +#define MADERA_ISRC4_DEC2_ENA_WIDTH 1 +#define MADERA_ISRC4_DEC3_ENA 0x0080 +#define MADERA_ISRC4_DEC3_ENA_MASK 0x0080 +#define MADERA_ISRC4_DEC3_ENA_SHIFT 7 +#define MADERA_ISRC4_DEC3_ENA_WIDTH 1 +#define MADERA_ISRC4_DEC4_ENA 0x0040 +#define MADERA_ISRC4_DEC4_ENA_MASK 0x0040 +#define MADERA_ISRC4_DEC4_ENA_SHIFT 6 +#define MADERA_ISRC4_DEC4_ENA_WIDTH 1 +#define MADERA_ISRC4_NOTCH_ENA 0x0001 +#define MADERA_ISRC4_NOTCH_ENA_MASK 0x0001 +#define MADERA_ISRC4_NOTCH_ENA_SHIFT 0 +#define MADERA_ISRC4_NOTCH_ENA_WIDTH 1 + +/* (0x0F00) Clock_Control */ +#define MADERA_EXT_NG_SEL_CLR 0x0080 +#define MADERA_EXT_NG_SEL_CLR_MASK 0x0080 +#define MADERA_EXT_NG_SEL_CLR_SHIFT 7 +#define MADERA_EXT_NG_SEL_CLR_WIDTH 1 +#define MADERA_EXT_NG_SEL_SET 0x0040 +#define MADERA_EXT_NG_SEL_SET_MASK 0x0040 +#define MADERA_EXT_NG_SEL_SET_SHIFT 6 +#define MADERA_EXT_NG_SEL_SET_WIDTH 1 +#define MADERA_CLK_R_ENA_CLR 0x0020 +#define MADERA_CLK_R_ENA_CLR_MASK 0x0020 +#define MADERA_CLK_R_ENA_CLR_SHIFT 5 +#define MADERA_CLK_R_ENA_CLR_WIDTH 1 +#define MADERA_CLK_R_ENA_SET 0x0010 +#define MADERA_CLK_R_ENA_SET_MASK 0x0010 +#define MADERA_CLK_R_ENA_SET_SHIFT 4 +#define MADERA_CLK_R_ENA_SET_WIDTH 1 +#define MADERA_CLK_NG_ENA_CLR 0x0008 +#define MADERA_CLK_NG_ENA_CLR_MASK 0x0008 +#define MADERA_CLK_NG_ENA_CLR_SHIFT 3 +#define MADERA_CLK_NG_ENA_CLR_WIDTH 1 +#define MADERA_CLK_NG_ENA_SET 0x0004 +#define MADERA_CLK_NG_ENA_SET_MASK 0x0004 +#define MADERA_CLK_NG_ENA_SET_SHIFT 2 +#define MADERA_CLK_NG_ENA_SET_WIDTH 1 +#define MADERA_CLK_L_ENA_CLR 0x0002 +#define MADERA_CLK_L_ENA_CLR_MASK 0x0002 +#define MADERA_CLK_L_ENA_CLR_SHIFT 1 +#define MADERA_CLK_L_ENA_CLR_WIDTH 1 +#define MADERA_CLK_L_ENA_SET 0x0001 +#define MADERA_CLK_L_ENA_SET_MASK 0x0001 +#define MADERA_CLK_L_ENA_SET_SHIFT 0 +#define MADERA_CLK_L_ENA_SET_WIDTH 1 + +/* (0x0F01) ANC_SRC */ +#define MADERA_IN_RXANCR_SEL_MASK 0x0070 +#define MADERA_IN_RXANCR_SEL_SHIFT 4 +#define MADERA_IN_RXANCR_SEL_WIDTH 3 +#define MADERA_IN_RXANCL_SEL_MASK 0x0007 +#define MADERA_IN_RXANCL_SEL_SHIFT 0 +#define MADERA_IN_RXANCL_SEL_WIDTH 3 + +/* (0x0F17) FCL_ADC_reformatter_control */ +#define MADERA_FCL_MIC_MODE_SEL 0x000C +#define MADERA_FCL_MIC_MODE_SEL_SHIFT 2 +#define MADERA_FCL_MIC_MODE_SEL_WIDTH 2 + +/* (0x0F73) FCR_ADC_reformatter_control */ +#define MADERA_FCR_MIC_MODE_SEL 0x000C +#define MADERA_FCR_MIC_MODE_SEL_SHIFT 2 +#define MADERA_FCR_MIC_MODE_SEL_WIDTH 2 + +/* (0x1480) DFC1_CTRL_W0 */ +#define MADERA_DFC1_RATE_MASK 0x007C +#define MADERA_DFC1_RATE_SHIFT 2 +#define MADERA_DFC1_RATE_WIDTH 5 +#define MADERA_DFC1_DITH_ENA 0x0002 +#define MADERA_DFC1_DITH_ENA_MASK 0x0002 +#define MADERA_DFC1_DITH_ENA_SHIFT 1 +#define MADERA_DFC1_DITH_ENA_WIDTH 1 +#define MADERA_DFC1_ENA 0x0001 +#define MADERA_DFC1_ENA_MASK 0x0001 +#define MADERA_DFC1_ENA_SHIFT 0 +#define MADERA_DFC1_ENA_WIDTH 1 + +/* (0x1482) DFC1_RX_W0 */ +#define MADERA_DFC1_RX_DATA_WIDTH_MASK 0x1F00 +#define MADERA_DFC1_RX_DATA_WIDTH_SHIFT 8 +#define MADERA_DFC1_RX_DATA_WIDTH_WIDTH 5 + +#define MADERA_DFC1_RX_DATA_TYPE_MASK 0x0007 +#define MADERA_DFC1_RX_DATA_TYPE_SHIFT 0 +#define MADERA_DFC1_RX_DATA_TYPE_WIDTH 3 + +/* (0x1484) DFC1_TX_W0 */ +#define MADERA_DFC1_TX_DATA_WIDTH_MASK 0x1F00 +#define MADERA_DFC1_TX_DATA_WIDTH_SHIFT 8 +#define MADERA_DFC1_TX_DATA_WIDTH_WIDTH 5 + +#define MADERA_DFC1_TX_DATA_TYPE_MASK 0x0007 +#define MADERA_DFC1_TX_DATA_TYPE_SHIFT 0 +#define MADERA_DFC1_TX_DATA_TYPE_WIDTH 3 + +/* (0x1600) ADSP2_IRQ0 */ +#define MADERA_DSP_IRQ2 0x0002 +#define MADERA_DSP_IRQ1 0x0001 + +/* (0x1601) ADSP2_IRQ1 */ +#define MADERA_DSP_IRQ4 0x0002 +#define MADERA_DSP_IRQ3 0x0001 + +/* (0x1602) ADSP2_IRQ2 */ +#define MADERA_DSP_IRQ6 0x0002 +#define MADERA_DSP_IRQ5 0x0001 + +/* (0x1603) ADSP2_IRQ3 */ +#define MADERA_DSP_IRQ8 0x0002 +#define MADERA_DSP_IRQ7 0x0001 + +/* (0x1604) ADSP2_IRQ4 */ +#define MADERA_DSP_IRQ10 0x0002 +#define MADERA_DSP_IRQ9 0x0001 + +/* (0x1605) ADSP2_IRQ5 */ +#define MADERA_DSP_IRQ12 0x0002 +#define MADERA_DSP_IRQ11 0x0001 + +/* (0x1606) ADSP2_IRQ6 */ +#define MADERA_DSP_IRQ14 0x0002 +#define MADERA_DSP_IRQ13 0x0001 + +/* (0x1607) ADSP2_IRQ7 */ +#define MADERA_DSP_IRQ16 0x0002 +#define MADERA_DSP_IRQ15 0x0001 + +/* (0x1700) GPIO1_CTRL_1 */ +#define MADERA_GP1_LVL 0x8000 +#define MADERA_GP1_LVL_MASK 0x8000 +#define MADERA_GP1_LVL_SHIFT 15 +#define MADERA_GP1_LVL_WIDTH 1 +#define MADERA_GP1_OP_CFG 0x4000 +#define MADERA_GP1_OP_CFG_MASK 0x4000 +#define MADERA_GP1_OP_CFG_SHIFT 14 +#define MADERA_GP1_OP_CFG_WIDTH 1 +#define MADERA_GP1_DB 0x2000 +#define MADERA_GP1_DB_MASK 0x2000 +#define MADERA_GP1_DB_SHIFT 13 +#define MADERA_GP1_DB_WIDTH 1 +#define MADERA_GP1_POL 0x1000 +#define MADERA_GP1_POL_MASK 0x1000 +#define MADERA_GP1_POL_SHIFT 12 +#define MADERA_GP1_POL_WIDTH 1 +#define MADERA_GP1_IP_CFG 0x0800 +#define MADERA_GP1_IP_CFG_MASK 0x0800 +#define MADERA_GP1_IP_CFG_SHIFT 11 +#define MADERA_GP1_IP_CFG_WIDTH 1 +#define MADERA_GP1_FN_MASK 0x03FF +#define MADERA_GP1_FN_SHIFT 0 +#define MADERA_GP1_FN_WIDTH 10 + +/* (0x1701) GPIO1_CTRL_2 */ +#define MADERA_GP1_DIR 0x8000 +#define MADERA_GP1_DIR_MASK 0x8000 +#define MADERA_GP1_DIR_SHIFT 15 +#define MADERA_GP1_DIR_WIDTH 1 +#define MADERA_GP1_PU 0x4000 +#define MADERA_GP1_PU_MASK 0x4000 +#define MADERA_GP1_PU_SHIFT 14 +#define MADERA_GP1_PU_WIDTH 1 +#define MADERA_GP1_PD 0x2000 +#define MADERA_GP1_PD_MASK 0x2000 +#define MADERA_GP1_PD_SHIFT 13 +#define MADERA_GP1_PD_WIDTH 1 +#define MADERA_GP1_DRV_STR_MASK 0x1800 +#define MADERA_GP1_DRV_STR_SHIFT 11 +#define MADERA_GP1_DRV_STR_WIDTH 2 + +/* (0x1800) IRQ1_Status_1 */ +#define MADERA_DSP_SHARED_WR_COLL_EINT1 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_EINT1_MASK 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_EINT1_SHIFT 15 +#define MADERA_DSP_SHARED_WR_COLL_EINT1_WIDTH 1 +#define MADERA_CTRLIF_ERR_EINT1 0x1000 +#define MADERA_CTRLIF_ERR_EINT1_MASK 0x1000 +#define MADERA_CTRLIF_ERR_EINT1_SHIFT 12 +#define MADERA_CTRLIF_ERR_EINT1_WIDTH 1 +#define MADERA_SYSCLK_FAIL_EINT1 0x0200 +#define MADERA_SYSCLK_FAIL_EINT1_MASK 0x0200 +#define MADERA_SYSCLK_FAIL_EINT1_SHIFT 9 +#define MADERA_SYSCLK_FAIL_EINT1_WIDTH 1 +#define MADERA_CLOCK_DETECT_EINT1 0x0100 +#define MADERA_CLOCK_DETECT_EINT1_MASK 0x0100 +#define MADERA_CLOCK_DETECT_EINT1_SHIFT 8 +#define MADERA_CLOCK_DETECT_EINT1_WIDTH 1 +#define MADERA_BOOT_DONE_EINT1 0x0080 +#define MADERA_BOOT_DONE_EINT1_MASK 0x0080 +#define MADERA_BOOT_DONE_EINT1_SHIFT 7 +#define MADERA_BOOT_DONE_EINT1_WIDTH 1 + +/* (0x1801) IRQ1_Status_2 */ +#define MADERA_FLLAO_LOCK_EINT1 0x0800 +#define MADERA_FLLAO_LOCK_EINT1_MASK 0x0800 +#define MADERA_FLLAO_LOCK_EINT1_SHIFT 11 +#define MADERA_FLLAO_LOCK_EINT1_WIDTH 1 +#define MADERA_FLL3_LOCK_EINT1 0x0400 +#define MADERA_FLL3_LOCK_EINT1_MASK 0x0400 +#define MADERA_FLL3_LOCK_EINT1_SHIFT 10 +#define MADERA_FLL3_LOCK_EINT1_WIDTH 1 +#define MADERA_FLL2_LOCK_EINT1 0x0200 +#define MADERA_FLL2_LOCK_EINT1_MASK 0x0200 +#define MADERA_FLL2_LOCK_EINT1_SHIFT 9 +#define MADERA_FLL2_LOCK_EINT1_WIDTH 1 +#define MADERA_FLL1_LOCK_EINT1 0x0100 +#define MADERA_FLL1_LOCK_EINT1_MASK 0x0100 +#define MADERA_FLL1_LOCK_EINT1_SHIFT 8 +#define MADERA_FLL1_LOCK_EINT1_WIDTH 1 + +/* (0x1805) IRQ1_Status_6 */ +#define MADERA_MICDET2_EINT1 0x0200 +#define MADERA_MICDET2_EINT1_MASK 0x0200 +#define MADERA_MICDET2_EINT1_SHIFT 9 +#define MADERA_MICDET2_EINT1_WIDTH 1 +#define MADERA_MICDET1_EINT1 0x0100 +#define MADERA_MICDET1_EINT1_MASK 0x0100 +#define MADERA_MICDET1_EINT1_SHIFT 8 +#define MADERA_MICDET1_EINT1_WIDTH 1 +#define MADERA_HPDET_EINT1 0x0001 +#define MADERA_HPDET_EINT1_MASK 0x0001 +#define MADERA_HPDET_EINT1_SHIFT 0 +#define MADERA_HPDET_EINT1_WIDTH 1 + +/* (0x1806) IRQ1_Status_7 */ +#define MADERA_MICD_CLAMP_FALL_EINT1 0x0020 +#define MADERA_MICD_CLAMP_FALL_EINT1_MASK 0x0020 +#define MADERA_MICD_CLAMP_FALL_EINT1_SHIFT 5 +#define MADERA_MICD_CLAMP_FALL_EINT1_WIDTH 1 +#define MADERA_MICD_CLAMP_RISE_EINT1 0x0010 +#define MADERA_MICD_CLAMP_RISE_EINT1_MASK 0x0010 +#define MADERA_MICD_CLAMP_RISE_EINT1_SHIFT 4 +#define MADERA_MICD_CLAMP_RISE_EINT1_WIDTH 1 +#define MADERA_JD2_FALL_EINT1 0x0008 +#define MADERA_JD2_FALL_EINT1_MASK 0x0008 +#define MADERA_JD2_FALL_EINT1_SHIFT 3 +#define MADERA_JD2_FALL_EINT1_WIDTH 1 +#define MADERA_JD2_RISE_EINT1 0x0004 +#define MADERA_JD2_RISE_EINT1_MASK 0x0004 +#define MADERA_JD2_RISE_EINT1_SHIFT 2 +#define MADERA_JD2_RISE_EINT1_WIDTH 1 +#define MADERA_JD1_FALL_EINT1 0x0002 +#define MADERA_JD1_FALL_EINT1_MASK 0x0002 +#define MADERA_JD1_FALL_EINT1_SHIFT 1 +#define MADERA_JD1_FALL_EINT1_WIDTH 1 +#define MADERA_JD1_RISE_EINT1 0x0001 +#define MADERA_JD1_RISE_EINT1_MASK 0x0001 +#define MADERA_JD1_RISE_EINT1_SHIFT 0 +#define MADERA_JD1_RISE_EINT1_WIDTH 1 + +/* (0x1808) IRQ1_Status_9 */ +#define MADERA_ASRC2_IN2_LOCK_EINT1 0x0800 +#define MADERA_ASRC2_IN2_LOCK_EINT1_MASK 0x0800 +#define MADERA_ASRC2_IN2_LOCK_EINT1_SHIFT 11 +#define MADERA_ASRC2_IN2_LOCK_EINT1_WIDTH 1 +#define MADERA_ASRC2_IN1_LOCK_EINT1 0x0400 +#define MADERA_ASRC2_IN1_LOCK_EINT1_MASK 0x0400 +#define MADERA_ASRC2_IN1_LOCK_EINT1_SHIFT 10 +#define MADERA_ASRC2_IN1_LOCK_EINT1_WIDTH 1 +#define MADERA_ASRC1_IN2_LOCK_EINT1 0x0200 +#define MADERA_ASRC1_IN2_LOCK_EINT1_MASK 0x0200 +#define MADERA_ASRC1_IN2_LOCK_EINT1_SHIFT 9 +#define MADERA_ASRC1_IN2_LOCK_EINT1_WIDTH 1 +#define MADERA_ASRC1_IN1_LOCK_EINT1 0x0100 +#define MADERA_ASRC1_IN1_LOCK_EINT1_MASK 0x0100 +#define MADERA_ASRC1_IN1_LOCK_EINT1_SHIFT 8 +#define MADERA_ASRC1_IN1_LOCK_EINT1_WIDTH 1 +#define MADERA_DRC2_SIG_DET_EINT1 0x0002 +#define MADERA_DRC2_SIG_DET_EINT1_MASK 0x0002 +#define MADERA_DRC2_SIG_DET_EINT1_SHIFT 1 +#define MADERA_DRC2_SIG_DET_EINT1_WIDTH 1 +#define MADERA_DRC1_SIG_DET_EINT1 0x0001 +#define MADERA_DRC1_SIG_DET_EINT1_MASK 0x0001 +#define MADERA_DRC1_SIG_DET_EINT1_SHIFT 0 +#define MADERA_DRC1_SIG_DET_EINT1_WIDTH 1 + +/* (0x180A) IRQ1_Status_11 */ +#define MADERA_DSP_IRQ16_EINT1 0x8000 +#define MADERA_DSP_IRQ16_EINT1_MASK 0x8000 +#define MADERA_DSP_IRQ16_EINT1_SHIFT 15 +#define MADERA_DSP_IRQ16_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ15_EINT1 0x4000 +#define MADERA_DSP_IRQ15_EINT1_MASK 0x4000 +#define MADERA_DSP_IRQ15_EINT1_SHIFT 14 +#define MADERA_DSP_IRQ15_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ14_EINT1 0x2000 +#define MADERA_DSP_IRQ14_EINT1_MASK 0x2000 +#define MADERA_DSP_IRQ14_EINT1_SHIFT 13 +#define MADERA_DSP_IRQ14_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ13_EINT1 0x1000 +#define MADERA_DSP_IRQ13_EINT1_MASK 0x1000 +#define MADERA_DSP_IRQ13_EINT1_SHIFT 12 +#define MADERA_DSP_IRQ13_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ12_EINT1 0x0800 +#define MADERA_DSP_IRQ12_EINT1_MASK 0x0800 +#define MADERA_DSP_IRQ12_EINT1_SHIFT 11 +#define MADERA_DSP_IRQ12_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ11_EINT1 0x0400 +#define MADERA_DSP_IRQ11_EINT1_MASK 0x0400 +#define MADERA_DSP_IRQ11_EINT1_SHIFT 10 +#define MADERA_DSP_IRQ11_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ10_EINT1 0x0200 +#define MADERA_DSP_IRQ10_EINT1_MASK 0x0200 +#define MADERA_DSP_IRQ10_EINT1_SHIFT 9 +#define MADERA_DSP_IRQ10_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ9_EINT1 0x0100 +#define MADERA_DSP_IRQ9_EINT1_MASK 0x0100 +#define MADERA_DSP_IRQ9_EINT1_SHIFT 8 +#define MADERA_DSP_IRQ9_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ8_EINT1 0x0080 +#define MADERA_DSP_IRQ8_EINT1_MASK 0x0080 +#define MADERA_DSP_IRQ8_EINT1_SHIFT 7 +#define MADERA_DSP_IRQ8_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ7_EINT1 0x0040 +#define MADERA_DSP_IRQ7_EINT1_MASK 0x0040 +#define MADERA_DSP_IRQ7_EINT1_SHIFT 6 +#define MADERA_DSP_IRQ7_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ6_EINT1 0x0020 +#define MADERA_DSP_IRQ6_EINT1_MASK 0x0020 +#define MADERA_DSP_IRQ6_EINT1_SHIFT 5 +#define MADERA_DSP_IRQ6_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ5_EINT1 0x0010 +#define MADERA_DSP_IRQ5_EINT1_MASK 0x0010 +#define MADERA_DSP_IRQ5_EINT1_SHIFT 4 +#define MADERA_DSP_IRQ5_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ4_EINT1 0x0008 +#define MADERA_DSP_IRQ4_EINT1_MASK 0x0008 +#define MADERA_DSP_IRQ4_EINT1_SHIFT 3 +#define MADERA_DSP_IRQ4_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ3_EINT1 0x0004 +#define MADERA_DSP_IRQ3_EINT1_MASK 0x0004 +#define MADERA_DSP_IRQ3_EINT1_SHIFT 2 +#define MADERA_DSP_IRQ3_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ2_EINT1 0x0002 +#define MADERA_DSP_IRQ2_EINT1_MASK 0x0002 +#define MADERA_DSP_IRQ2_EINT1_SHIFT 1 +#define MADERA_DSP_IRQ2_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ1_EINT1 0x0001 +#define MADERA_DSP_IRQ1_EINT1_MASK 0x0001 +#define MADERA_DSP_IRQ1_EINT1_SHIFT 0 +#define MADERA_DSP_IRQ1_EINT1_WIDTH 1 + +/* (0x180B) IRQ1_Status_12 */ +#define MADERA_SPKOUTR_SC_EINT1 0x0080 +#define MADERA_SPKOUTR_SC_EINT1_MASK 0x0080 +#define MADERA_SPKOUTR_SC_EINT1_SHIFT 7 +#define MADERA_SPKOUTR_SC_EINT1_WIDTH 1 +#define MADERA_SPKOUTL_SC_EINT1 0x0040 +#define MADERA_SPKOUTL_SC_EINT1_MASK 0x0040 +#define MADERA_SPKOUTL_SC_EINT1_SHIFT 6 +#define MADERA_SPKOUTL_SC_EINT1_WIDTH 1 +#define MADERA_HP3R_SC_EINT1 0x0020 +#define MADERA_HP3R_SC_EINT1_MASK 0x0020 +#define MADERA_HP3R_SC_EINT1_SHIFT 5 +#define MADERA_HP3R_SC_EINT1_WIDTH 1 +#define MADERA_HP3L_SC_EINT1 0x0010 +#define MADERA_HP3L_SC_EINT1_MASK 0x0010 +#define MADERA_HP3L_SC_EINT1_SHIFT 4 +#define MADERA_HP3L_SC_EINT1_WIDTH 1 +#define MADERA_HP2R_SC_EINT1 0x0008 +#define MADERA_HP2R_SC_EINT1_MASK 0x0008 +#define MADERA_HP2R_SC_EINT1_SHIFT 3 +#define MADERA_HP2R_SC_EINT1_WIDTH 1 +#define MADERA_HP2L_SC_EINT1 0x0004 +#define MADERA_HP2L_SC_EINT1_MASK 0x0004 +#define MADERA_HP2L_SC_EINT1_SHIFT 2 +#define MADERA_HP2L_SC_EINT1_WIDTH 1 +#define MADERA_HP1R_SC_EINT1 0x0002 +#define MADERA_HP1R_SC_EINT1_MASK 0x0002 +#define MADERA_HP1R_SC_EINT1_SHIFT 1 +#define MADERA_HP1R_SC_EINT1_WIDTH 1 +#define MADERA_HP1L_SC_EINT1 0x0001 +#define MADERA_HP1L_SC_EINT1_MASK 0x0001 +#define MADERA_HP1L_SC_EINT1_SHIFT 0 +#define MADERA_HP1L_SC_EINT1_WIDTH 1 + +/* (0x180C) IRQ1_Status_13 */ +#define MADERA_SPKOUTR_ENABLE_DONE_EINT1 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT1_MASK 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT1_SHIFT 7 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT1 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT1_MASK 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT1_SHIFT 6 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP3R_ENABLE_DONE_EINT1 0x0020 +#define MADERA_HP3R_ENABLE_DONE_EINT1_MASK 0x0020 +#define MADERA_HP3R_ENABLE_DONE_EINT1_SHIFT 5 +#define MADERA_HP3R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP3L_ENABLE_DONE_EINT1 0x0010 +#define MADERA_HP3L_ENABLE_DONE_EINT1_MASK 0x0010 +#define MADERA_HP3L_ENABLE_DONE_EINT1_SHIFT 4 +#define MADERA_HP3L_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP2R_ENABLE_DONE_EINT1 0x0008 +#define MADERA_HP2R_ENABLE_DONE_EINT1_MASK 0x0008 +#define MADERA_HP2R_ENABLE_DONE_EINT1_SHIFT 3 +#define MADERA_HP2R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP2L_ENABLE_DONE_EINT1 0x0004 +#define MADERA_HP2L_ENABLE_DONE_EINT1_MASK 0x0004 +#define MADERA_HP2L_ENABLE_DONE_EINT1_SHIFT 2 +#define MADERA_HP2L_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP1R_ENABLE_DONE_EINT1 0x0002 +#define MADERA_HP1R_ENABLE_DONE_EINT1_MASK 0x0002 +#define MADERA_HP1R_ENABLE_DONE_EINT1_SHIFT 1 +#define MADERA_HP1R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP1L_ENABLE_DONE_EINT1 0x0001 +#define MADERA_HP1L_ENABLE_DONE_EINT1_MASK 0x0001 +#define MADERA_HP1L_ENABLE_DONE_EINT1_SHIFT 0 +#define MADERA_HP1L_ENABLE_DONE_EINT1_WIDTH 1 + +/* (0x180D) IRQ1_Status_14 */ +#define MADERA_SPKOUTR_DISABLE_DONE_EINT1 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT1_MASK 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT1_SHIFT 7 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT1 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT1_MASK 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT1_SHIFT 6 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP3R_DISABLE_DONE_EINT1 0x0020 +#define MADERA_HP3R_DISABLE_DONE_EINT1_MASK 0x0020 +#define MADERA_HP3R_DISABLE_DONE_EINT1_SHIFT 5 +#define MADERA_HP3R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP3L_DISABLE_DONE_EINT1 0x0010 +#define MADERA_HP3L_DISABLE_DONE_EINT1_MASK 0x0010 +#define MADERA_HP3L_DISABLE_DONE_EINT1_SHIFT 4 +#define MADERA_HP3L_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP2R_DISABLE_DONE_EINT1 0x0008 +#define MADERA_HP2R_DISABLE_DONE_EINT1_MASK 0x0008 +#define MADERA_HP2R_DISABLE_DONE_EINT1_SHIFT 3 +#define MADERA_HP2R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP2L_DISABLE_DONE_EINT1 0x0004 +#define MADERA_HP2L_DISABLE_DONE_EINT1_MASK 0x0004 +#define MADERA_HP2L_DISABLE_DONE_EINT1_SHIFT 2 +#define MADERA_HP2L_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP1R_DISABLE_DONE_EINT1 0x0002 +#define MADERA_HP1R_DISABLE_DONE_EINT1_MASK 0x0002 +#define MADERA_HP1R_DISABLE_DONE_EINT1_SHIFT 1 +#define MADERA_HP1R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP1L_DISABLE_DONE_EINT1 0x0001 +#define MADERA_HP1L_DISABLE_DONE_EINT1_MASK 0x0001 +#define MADERA_HP1L_DISABLE_DONE_EINT1_SHIFT 0 +#define MADERA_HP1L_DISABLE_DONE_EINT1_WIDTH 1 + +/* (0x180E) IRQ1_Status_15 */ +#define MADERA_SPK_OVERHEAT_WARN_EINT1 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_EINT1_MASK 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_EINT1_SHIFT 2 +#define MADERA_SPK_OVERHEAT_WARN_EINT1_WIDTH 1 +#define MADERA_SPK_OVERHEAT_EINT1 0x0002 +#define MADERA_SPK_OVERHEAT_EINT1_MASK 0x0002 +#define MADERA_SPK_OVERHEAT_EINT1_SHIFT 1 +#define MADERA_SPK_OVERHEAT_EINT1_WIDTH 1 +#define MADERA_SPK_SHUTDOWN_EINT1 0x0001 +#define MADERA_SPK_SHUTDOWN_EINT1_MASK 0x0001 +#define MADERA_SPK_SHUTDOWN_EINT1_SHIFT 0 +#define MADERA_SPK_SHUTDOWN_EINT1_WIDTH 1 + +/* (0x1820) - IRQ1 Status 33 */ +#define MADERA_ADSP_ERROR_STATUS_DSP7 0x0040 +#define MADERA_ADSP_ERROR_STATUS_DSP7_MASK 0x0040 +#define MADERA_ADSP_ERROR_STATUS_DSP7_SHIFT 6 +#define MADERA_ADSP_ERROR_STATUS_DSP7_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP6 0x0020 +#define MADERA_ADSP_ERROR_STATUS_DSP6_MASK 0x0020 +#define MADERA_ADSP_ERROR_STATUS_DSP6_SHIFT 5 +#define MADERA_ADSP_ERROR_STATUS_DSP6_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP5 0x0010 +#define MADERA_ADSP_ERROR_STATUS_DSP5_MASK 0x0010 +#define MADERA_ADSP_ERROR_STATUS_DSP5_SHIFT 4 +#define MADERA_ADSP_ERROR_STATUS_DSP5_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP4 0x0008 +#define MADERA_ADSP_ERROR_STATUS_DSP4_MASK 0x0008 +#define MADERA_ADSP_ERROR_STATUS_DSP4_SHIFT 3 +#define MADERA_ADSP_ERROR_STATUS_DSP4_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP3 0x0004 +#define MADERA_ADSP_ERROR_STATUS_DSP3_MASK 0x0004 +#define MADERA_ADSP_ERROR_STATUS_DSP3_SHIFT 2 +#define MADERA_ADSP_ERROR_STATUS_DSP3_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP2 0x0002 +#define MADERA_ADSP_ERROR_STATUS_DSP2_MASK 0x0002 +#define MADERA_ADSP_ERROR_STATUS_DSP2_SHIFT 1 +#define MADERA_ADSP_ERROR_STATUS_DSP2_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP1 0x0001 +#define MADERA_ADSP_ERROR_STATUS_DSP1_MASK 0x0001 +#define MADERA_ADSP_ERROR_STATUS_DSP1_SHIFT 0 +#define MADERA_ADSP_ERROR_STATUS_DSP1_WIDTH 1 + +/* (0x1840) IRQ1_Mask_1 */ +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT1 0x8000 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT1_MASK 0x8000 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT1_SHIFT 15 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT1_WIDTH 1 +#define MADERA_IM_CTRLIF_ERR_EINT1 0x1000 +#define MADERA_IM_CTRLIF_ERR_EINT1_MASK 0x1000 +#define MADERA_IM_CTRLIF_ERR_EINT1_SHIFT 12 +#define MADERA_IM_CTRLIF_ERR_EINT1_WIDTH 1 +#define MADERA_IM_SYSCLK_FAIL_EINT1 0x0200 +#define MADERA_IM_SYSCLK_FAIL_EINT1_MASK 0x0200 +#define MADERA_IM_SYSCLK_FAIL_EINT1_SHIFT 9 +#define MADERA_IM_SYSCLK_FAIL_EINT1_WIDTH 1 +#define MADERA_IM_CLOCK_DETECT_EINT1 0x0100 +#define MADERA_IM_CLOCK_DETECT_EINT1_MASK 0x0100 +#define MADERA_IM_CLOCK_DETECT_EINT1_SHIFT 8 +#define MADERA_IM_CLOCK_DETECT_EINT1_WIDTH 1 +#define MADERA_IM_BOOT_DONE_EINT1 0x0080 +#define MADERA_IM_BOOT_DONE_EINT1_MASK 0x0080 +#define MADERA_IM_BOOT_DONE_EINT1_SHIFT 7 +#define MADERA_IM_BOOT_DONE_EINT1_WIDTH 1 + +/* (0x1841) IRQ1_Mask_2 */ +#define MADERA_IM_FLL3_LOCK_EINT1 0x0400 +#define MADERA_IM_FLL3_LOCK_EINT1_MASK 0x0400 +#define MADERA_IM_FLL3_LOCK_EINT1_SHIFT 10 +#define MADERA_IM_FLL3_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_FLL2_LOCK_EINT1 0x0200 +#define MADERA_IM_FLL2_LOCK_EINT1_MASK 0x0200 +#define MADERA_IM_FLL2_LOCK_EINT1_SHIFT 9 +#define MADERA_IM_FLL2_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_FLL1_LOCK_EINT1 0x0100 +#define MADERA_IM_FLL1_LOCK_EINT1_MASK 0x0100 +#define MADERA_IM_FLL1_LOCK_EINT1_SHIFT 8 +#define MADERA_IM_FLL1_LOCK_EINT1_WIDTH 1 + +/* (0x1845) IRQ1_Mask_6 */ +#define MADERA_IM_MICDET2_EINT1 0x0200 +#define MADERA_IM_MICDET2_EINT1_MASK 0x0200 +#define MADERA_IM_MICDET2_EINT1_SHIFT 9 +#define MADERA_IM_MICDET2_EINT1_WIDTH 1 +#define MADERA_IM_MICDET1_EINT1 0x0100 +#define MADERA_IM_MICDET1_EINT1_MASK 0x0100 +#define MADERA_IM_MICDET1_EINT1_SHIFT 8 +#define MADERA_IM_MICDET1_EINT1_WIDTH 1 +#define MADERA_IM_HPDET_EINT1 0x0001 +#define MADERA_IM_HPDET_EINT1_MASK 0x0001 +#define MADERA_IM_HPDET_EINT1_SHIFT 0 +#define MADERA_IM_HPDET_EINT1_WIDTH 1 + +/* (0x1846) IRQ1_Mask_7 */ +#define MADERA_IM_MICD_CLAMP_FALL_EINT1 0x0020 +#define MADERA_IM_MICD_CLAMP_FALL_EINT1_MASK 0x0020 +#define MADERA_IM_MICD_CLAMP_FALL_EINT1_SHIFT 5 +#define MADERA_IM_MICD_CLAMP_FALL_EINT1_WIDTH 1 +#define MADERA_IM_MICD_CLAMP_RISE_EINT1 0x0010 +#define MADERA_IM_MICD_CLAMP_RISE_EINT1_MASK 0x0010 +#define MADERA_IM_MICD_CLAMP_RISE_EINT1_SHIFT 4 +#define MADERA_IM_MICD_CLAMP_RISE_EINT1_WIDTH 1 +#define MADERA_IM_JD2_FALL_EINT1 0x0008 +#define MADERA_IM_JD2_FALL_EINT1_MASK 0x0008 +#define MADERA_IM_JD2_FALL_EINT1_SHIFT 3 +#define MADERA_IM_JD2_FALL_EINT1_WIDTH 1 +#define MADERA_IM_JD2_RISE_EINT1 0x0004 +#define MADERA_IM_JD2_RISE_EINT1_MASK 0x0004 +#define MADERA_IM_JD2_RISE_EINT1_SHIFT 2 +#define MADERA_IM_JD2_RISE_EINT1_WIDTH 1 +#define MADERA_IM_JD1_FALL_EINT1 0x0002 +#define MADERA_IM_JD1_FALL_EINT1_MASK 0x0002 +#define MADERA_IM_JD1_FALL_EINT1_SHIFT 1 +#define MADERA_IM_JD1_FALL_EINT1_WIDTH 1 +#define MADERA_IM_JD1_RISE_EINT1 0x0001 +#define MADERA_IM_JD1_RISE_EINT1_MASK 0x0001 +#define MADERA_IM_JD1_RISE_EINT1_SHIFT 0 +#define MADERA_IM_JD1_RISE_EINT1_WIDTH 1 + +/* (0x1848) IRQ1_Mask_9 */ +#define MADERA_IM_ASRC2_IN2_LOCK_EINT1 0x0800 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT1_MASK 0x0800 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT1_SHIFT 11 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT1 0x0400 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT1_MASK 0x0400 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT1_SHIFT 10 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT1 0x0200 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT1_MASK 0x0200 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT1_SHIFT 9 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT1 0x0100 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT1_MASK 0x0100 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT1_SHIFT 8 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_DRC2_SIG_DET_EINT1 0x0002 +#define MADERA_IM_DRC2_SIG_DET_EINT1_MASK 0x0002 +#define MADERA_IM_DRC2_SIG_DET_EINT1_SHIFT 1 +#define MADERA_IM_DRC2_SIG_DET_EINT1_WIDTH 1 +#define MADERA_IM_DRC1_SIG_DET_EINT1 0x0001 +#define MADERA_IM_DRC1_SIG_DET_EINT1_MASK 0x0001 +#define MADERA_IM_DRC1_SIG_DET_EINT1_SHIFT 0 +#define MADERA_IM_DRC1_SIG_DET_EINT1_WIDTH 1 + +/* (0x184A) IRQ1_Mask_11 */ +#define MADERA_IM_DSP_IRQ16_EINT1 0x8000 +#define MADERA_IM_DSP_IRQ16_EINT1_MASK 0x8000 +#define MADERA_IM_DSP_IRQ16_EINT1_SHIFT 15 +#define MADERA_IM_DSP_IRQ16_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ15_EINT1 0x4000 +#define MADERA_IM_DSP_IRQ15_EINT1_MASK 0x4000 +#define MADERA_IM_DSP_IRQ15_EINT1_SHIFT 14 +#define MADERA_IM_DSP_IRQ15_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ14_EINT1 0x2000 +#define MADERA_IM_DSP_IRQ14_EINT1_MASK 0x2000 +#define MADERA_IM_DSP_IRQ14_EINT1_SHIFT 13 +#define MADERA_IM_DSP_IRQ14_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ13_EINT1 0x1000 +#define MADERA_IM_DSP_IRQ13_EINT1_MASK 0x1000 +#define MADERA_IM_DSP_IRQ13_EINT1_SHIFT 12 +#define MADERA_IM_DSP_IRQ13_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ12_EINT1 0x0800 +#define MADERA_IM_DSP_IRQ12_EINT1_MASK 0x0800 +#define MADERA_IM_DSP_IRQ12_EINT1_SHIFT 11 +#define MADERA_IM_DSP_IRQ12_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ11_EINT1 0x0400 +#define MADERA_IM_DSP_IRQ11_EINT1_MASK 0x0400 +#define MADERA_IM_DSP_IRQ11_EINT1_SHIFT 10 +#define MADERA_IM_DSP_IRQ11_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ10_EINT1 0x0200 +#define MADERA_IM_DSP_IRQ10_EINT1_MASK 0x0200 +#define MADERA_IM_DSP_IRQ10_EINT1_SHIFT 9 +#define MADERA_IM_DSP_IRQ10_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ9_EINT1 0x0100 +#define MADERA_IM_DSP_IRQ9_EINT1_MASK 0x0100 +#define MADERA_IM_DSP_IRQ9_EINT1_SHIFT 8 +#define MADERA_IM_DSP_IRQ9_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ8_EINT1 0x0080 +#define MADERA_IM_DSP_IRQ8_EINT1_MASK 0x0080 +#define MADERA_IM_DSP_IRQ8_EINT1_SHIFT 7 +#define MADERA_IM_DSP_IRQ8_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ7_EINT1 0x0040 +#define MADERA_IM_DSP_IRQ7_EINT1_MASK 0x0040 +#define MADERA_IM_DSP_IRQ7_EINT1_SHIFT 6 +#define MADERA_IM_DSP_IRQ7_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ6_EINT1 0x0020 +#define MADERA_IM_DSP_IRQ6_EINT1_MASK 0x0020 +#define MADERA_IM_DSP_IRQ6_EINT1_SHIFT 5 +#define MADERA_IM_DSP_IRQ6_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ5_EINT1 0x0010 +#define MADERA_IM_DSP_IRQ5_EINT1_MASK 0x0010 +#define MADERA_IM_DSP_IRQ5_EINT1_SHIFT 4 +#define MADERA_IM_DSP_IRQ5_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ4_EINT1 0x0008 +#define MADERA_IM_DSP_IRQ4_EINT1_MASK 0x0008 +#define MADERA_IM_DSP_IRQ4_EINT1_SHIFT 3 +#define MADERA_IM_DSP_IRQ4_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ3_EINT1 0x0004 +#define MADERA_IM_DSP_IRQ3_EINT1_MASK 0x0004 +#define MADERA_IM_DSP_IRQ3_EINT1_SHIFT 2 +#define MADERA_IM_DSP_IRQ3_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ2_EINT1 0x0002 +#define MADERA_IM_DSP_IRQ2_EINT1_MASK 0x0002 +#define MADERA_IM_DSP_IRQ2_EINT1_SHIFT 1 +#define MADERA_IM_DSP_IRQ2_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ1_EINT1 0x0001 +#define MADERA_IM_DSP_IRQ1_EINT1_MASK 0x0001 +#define MADERA_IM_DSP_IRQ1_EINT1_SHIFT 0 +#define MADERA_IM_DSP_IRQ1_EINT1_WIDTH 1 + +/* (0x184B) IRQ1_Mask_12 */ +#define MADERA_IM_SPKOUTR_SC_EINT1 0x0080 +#define MADERA_IM_SPKOUTR_SC_EINT1_MASK 0x0080 +#define MADERA_IM_SPKOUTR_SC_EINT1_SHIFT 7 +#define MADERA_IM_SPKOUTR_SC_EINT1_WIDTH 1 +#define MADERA_IM_SPKOUTL_SC_EINT1 0x0040 +#define MADERA_IM_SPKOUTL_SC_EINT1_MASK 0x0040 +#define MADERA_IM_SPKOUTL_SC_EINT1_SHIFT 6 +#define MADERA_IM_SPKOUTL_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP3R_SC_EINT1 0x0020 +#define MADERA_IM_HP3R_SC_EINT1_MASK 0x0020 +#define MADERA_IM_HP3R_SC_EINT1_SHIFT 5 +#define MADERA_IM_HP3R_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP3L_SC_EINT1 0x0010 +#define MADERA_IM_HP3L_SC_EINT1_MASK 0x0010 +#define MADERA_IM_HP3L_SC_EINT1_SHIFT 4 +#define MADERA_IM_HP3L_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP2R_SC_EINT1 0x0008 +#define MADERA_IM_HP2R_SC_EINT1_MASK 0x0008 +#define MADERA_IM_HP2R_SC_EINT1_SHIFT 3 +#define MADERA_IM_HP2R_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP2L_SC_EINT1 0x0004 +#define MADERA_IM_HP2L_SC_EINT1_MASK 0x0004 +#define MADERA_IM_HP2L_SC_EINT1_SHIFT 2 +#define MADERA_IM_HP2L_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP1R_SC_EINT1 0x0002 +#define MADERA_IM_HP1R_SC_EINT1_MASK 0x0002 +#define MADERA_IM_HP1R_SC_EINT1_SHIFT 1 +#define MADERA_IM_HP1R_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP1L_SC_EINT1 0x0001 +#define MADERA_IM_HP1L_SC_EINT1_MASK 0x0001 +#define MADERA_IM_HP1L_SC_EINT1_SHIFT 0 +#define MADERA_IM_HP1L_SC_EINT1_WIDTH 1 + +/* (0x184C) IRQ1_Mask_13 */ +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT1 0x0080 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT1_MASK 0x0080 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT1_SHIFT 7 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT1 0x0040 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT1_MASK 0x0040 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT1_SHIFT 6 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT1 0x0020 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT1_MASK 0x0020 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT1_SHIFT 5 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT1 0x0010 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT1_MASK 0x0010 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT1_SHIFT 4 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT1 0x0008 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT1_MASK 0x0008 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT1_SHIFT 3 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT1 0x0004 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT1_MASK 0x0004 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT1_SHIFT 2 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT1 0x0002 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT1_MASK 0x0002 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT1_SHIFT 1 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT1 0x0001 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT1_MASK 0x0001 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT1_SHIFT 0 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT1_WIDTH 1 + +/* (0x184D) IRQ1_Mask_14 */ +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT1 0x0080 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT1_MASK 0x0080 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT1_SHIFT 7 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT1 0x0040 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT1_MASK 0x0040 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT1_SHIFT 6 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT1 0x0020 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT1_MASK 0x0020 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT1_SHIFT 5 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT1 0x0010 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT1_MASK 0x0010 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT1_SHIFT 4 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT1 0x0008 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT1_MASK 0x0008 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT1_SHIFT 3 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT1 0x0004 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT1_MASK 0x0004 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT1_SHIFT 2 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT1 0x0002 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT1_MASK 0x0002 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT1_SHIFT 1 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT1 0x0001 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT1_MASK 0x0001 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT1_SHIFT 0 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT1_WIDTH 1 + +/* (0x184E) IRQ1_Mask_15 */ +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT1 0x0004 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT1_MASK 0x0004 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT1_SHIFT 2 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT1_WIDTH 1 +#define MADERA_IM_SPK_OVERHEAT_EINT1 0x0002 +#define MADERA_IM_SPK_OVERHEAT_EINT1_MASK 0x0002 +#define MADERA_IM_SPK_OVERHEAT_EINT1_SHIFT 1 +#define MADERA_IM_SPK_OVERHEAT_EINT1_WIDTH 1 +#define MADERA_IM_SPK_SHUTDOWN_EINT1 0x0001 +#define MADERA_IM_SPK_SHUTDOWN_EINT1_MASK 0x0001 +#define MADERA_IM_SPK_SHUTDOWN_EINT1_SHIFT 0 +#define MADERA_IM_SPK_SHUTDOWN_EINT1_WIDTH 1 + +/* (0x1880) - IRQ1 Raw Status 1 */ +#define MADERA_DSP_SHARED_WR_COLL_STS1 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_STS1_MASK 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_STS1_SHIFT 15 +#define MADERA_DSP_SHARED_WR_COLL_STS1_WIDTH 1 +#define MADERA_CTRLIF_ERR_STS1 0x1000 +#define MADERA_CTRLIF_ERR_STS1_MASK 0x1000 +#define MADERA_CTRLIF_ERR_STS1_SHIFT 12 +#define MADERA_CTRLIF_ERR_STS1_WIDTH 1 +#define MADERA_SYSCLK_FAIL_STS1 0x0200 +#define MADERA_SYSCLK_FAIL_STS1_MASK 0x0200 +#define MADERA_SYSCLK_FAIL_STS1_SHIFT 9 +#define MADERA_SYSCLK_FAIL_STS1_WIDTH 1 +#define MADERA_CLOCK_DETECT_STS1 0x0100 +#define MADERA_CLOCK_DETECT_STS1_MASK 0x0100 +#define MADERA_CLOCK_DETECT_STS1_SHIFT 8 +#define MADERA_CLOCK_DETECT_STS1_WIDTH 1 +#define MADERA_BOOT_DONE_STS1 0x0080 +#define MADERA_BOOT_DONE_STS1_MASK 0x0080 +#define MADERA_BOOT_DONE_STS1_SHIFT 7 +#define MADERA_BOOT_DONE_STS1_WIDTH 1 + +/* (0x1881) - IRQ1 Raw Status 2 */ +#define MADERA_FLL3_LOCK_STS1 0x0400 +#define MADERA_FLL3_LOCK_STS1_MASK 0x0400 +#define MADERA_FLL3_LOCK_STS1_SHIFT 10 +#define MADERA_FLL3_LOCK_STS1_WIDTH 1 +#define MADERA_FLL2_LOCK_STS1 0x0200 +#define MADERA_FLL2_LOCK_STS1_MASK 0x0200 +#define MADERA_FLL2_LOCK_STS1_SHIFT 9 +#define MADERA_FLL2_LOCK_STS1_WIDTH 1 +#define MADERA_FLL1_LOCK_STS1 0x0100 +#define MADERA_FLL1_LOCK_STS1_MASK 0x0100 +#define MADERA_FLL1_LOCK_STS1_SHIFT 8 +#define MADERA_FLL1_LOCK_STS1_WIDTH 1 + +/* (0x1886) - IRQ1 Raw Status 7 */ +#define MADERA_MICD_CLAMP_FALL_STS1 0x0020 +#define MADERA_MICD_CLAMP_FALL_STS1_MASK 0x0020 +#define MADERA_MICD_CLAMP_FALL_STS1_SHIFT 5 +#define MADERA_MICD_CLAMP_FALL_STS1_WIDTH 1 +#define MADERA_MICD_CLAMP_RISE_STS1 0x0010 +#define MADERA_MICD_CLAMP_RISE_STS1_MASK 0x0010 +#define MADERA_MICD_CLAMP_RISE_STS1_SHIFT 4 +#define MADERA_MICD_CLAMP_RISE_STS1_WIDTH 1 +#define MADERA_JD2_FALL_STS1 0x0008 +#define MADERA_JD2_FALL_STS1_MASK 0x0008 +#define MADERA_JD2_FALL_STS1_SHIFT 3 +#define MADERA_JD2_FALL_STS1_WIDTH 1 +#define MADERA_JD2_RISE_STS1 0x0004 +#define MADERA_JD2_RISE_STS1_MASK 0x0004 +#define MADERA_JD2_RISE_STS1_SHIFT 2 +#define MADERA_JD2_RISE_STS1_WIDTH 1 +#define MADERA_JD1_FALL_STS1 0x0002 +#define MADERA_JD1_FALL_STS1_MASK 0x0002 +#define MADERA_JD1_FALL_STS1_SHIFT 1 +#define MADERA_JD1_FALL_STS1_WIDTH 1 +#define MADERA_JD1_RISE_STS1 0x0001 +#define MADERA_JD1_RISE_STS1_MASK 0x0001 +#define MADERA_JD1_RISE_STS1_SHIFT 0 +#define MADERA_JD1_RISE_STS1_WIDTH 1 + +/* (0x1888) - IRQ1 Raw Status 9 */ +#define MADERA_ASRC2_IN2_LOCK_STS1 0x0800 +#define MADERA_ASRC2_IN2_LOCK_STS1_MASK 0x0800 +#define MADERA_ASRC2_IN2_LOCK_STS1_SHIFT 11 +#define MADERA_ASRC2_IN2_LOCK_STS1_WIDTH 1 +#define MADERA_ASRC2_IN1_LOCK_STS1 0x0400 +#define MADERA_ASRC2_IN1_LOCK_STS1_MASK 0x0400 +#define MADERA_ASRC2_IN1_LOCK_STS1_SHIFT 10 +#define MADERA_ASRC2_IN1_LOCK_STS1_WIDTH 1 +#define MADERA_ASRC1_IN2_LOCK_STS1 0x0200 +#define MADERA_ASRC1_IN2_LOCK_STS1_MASK 0x0200 +#define MADERA_ASRC1_IN2_LOCK_STS1_SHIFT 9 +#define MADERA_ASRC1_IN2_LOCK_STS1_WIDTH 1 +#define MADERA_ASRC1_IN1_LOCK_STS1 0x0100 +#define MADERA_ASRC1_IN1_LOCK_STS1_MASK 0x0100 +#define MADERA_ASRC1_IN1_LOCK_STS1_SHIFT 8 +#define MADERA_ASRC1_IN1_LOCK_STS1_WIDTH 1 +#define MADERA_DRC2_SIG_DET_STS1 0x0002 +#define MADERA_DRC2_SIG_DET_STS1_MASK 0x0002 +#define MADERA_DRC2_SIG_DET_STS1_SHIFT 1 +#define MADERA_DRC2_SIG_DET_STS1_WIDTH 1 +#define MADERA_DRC1_SIG_DET_STS1 0x0001 +#define MADERA_DRC1_SIG_DET_STS1_MASK 0x0001 +#define MADERA_DRC1_SIG_DET_STS1_SHIFT 0 +#define MADERA_DRC1_SIG_DET_STS1_WIDTH 1 + +/* (0x188A) - IRQ1 Raw Status 11 */ +#define MADERA_DSP_IRQ16_STS1 0x8000 +#define MADERA_DSP_IRQ16_STS1_MASK 0x8000 +#define MADERA_DSP_IRQ16_STS1_SHIFT 15 +#define MADERA_DSP_IRQ16_STS1_WIDTH 1 +#define MADERA_DSP_IRQ15_STS1 0x4000 +#define MADERA_DSP_IRQ15_STS1_MASK 0x4000 +#define MADERA_DSP_IRQ15_STS1_SHIFT 14 +#define MADERA_DSP_IRQ15_STS1_WIDTH 1 +#define MADERA_DSP_IRQ14_STS1 0x2000 +#define MADERA_DSP_IRQ14_STS1_MASK 0x2000 +#define MADERA_DSP_IRQ14_STS1_SHIFT 13 +#define MADERA_DSP_IRQ14_STS1_WIDTH 1 +#define MADERA_DSP_IRQ13_STS1 0x1000 +#define MADERA_DSP_IRQ13_STS1_MASK 0x1000 +#define MADERA_DSP_IRQ13_STS1_SHIFT 12 +#define MADERA_DSP_IRQ13_STS1_WIDTH 1 +#define MADERA_DSP_IRQ12_STS1 0x0800 +#define MADERA_DSP_IRQ12_STS1_MASK 0x0800 +#define MADERA_DSP_IRQ12_STS1_SHIFT 11 +#define MADERA_DSP_IRQ12_STS1_WIDTH 1 +#define MADERA_DSP_IRQ11_STS1 0x0400 +#define MADERA_DSP_IRQ11_STS1_MASK 0x0400 +#define MADERA_DSP_IRQ11_STS1_SHIFT 10 +#define MADERA_DSP_IRQ11_STS1_WIDTH 1 +#define MADERA_DSP_IRQ10_STS1 0x0200 +#define MADERA_DSP_IRQ10_STS1_MASK 0x0200 +#define MADERA_DSP_IRQ10_STS1_SHIFT 9 +#define MADERA_DSP_IRQ10_STS1_WIDTH 1 +#define MADERA_DSP_IRQ9_STS1 0x0100 +#define MADERA_DSP_IRQ9_STS1_MASK 0x0100 +#define MADERA_DSP_IRQ9_STS1_SHIFT 8 +#define MADERA_DSP_IRQ9_STS1_WIDTH 1 +#define MADERA_DSP_IRQ8_STS1 0x0080 +#define MADERA_DSP_IRQ8_STS1_MASK 0x0080 +#define MADERA_DSP_IRQ8_STS1_SHIFT 7 +#define MADERA_DSP_IRQ8_STS1_WIDTH 1 +#define MADERA_DSP_IRQ7_STS1 0x0040 +#define MADERA_DSP_IRQ7_STS1_MASK 0x0040 +#define MADERA_DSP_IRQ7_STS1_SHIFT 6 +#define MADERA_DSP_IRQ7_STS1_WIDTH 1 +#define MADERA_DSP_IRQ6_STS1 0x0020 +#define MADERA_DSP_IRQ6_STS1_MASK 0x0020 +#define MADERA_DSP_IRQ6_STS1_SHIFT 5 +#define MADERA_DSP_IRQ6_STS1_WIDTH 1 +#define MADERA_DSP_IRQ5_STS1 0x0010 +#define MADERA_DSP_IRQ5_STS1_MASK 0x0010 +#define MADERA_DSP_IRQ5_STS1_SHIFT 4 +#define MADERA_DSP_IRQ5_STS1_WIDTH 1 +#define MADERA_DSP_IRQ4_STS1 0x0008 +#define MADERA_DSP_IRQ4_STS1_MASK 0x0008 +#define MADERA_DSP_IRQ4_STS1_SHIFT 3 +#define MADERA_DSP_IRQ4_STS1_WIDTH 1 +#define MADERA_DSP_IRQ3_STS1 0x0004 +#define MADERA_DSP_IRQ3_STS1_MASK 0x0004 +#define MADERA_DSP_IRQ3_STS1_SHIFT 2 +#define MADERA_DSP_IRQ3_STS1_WIDTH 1 +#define MADERA_DSP_IRQ2_STS1 0x0002 +#define MADERA_DSP_IRQ2_STS1_MASK 0x0002 +#define MADERA_DSP_IRQ2_STS1_SHIFT 1 +#define MADERA_DSP_IRQ2_STS1_WIDTH 1 +#define MADERA_DSP_IRQ1_STS1 0x0001 +#define MADERA_DSP_IRQ1_STS1_MASK 0x0001 +#define MADERA_DSP_IRQ1_STS1_SHIFT 0 +#define MADERA_DSP_IRQ1_STS1_WIDTH 1 + +/* (0x188B) - IRQ1 Raw Status 12 */ +#define MADERA_SPKOUTR_SC_STS1 0x0080 +#define MADERA_SPKOUTR_SC_STS1_MASK 0x0080 +#define MADERA_SPKOUTR_SC_STS1_SHIFT 7 +#define MADERA_SPKOUTR_SC_STS1_WIDTH 1 +#define MADERA_SPKOUTL_SC_STS1 0x0040 +#define MADERA_SPKOUTL_SC_STS1_MASK 0x0040 +#define MADERA_SPKOUTL_SC_STS1_SHIFT 6 +#define MADERA_SPKOUTL_SC_STS1_WIDTH 1 +#define MADERA_HP3R_SC_STS1 0x0020 +#define MADERA_HP3R_SC_STS1_MASK 0x0020 +#define MADERA_HP3R_SC_STS1_SHIFT 5 +#define MADERA_HP3R_SC_STS1_WIDTH 1 +#define MADERA_HP3L_SC_STS1 0x0010 +#define MADERA_HP3L_SC_STS1_MASK 0x0010 +#define MADERA_HP3L_SC_STS1_SHIFT 4 +#define MADERA_HP3L_SC_STS1_WIDTH 1 +#define MADERA_HP2R_SC_STS1 0x0008 +#define MADERA_HP2R_SC_STS1_MASK 0x0008 +#define MADERA_HP2R_SC_STS1_SHIFT 3 +#define MADERA_HP2R_SC_STS1_WIDTH 1 +#define MADERA_HP2L_SC_STS1 0x0004 +#define MADERA_HP2L_SC_STS1_MASK 0x0004 +#define MADERA_HP2L_SC_STS1_SHIFT 2 +#define MADERA_HP2L_SC_STS1_WIDTH 1 +#define MADERA_HP1R_SC_STS1 0x0002 +#define MADERA_HP1R_SC_STS1_MASK 0x0002 +#define MADERA_HP1R_SC_STS1_SHIFT 1 +#define MADERA_HP1R_SC_STS1_WIDTH 1 +#define MADERA_HP1L_SC_STS1 0x0001 +#define MADERA_HP1L_SC_STS1_MASK 0x0001 +#define MADERA_HP1L_SC_STS1_SHIFT 0 +#define MADERA_HP1L_SC_STS1_WIDTH 1 + +/* (0x188C) - IRQ1 Raw Status 13 */ +#define MADERA_SPKOUTR_ENABLE_DONE_STS1 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_STS1_MASK 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_STS1_SHIFT 7 +#define MADERA_SPKOUTR_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_SPKOUTL_ENABLE_DONE_STS1 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_STS1_MASK 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_STS1_SHIFT 6 +#define MADERA_SPKOUTL_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP3R_ENABLE_DONE_STS1 0x0020 +#define MADERA_HP3R_ENABLE_DONE_STS1_MASK 0x0020 +#define MADERA_HP3R_ENABLE_DONE_STS1_SHIFT 5 +#define MADERA_HP3R_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP3L_ENABLE_DONE_STS1 0x0010 +#define MADERA_HP3L_ENABLE_DONE_STS1_MASK 0x0010 +#define MADERA_HP3L_ENABLE_DONE_STS1_SHIFT 4 +#define MADERA_HP3L_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP2R_ENABLE_DONE_STS1 0x0008 +#define MADERA_HP2R_ENABLE_DONE_STS1_MASK 0x0008 +#define MADERA_HP2R_ENABLE_DONE_STS1_SHIFT 3 +#define MADERA_HP2R_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP2L_ENABLE_DONE_STS1 0x0004 +#define MADERA_HP2L_ENABLE_DONE_STS1_MASK 0x0004 +#define MADERA_HP2L_ENABLE_DONE_STS1_SHIFT 2 +#define MADERA_HP2L_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP1R_ENABLE_DONE_STS1 0x0002 +#define MADERA_HP1R_ENABLE_DONE_STS1_MASK 0x0002 +#define MADERA_HP1R_ENABLE_DONE_STS1_SHIFT 1 +#define MADERA_HP1R_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP1L_ENABLE_DONE_STS1 0x0001 +#define MADERA_HP1L_ENABLE_DONE_STS1_MASK 0x0001 +#define MADERA_HP1L_ENABLE_DONE_STS1_SHIFT 0 +#define MADERA_HP1L_ENABLE_DONE_STS1_WIDTH 1 + +/* (0x188D) - IRQ1 Raw Status 14 */ +#define MADERA_SPKOUTR_DISABLE_DONE_STS1 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_STS1_MASK 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_STS1_SHIFT 7 +#define MADERA_SPKOUTR_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_SPKOUTL_DISABLE_DONE_STS1 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_STS1_MASK 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_STS1_SHIFT 6 +#define MADERA_SPKOUTL_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP3R_DISABLE_DONE_STS1 0x0020 +#define MADERA_HP3R_DISABLE_DONE_STS1_MASK 0x0020 +#define MADERA_HP3R_DISABLE_DONE_STS1_SHIFT 5 +#define MADERA_HP3R_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP3L_DISABLE_DONE_STS1 0x0010 +#define MADERA_HP3L_DISABLE_DONE_STS1_MASK 0x0010 +#define MADERA_HP3L_DISABLE_DONE_STS1_SHIFT 4 +#define MADERA_HP3L_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP2R_DISABLE_DONE_STS1 0x0008 +#define MADERA_HP2R_DISABLE_DONE_STS1_MASK 0x0008 +#define MADERA_HP2R_DISABLE_DONE_STS1_SHIFT 3 +#define MADERA_HP2R_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP2L_DISABLE_DONE_STS1 0x0004 +#define MADERA_HP2L_DISABLE_DONE_STS1_MASK 0x0004 +#define MADERA_HP2L_DISABLE_DONE_STS1_SHIFT 2 +#define MADERA_HP2L_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP1R_DISABLE_DONE_STS1 0x0002 +#define MADERA_HP1R_DISABLE_DONE_STS1_MASK 0x0002 +#define MADERA_HP1R_DISABLE_DONE_STS1_SHIFT 1 +#define MADERA_HP1R_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP1L_DISABLE_DONE_STS1 0x0001 +#define MADERA_HP1L_DISABLE_DONE_STS1_MASK 0x0001 +#define MADERA_HP1L_DISABLE_DONE_STS1_SHIFT 0 +#define MADERA_HP1L_DISABLE_DONE_STS1_WIDTH 1 + +/* (0x188E) - IRQ1 Raw Status 15 */ +#define MADERA_SPK_OVERHEAT_WARN_STS1 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_STS1_MASK 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_STS1_SHIFT 2 +#define MADERA_SPK_OVERHEAT_WARN_STS1_WIDTH 1 +#define MADERA_SPK_OVERHEAT_STS1 0x0002 +#define MADERA_SPK_OVERHEAT_STS1_MASK 0x0002 +#define MADERA_SPK_OVERHEAT_STS1_SHIFT 1 +#define MADERA_SPK_OVERHEAT_STS1_WIDTH 1 +#define MADERA_SPK_SHUTDOWN_STS1 0x0001 +#define MADERA_SPK_SHUTDOWN_STS1_MASK 0x0001 +#define MADERA_SPK_SHUTDOWN_STS1_SHIFT 0 +#define MADERA_SPK_SHUTDOWN_STS1_WIDTH 1 + +/* (0x1900) IRQ2_Status_1 */ +#define MADERA_DSP_SHARED_WR_COLL_EINT2 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_EINT2_MASK 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_EINT2_SHIFT 15 +#define MADERA_DSP_SHARED_WR_COLL_EINT2_WIDTH 1 +#define MADERA_CTRLIF_ERR_EINT2 0x1000 +#define MADERA_CTRLIF_ERR_EINT2_MASK 0x1000 +#define MADERA_CTRLIF_ERR_EINT2_SHIFT 12 +#define MADERA_CTRLIF_ERR_EINT2_WIDTH 1 +#define MADERA_SYSCLK_FAIL_EINT2 0x0200 +#define MADERA_SYSCLK_FAIL_EINT2_MASK 0x0200 +#define MADERA_SYSCLK_FAIL_EINT2_SHIFT 9 +#define MADERA_SYSCLK_FAIL_EINT2_WIDTH 1 +#define MADERA_CLOCK_DETECT_EINT2 0x0100 +#define MADERA_CLOCK_DETECT_EINT2_MASK 0x0100 +#define MADERA_CLOCK_DETECT_EINT2_SHIFT 8 +#define MADERA_CLOCK_DETECT_EINT2_WIDTH 1 +#define MADERA_BOOT_DONE_EINT2 0x0080 +#define MADERA_BOOT_DONE_EINT2_MASK 0x0080 +#define MADERA_BOOT_DONE_EINT2_SHIFT 7 +#define MADERA_BOOT_DONE_EINT2_WIDTH 1 + +/* (0x1901) IRQ2_Status_2 */ +#define MADERA_FLL3_LOCK_EINT2 0x0400 +#define MADERA_FLL3_LOCK_EINT2_MASK 0x0400 +#define MADERA_FLL3_LOCK_EINT2_SHIFT 10 +#define MADERA_FLL3_LOCK_EINT2_WIDTH 1 +#define MADERA_FLL2_LOCK_EINT2 0x0200 +#define MADERA_FLL2_LOCK_EINT2_MASK 0x0200 +#define MADERA_FLL2_LOCK_EINT2_SHIFT 9 +#define MADERA_FLL2_LOCK_EINT2_WIDTH 1 +#define MADERA_FLL1_LOCK_EINT2 0x0100 +#define MADERA_FLL1_LOCK_EINT2_MASK 0x0100 +#define MADERA_FLL1_LOCK_EINT2_SHIFT 8 +#define MADERA_FLL1_LOCK_EINT2_WIDTH 1 + +/* (0x1905) IRQ2_Status_6 */ +#define MADERA_MICDET2_EINT2 0x0200 +#define MADERA_MICDET2_EINT2_MASK 0x0200 +#define MADERA_MICDET2_EINT2_SHIFT 9 +#define MADERA_MICDET2_EINT2_WIDTH 1 +#define MADERA_MICDET1_EINT2 0x0100 +#define MADERA_MICDET1_EINT2_MASK 0x0100 +#define MADERA_MICDET1_EINT2_SHIFT 8 +#define MADERA_MICDET1_EINT2_WIDTH 1 +#define MADERA_HPDET_EINT2 0x0001 +#define MADERA_HPDET_EINT2_MASK 0x0001 +#define MADERA_HPDET_EINT2_SHIFT 0 +#define MADERA_HPDET_EINT2_WIDTH 1 + +/* (0x1906) IRQ2_Status_7 */ +#define MADERA_MICD_CLAMP_FALL_EINT2 0x0020 +#define MADERA_MICD_CLAMP_FALL_EINT2_MASK 0x0020 +#define MADERA_MICD_CLAMP_FALL_EINT2_SHIFT 5 +#define MADERA_MICD_CLAMP_FALL_EINT2_WIDTH 1 +#define MADERA_MICD_CLAMP_RISE_EINT2 0x0010 +#define MADERA_MICD_CLAMP_RISE_EINT2_MASK 0x0010 +#define MADERA_MICD_CLAMP_RISE_EINT2_SHIFT 4 +#define MADERA_MICD_CLAMP_RISE_EINT2_WIDTH 1 +#define MADERA_JD2_FALL_EINT2 0x0008 +#define MADERA_JD2_FALL_EINT2_MASK 0x0008 +#define MADERA_JD2_FALL_EINT2_SHIFT 3 +#define MADERA_JD2_FALL_EINT2_WIDTH 1 +#define MADERA_JD2_RISE_EINT2 0x0004 +#define MADERA_JD2_RISE_EINT2_MASK 0x0004 +#define MADERA_JD2_RISE_EINT2_SHIFT 2 +#define MADERA_JD2_RISE_EINT2_WIDTH 1 +#define MADERA_JD1_FALL_EINT2 0x0002 +#define MADERA_JD1_FALL_EINT2_MASK 0x0002 +#define MADERA_JD1_FALL_EINT2_SHIFT 1 +#define MADERA_JD1_FALL_EINT2_WIDTH 1 +#define MADERA_JD1_RISE_EINT2 0x0001 +#define MADERA_JD1_RISE_EINT2_MASK 0x0001 +#define MADERA_JD1_RISE_EINT2_SHIFT 0 +#define MADERA_JD1_RISE_EINT2_WIDTH 1 + +/* (0x1908) IRQ2_Status_9 */ +#define MADERA_ASRC2_IN2_LOCK_EINT2 0x0800 +#define MADERA_ASRC2_IN2_LOCK_EINT2_MASK 0x0800 +#define MADERA_ASRC2_IN2_LOCK_EINT2_SHIFT 11 +#define MADERA_ASRC2_IN2_LOCK_EINT2_WIDTH 1 +#define MADERA_ASRC2_IN1_LOCK_EINT2 0x0400 +#define MADERA_ASRC2_IN1_LOCK_EINT2_MASK 0x0400 +#define MADERA_ASRC2_IN1_LOCK_EINT2_SHIFT 10 +#define MADERA_ASRC2_IN1_LOCK_EINT2_WIDTH 1 +#define MADERA_ASRC1_IN2_LOCK_EINT2 0x0200 +#define MADERA_ASRC1_IN2_LOCK_EINT2_MASK 0x0200 +#define MADERA_ASRC1_IN2_LOCK_EINT2_SHIFT 9 +#define MADERA_ASRC1_IN2_LOCK_EINT2_WIDTH 1 +#define MADERA_ASRC1_IN1_LOCK_EINT2 0x0100 +#define MADERA_ASRC1_IN1_LOCK_EINT2_MASK 0x0100 +#define MADERA_ASRC1_IN1_LOCK_EINT2_SHIFT 8 +#define MADERA_ASRC1_IN1_LOCK_EINT2_WIDTH 1 +#define MADERA_DRC2_SIG_DET_EINT2 0x0002 +#define MADERA_DRC2_SIG_DET_EINT2_MASK 0x0002 +#define MADERA_DRC2_SIG_DET_EINT2_SHIFT 1 +#define MADERA_DRC2_SIG_DET_EINT2_WIDTH 1 +#define MADERA_DRC1_SIG_DET_EINT2 0x0001 +#define MADERA_DRC1_SIG_DET_EINT2_MASK 0x0001 +#define MADERA_DRC1_SIG_DET_EINT2_SHIFT 0 +#define MADERA_DRC1_SIG_DET_EINT2_WIDTH 1 + +/* (0x190A) IRQ2_Status_11 */ +#define MADERA_DSP_IRQ16_EINT2 0x8000 +#define MADERA_DSP_IRQ16_EINT2_MASK 0x8000 +#define MADERA_DSP_IRQ16_EINT2_SHIFT 15 +#define MADERA_DSP_IRQ16_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ15_EINT2 0x4000 +#define MADERA_DSP_IRQ15_EINT2_MASK 0x4000 +#define MADERA_DSP_IRQ15_EINT2_SHIFT 14 +#define MADERA_DSP_IRQ15_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ14_EINT2 0x2000 +#define MADERA_DSP_IRQ14_EINT2_MASK 0x2000 +#define MADERA_DSP_IRQ14_EINT2_SHIFT 13 +#define MADERA_DSP_IRQ14_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ13_EINT2 0x1000 +#define MADERA_DSP_IRQ13_EINT2_MASK 0x1000 +#define MADERA_DSP_IRQ13_EINT2_SHIFT 12 +#define MADERA_DSP_IRQ13_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ12_EINT2 0x0800 +#define MADERA_DSP_IRQ12_EINT2_MASK 0x0800 +#define MADERA_DSP_IRQ12_EINT2_SHIFT 11 +#define MADERA_DSP_IRQ12_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ11_EINT2 0x0400 +#define MADERA_DSP_IRQ11_EINT2_MASK 0x0400 +#define MADERA_DSP_IRQ11_EINT2_SHIFT 10 +#define MADERA_DSP_IRQ11_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ10_EINT2 0x0200 +#define MADERA_DSP_IRQ10_EINT2_MASK 0x0200 +#define MADERA_DSP_IRQ10_EINT2_SHIFT 9 +#define MADERA_DSP_IRQ10_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ9_EINT2 0x0100 +#define MADERA_DSP_IRQ9_EINT2_MASK 0x0100 +#define MADERA_DSP_IRQ9_EINT2_SHIFT 8 +#define MADERA_DSP_IRQ9_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ8_EINT2 0x0080 +#define MADERA_DSP_IRQ8_EINT2_MASK 0x0080 +#define MADERA_DSP_IRQ8_EINT2_SHIFT 7 +#define MADERA_DSP_IRQ8_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ7_EINT2 0x0040 +#define MADERA_DSP_IRQ7_EINT2_MASK 0x0040 +#define MADERA_DSP_IRQ7_EINT2_SHIFT 6 +#define MADERA_DSP_IRQ7_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ6_EINT2 0x0020 +#define MADERA_DSP_IRQ6_EINT2_MASK 0x0020 +#define MADERA_DSP_IRQ6_EINT2_SHIFT 5 +#define MADERA_DSP_IRQ6_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ5_EINT2 0x0010 +#define MADERA_DSP_IRQ5_EINT2_MASK 0x0010 +#define MADERA_DSP_IRQ5_EINT2_SHIFT 4 +#define MADERA_DSP_IRQ5_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ4_EINT2 0x0008 +#define MADERA_DSP_IRQ4_EINT2_MASK 0x0008 +#define MADERA_DSP_IRQ4_EINT2_SHIFT 3 +#define MADERA_DSP_IRQ4_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ3_EINT2 0x0004 +#define MADERA_DSP_IRQ3_EINT2_MASK 0x0004 +#define MADERA_DSP_IRQ3_EINT2_SHIFT 2 +#define MADERA_DSP_IRQ3_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ2_EINT2 0x0002 +#define MADERA_DSP_IRQ2_EINT2_MASK 0x0002 +#define MADERA_DSP_IRQ2_EINT2_SHIFT 1 +#define MADERA_DSP_IRQ2_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ1_EINT2 0x0001 +#define MADERA_DSP_IRQ1_EINT2_MASK 0x0001 +#define MADERA_DSP_IRQ1_EINT2_SHIFT 0 +#define MADERA_DSP_IRQ1_EINT2_WIDTH 1 + +/* (0x190B) IRQ2_Status_12 */ +#define MADERA_SPKOUTR_SC_EINT2 0x0080 +#define MADERA_SPKOUTR_SC_EINT2_MASK 0x0080 +#define MADERA_SPKOUTR_SC_EINT2_SHIFT 7 +#define MADERA_SPKOUTR_SC_EINT2_WIDTH 1 +#define MADERA_SPKOUTL_SC_EINT2 0x0040 +#define MADERA_SPKOUTL_SC_EINT2_MASK 0x0040 +#define MADERA_SPKOUTL_SC_EINT2_SHIFT 6 +#define MADERA_SPKOUTL_SC_EINT2_WIDTH 1 +#define MADERA_HP3R_SC_EINT2 0x0020 +#define MADERA_HP3R_SC_EINT2_MASK 0x0020 +#define MADERA_HP3R_SC_EINT2_SHIFT 5 +#define MADERA_HP3R_SC_EINT2_WIDTH 1 +#define MADERA_HP3L_SC_EINT2 0x0010 +#define MADERA_HP3L_SC_EINT2_MASK 0x0010 +#define MADERA_HP3L_SC_EINT2_SHIFT 4 +#define MADERA_HP3L_SC_EINT2_WIDTH 1 +#define MADERA_HP2R_SC_EINT2 0x0008 +#define MADERA_HP2R_SC_EINT2_MASK 0x0008 +#define MADERA_HP2R_SC_EINT2_SHIFT 3 +#define MADERA_HP2R_SC_EINT2_WIDTH 1 +#define MADERA_HP2L_SC_EINT2 0x0004 +#define MADERA_HP2L_SC_EINT2_MASK 0x0004 +#define MADERA_HP2L_SC_EINT2_SHIFT 2 +#define MADERA_HP2L_SC_EINT2_WIDTH 1 +#define MADERA_HP1R_SC_EINT2 0x0002 +#define MADERA_HP1R_SC_EINT2_MASK 0x0002 +#define MADERA_HP1R_SC_EINT2_SHIFT 1 +#define MADERA_HP1R_SC_EINT2_WIDTH 1 +#define MADERA_HP1L_SC_EINT2 0x0001 +#define MADERA_HP1L_SC_EINT2_MASK 0x0001 +#define MADERA_HP1L_SC_EINT2_SHIFT 0 +#define MADERA_HP1L_SC_EINT2_WIDTH 1 + +/* (0x190C) IRQ2_Status_13 */ +#define MADERA_SPKOUTR_ENABLE_DONE_EINT2 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT2_MASK 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT2_SHIFT 7 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT2 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT2_MASK 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT2_SHIFT 6 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP3R_ENABLE_DONE_EINT2 0x0020 +#define MADERA_HP3R_ENABLE_DONE_EINT2_MASK 0x0020 +#define MADERA_HP3R_ENABLE_DONE_EINT2_SHIFT 5 +#define MADERA_HP3R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP3L_ENABLE_DONE_EINT2 0x0010 +#define MADERA_HP3L_ENABLE_DONE_EINT2_MASK 0x0010 +#define MADERA_HP3L_ENABLE_DONE_EINT2_SHIFT 4 +#define MADERA_HP3L_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP2R_ENABLE_DONE_EINT2 0x0008 +#define MADERA_HP2R_ENABLE_DONE_EINT2_MASK 0x0008 +#define MADERA_HP2R_ENABLE_DONE_EINT2_SHIFT 3 +#define MADERA_HP2R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP2L_ENABLE_DONE_EINT2 0x0004 +#define MADERA_HP2L_ENABLE_DONE_EINT2_MASK 0x0004 +#define MADERA_HP2L_ENABLE_DONE_EINT2_SHIFT 2 +#define MADERA_HP2L_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP1R_ENABLE_DONE_EINT2 0x0002 +#define MADERA_HP1R_ENABLE_DONE_EINT2_MASK 0x0002 +#define MADERA_HP1R_ENABLE_DONE_EINT2_SHIFT 1 +#define MADERA_HP1R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP1L_ENABLE_DONE_EINT2 0x0001 +#define MADERA_HP1L_ENABLE_DONE_EINT2_MASK 0x0001 +#define MADERA_HP1L_ENABLE_DONE_EINT2_SHIFT 0 +#define MADERA_HP1L_ENABLE_DONE_EINT2_WIDTH 1 + +/* (0x190D) IRQ2_Status_14 */ +#define MADERA_SPKOUTR_DISABLE_DONE_EINT2 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT2_MASK 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT2_SHIFT 7 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT2 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT2_MASK 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT2_SHIFT 6 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP3R_DISABLE_DONE_EINT2 0x0020 +#define MADERA_HP3R_DISABLE_DONE_EINT2_MASK 0x0020 +#define MADERA_HP3R_DISABLE_DONE_EINT2_SHIFT 5 +#define MADERA_HP3R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP3L_DISABLE_DONE_EINT2 0x0010 +#define MADERA_HP3L_DISABLE_DONE_EINT2_MASK 0x0010 +#define MADERA_HP3L_DISABLE_DONE_EINT2_SHIFT 4 +#define MADERA_HP3L_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP2R_DISABLE_DONE_EINT2 0x0008 +#define MADERA_HP2R_DISABLE_DONE_EINT2_MASK 0x0008 +#define MADERA_HP2R_DISABLE_DONE_EINT2_SHIFT 3 +#define MADERA_HP2R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP2L_DISABLE_DONE_EINT2 0x0004 +#define MADERA_HP2L_DISABLE_DONE_EINT2_MASK 0x0004 +#define MADERA_HP2L_DISABLE_DONE_EINT2_SHIFT 2 +#define MADERA_HP2L_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP1R_DISABLE_DONE_EINT2 0x0002 +#define MADERA_HP1R_DISABLE_DONE_EINT2_MASK 0x0002 +#define MADERA_HP1R_DISABLE_DONE_EINT2_SHIFT 1 +#define MADERA_HP1R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP1L_DISABLE_DONE_EINT2 0x0001 +#define MADERA_HP1L_DISABLE_DONE_EINT2_MASK 0x0001 +#define MADERA_HP1L_DISABLE_DONE_EINT2_SHIFT 0 +#define MADERA_HP1L_DISABLE_DONE_EINT2_WIDTH 1 + +/* (0x190E) IRQ2_Status_15 */ +#define MADERA_SPK_OVERHEAT_WARN_EINT2 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_EINT2_MASK 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_EINT2_SHIFT 2 +#define MADERA_SPK_OVERHEAT_WARN_EINT2_WIDTH 1 +#define MADERA_SPK_OVERHEAT_EINT2 0x0002 +#define MADERA_SPK_OVERHEAT_EINT2_MASK 0x0002 +#define MADERA_SPK_OVERHEAT_EINT2_SHIFT 1 +#define MADERA_SPK_OVERHEAT_EINT2_WIDTH 1 +#define MADERA_SPK_SHUTDOWN_EINT2 0x0001 +#define MADERA_SPK_SHUTDOWN_EINT2_MASK 0x0001 +#define MADERA_SPK_SHUTDOWN_EINT2_SHIFT 0 +#define MADERA_SPK_SHUTDOWN_EINT2_WIDTH 1 + +/* (0x1940) IRQ2_Mask_1 */ +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT2 0x8000 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT2_MASK 0x8000 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT2_SHIFT 15 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT2_WIDTH 1 +#define MADERA_IM_CTRLIF_ERR_EINT2 0x1000 +#define MADERA_IM_CTRLIF_ERR_EINT2_MASK 0x1000 +#define MADERA_IM_CTRLIF_ERR_EINT2_SHIFT 12 +#define MADERA_IM_CTRLIF_ERR_EINT2_WIDTH 1 +#define MADERA_IM_SYSCLK_FAIL_EINT2 0x0200 +#define MADERA_IM_SYSCLK_FAIL_EINT2_MASK 0x0200 +#define MADERA_IM_SYSCLK_FAIL_EINT2_SHIFT 9 +#define MADERA_IM_SYSCLK_FAIL_EINT2_WIDTH 1 +#define MADERA_IM_CLOCK_DETECT_EINT2 0x0100 +#define MADERA_IM_CLOCK_DETECT_EINT2_MASK 0x0100 +#define MADERA_IM_CLOCK_DETECT_EINT2_SHIFT 8 +#define MADERA_IM_CLOCK_DETECT_EINT2_WIDTH 1 +#define MADERA_IM_BOOT_DONE_EINT2 0x0080 +#define MADERA_IM_BOOT_DONE_EINT2_MASK 0x0080 +#define MADERA_IM_BOOT_DONE_EINT2_SHIFT 7 +#define MADERA_IM_BOOT_DONE_EINT2_WIDTH 1 + +/* (0x1941) IRQ2_Mask_2 */ +#define MADERA_IM_FLL3_LOCK_EINT2 0x0400 +#define MADERA_IM_FLL3_LOCK_EINT2_MASK 0x0400 +#define MADERA_IM_FLL3_LOCK_EINT2_SHIFT 10 +#define MADERA_IM_FLL3_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_FLL2_LOCK_EINT2 0x0200 +#define MADERA_IM_FLL2_LOCK_EINT2_MASK 0x0200 +#define MADERA_IM_FLL2_LOCK_EINT2_SHIFT 9 +#define MADERA_IM_FLL2_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_FLL1_LOCK_EINT2 0x0100 +#define MADERA_IM_FLL1_LOCK_EINT2_MASK 0x0100 +#define MADERA_IM_FLL1_LOCK_EINT2_SHIFT 8 +#define MADERA_IM_FLL1_LOCK_EINT2_WIDTH 1 + +/* (0x1945) IRQ2_Mask_6 */ +#define MADERA_IM_MICDET2_EINT2 0x0200 +#define MADERA_IM_MICDET2_EINT2_MASK 0x0200 +#define MADERA_IM_MICDET2_EINT2_SHIFT 9 +#define MADERA_IM_MICDET2_EINT2_WIDTH 1 +#define MADERA_IM_MICDET1_EINT2 0x0100 +#define MADERA_IM_MICDET1_EINT2_MASK 0x0100 +#define MADERA_IM_MICDET1_EINT2_SHIFT 8 +#define MADERA_IM_MICDET1_EINT2_WIDTH 1 +#define MADERA_IM_HPDET_EINT2 0x0001 +#define MADERA_IM_HPDET_EINT2_MASK 0x0001 +#define MADERA_IM_HPDET_EINT2_SHIFT 0 +#define MADERA_IM_HPDET_EINT2_WIDTH 1 + +/* (0x1946) IRQ2_Mask_7 */ +#define MADERA_IM_MICD_CLAMP_FALL_EINT2 0x0020 +#define MADERA_IM_MICD_CLAMP_FALL_EINT2_MASK 0x0020 +#define MADERA_IM_MICD_CLAMP_FALL_EINT2_SHIFT 5 +#define MADERA_IM_MICD_CLAMP_FALL_EINT2_WIDTH 1 +#define MADERA_IM_MICD_CLAMP_RISE_EINT2 0x0010 +#define MADERA_IM_MICD_CLAMP_RISE_EINT2_MASK 0x0010 +#define MADERA_IM_MICD_CLAMP_RISE_EINT2_SHIFT 4 +#define MADERA_IM_MICD_CLAMP_RISE_EINT2_WIDTH 1 +#define MADERA_IM_JD2_FALL_EINT2 0x0008 +#define MADERA_IM_JD2_FALL_EINT2_MASK 0x0008 +#define MADERA_IM_JD2_FALL_EINT2_SHIFT 3 +#define MADERA_IM_JD2_FALL_EINT2_WIDTH 1 +#define MADERA_IM_JD2_RISE_EINT2 0x0004 +#define MADERA_IM_JD2_RISE_EINT2_MASK 0x0004 +#define MADERA_IM_JD2_RISE_EINT2_SHIFT 2 +#define MADERA_IM_JD2_RISE_EINT2_WIDTH 1 +#define MADERA_IM_JD1_FALL_EINT2 0x0002 +#define MADERA_IM_JD1_FALL_EINT2_MASK 0x0002 +#define MADERA_IM_JD1_FALL_EINT2_SHIFT 1 +#define MADERA_IM_JD1_FALL_EINT2_WIDTH 1 +#define MADERA_IM_JD1_RISE_EINT2 0x0001 +#define MADERA_IM_JD1_RISE_EINT2_MASK 0x0001 +#define MADERA_IM_JD1_RISE_EINT2_SHIFT 0 +#define MADERA_IM_JD1_RISE_EINT2_WIDTH 1 + +/* (0x1948) IRQ2_Mask_9 */ +#define MADERA_IM_ASRC2_IN2_LOCK_EINT2 0x0800 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT2_MASK 0x0800 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT2_SHIFT 11 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT2 0x0400 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT2_MASK 0x0400 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT2_SHIFT 10 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT2 0x0200 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT2_MASK 0x0200 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT2_SHIFT 9 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT2 0x0100 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT2_MASK 0x0100 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT2_SHIFT 8 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_DRC2_SIG_DET_EINT2 0x0002 +#define MADERA_IM_DRC2_SIG_DET_EINT2_MASK 0x0002 +#define MADERA_IM_DRC2_SIG_DET_EINT2_SHIFT 1 +#define MADERA_IM_DRC2_SIG_DET_EINT2_WIDTH 1 +#define MADERA_IM_DRC1_SIG_DET_EINT2 0x0001 +#define MADERA_IM_DRC1_SIG_DET_EINT2_MASK 0x0001 +#define MADERA_IM_DRC1_SIG_DET_EINT2_SHIFT 0 +#define MADERA_IM_DRC1_SIG_DET_EINT2_WIDTH 1 + +/* (0x194A) IRQ2_Mask_11 */ +#define MADERA_IM_DSP_IRQ16_EINT2 0x8000 +#define MADERA_IM_DSP_IRQ16_EINT2_MASK 0x8000 +#define MADERA_IM_DSP_IRQ16_EINT2_SHIFT 15 +#define MADERA_IM_DSP_IRQ16_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ15_EINT2 0x4000 +#define MADERA_IM_DSP_IRQ15_EINT2_MASK 0x4000 +#define MADERA_IM_DSP_IRQ15_EINT2_SHIFT 14 +#define MADERA_IM_DSP_IRQ15_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ14_EINT2 0x2000 +#define MADERA_IM_DSP_IRQ14_EINT2_MASK 0x2000 +#define MADERA_IM_DSP_IRQ14_EINT2_SHIFT 13 +#define MADERA_IM_DSP_IRQ14_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ13_EINT2 0x1000 +#define MADERA_IM_DSP_IRQ13_EINT2_MASK 0x1000 +#define MADERA_IM_DSP_IRQ13_EINT2_SHIFT 12 +#define MADERA_IM_DSP_IRQ13_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ12_EINT2 0x0800 +#define MADERA_IM_DSP_IRQ12_EINT2_MASK 0x0800 +#define MADERA_IM_DSP_IRQ12_EINT2_SHIFT 11 +#define MADERA_IM_DSP_IRQ12_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ11_EINT2 0x0400 +#define MADERA_IM_DSP_IRQ11_EINT2_MASK 0x0400 +#define MADERA_IM_DSP_IRQ11_EINT2_SHIFT 10 +#define MADERA_IM_DSP_IRQ11_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ10_EINT2 0x0200 +#define MADERA_IM_DSP_IRQ10_EINT2_MASK 0x0200 +#define MADERA_IM_DSP_IRQ10_EINT2_SHIFT 9 +#define MADERA_IM_DSP_IRQ10_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ9_EINT2 0x0100 +#define MADERA_IM_DSP_IRQ9_EINT2_MASK 0x0100 +#define MADERA_IM_DSP_IRQ9_EINT2_SHIFT 8 +#define MADERA_IM_DSP_IRQ9_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ8_EINT2 0x0080 +#define MADERA_IM_DSP_IRQ8_EINT2_MASK 0x0080 +#define MADERA_IM_DSP_IRQ8_EINT2_SHIFT 7 +#define MADERA_IM_DSP_IRQ8_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ7_EINT2 0x0040 +#define MADERA_IM_DSP_IRQ7_EINT2_MASK 0x0040 +#define MADERA_IM_DSP_IRQ7_EINT2_SHIFT 6 +#define MADERA_IM_DSP_IRQ7_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ6_EINT2 0x0020 +#define MADERA_IM_DSP_IRQ6_EINT2_MASK 0x0020 +#define MADERA_IM_DSP_IRQ6_EINT2_SHIFT 5 +#define MADERA_IM_DSP_IRQ6_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ5_EINT2 0x0010 +#define MADERA_IM_DSP_IRQ5_EINT2_MASK 0x0010 +#define MADERA_IM_DSP_IRQ5_EINT2_SHIFT 4 +#define MADERA_IM_DSP_IRQ5_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ4_EINT2 0x0008 +#define MADERA_IM_DSP_IRQ4_EINT2_MASK 0x0008 +#define MADERA_IM_DSP_IRQ4_EINT2_SHIFT 3 +#define MADERA_IM_DSP_IRQ4_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ3_EINT2 0x0004 +#define MADERA_IM_DSP_IRQ3_EINT2_MASK 0x0004 +#define MADERA_IM_DSP_IRQ3_EINT2_SHIFT 2 +#define MADERA_IM_DSP_IRQ3_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ2_EINT2 0x0002 +#define MADERA_IM_DSP_IRQ2_EINT2_MASK 0x0002 +#define MADERA_IM_DSP_IRQ2_EINT2_SHIFT 1 +#define MADERA_IM_DSP_IRQ2_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ1_EINT2 0x0001 +#define MADERA_IM_DSP_IRQ1_EINT2_MASK 0x0001 +#define MADERA_IM_DSP_IRQ1_EINT2_SHIFT 0 +#define MADERA_IM_DSP_IRQ1_EINT2_WIDTH 1 + +/* (0x194B) IRQ2_Mask_12 */ +#define MADERA_IM_SPKOUTR_SC_EINT2 0x0080 +#define MADERA_IM_SPKOUTR_SC_EINT2_MASK 0x0080 +#define MADERA_IM_SPKOUTR_SC_EINT2_SHIFT 7 +#define MADERA_IM_SPKOUTR_SC_EINT2_WIDTH 1 +#define MADERA_IM_SPKOUTL_SC_EINT2 0x0040 +#define MADERA_IM_SPKOUTL_SC_EINT2_MASK 0x0040 +#define MADERA_IM_SPKOUTL_SC_EINT2_SHIFT 6 +#define MADERA_IM_SPKOUTL_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP3R_SC_EINT2 0x0020 +#define MADERA_IM_HP3R_SC_EINT2_MASK 0x0020 +#define MADERA_IM_HP3R_SC_EINT2_SHIFT 5 +#define MADERA_IM_HP3R_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP3L_SC_EINT2 0x0010 +#define MADERA_IM_HP3L_SC_EINT2_MASK 0x0010 +#define MADERA_IM_HP3L_SC_EINT2_SHIFT 4 +#define MADERA_IM_HP3L_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP2R_SC_EINT2 0x0008 +#define MADERA_IM_HP2R_SC_EINT2_MASK 0x0008 +#define MADERA_IM_HP2R_SC_EINT2_SHIFT 3 +#define MADERA_IM_HP2R_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP2L_SC_EINT2 0x0004 +#define MADERA_IM_HP2L_SC_EINT2_MASK 0x0004 +#define MADERA_IM_HP2L_SC_EINT2_SHIFT 2 +#define MADERA_IM_HP2L_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP1R_SC_EINT2 0x0002 +#define MADERA_IM_HP1R_SC_EINT2_MASK 0x0002 +#define MADERA_IM_HP1R_SC_EINT2_SHIFT 1 +#define MADERA_IM_HP1R_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP1L_SC_EINT2 0x0001 +#define MADERA_IM_HP1L_SC_EINT2_MASK 0x0001 +#define MADERA_IM_HP1L_SC_EINT2_SHIFT 0 +#define MADERA_IM_HP1L_SC_EINT2_WIDTH 1 + +/* (0x194C) IRQ2_Mask_13 */ +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT2 0x0080 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT2_MASK 0x0080 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT2_SHIFT 7 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT2 0x0040 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT2_MASK 0x0040 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT2_SHIFT 6 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT2 0x0020 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT2_MASK 0x0020 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT2_SHIFT 5 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT2 0x0010 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT2_MASK 0x0010 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT2_SHIFT 4 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT2 0x0008 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT2_MASK 0x0008 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT2_SHIFT 3 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT2 0x0004 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT2_MASK 0x0004 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT2_SHIFT 2 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT2 0x0002 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT2_MASK 0x0002 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT2_SHIFT 1 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT2 0x0001 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT2_MASK 0x0001 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT2_SHIFT 0 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT2_WIDTH 1 + +/* (0x194D) IRQ2_Mask_14 */ +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT2 0x0080 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT2_MASK 0x0080 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT2_SHIFT 7 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT2 0x0040 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT2_MASK 0x0040 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT2_SHIFT 6 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT2 0x0020 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT2_MASK 0x0020 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT2_SHIFT 5 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT2 0x0010 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT2_MASK 0x0010 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT2_SHIFT 4 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT2 0x0008 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT2_MASK 0x0008 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT2_SHIFT 3 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT2 0x0004 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT2_MASK 0x0004 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT2_SHIFT 2 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT2 0x0002 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT2_MASK 0x0002 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT2_SHIFT 1 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT2 0x0001 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT2_MASK 0x0001 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT2_SHIFT 0 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT2_WIDTH 1 + +/* (0x194E) IRQ2_Mask_15 */ +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT2 0x0004 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT2_MASK 0x0004 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT2_SHIFT 2 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT2_WIDTH 1 +#define MADERA_IM_SPK_OVERHEAT_EINT2 0x0002 +#define MADERA_IM_SPK_OVERHEAT_EINT2_MASK 0x0002 +#define MADERA_IM_SPK_OVERHEAT_EINT2_SHIFT 1 +#define MADERA_IM_SPK_OVERHEAT_EINT2_WIDTH 1 +#define MADERA_IM_SPK_SHUTDOWN_EINT2 0x0001 +#define MADERA_IM_SPK_SHUTDOWN_EINT2_MASK 0x0001 +#define MADERA_IM_SPK_SHUTDOWN_EINT2_SHIFT 0 +#define MADERA_IM_SPK_SHUTDOWN_EINT2_WIDTH 1 + +/* (0x1980) IRQ2_Raw_Status_1 */ +#define MADERA_DSP_SHARED_WR_COLL_STS2 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_STS2_MASK 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_STS2_SHIFT 15 +#define MADERA_DSP_SHARED_WR_COLL_STS2_WIDTH 1 +#define MADERA_CTRLIF_ERR_STS2 0x1000 +#define MADERA_CTRLIF_ERR_STS2_MASK 0x1000 +#define MADERA_CTRLIF_ERR_STS2_SHIFT 12 +#define MADERA_CTRLIF_ERR_STS2_WIDTH 1 +#define MADERA_SYSCLK_FAIL_STS2 0x0200 +#define MADERA_SYSCLK_FAIL_STS2_MASK 0x0200 +#define MADERA_SYSCLK_FAIL_STS2_SHIFT 9 +#define MADERA_SYSCLK_FAIL_STS2_WIDTH 1 +#define MADERA_CLOCK_DETECT_STS2 0x0100 +#define MADERA_CLOCK_DETECT_STS2_MASK 0x0100 +#define MADERA_CLOCK_DETECT_STS2_SHIFT 8 +#define MADERA_CLOCK_DETECT_STS2_WIDTH 1 +#define MADERA_BOOT_DONE_STS2 0x0080 +#define MADERA_BOOT_DONE_STS2_MASK 0x0080 +#define MADERA_BOOT_DONE_STS2_SHIFT 7 +#define MADERA_BOOT_DONE_STS2_WIDTH 1 + +/* (0x1981) IRQ2_Raw_Status_2 */ +#define MADERA_FLL3_LOCK_STS2 0x0400 +#define MADERA_FLL3_LOCK_STS2_MASK 0x0400 +#define MADERA_FLL3_LOCK_STS2_SHIFT 10 +#define MADERA_FLL3_LOCK_STS2_WIDTH 1 +#define MADERA_FLL2_LOCK_STS2 0x0200 +#define MADERA_FLL2_LOCK_STS2_MASK 0x0200 +#define MADERA_FLL2_LOCK_STS2_SHIFT 9 +#define MADERA_FLL2_LOCK_STS2_WIDTH 1 +#define MADERA_FLL1_LOCK_STS2 0x0100 +#define MADERA_FLL1_LOCK_STS2_MASK 0x0100 +#define MADERA_FLL1_LOCK_STS2_SHIFT 8 +#define MADERA_FLL1_LOCK_STS2_WIDTH 1 + +/* (0x1986) IRQ2_Raw_Status_7 */ +#define MADERA_MICD_CLAMP_FALL_STS2 0x0020 +#define MADERA_MICD_CLAMP_FALL_STS2_MASK 0x0020 +#define MADERA_MICD_CLAMP_FALL_STS2_SHIFT 5 +#define MADERA_MICD_CLAMP_FALL_STS2_WIDTH 1 +#define MADERA_MICD_CLAMP_RISE_STS2 0x0010 +#define MADERA_MICD_CLAMP_RISE_STS2_MASK 0x0010 +#define MADERA_MICD_CLAMP_RISE_STS2_SHIFT 4 +#define MADERA_MICD_CLAMP_RISE_STS2_WIDTH 1 +#define MADERA_JD2_FALL_STS2 0x0008 +#define MADERA_JD2_FALL_STS2_MASK 0x0008 +#define MADERA_JD2_FALL_STS2_SHIFT 3 +#define MADERA_JD2_FALL_STS2_WIDTH 1 +#define MADERA_JD2_RISE_STS2 0x0004 +#define MADERA_JD2_RISE_STS2_MASK 0x0004 +#define MADERA_JD2_RISE_STS2_SHIFT 2 +#define MADERA_JD2_RISE_STS2_WIDTH 1 +#define MADERA_JD1_FALL_STS2 0x0002 +#define MADERA_JD1_FALL_STS2_MASK 0x0002 +#define MADERA_JD1_FALL_STS2_SHIFT 1 +#define MADERA_JD1_FALL_STS2_WIDTH 1 +#define MADERA_JD1_RISE_STS2 0x0001 +#define MADERA_JD1_RISE_STS2_MASK 0x0001 +#define MADERA_JD1_RISE_STS2_SHIFT 0 +#define MADERA_JD1_RISE_STS2_WIDTH 1 + +/* (0x1988) IRQ2_Raw_Status_9 */ +#define MADERA_ASRC2_IN2_LOCK_STS2 0x0800 +#define MADERA_ASRC2_IN2_LOCK_STS2_MASK 0x0800 +#define MADERA_ASRC2_IN2_LOCK_STS2_SHIFT 11 +#define MADERA_ASRC2_IN2_LOCK_STS2_WIDTH 1 +#define MADERA_ASRC2_IN1_LOCK_STS2 0x0400 +#define MADERA_ASRC2_IN1_LOCK_STS2_MASK 0x0400 +#define MADERA_ASRC2_IN1_LOCK_STS2_SHIFT 10 +#define MADERA_ASRC2_IN1_LOCK_STS2_WIDTH 1 +#define MADERA_ASRC1_IN2_LOCK_STS2 0x0200 +#define MADERA_ASRC1_IN2_LOCK_STS2_MASK 0x0200 +#define MADERA_ASRC1_IN2_LOCK_STS2_SHIFT 9 +#define MADERA_ASRC1_IN2_LOCK_STS2_WIDTH 1 +#define MADERA_ASRC1_IN1_LOCK_STS2 0x0100 +#define MADERA_ASRC1_IN1_LOCK_STS2_MASK 0x0100 +#define MADERA_ASRC1_IN1_LOCK_STS2_SHIFT 8 +#define MADERA_ASRC1_IN1_LOCK_STS2_WIDTH 1 +#define MADERA_DRC2_SIG_DET_STS2 0x0002 +#define MADERA_DRC2_SIG_DET_STS2_MASK 0x0002 +#define MADERA_DRC2_SIG_DET_STS2_SHIFT 1 +#define MADERA_DRC2_SIG_DET_STS2_WIDTH 1 +#define MADERA_DRC1_SIG_DET_STS2 0x0001 +#define MADERA_DRC1_SIG_DET_STS2_MASK 0x0001 +#define MADERA_DRC1_SIG_DET_STS2_SHIFT 0 +#define MADERA_DRC1_SIG_DET_STS2_WIDTH 1 + +/* (0x198A) - IRQ2 Raw Status 11 */ +#define MADERA_DSP_IRQ26_STS2 0x8000 +#define MADERA_DSP_IRQ26_STS2_MASK 0x8000 +#define MADERA_DSP_IRQ26_STS2_SHIFT 15 +#define MADERA_DSP_IRQ26_STS2_WIDTH 1 +#define MADERA_DSP_IRQ25_STS2 0x4000 +#define MADERA_DSP_IRQ25_STS2_MASK 0x4000 +#define MADERA_DSP_IRQ25_STS2_SHIFT 14 +#define MADERA_DSP_IRQ25_STS2_WIDTH 1 +#define MADERA_DSP_IRQ24_STS2 0x2000 +#define MADERA_DSP_IRQ24_STS2_MASK 0x2000 +#define MADERA_DSP_IRQ24_STS2_SHIFT 13 +#define MADERA_DSP_IRQ24_STS2_WIDTH 1 +#define MADERA_DSP_IRQ23_STS2 0x1000 +#define MADERA_DSP_IRQ23_STS2_MASK 0x1000 +#define MADERA_DSP_IRQ23_STS2_SHIFT 12 +#define MADERA_DSP_IRQ23_STS2_WIDTH 1 +#define MADERA_DSP_IRQ22_STS2 0x0800 +#define MADERA_DSP_IRQ22_STS2_MASK 0x0800 +#define MADERA_DSP_IRQ22_STS2_SHIFT 11 +#define MADERA_DSP_IRQ22_STS2_WIDTH 1 +#define MADERA_DSP_IRQ21_STS2 0x0400 +#define MADERA_DSP_IRQ21_STS2_MASK 0x0400 +#define MADERA_DSP_IRQ21_STS2_SHIFT 10 +#define MADERA_DSP_IRQ21_STS2_WIDTH 1 +#define MADERA_DSP_IRQ20_STS2 0x0200 +#define MADERA_DSP_IRQ20_STS2_MASK 0x0200 +#define MADERA_DSP_IRQ20_STS2_SHIFT 9 +#define MADERA_DSP_IRQ20_STS2_WIDTH 1 +#define MADERA_DSP_IRQ9_STS2 0x0100 +#define MADERA_DSP_IRQ9_STS2_MASK 0x0100 +#define MADERA_DSP_IRQ9_STS2_SHIFT 8 +#define MADERA_DSP_IRQ9_STS2_WIDTH 1 +#define MADERA_DSP_IRQ8_STS2 0x0080 +#define MADERA_DSP_IRQ8_STS2_MASK 0x0080 +#define MADERA_DSP_IRQ8_STS2_SHIFT 7 +#define MADERA_DSP_IRQ8_STS2_WIDTH 1 +#define MADERA_DSP_IRQ7_STS2 0x0040 +#define MADERA_DSP_IRQ7_STS2_MASK 0x0040 +#define MADERA_DSP_IRQ7_STS2_SHIFT 6 +#define MADERA_DSP_IRQ7_STS2_WIDTH 1 +#define MADERA_DSP_IRQ6_STS2 0x0020 +#define MADERA_DSP_IRQ6_STS2_MASK 0x0020 +#define MADERA_DSP_IRQ6_STS2_SHIFT 5 +#define MADERA_DSP_IRQ6_STS2_WIDTH 1 +#define MADERA_DSP_IRQ5_STS2 0x0010 +#define MADERA_DSP_IRQ5_STS2_MASK 0x0010 +#define MADERA_DSP_IRQ5_STS2_SHIFT 4 +#define MADERA_DSP_IRQ5_STS2_WIDTH 1 +#define MADERA_DSP_IRQ4_STS2 0x0008 +#define MADERA_DSP_IRQ4_STS2_MASK 0x0008 +#define MADERA_DSP_IRQ4_STS2_SHIFT 3 +#define MADERA_DSP_IRQ4_STS2_WIDTH 1 +#define MADERA_DSP_IRQ3_STS2 0x0004 +#define MADERA_DSP_IRQ3_STS2_MASK 0x0004 +#define MADERA_DSP_IRQ3_STS2_SHIFT 2 +#define MADERA_DSP_IRQ3_STS2_WIDTH 1 +#define MADERA_DSP_IRQ2_STS2 0x0002 +#define MADERA_DSP_IRQ2_STS2_MASK 0x0002 +#define MADERA_DSP_IRQ2_STS2_SHIFT 1 +#define MADERA_DSP_IRQ2_STS2_WIDTH 1 +#define MADERA_DSP_IRQ1_STS2 0x0001 +#define MADERA_DSP_IRQ1_STS2_MASK 0x0001 +#define MADERA_DSP_IRQ1_STS2_SHIFT 0 +#define MADERA_DSP_IRQ1_STS2_WIDTH 1 + +/* (0x198B) IRQ2_Raw_Status_12 */ +#define MADERA_SPKOUTR_SC_STS2 0x0080 +#define MADERA_SPKOUTR_SC_STS2_MASK 0x0080 +#define MADERA_SPKOUTR_SC_STS2_SHIFT 7 +#define MADERA_SPKOUTR_SC_STS2_WIDTH 1 +#define MADERA_SPKOUTL_SC_STS2 0x0040 +#define MADERA_SPKOUTL_SC_STS2_MASK 0x0040 +#define MADERA_SPKOUTL_SC_STS2_SHIFT 6 +#define MADERA_SPKOUTL_SC_STS2_WIDTH 1 +#define MADERA_HP3R_SC_STS2 0x0020 +#define MADERA_HP3R_SC_STS2_MASK 0x0020 +#define MADERA_HP3R_SC_STS2_SHIFT 5 +#define MADERA_HP3R_SC_STS2_WIDTH 1 +#define MADERA_HP3L_SC_STS2 0x0010 +#define MADERA_HP3L_SC_STS2_MASK 0x0010 +#define MADERA_HP3L_SC_STS2_SHIFT 4 +#define MADERA_HP3L_SC_STS2_WIDTH 1 +#define MADERA_HP2R_SC_STS2 0x0008 +#define MADERA_HP2R_SC_STS2_MASK 0x0008 +#define MADERA_HP2R_SC_STS2_SHIFT 3 +#define MADERA_HP2R_SC_STS2_WIDTH 1 +#define MADERA_HP2L_SC_STS2 0x0004 +#define MADERA_HP2L_SC_STS2_MASK 0x0004 +#define MADERA_HP2L_SC_STS2_SHIFT 2 +#define MADERA_HP2L_SC_STS2_WIDTH 1 +#define MADERA_HP1R_SC_STS2 0x0002 +#define MADERA_HP1R_SC_STS2_MASK 0x0002 +#define MADERA_HP1R_SC_STS2_SHIFT 1 +#define MADERA_HP1R_SC_STS2_WIDTH 1 +#define MADERA_HP1L_SC_STS2 0x0001 +#define MADERA_HP1L_SC_STS2_MASK 0x0001 +#define MADERA_HP1L_SC_STS2_SHIFT 0 +#define MADERA_HP1L_SC_STS2_WIDTH 1 + +/* (0x198C) IRQ2_Raw_Status_13 */ +#define MADERA_SPKOUTR_ENABLE_DONE_STS2 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_STS2_MASK 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_STS2_SHIFT 7 +#define MADERA_SPKOUTR_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_SPKOUTL_ENABLE_DONE_STS2 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_STS2_MASK 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_STS2_SHIFT 6 +#define MADERA_SPKOUTL_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP3R_ENABLE_DONE_STS2 0x0020 +#define MADERA_HP3R_ENABLE_DONE_STS2_MASK 0x0020 +#define MADERA_HP3R_ENABLE_DONE_STS2_SHIFT 5 +#define MADERA_HP3R_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP3L_ENABLE_DONE_STS2 0x0010 +#define MADERA_HP3L_ENABLE_DONE_STS2_MASK 0x0010 +#define MADERA_HP3L_ENABLE_DONE_STS2_SHIFT 4 +#define MADERA_HP3L_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP2R_ENABLE_DONE_STS2 0x0008 +#define MADERA_HP2R_ENABLE_DONE_STS2_MASK 0x0008 +#define MADERA_HP2R_ENABLE_DONE_STS2_SHIFT 3 +#define MADERA_HP2R_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP2L_ENABLE_DONE_STS2 0x0004 +#define MADERA_HP2L_ENABLE_DONE_STS2_MASK 0x0004 +#define MADERA_HP2L_ENABLE_DONE_STS2_SHIFT 2 +#define MADERA_HP2L_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP1R_ENABLE_DONE_STS2 0x0002 +#define MADERA_HP1R_ENABLE_DONE_STS2_MASK 0x0002 +#define MADERA_HP1R_ENABLE_DONE_STS2_SHIFT 1 +#define MADERA_HP1R_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP1L_ENABLE_DONE_STS2 0x0001 +#define MADERA_HP1L_ENABLE_DONE_STS2_MASK 0x0001 +#define MADERA_HP1L_ENABLE_DONE_STS2_SHIFT 0 +#define MADERA_HP1L_ENABLE_DONE_STS2_WIDTH 1 + +/* (0x198D) IRQ2_Raw_Status_14 */ +#define MADERA_SPKOUTR_DISABLE_DONE_STS2 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_STS2_MASK 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_STS2_SHIFT 7 +#define MADERA_SPKOUTR_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_SPKOUTL_DISABLE_DONE_STS2 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_STS2_MASK 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_STS2_SHIFT 6 +#define MADERA_SPKOUTL_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP3R_DISABLE_DONE_STS2 0x0020 +#define MADERA_HP3R_DISABLE_DONE_STS2_MASK 0x0020 +#define MADERA_HP3R_DISABLE_DONE_STS2_SHIFT 5 +#define MADERA_HP3R_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP3L_DISABLE_DONE_STS2 0x0010 +#define MADERA_HP3L_DISABLE_DONE_STS2_MASK 0x0010 +#define MADERA_HP3L_DISABLE_DONE_STS2_SHIFT 4 +#define MADERA_HP3L_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP2R_DISABLE_DONE_STS2 0x0008 +#define MADERA_HP2R_DISABLE_DONE_STS2_MASK 0x0008 +#define MADERA_HP2R_DISABLE_DONE_STS2_SHIFT 3 +#define MADERA_HP2R_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP2L_DISABLE_DONE_STS2 0x0004 +#define MADERA_HP2L_DISABLE_DONE_STS2_MASK 0x0004 +#define MADERA_HP2L_DISABLE_DONE_STS2_SHIFT 2 +#define MADERA_HP2L_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP1R_DISABLE_DONE_STS2 0x0002 +#define MADERA_HP1R_DISABLE_DONE_STS2_MASK 0x0002 +#define MADERA_HP1R_DISABLE_DONE_STS2_SHIFT 1 +#define MADERA_HP1R_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP1L_DISABLE_DONE_STS2 0x0001 +#define MADERA_HP1L_DISABLE_DONE_STS2_MASK 0x0001 +#define MADERA_HP1L_DISABLE_DONE_STS2_SHIFT 0 +#define MADERA_HP1L_DISABLE_DONE_STS2_WIDTH 1 + +/* (0x198E) IRQ2_Raw_Status_15 */ +#define MADERA_SPK_OVERHEAT_WARN_STS2 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_STS2_MASK 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_STS2_SHIFT 2 +#define MADERA_SPK_OVERHEAT_WARN_STS2_WIDTH 1 +#define MADERA_SPK_OVERHEAT_STS2 0x0002 +#define MADERA_SPK_OVERHEAT_STS2_MASK 0x0002 +#define MADERA_SPK_OVERHEAT_STS2_SHIFT 1 +#define MADERA_SPK_OVERHEAT_STS2_WIDTH 1 +#define MADERA_SPK_SHUTDOWN_STS2 0x0001 +#define MADERA_SPK_SHUTDOWN_STS2_MASK 0x0001 +#define MADERA_SPK_SHUTDOWN_STS2_SHIFT 0 +#define MADERA_SPK_SHUTDOWN_STS2_WIDTH 1 + +/* (0x1A06) Interrupt_Debounce_7 */ +#define MADERA_MICD_CLAMP_DB 0x0010 +#define MADERA_MICD_CLAMP_DB_MASK 0x0010 +#define MADERA_MICD_CLAMP_DB_SHIFT 4 +#define MADERA_MICD_CLAMP_DB_WIDTH 1 +#define MADERA_JD2_DB 0x0004 +#define MADERA_JD2_DB_MASK 0x0004 +#define MADERA_JD2_DB_SHIFT 2 +#define MADERA_JD2_DB_WIDTH 1 +#define MADERA_JD1_DB 0x0001 +#define MADERA_JD1_DB_MASK 0x0001 +#define MADERA_JD1_DB_SHIFT 0 +#define MADERA_JD1_DB_WIDTH 1 + +/* (0x1A0E) Interrupt_Debounce_15 */ +#define MADERA_SPK_OVERHEAT_WARN_DB 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_DB_MASK 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_DB_SHIFT 2 +#define MADERA_SPK_OVERHEAT_WARN_DB_WIDTH 1 +#define MADERA_SPK_OVERHEAT_DB 0x0002 +#define MADERA_SPK_OVERHEAT_DB_MASK 0x0002 +#define MADERA_SPK_OVERHEAT_DB_SHIFT 1 +#define MADERA_SPK_OVERHEAT_DB_WIDTH 1 + +/* (0x1A80) IRQ1_CTRL */ +#define MADERA_IM_IRQ1 0x0800 +#define MADERA_IM_IRQ1_MASK 0x0800 +#define MADERA_IM_IRQ1_SHIFT 11 +#define MADERA_IM_IRQ1_WIDTH 1 +#define MADERA_IRQ_POL 0x0400 +#define MADERA_IRQ_POL_MASK 0x0400 +#define MADERA_IRQ_POL_SHIFT 10 +#define MADERA_IRQ_POL_WIDTH 1 + +/* (0x20004) OTP_HPDET_Cal_1 */ +#define MADERA_OTP_HPDET_CALIB_OFFSET_11 0xFF000000 +#define MADERA_OTP_HPDET_CALIB_OFFSET_11_MASK 0xFF000000 +#define MADERA_OTP_HPDET_CALIB_OFFSET_11_SHIFT 24 +#define MADERA_OTP_HPDET_CALIB_OFFSET_11_WIDTH 8 +#define MADERA_OTP_HPDET_CALIB_OFFSET_10 0x00FF0000 +#define MADERA_OTP_HPDET_CALIB_OFFSET_10_MASK 0x00FF0000 +#define MADERA_OTP_HPDET_CALIB_OFFSET_10_SHIFT 16 +#define MADERA_OTP_HPDET_CALIB_OFFSET_10_WIDTH 8 +#define MADERA_OTP_HPDET_CALIB_OFFSET_01 0x0000FF00 +#define MADERA_OTP_HPDET_CALIB_OFFSET_01_MASK 0x0000FF00 +#define MADERA_OTP_HPDET_CALIB_OFFSET_01_SHIFT 8 +#define MADERA_OTP_HPDET_CALIB_OFFSET_01_WIDTH 8 +#define MADERA_OTP_HPDET_CALIB_OFFSET_00 0x000000FF +#define MADERA_OTP_HPDET_CALIB_OFFSET_00_MASK 0x000000FF +#define MADERA_OTP_HPDET_CALIB_OFFSET_00_SHIFT 0 +#define MADERA_OTP_HPDET_CALIB_OFFSET_00_WIDTH 8 + +/* (0x20006) OTP_HPDET_Cal_2 */ +#define MADERA_OTP_HPDET_GRADIENT_1X 0x0000FF00 +#define MADERA_OTP_HPDET_GRADIENT_1X_MASK 0x0000FF00 +#define MADERA_OTP_HPDET_GRADIENT_1X_SHIFT 8 +#define MADERA_OTP_HPDET_GRADIENT_1X_WIDTH 8 +#define MADERA_OTP_HPDET_GRADIENT_0X 0x000000FF +#define MADERA_OTP_HPDET_GRADIENT_0X_MASK 0x000000FF +#define MADERA_OTP_HPDET_GRADIENT_0X_SHIFT 0 +#define MADERA_OTP_HPDET_GRADIENT_0X_WIDTH 8 + +#endif
On Wed, Apr 5, 2017 at 12:07 PM, Richard Fitzgerald rf@opensource.wolfsonmicro.com wrote:
This patch adds a header file of register definitions for Cirrus Logic "Madera" class codecs. These codecs are all based off a common set of hardware IP so have a common register map (with a few minor device-to-device variations). These are complex devices with a large mber of features and so have a correspondingly large register set. The registers.h file has been auto-generated from the hardware register definitions, stripped down to only registers we need to access from the driver.
Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com
This: include/linux/mfd/madera/registers.h | 8832 ++++++++++++++++++++++++++++++++++
Get included in all subdrivers I suppose?
So you are broadcasting 8800+ lines into every subdriver across the entire kernel.
Just the time spent in the preprocessor parsing this will affect compilation time.
Please implement separation of concerns. Move the register definitions into the drivers, and if they are too large, atleast make a local include file in sound/soc for the codec parts so the GPIO subdriver does not have to churn through all this to get its job done.
I know there are other MFD drivers doing this but it's not a good pattern.
Yours, Linus Walleij
On Fri, Apr 7, 2017 at 10:27 AM, Linus Walleij linus.walleij@linaro.org wrote:
On Wed, Apr 5, 2017 at 12:07 PM, Richard Fitzgerald rf@opensource.wolfsonmicro.com wrote:
This patch adds a header file of register definitions for Cirrus Logic "Madera" class codecs. These codecs are all based off a common set of hardware IP so have a common register map (with a few minor device-to-device variations). These are complex devices with a large mber of features and so have a correspondingly large register set. The registers.h file has been auto-generated from the hardware register definitions, stripped down to only registers we need to access from the driver.
Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com
This: include/linux/mfd/madera/registers.h | 8832 ++++++++++++++++++++++++++++++++++
Get included in all subdrivers I suppose?
So you are broadcasting 8800+ lines into every subdriver across the entire kernel.
Just the time spent in the preprocessor parsing this will affect compilation time.
Or maybe this is a necessary sacrifice to get the regmap cache centralized in MFD. I don't know. I feel stupid.
I guess I should focus on "my" subsystems...
Yours, Linus Walleij
On Fri, Apr 07, 2017 at 10:30:12AM +0200, Linus Walleij wrote:
On Fri, Apr 7, 2017 at 10:27 AM, Linus Walleij linus.walleij@linaro.org wrote:
On Wed, Apr 5, 2017 at 12:07 PM, Richard Fitzgerald rf@opensource.wolfsonmicro.com wrote:
This patch adds a header file of register definitions for Cirrus Logic "Madera" class codecs. These codecs are all based off a common set of hardware IP so have a common register map (with a few minor device-to-device variations). These are complex devices with a large mber of features and so have a correspondingly large register set. The registers.h file has been auto-generated from the hardware register definitions, stripped down to only registers we need to access from the driver.
Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com
This: include/linux/mfd/madera/registers.h | 8832 ++++++++++++++++++++++++++++++++++
Get included in all subdrivers I suppose?
So you are broadcasting 8800+ lines into every subdriver across the entire kernel.
Just the time spent in the preprocessor parsing this will affect compilation time.
Or maybe this is a necessary sacrifice to get the regmap cache centralized in MFD. I don't know. I feel stupid.
I guess I should focus on "my" subsystems...
This only gets included in files that are part of this driver, it shouldn't affect compilation time for anyone not building the madera driver and even then it should only affect compilation times for the 10 or so C files that make up the driver. Also I don't really see any other way to specify the registers for the device.
Thanks, Charles
On Fri, Apr 7, 2017 at 10:48 AM, Charles Keepax ckeepax@opensource.wolfsonmicro.com wrote:
On Fri, Apr 07, 2017 at 10:30:12AM +0200, Linus Walleij wrote:
On Fri, Apr 7, 2017 at 10:27 AM, Linus Walleij linus.walleij@linaro.org wrote:
On Wed, Apr 5, 2017 at 12:07 PM, Richard Fitzgerald rf@opensource.wolfsonmicro.com wrote:
This patch adds a header file of register definitions for Cirrus Logic "Madera" class codecs. These codecs are all based off a common set of hardware IP so have a common register map (with a few minor device-to-device variations). These are complex devices with a large mber of features and so have a correspondingly large register set. The registers.h file has been auto-generated from the hardware register definitions, stripped down to only registers we need to access from the driver.
Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com
This: include/linux/mfd/madera/registers.h | 8832 ++++++++++++++++++++++++++++++++++
Get included in all subdrivers I suppose?
So you are broadcasting 8800+ lines into every subdriver across the entire kernel.
Just the time spent in the preprocessor parsing this will affect compilation time.
Or maybe this is a necessary sacrifice to get the regmap cache centralized in MFD. I don't know. I feel stupid.
I guess I should focus on "my" subsystems...
This only gets included in files that are part of this driver, it shouldn't affect compilation time for anyone not building the madera driver and even then it should only affect compilation times for the 10 or so C files that make up the driver. Also I don't really see any other way to specify the registers for the device.
No when using regmap cache this seems necessary. I was just wrong.
Yours, Linus Walleij
On Fri, Apr 07, 2017 at 11:12:53AM +0200, Linus Walleij wrote:
On Fri, Apr 7, 2017 at 10:48 AM, Charles Keepax
On Fri, Apr 07, 2017 at 10:30:12AM +0200, Linus Walleij wrote:
Get included in all subdrivers I suppose?
So you are broadcasting 8800+ lines into every subdriver across the entire kernel.
Just the time spent in the preprocessor parsing this will affect compilation time.
Or maybe this is a necessary sacrifice to get the regmap cache centralized in MFD. I don't know. I feel stupid.
I guess I should focus on "my" subsystems...
This only gets included in files that are part of this driver, it shouldn't affect compilation time for anyone not building the madera driver and even then it should only affect compilation times for the 10 or so C files that make up the driver. Also I don't really see any other way to specify the registers for the device.
No when using regmap cache this seems necessary. I was just wrong.
Right. The other thing to bear in mind with things like this is that often if it's the chip vendor they've got mechanisms to generate the register definitions directly from the chip design so if we take the complete thing with minimal edits it's a great way of ensuring we've got information about the chip in the upstream kernel to support future development.
On Wed, 05 Apr 2017, Richard Fitzgerald wrote:
This patch adds a header file of register definitions for Cirrus Logic "Madera" class codecs. These codecs are all based off a common set of hardware IP so have a common register map (with a few minor device-to-device variations). These are complex devices with a large number of features and so have a correspondingly large register set. The registers.h file has been auto-generated from the hardware register definitions, stripped down to only registers we need to access from the driver.
Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com
MAINTAINERS | 10 + include/linux/mfd/madera/registers.h | 8832 ++++++++++++++++++++++++++++++++++ 2 files changed, 8842 insertions(+) create mode 100644 include/linux/mfd/madera/registers.h
For my own reference: Acked-for-MFD-by: Lee Jones lee.jones@linaro.org
diff --git a/MAINTAINERS b/MAINTAINERS index 788354d..02995c9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3258,6 +3258,16 @@ L: alsa-devel@alsa-project.org (moderated for non-subscribers) S: Maintained F: sound/soc/codecs/cs*
+CIRRUS LOGIC MADERA CODEC DRIVERS +M: Charles Keepax ckeepax@opensource.wolfsonmicro.com +M: Richard Fitzgerald rf@opensource.wolfsonmicro.com +L: alsa-devel@alsa-project.org (moderated for non-subscribers) +L: patches@opensource.wolfsonmicro.com +T: git https://github.com/CirrusLogic/linux-drivers.git +W: https://github.com/CirrusLogic/linux-drivers/wiki +S: Supported +F: include/linux/mfd/madera/*
CLEANCACHE API M: Konrad Rzeszutek Wilk konrad.wilk@oracle.com L: linux-kernel@vger.kernel.org diff --git a/include/linux/mfd/madera/registers.h b/include/linux/mfd/madera/registers.h new file mode 100644 index 0000000..9108c13 --- /dev/null +++ b/include/linux/mfd/madera/registers.h @@ -0,0 +1,8832 @@ +/*
- Madera register definitions
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#ifndef MADERA_REGISTERS_H +#define MADERA_REGISTERS_H
+/*
- Register Addresses.
- */
+#define MADERA_SOFTWARE_RESET 0x00 +#define MADERA_HARDWARE_REVISION 0x01 +#define MADERA_CTRL_IF_CFG_1 0x08 +#define MADERA_CTRL_IF_CFG_2 0x09 +#define MADERA_CTRL_IF_CFG_3 0x0A +#define MADERA_WRITE_SEQUENCER_CTRL_0 0x16 +#define MADERA_WRITE_SEQUENCER_CTRL_1 0x17 +#define MADERA_WRITE_SEQUENCER_CTRL_2 0x18 +#define MADERA_TONE_GENERATOR_1 0x20 +#define MADERA_TONE_GENERATOR_2 0x21 +#define MADERA_TONE_GENERATOR_3 0x22 +#define MADERA_TONE_GENERATOR_4 0x23 +#define MADERA_TONE_GENERATOR_5 0x24 +#define MADERA_PWM_DRIVE_1 0x30 +#define MADERA_PWM_DRIVE_2 0x31 +#define MADERA_PWM_DRIVE_3 0x32 +#define MADERA_SEQUENCE_CONTROL 0x41 +#define MADERA_SAMPLE_RATE_SEQUENCE_SELECT_1 0x61 +#define MADERA_SAMPLE_RATE_SEQUENCE_SELECT_2 0x62 +#define MADERA_SAMPLE_RATE_SEQUENCE_SELECT_3 0x63 +#define MADERA_SAMPLE_RATE_SEQUENCE_SELECT_4 0x64 +#define MADERA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_1 0x66 +#define MADERA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_2 0x67 +#define MADERA_HAPTICS_CONTROL_1 0x90 +#define MADERA_HAPTICS_CONTROL_2 0x91 +#define MADERA_HAPTICS_PHASE_1_INTENSITY 0x92 +#define MADERA_HAPTICS_PHASE_1_DURATION 0x93 +#define MADERA_HAPTICS_PHASE_2_INTENSITY 0x94 +#define MADERA_HAPTICS_PHASE_2_DURATION 0x95 +#define MADERA_HAPTICS_PHASE_3_INTENSITY 0x96 +#define MADERA_HAPTICS_PHASE_3_DURATION 0x97 +#define MADERA_HAPTICS_STATUS 0x98 +#define MADERA_COMFORT_NOISE_GENERATOR 0xA0 +#define MADERA_CLOCK_32K_1 0x100 +#define MADERA_SYSTEM_CLOCK_1 0x101 +#define MADERA_SAMPLE_RATE_1 0x102 +#define MADERA_SAMPLE_RATE_2 0x103 +#define MADERA_SAMPLE_RATE_3 0x104 +#define MADERA_SAMPLE_RATE_1_STATUS 0x10A +#define MADERA_SAMPLE_RATE_2_STATUS 0x10B +#define MADERA_SAMPLE_RATE_3_STATUS 0x10C +#define MADERA_ASYNC_CLOCK_1 0x112 +#define MADERA_ASYNC_SAMPLE_RATE_1 0x113 +#define MADERA_ASYNC_SAMPLE_RATE_2 0x114 +#define MADERA_ASYNC_SAMPLE_RATE_1_STATUS 0x11B +#define MADERA_ASYNC_SAMPLE_RATE_2_STATUS 0x11C +#define MADERA_DSP_CLOCK_1 0x120 +#define MADERA_DSP_CLOCK_2 0x122 +#define MADERA_OUTPUT_SYSTEM_CLOCK 0x149 +#define MADERA_OUTPUT_ASYNC_CLOCK 0x14A +#define MADERA_RATE_ESTIMATOR_1 0x152 +#define MADERA_RATE_ESTIMATOR_2 0x153 +#define MADERA_RATE_ESTIMATOR_3 0x154 +#define MADERA_RATE_ESTIMATOR_4 0x155 +#define MADERA_RATE_ESTIMATOR_5 0x156 +#define MADERA_FLL1_CONTROL_1 0x171 +#define MADERA_FLL1_CONTROL_2 0x172 +#define MADERA_FLL1_CONTROL_3 0x173 +#define MADERA_FLL1_CONTROL_4 0x174 +#define MADERA_FLL1_CONTROL_5 0x175 +#define MADERA_FLL1_CONTROL_6 0x176 +#define MADERA_FLL1_LOOP_FILTER_TEST_1 0x177 +#define MADERA_FLL1_NCO_TEST_0 0x178 +#define MADERA_FLL1_CONTROL_7 0x179 +#define MADERA_FLL1_EFS_2 0x17A +#define CS47L35_FLL1_SYNCHRONISER_1 0x17F +#define CS47L35_FLL1_SYNCHRONISER_2 0x180 +#define CS47L35_FLL1_SYNCHRONISER_3 0x181 +#define CS47L35_FLL1_SYNCHRONISER_4 0x182 +#define CS47L35_FLL1_SYNCHRONISER_5 0x183 +#define CS47L35_FLL1_SYNCHRONISER_6 0x184 +#define CS47L35_FLL1_SYNCHRONISER_7 0x185 +#define CS47L35_FLL1_SPREAD_SPECTRUM 0x187 +#define CS47L35_FLL1_GPIO_CLOCK 0x188 +#define MADERA_FLL1_SYNCHRONISER_1 0x181 +#define MADERA_FLL1_SYNCHRONISER_2 0x182 +#define MADERA_FLL1_SYNCHRONISER_3 0x183 +#define MADERA_FLL1_SYNCHRONISER_4 0x184 +#define MADERA_FLL1_SYNCHRONISER_5 0x185 +#define MADERA_FLL1_SYNCHRONISER_6 0x186 +#define MADERA_FLL1_SYNCHRONISER_7 0x187 +#define MADERA_FLL1_SPREAD_SPECTRUM 0x189 +#define MADERA_FLL1_GPIO_CLOCK 0x18A +#define MADERA_FLL2_CONTROL_1 0x191 +#define MADERA_FLL2_CONTROL_2 0x192 +#define MADERA_FLL2_CONTROL_3 0x193 +#define MADERA_FLL2_CONTROL_4 0x194 +#define MADERA_FLL2_CONTROL_5 0x195 +#define MADERA_FLL2_CONTROL_6 0x196 +#define MADERA_FLL2_LOOP_FILTER_TEST_1 0x197 +#define MADERA_FLL2_NCO_TEST_0 0x198 +#define MADERA_FLL2_CONTROL_7 0x199 +#define MADERA_FLL2_EFS_2 0x19A +#define MADERA_FLL2_SYNCHRONISER_1 0x1A1 +#define MADERA_FLL2_SYNCHRONISER_2 0x1A2 +#define MADERA_FLL2_SYNCHRONISER_3 0x1A3 +#define MADERA_FLL2_SYNCHRONISER_4 0x1A4 +#define MADERA_FLL2_SYNCHRONISER_5 0x1A5 +#define MADERA_FLL2_SYNCHRONISER_6 0x1A6 +#define MADERA_FLL2_SYNCHRONISER_7 0x1A7 +#define MADERA_FLL2_SPREAD_SPECTRUM 0x1A9 +#define MADERA_FLL2_GPIO_CLOCK 0x1AA +#define MADERA_FLL3_CONTROL_1 0x1B1 +#define MADERA_FLL3_CONTROL_2 0x1B2 +#define MADERA_FLL3_CONTROL_3 0x1B3 +#define MADERA_FLL3_CONTROL_4 0x1B4 +#define MADERA_FLL3_CONTROL_5 0x1B5 +#define MADERA_FLL3_CONTROL_6 0x1B6 +#define MADERA_FLL3_LOOP_FILTER_TEST_1 0x1B7 +#define MADERA_FLL3_NCO_TEST_0 0x1B8 +#define MADERA_FLL3_CONTROL_7 0x1B9 +#define MADERA_FLL3_SYNCHRONISER_1 0x1C1 +#define MADERA_FLL3_SYNCHRONISER_2 0x1C2 +#define MADERA_FLL3_SYNCHRONISER_3 0x1C3 +#define MADERA_FLL3_SYNCHRONISER_4 0x1C4 +#define MADERA_FLL3_SYNCHRONISER_5 0x1C5 +#define MADERA_FLL3_SYNCHRONISER_6 0x1C6 +#define MADERA_FLL3_SYNCHRONISER_7 0x1C7 +#define MADERA_FLL3_SPREAD_SPECTRUM 0x1C9 +#define MADERA_FLL3_GPIO_CLOCK 0x1CA +#define MADERA_FLLAO_CONTROL_1 0x1D1 +#define MADERA_FLLAO_CONTROL_2 0x1D2 +#define MADERA_FLLAO_CONTROL_3 0x1D3 +#define MADERA_FLLAO_CONTROL_4 0x1D4 +#define MADERA_FLLAO_CONTROL_5 0x1D5 +#define MADERA_FLLAO_CONTROL_6 0x1D6 +#define MADERA_FLLAO_CONTROL_7 0x1D8 +#define MADERA_FLLAO_CONTROL_8 0x1DA +#define MADERA_FLLAO_CONTROL_9 0x1DB +#define MADERA_FLLAO_CONTROL_10 0x1DC +#define MADERA_FLLAO_CONTROL_11 0x1DD +#define MADERA_MIC_CHARGE_PUMP_1 0x200 +#define MADERA_HP_CHARGE_PUMP_8 0x20B +#define MADERA_LDO1_CONTROL_1 0x210 +#define MADERA_LDO2_CONTROL_1 0x213 +#define MADERA_MIC_BIAS_CTRL_1 0x218 +#define MADERA_MIC_BIAS_CTRL_2 0x219 +#define MADERA_MIC_BIAS_CTRL_3 0x21A +#define MADERA_MIC_BIAS_CTRL_4 0x21B +#define MADERA_MIC_BIAS_CTRL_5 0x21C +#define MADERA_MIC_BIAS_CTRL_6 0x21E +#define MADERA_HP_CTRL_1L 0x225 +#define MADERA_HP_CTRL_1R 0x226 +#define MADERA_HP_CTRL_2L 0x227 +#define MADERA_HP_CTRL_2R 0x228 +#define MADERA_HP_CTRL_3L 0x229 +#define MADERA_HP_CTRL_3R 0x22A +#define MADERA_DCS_HP1L_CONTROL 0x232 +#define MADERA_DCS_HP1R_CONTROL 0x238 +#define MADERA_EDRE_HP_STEREO_CONTROL 0x27E +#define MADERA_ACCESSORY_DETECT_MODE_1 0x293 +#define MADERA_HEADPHONE_DETECT_0 0x299 +#define MADERA_HEADPHONE_DETECT_1 0x29B +#define MADERA_HEADPHONE_DETECT_2 0x29C +#define MADERA_HEADPHONE_DETECT_3 0x29D +#define MADERA_HEADPHONE_DETECT_4 0x29E +#define MADERA_HEADPHONE_DETECT_5 0x29F +#define MADERA_MIC_DETECT_1_CONTROL_0 0x2A2 +#define MADERA_MIC_DETECT_1_CONTROL_1 0x2A3 +#define MADERA_MIC_DETECT_1_CONTROL_2 0x2A4 +#define MADERA_MIC_DETECT_1_CONTROL_3 0x2A5 +#define MADERA_MIC_DETECT_1_LEVEL_1 0x2A6 +#define MADERA_MIC_DETECT_1_LEVEL_2 0x2A7 +#define MADERA_MIC_DETECT_1_LEVEL_3 0x2A8 +#define MADERA_MIC_DETECT_1_LEVEL_4 0x2A9 +#define MADERA_MIC_DETECT_1_CONTROL_4 0x2AB +#define MADERA_MIC_DETECT_2_CONTROL_0 0x2B2 +#define MADERA_MIC_DETECT_2_CONTROL_1 0x2B3 +#define MADERA_MIC_DETECT_2_CONTROL_2 0x2B4 +#define MADERA_MIC_DETECT_2_CONTROL_3 0x2B5 +#define MADERA_MIC_DETECT_2_LEVEL_1 0x2B6 +#define MADERA_MIC_DETECT_2_LEVEL_2 0x2B7 +#define MADERA_MIC_DETECT_2_LEVEL_3 0x2B8 +#define MADERA_MIC_DETECT_2_LEVEL_4 0x2B9 +#define MADERA_MIC_DETECT_2_CONTROL_4 0x2BB +#define MADERA_MICD_CLAMP_CONTROL 0x2C6 +#define MADERA_GP_SWITCH_1 0x2C8 +#define MADERA_JACK_DETECT_ANALOGUE 0x2D3 +#define MADERA_INPUT_ENABLES 0x300 +#define MADERA_INPUT_ENABLES_STATUS 0x301 +#define MADERA_INPUT_RATE 0x308 +#define MADERA_INPUT_VOLUME_RAMP 0x309 +#define MADERA_HPF_CONTROL 0x30C +#define MADERA_IN1L_CONTROL 0x310 +#define MADERA_ADC_DIGITAL_VOLUME_1L 0x311 +#define MADERA_DMIC1L_CONTROL 0x312 +#define MADERA_IN1L_RATE_CONTROL 0x313 +#define MADERA_IN1R_CONTROL 0x314 +#define MADERA_ADC_DIGITAL_VOLUME_1R 0x315 +#define MADERA_DMIC1R_CONTROL 0x316 +#define MADERA_IN1R_RATE_CONTROL 0x317 +#define MADERA_IN2L_CONTROL 0x318 +#define MADERA_ADC_DIGITAL_VOLUME_2L 0x319 +#define MADERA_DMIC2L_CONTROL 0x31A +#define MADERA_IN2L_RATE_CONTROL 0x31B +#define MADERA_IN2R_CONTROL 0x31C +#define MADERA_ADC_DIGITAL_VOLUME_2R 0x31D +#define MADERA_DMIC2R_CONTROL 0x31E +#define MADERA_IN2R_RATE_CONTROL 0x31F +#define MADERA_IN3L_CONTROL 0x320 +#define MADERA_ADC_DIGITAL_VOLUME_3L 0x321 +#define MADERA_DMIC3L_CONTROL 0x322 +#define MADERA_IN3L_RATE_CONTROL 0x323 +#define MADERA_IN3R_CONTROL 0x324 +#define MADERA_ADC_DIGITAL_VOLUME_3R 0x325 +#define MADERA_DMIC3R_CONTROL 0x326 +#define MADERA_IN3R_RATE_CONTROL 0x327 +#define MADERA_IN4L_CONTROL 0x328 +#define MADERA_ADC_DIGITAL_VOLUME_4L 0x329 +#define MADERA_DMIC4L_CONTROL 0x32A +#define MADERA_IN4L_RATE_CONTROL 0x32B +#define MADERA_IN4R_CONTROL 0x32C +#define MADERA_ADC_DIGITAL_VOLUME_4R 0x32D +#define MADERA_DMIC4R_CONTROL 0x32E +#define MADERA_IN4R_RATE_CONTROL 0x32F +#define MADERA_IN5L_CONTROL 0x330 +#define MADERA_ADC_DIGITAL_VOLUME_5L 0x331 +#define MADERA_DMIC5L_CONTROL 0x332 +#define MADERA_IN5L_RATE_CONTROL 0x333 +#define MADERA_IN5R_CONTROL 0x334 +#define MADERA_ADC_DIGITAL_VOLUME_5R 0x335 +#define MADERA_DMIC5R_CONTROL 0x336 +#define MADERA_IN5R_RATE_CONTROL 0x337 +#define MADERA_IN6L_CONTROL 0x338 +#define MADERA_ADC_DIGITAL_VOLUME_6L 0x339 +#define MADERA_DMIC6L_CONTROL 0x33A +#define MADERA_IN6R_CONTROL 0x33C +#define MADERA_ADC_DIGITAL_VOLUME_6R 0x33D +#define MADERA_DMIC6R_CONTROL 0x33E +#define MADERA_OUTPUT_ENABLES_1 0x400 +#define MADERA_OUTPUT_STATUS_1 0x401 +#define MADERA_RAW_OUTPUT_STATUS_1 0x406 +#define MADERA_OUTPUT_RATE_1 0x408 +#define MADERA_OUTPUT_VOLUME_RAMP 0x409 +#define MADERA_OUTPUT_PATH_CONFIG_1L 0x410 +#define MADERA_DAC_DIGITAL_VOLUME_1L 0x411 +#define MADERA_OUTPUT_PATH_CONFIG_1 0x412 +#define MADERA_NOISE_GATE_SELECT_1L 0x413 +#define MADERA_OUTPUT_PATH_CONFIG_1R 0x414 +#define MADERA_DAC_DIGITAL_VOLUME_1R 0x415 +#define MADERA_NOISE_GATE_SELECT_1R 0x417 +#define MADERA_OUTPUT_PATH_CONFIG_2L 0x418 +#define MADERA_DAC_DIGITAL_VOLUME_2L 0x419 +#define MADERA_OUTPUT_PATH_CONFIG_2 0x41A +#define MADERA_NOISE_GATE_SELECT_2L 0x41B +#define MADERA_OUTPUT_PATH_CONFIG_2R 0x41C +#define MADERA_DAC_DIGITAL_VOLUME_2R 0x41D +#define MADERA_NOISE_GATE_SELECT_2R 0x41F +#define MADERA_OUTPUT_PATH_CONFIG_3L 0x420 +#define MADERA_DAC_DIGITAL_VOLUME_3L 0x421 +#define MADERA_NOISE_GATE_SELECT_3L 0x423 +#define MADERA_OUTPUT_PATH_CONFIG_3R 0x424 +#define MADERA_DAC_DIGITAL_VOLUME_3R 0x425 +#define MADERA_NOISE_GATE_SELECT_3R 0x427 +#define MADERA_OUTPUT_PATH_CONFIG_4L 0x428 +#define MADERA_DAC_DIGITAL_VOLUME_4L 0x429 +#define MADERA_NOISE_GATE_SELECT_4L 0x42B +#define MADERA_OUTPUT_PATH_CONFIG_4R 0x42C +#define MADERA_DAC_DIGITAL_VOLUME_4R 0x42D +#define MADERA_NOISE_GATE_SELECT_4R 0x42F +#define MADERA_OUTPUT_PATH_CONFIG_5L 0x430 +#define MADERA_DAC_DIGITAL_VOLUME_5L 0x431 +#define MADERA_NOISE_GATE_SELECT_5L 0x433 +#define MADERA_OUTPUT_PATH_CONFIG_5R 0x434 +#define MADERA_DAC_DIGITAL_VOLUME_5R 0x435 +#define MADERA_NOISE_GATE_SELECT_5R 0x437 +#define MADERA_OUTPUT_PATH_CONFIG_6L 0x438 +#define MADERA_DAC_DIGITAL_VOLUME_6L 0x439 +#define MADERA_NOISE_GATE_SELECT_6L 0x43B +#define MADERA_OUTPUT_PATH_CONFIG_6R 0x43C +#define MADERA_DAC_DIGITAL_VOLUME_6R 0x43D +#define MADERA_NOISE_GATE_SELECT_6R 0x43F +#define MADERA_DRE_ENABLE 0x440 +#define MADERA_EDRE_ENABLE 0x448 +#define MADERA_EDRE_MANUAL 0x44A +#define MADERA_DAC_AEC_CONTROL_1 0x450 +#define MADERA_DAC_AEC_CONTROL_2 0x451 +#define MADERA_NOISE_GATE_CONTROL 0x458 +#define MADERA_PDM_SPK1_CTRL_1 0x490 +#define MADERA_PDM_SPK1_CTRL_2 0x491 +#define MADERA_PDM_SPK2_CTRL_1 0x492 +#define MADERA_PDM_SPK2_CTRL_2 0x493 +#define MADERA_HP1_SHORT_CIRCUIT_CTRL 0x4A0 +#define MADERA_HP2_SHORT_CIRCUIT_CTRL 0x4A1 +#define MADERA_HP3_SHORT_CIRCUIT_CTRL 0x4A2 +#define MADERA_HP_TEST_CTRL_1 0x4A4 +#define MADERA_HP_TEST_CTRL_5 0x4A8 +#define MADERA_HP_TEST_CTRL_6 0x4A9 +#define MADERA_AIF1_BCLK_CTRL 0x500 +#define MADERA_AIF1_TX_PIN_CTRL 0x501 +#define MADERA_AIF1_RX_PIN_CTRL 0x502 +#define MADERA_AIF1_RATE_CTRL 0x503 +#define MADERA_AIF1_FORMAT 0x504 +#define MADERA_AIF1_RX_BCLK_RATE 0x506 +#define MADERA_AIF1_FRAME_CTRL_1 0x507 +#define MADERA_AIF1_FRAME_CTRL_2 0x508 +#define MADERA_AIF1_FRAME_CTRL_3 0x509 +#define MADERA_AIF1_FRAME_CTRL_4 0x50A +#define MADERA_AIF1_FRAME_CTRL_5 0x50B +#define MADERA_AIF1_FRAME_CTRL_6 0x50C +#define MADERA_AIF1_FRAME_CTRL_7 0x50D +#define MADERA_AIF1_FRAME_CTRL_8 0x50E +#define MADERA_AIF1_FRAME_CTRL_9 0x50F +#define MADERA_AIF1_FRAME_CTRL_10 0x510 +#define MADERA_AIF1_FRAME_CTRL_11 0x511 +#define MADERA_AIF1_FRAME_CTRL_12 0x512 +#define MADERA_AIF1_FRAME_CTRL_13 0x513 +#define MADERA_AIF1_FRAME_CTRL_14 0x514 +#define MADERA_AIF1_FRAME_CTRL_15 0x515 +#define MADERA_AIF1_FRAME_CTRL_16 0x516 +#define MADERA_AIF1_FRAME_CTRL_17 0x517 +#define MADERA_AIF1_FRAME_CTRL_18 0x518 +#define MADERA_AIF1_TX_ENABLES 0x519 +#define MADERA_AIF1_RX_ENABLES 0x51A +#define MADERA_AIF1_FORCE_WRITE 0x51B +#define MADERA_AIF2_BCLK_CTRL 0x540 +#define MADERA_AIF2_TX_PIN_CTRL 0x541 +#define MADERA_AIF2_RX_PIN_CTRL 0x542 +#define MADERA_AIF2_RATE_CTRL 0x543 +#define MADERA_AIF2_FORMAT 0x544 +#define MADERA_AIF2_RX_BCLK_RATE 0x546 +#define MADERA_AIF2_FRAME_CTRL_1 0x547 +#define MADERA_AIF2_FRAME_CTRL_2 0x548 +#define MADERA_AIF2_FRAME_CTRL_3 0x549 +#define MADERA_AIF2_FRAME_CTRL_4 0x54A +#define MADERA_AIF2_FRAME_CTRL_5 0x54B +#define MADERA_AIF2_FRAME_CTRL_6 0x54C +#define MADERA_AIF2_FRAME_CTRL_7 0x54D +#define MADERA_AIF2_FRAME_CTRL_8 0x54E +#define MADERA_AIF2_FRAME_CTRL_9 0x54F +#define MADERA_AIF2_FRAME_CTRL_10 0x550 +#define MADERA_AIF2_FRAME_CTRL_11 0x551 +#define MADERA_AIF2_FRAME_CTRL_12 0x552 +#define MADERA_AIF2_FRAME_CTRL_13 0x553 +#define MADERA_AIF2_FRAME_CTRL_14 0x554 +#define MADERA_AIF2_FRAME_CTRL_15 0x555 +#define MADERA_AIF2_FRAME_CTRL_16 0x556 +#define MADERA_AIF2_FRAME_CTRL_17 0x557 +#define MADERA_AIF2_FRAME_CTRL_18 0x558 +#define MADERA_AIF2_TX_ENABLES 0x559 +#define MADERA_AIF2_RX_ENABLES 0x55A +#define MADERA_AIF2_FORCE_WRITE 0x55B +#define MADERA_AIF3_BCLK_CTRL 0x580 +#define MADERA_AIF3_TX_PIN_CTRL 0x581 +#define MADERA_AIF3_RX_PIN_CTRL 0x582 +#define MADERA_AIF3_RATE_CTRL 0x583 +#define MADERA_AIF3_FORMAT 0x584 +#define MADERA_AIF3_RX_BCLK_RATE 0x586 +#define MADERA_AIF3_FRAME_CTRL_1 0x587 +#define MADERA_AIF3_FRAME_CTRL_2 0x588 +#define MADERA_AIF3_FRAME_CTRL_3 0x589 +#define MADERA_AIF3_FRAME_CTRL_4 0x58A +#define MADERA_AIF3_FRAME_CTRL_11 0x591 +#define MADERA_AIF3_FRAME_CTRL_12 0x592 +#define MADERA_AIF3_TX_ENABLES 0x599 +#define MADERA_AIF3_RX_ENABLES 0x59A +#define MADERA_AIF3_FORCE_WRITE 0x59B +#define MADERA_AIF4_BCLK_CTRL 0x5A0 +#define MADERA_AIF4_TX_PIN_CTRL 0x5A1 +#define MADERA_AIF4_RX_PIN_CTRL 0x5A2 +#define MADERA_AIF4_RATE_CTRL 0x5A3 +#define MADERA_AIF4_FORMAT 0x5A4 +#define MADERA_AIF4_RX_BCLK_RATE 0x5A6 +#define MADERA_AIF4_FRAME_CTRL_1 0x5A7 +#define MADERA_AIF4_FRAME_CTRL_2 0x5A8 +#define MADERA_AIF4_FRAME_CTRL_3 0x5A9 +#define MADERA_AIF4_FRAME_CTRL_4 0x5AA +#define MADERA_AIF4_FRAME_CTRL_11 0x5B1 +#define MADERA_AIF4_FRAME_CTRL_12 0x5B2 +#define MADERA_AIF4_TX_ENABLES 0x5B9 +#define MADERA_AIF4_RX_ENABLES 0x5BA +#define MADERA_AIF4_FORCE_WRITE 0x5BB +#define MADERA_SPD1_TX_CONTROL 0x5C2 +#define MADERA_SPD1_TX_CHANNEL_STATUS_1 0x5C3 +#define MADERA_SPD1_TX_CHANNEL_STATUS_2 0x5C4 +#define MADERA_SPD1_TX_CHANNEL_STATUS_3 0x5C5 +#define MADERA_SLIMBUS_FRAMER_REF_GEAR 0x5E3 +#define MADERA_SLIMBUS_RATES_1 0x5E5 +#define MADERA_SLIMBUS_RATES_2 0x5E6 +#define MADERA_SLIMBUS_RATES_3 0x5E7 +#define MADERA_SLIMBUS_RATES_4 0x5E8 +#define MADERA_SLIMBUS_RATES_5 0x5E9 +#define MADERA_SLIMBUS_RATES_6 0x5EA +#define MADERA_SLIMBUS_RATES_7 0x5EB +#define MADERA_SLIMBUS_RATES_8 0x5EC +#define MADERA_SLIMBUS_RX_CHANNEL_ENABLE 0x5F5 +#define MADERA_SLIMBUS_TX_CHANNEL_ENABLE 0x5F6 +#define MADERA_SLIMBUS_RX_PORT_STATUS 0x5F7 +#define MADERA_SLIMBUS_TX_PORT_STATUS 0x5F8 +#define MADERA_PWM1MIX_INPUT_1_SOURCE 0x640 +#define MADERA_PWM1MIX_INPUT_1_VOLUME 0x641 +#define MADERA_PWM1MIX_INPUT_2_SOURCE 0x642 +#define MADERA_PWM1MIX_INPUT_2_VOLUME 0x643 +#define MADERA_PWM1MIX_INPUT_3_SOURCE 0x644 +#define MADERA_PWM1MIX_INPUT_3_VOLUME 0x645 +#define MADERA_PWM1MIX_INPUT_4_SOURCE 0x646 +#define MADERA_PWM1MIX_INPUT_4_VOLUME 0x647 +#define MADERA_PWM2MIX_INPUT_1_SOURCE 0x648 +#define MADERA_PWM2MIX_INPUT_1_VOLUME 0x649 +#define MADERA_PWM2MIX_INPUT_2_SOURCE 0x64A +#define MADERA_PWM2MIX_INPUT_2_VOLUME 0x64B +#define MADERA_PWM2MIX_INPUT_3_SOURCE 0x64C +#define MADERA_PWM2MIX_INPUT_3_VOLUME 0x64D +#define MADERA_PWM2MIX_INPUT_4_SOURCE 0x64E +#define MADERA_PWM2MIX_INPUT_4_VOLUME 0x64F +#define MADERA_OUT1LMIX_INPUT_1_SOURCE 0x680 +#define MADERA_OUT1LMIX_INPUT_1_VOLUME 0x681 +#define MADERA_OUT1LMIX_INPUT_2_SOURCE 0x682 +#define MADERA_OUT1LMIX_INPUT_2_VOLUME 0x683 +#define MADERA_OUT1LMIX_INPUT_3_SOURCE 0x684 +#define MADERA_OUT1LMIX_INPUT_3_VOLUME 0x685 +#define MADERA_OUT1LMIX_INPUT_4_SOURCE 0x686 +#define MADERA_OUT1LMIX_INPUT_4_VOLUME 0x687 +#define MADERA_OUT1RMIX_INPUT_1_SOURCE 0x688 +#define MADERA_OUT1RMIX_INPUT_1_VOLUME 0x689 +#define MADERA_OUT1RMIX_INPUT_2_SOURCE 0x68A +#define MADERA_OUT1RMIX_INPUT_2_VOLUME 0x68B +#define MADERA_OUT1RMIX_INPUT_3_SOURCE 0x68C +#define MADERA_OUT1RMIX_INPUT_3_VOLUME 0x68D +#define MADERA_OUT1RMIX_INPUT_4_SOURCE 0x68E +#define MADERA_OUT1RMIX_INPUT_4_VOLUME 0x68F +#define MADERA_OUT2LMIX_INPUT_1_SOURCE 0x690 +#define MADERA_OUT2LMIX_INPUT_1_VOLUME 0x691 +#define MADERA_OUT2LMIX_INPUT_2_SOURCE 0x692 +#define MADERA_OUT2LMIX_INPUT_2_VOLUME 0x693 +#define MADERA_OUT2LMIX_INPUT_3_SOURCE 0x694 +#define MADERA_OUT2LMIX_INPUT_3_VOLUME 0x695 +#define MADERA_OUT2LMIX_INPUT_4_SOURCE 0x696 +#define MADERA_OUT2LMIX_INPUT_4_VOLUME 0x697 +#define MADERA_OUT2RMIX_INPUT_1_SOURCE 0x698 +#define MADERA_OUT2RMIX_INPUT_1_VOLUME 0x699 +#define MADERA_OUT2RMIX_INPUT_2_SOURCE 0x69A +#define MADERA_OUT2RMIX_INPUT_2_VOLUME 0x69B +#define MADERA_OUT2RMIX_INPUT_3_SOURCE 0x69C +#define MADERA_OUT2RMIX_INPUT_3_VOLUME 0x69D +#define MADERA_OUT2RMIX_INPUT_4_SOURCE 0x69E +#define MADERA_OUT2RMIX_INPUT_4_VOLUME 0x69F +#define MADERA_OUT3LMIX_INPUT_1_SOURCE 0x6A0 +#define MADERA_OUT3LMIX_INPUT_1_VOLUME 0x6A1 +#define MADERA_OUT3LMIX_INPUT_2_SOURCE 0x6A2 +#define MADERA_OUT3LMIX_INPUT_2_VOLUME 0x6A3 +#define MADERA_OUT3LMIX_INPUT_3_SOURCE 0x6A4 +#define MADERA_OUT3LMIX_INPUT_3_VOLUME 0x6A5 +#define MADERA_OUT3LMIX_INPUT_4_SOURCE 0x6A6 +#define MADERA_OUT3LMIX_INPUT_4_VOLUME 0x6A7 +#define MADERA_OUT3RMIX_INPUT_1_SOURCE 0x6A8 +#define MADERA_OUT3RMIX_INPUT_1_VOLUME 0x6A9 +#define MADERA_OUT3RMIX_INPUT_2_SOURCE 0x6AA +#define MADERA_OUT3RMIX_INPUT_2_VOLUME 0x6AB +#define MADERA_OUT3RMIX_INPUT_3_SOURCE 0x6AC +#define MADERA_OUT3RMIX_INPUT_3_VOLUME 0x6AD +#define MADERA_OUT3RMIX_INPUT_4_SOURCE 0x6AE +#define MADERA_OUT3RMIX_INPUT_4_VOLUME 0x6AF +#define MADERA_OUT4LMIX_INPUT_1_SOURCE 0x6B0 +#define MADERA_OUT4LMIX_INPUT_1_VOLUME 0x6B1 +#define MADERA_OUT4LMIX_INPUT_2_SOURCE 0x6B2 +#define MADERA_OUT4LMIX_INPUT_2_VOLUME 0x6B3 +#define MADERA_OUT4LMIX_INPUT_3_SOURCE 0x6B4 +#define MADERA_OUT4LMIX_INPUT_3_VOLUME 0x6B5 +#define MADERA_OUT4LMIX_INPUT_4_SOURCE 0x6B6 +#define MADERA_OUT4LMIX_INPUT_4_VOLUME 0x6B7 +#define MADERA_OUT4RMIX_INPUT_1_SOURCE 0x6B8 +#define MADERA_OUT4RMIX_INPUT_1_VOLUME 0x6B9 +#define MADERA_OUT4RMIX_INPUT_2_SOURCE 0x6BA +#define MADERA_OUT4RMIX_INPUT_2_VOLUME 0x6BB +#define MADERA_OUT4RMIX_INPUT_3_SOURCE 0x6BC +#define MADERA_OUT4RMIX_INPUT_3_VOLUME 0x6BD +#define MADERA_OUT4RMIX_INPUT_4_SOURCE 0x6BE +#define MADERA_OUT4RMIX_INPUT_4_VOLUME 0x6BF +#define MADERA_OUT5LMIX_INPUT_1_SOURCE 0x6C0 +#define MADERA_OUT5LMIX_INPUT_1_VOLUME 0x6C1 +#define MADERA_OUT5LMIX_INPUT_2_SOURCE 0x6C2 +#define MADERA_OUT5LMIX_INPUT_2_VOLUME 0x6C3 +#define MADERA_OUT5LMIX_INPUT_3_SOURCE 0x6C4 +#define MADERA_OUT5LMIX_INPUT_3_VOLUME 0x6C5 +#define MADERA_OUT5LMIX_INPUT_4_SOURCE 0x6C6 +#define MADERA_OUT5LMIX_INPUT_4_VOLUME 0x6C7 +#define MADERA_OUT5RMIX_INPUT_1_SOURCE 0x6C8 +#define MADERA_OUT5RMIX_INPUT_1_VOLUME 0x6C9 +#define MADERA_OUT5RMIX_INPUT_2_SOURCE 0x6CA +#define MADERA_OUT5RMIX_INPUT_2_VOLUME 0x6CB +#define MADERA_OUT5RMIX_INPUT_3_SOURCE 0x6CC +#define MADERA_OUT5RMIX_INPUT_3_VOLUME 0x6CD +#define MADERA_OUT5RMIX_INPUT_4_SOURCE 0x6CE +#define MADERA_OUT5RMIX_INPUT_4_VOLUME 0x6CF +#define MADERA_OUT6LMIX_INPUT_1_SOURCE 0x6D0 +#define MADERA_OUT6LMIX_INPUT_1_VOLUME 0x6D1 +#define MADERA_OUT6LMIX_INPUT_2_SOURCE 0x6D2 +#define MADERA_OUT6LMIX_INPUT_2_VOLUME 0x6D3 +#define MADERA_OUT6LMIX_INPUT_3_SOURCE 0x6D4 +#define MADERA_OUT6LMIX_INPUT_3_VOLUME 0x6D5 +#define MADERA_OUT6LMIX_INPUT_4_SOURCE 0x6D6 +#define MADERA_OUT6LMIX_INPUT_4_VOLUME 0x6D7 +#define MADERA_OUT6RMIX_INPUT_1_SOURCE 0x6D8 +#define MADERA_OUT6RMIX_INPUT_1_VOLUME 0x6D9 +#define MADERA_OUT6RMIX_INPUT_2_SOURCE 0x6DA +#define MADERA_OUT6RMIX_INPUT_2_VOLUME 0x6DB +#define MADERA_OUT6RMIX_INPUT_3_SOURCE 0x6DC +#define MADERA_OUT6RMIX_INPUT_3_VOLUME 0x6DD +#define MADERA_OUT6RMIX_INPUT_4_SOURCE 0x6DE +#define MADERA_OUT6RMIX_INPUT_4_VOLUME 0x6DF +#define MADERA_AIF1TX1MIX_INPUT_1_SOURCE 0x700 +#define MADERA_AIF1TX1MIX_INPUT_1_VOLUME 0x701 +#define MADERA_AIF1TX1MIX_INPUT_2_SOURCE 0x702 +#define MADERA_AIF1TX1MIX_INPUT_2_VOLUME 0x703 +#define MADERA_AIF1TX1MIX_INPUT_3_SOURCE 0x704 +#define MADERA_AIF1TX1MIX_INPUT_3_VOLUME 0x705 +#define MADERA_AIF1TX1MIX_INPUT_4_SOURCE 0x706 +#define MADERA_AIF1TX1MIX_INPUT_4_VOLUME 0x707 +#define MADERA_AIF1TX2MIX_INPUT_1_SOURCE 0x708 +#define MADERA_AIF1TX2MIX_INPUT_1_VOLUME 0x709 +#define MADERA_AIF1TX2MIX_INPUT_2_SOURCE 0x70A +#define MADERA_AIF1TX2MIX_INPUT_2_VOLUME 0x70B +#define MADERA_AIF1TX2MIX_INPUT_3_SOURCE 0x70C +#define MADERA_AIF1TX2MIX_INPUT_3_VOLUME 0x70D +#define MADERA_AIF1TX2MIX_INPUT_4_SOURCE 0x70E +#define MADERA_AIF1TX2MIX_INPUT_4_VOLUME 0x70F +#define MADERA_AIF1TX3MIX_INPUT_1_SOURCE 0x710 +#define MADERA_AIF1TX3MIX_INPUT_1_VOLUME 0x711 +#define MADERA_AIF1TX3MIX_INPUT_2_SOURCE 0x712 +#define MADERA_AIF1TX3MIX_INPUT_2_VOLUME 0x713 +#define MADERA_AIF1TX3MIX_INPUT_3_SOURCE 0x714 +#define MADERA_AIF1TX3MIX_INPUT_3_VOLUME 0x715 +#define MADERA_AIF1TX3MIX_INPUT_4_SOURCE 0x716 +#define MADERA_AIF1TX3MIX_INPUT_4_VOLUME 0x717 +#define MADERA_AIF1TX4MIX_INPUT_1_SOURCE 0x718 +#define MADERA_AIF1TX4MIX_INPUT_1_VOLUME 0x719 +#define MADERA_AIF1TX4MIX_INPUT_2_SOURCE 0x71A +#define MADERA_AIF1TX4MIX_INPUT_2_VOLUME 0x71B +#define MADERA_AIF1TX4MIX_INPUT_3_SOURCE 0x71C +#define MADERA_AIF1TX4MIX_INPUT_3_VOLUME 0x71D +#define MADERA_AIF1TX4MIX_INPUT_4_SOURCE 0x71E +#define MADERA_AIF1TX4MIX_INPUT_4_VOLUME 0x71F +#define MADERA_AIF1TX5MIX_INPUT_1_SOURCE 0x720 +#define MADERA_AIF1TX5MIX_INPUT_1_VOLUME 0x721 +#define MADERA_AIF1TX5MIX_INPUT_2_SOURCE 0x722 +#define MADERA_AIF1TX5MIX_INPUT_2_VOLUME 0x723 +#define MADERA_AIF1TX5MIX_INPUT_3_SOURCE 0x724 +#define MADERA_AIF1TX5MIX_INPUT_3_VOLUME 0x725 +#define MADERA_AIF1TX5MIX_INPUT_4_SOURCE 0x726 +#define MADERA_AIF1TX5MIX_INPUT_4_VOLUME 0x727 +#define MADERA_AIF1TX6MIX_INPUT_1_SOURCE 0x728 +#define MADERA_AIF1TX6MIX_INPUT_1_VOLUME 0x729 +#define MADERA_AIF1TX6MIX_INPUT_2_SOURCE 0x72A +#define MADERA_AIF1TX6MIX_INPUT_2_VOLUME 0x72B +#define MADERA_AIF1TX6MIX_INPUT_3_SOURCE 0x72C +#define MADERA_AIF1TX6MIX_INPUT_3_VOLUME 0x72D +#define MADERA_AIF1TX6MIX_INPUT_4_SOURCE 0x72E +#define MADERA_AIF1TX6MIX_INPUT_4_VOLUME 0x72F +#define MADERA_AIF1TX7MIX_INPUT_1_SOURCE 0x730 +#define MADERA_AIF1TX7MIX_INPUT_1_VOLUME 0x731 +#define MADERA_AIF1TX7MIX_INPUT_2_SOURCE 0x732 +#define MADERA_AIF1TX7MIX_INPUT_2_VOLUME 0x733 +#define MADERA_AIF1TX7MIX_INPUT_3_SOURCE 0x734 +#define MADERA_AIF1TX7MIX_INPUT_3_VOLUME 0x735 +#define MADERA_AIF1TX7MIX_INPUT_4_SOURCE 0x736 +#define MADERA_AIF1TX7MIX_INPUT_4_VOLUME 0x737 +#define MADERA_AIF1TX8MIX_INPUT_1_SOURCE 0x738 +#define MADERA_AIF1TX8MIX_INPUT_1_VOLUME 0x739 +#define MADERA_AIF1TX8MIX_INPUT_2_SOURCE 0x73A +#define MADERA_AIF1TX8MIX_INPUT_2_VOLUME 0x73B +#define MADERA_AIF1TX8MIX_INPUT_3_SOURCE 0x73C +#define MADERA_AIF1TX8MIX_INPUT_3_VOLUME 0x73D +#define MADERA_AIF1TX8MIX_INPUT_4_SOURCE 0x73E +#define MADERA_AIF1TX8MIX_INPUT_4_VOLUME 0x73F +#define MADERA_AIF2TX1MIX_INPUT_1_SOURCE 0x740 +#define MADERA_AIF2TX1MIX_INPUT_1_VOLUME 0x741 +#define MADERA_AIF2TX1MIX_INPUT_2_SOURCE 0x742 +#define MADERA_AIF2TX1MIX_INPUT_2_VOLUME 0x743 +#define MADERA_AIF2TX1MIX_INPUT_3_SOURCE 0x744 +#define MADERA_AIF2TX1MIX_INPUT_3_VOLUME 0x745 +#define MADERA_AIF2TX1MIX_INPUT_4_SOURCE 0x746 +#define MADERA_AIF2TX1MIX_INPUT_4_VOLUME 0x747 +#define MADERA_AIF2TX2MIX_INPUT_1_SOURCE 0x748 +#define MADERA_AIF2TX2MIX_INPUT_1_VOLUME 0x749 +#define MADERA_AIF2TX2MIX_INPUT_2_SOURCE 0x74A +#define MADERA_AIF2TX2MIX_INPUT_2_VOLUME 0x74B +#define MADERA_AIF2TX2MIX_INPUT_3_SOURCE 0x74C +#define MADERA_AIF2TX2MIX_INPUT_3_VOLUME 0x74D +#define MADERA_AIF2TX2MIX_INPUT_4_SOURCE 0x74E +#define MADERA_AIF2TX2MIX_INPUT_4_VOLUME 0x74F +#define MADERA_AIF2TX3MIX_INPUT_1_SOURCE 0x750 +#define MADERA_AIF2TX3MIX_INPUT_1_VOLUME 0x751 +#define MADERA_AIF2TX3MIX_INPUT_2_SOURCE 0x752 +#define MADERA_AIF2TX3MIX_INPUT_2_VOLUME 0x753 +#define MADERA_AIF2TX3MIX_INPUT_3_SOURCE 0x754 +#define MADERA_AIF2TX3MIX_INPUT_3_VOLUME 0x755 +#define MADERA_AIF2TX3MIX_INPUT_4_SOURCE 0x756 +#define MADERA_AIF2TX3MIX_INPUT_4_VOLUME 0x757 +#define MADERA_AIF2TX4MIX_INPUT_1_SOURCE 0x758 +#define MADERA_AIF2TX4MIX_INPUT_1_VOLUME 0x759 +#define MADERA_AIF2TX4MIX_INPUT_2_SOURCE 0x75A +#define MADERA_AIF2TX4MIX_INPUT_2_VOLUME 0x75B +#define MADERA_AIF2TX4MIX_INPUT_3_SOURCE 0x75C +#define MADERA_AIF2TX4MIX_INPUT_3_VOLUME 0x75D +#define MADERA_AIF2TX4MIX_INPUT_4_SOURCE 0x75E +#define MADERA_AIF2TX4MIX_INPUT_4_VOLUME 0x75F +#define MADERA_AIF2TX5MIX_INPUT_1_SOURCE 0x760 +#define MADERA_AIF2TX5MIX_INPUT_1_VOLUME 0x761 +#define MADERA_AIF2TX5MIX_INPUT_2_SOURCE 0x762 +#define MADERA_AIF2TX5MIX_INPUT_2_VOLUME 0x763 +#define MADERA_AIF2TX5MIX_INPUT_3_SOURCE 0x764 +#define MADERA_AIF2TX5MIX_INPUT_3_VOLUME 0x765 +#define MADERA_AIF2TX5MIX_INPUT_4_SOURCE 0x766 +#define MADERA_AIF2TX5MIX_INPUT_4_VOLUME 0x767 +#define MADERA_AIF2TX6MIX_INPUT_1_SOURCE 0x768 +#define MADERA_AIF2TX6MIX_INPUT_1_VOLUME 0x769 +#define MADERA_AIF2TX6MIX_INPUT_2_SOURCE 0x76A +#define MADERA_AIF2TX6MIX_INPUT_2_VOLUME 0x76B +#define MADERA_AIF2TX6MIX_INPUT_3_SOURCE 0x76C +#define MADERA_AIF2TX6MIX_INPUT_3_VOLUME 0x76D +#define MADERA_AIF2TX6MIX_INPUT_4_SOURCE 0x76E +#define MADERA_AIF2TX6MIX_INPUT_4_VOLUME 0x76F +#define MADERA_AIF2TX7MIX_INPUT_1_SOURCE 0x770 +#define MADERA_AIF2TX7MIX_INPUT_1_VOLUME 0x771 +#define MADERA_AIF2TX7MIX_INPUT_2_SOURCE 0x772 +#define MADERA_AIF2TX7MIX_INPUT_2_VOLUME 0x773 +#define MADERA_AIF2TX7MIX_INPUT_3_SOURCE 0x774 +#define MADERA_AIF2TX7MIX_INPUT_3_VOLUME 0x775 +#define MADERA_AIF2TX7MIX_INPUT_4_SOURCE 0x776 +#define MADERA_AIF2TX7MIX_INPUT_4_VOLUME 0x777 +#define MADERA_AIF2TX8MIX_INPUT_1_SOURCE 0x778 +#define MADERA_AIF2TX8MIX_INPUT_1_VOLUME 0x779 +#define MADERA_AIF2TX8MIX_INPUT_2_SOURCE 0x77A +#define MADERA_AIF2TX8MIX_INPUT_2_VOLUME 0x77B +#define MADERA_AIF2TX8MIX_INPUT_3_SOURCE 0x77C +#define MADERA_AIF2TX8MIX_INPUT_3_VOLUME 0x77D +#define MADERA_AIF2TX8MIX_INPUT_4_SOURCE 0x77E +#define MADERA_AIF2TX8MIX_INPUT_4_VOLUME 0x77F +#define MADERA_AIF3TX1MIX_INPUT_1_SOURCE 0x780 +#define MADERA_AIF3TX1MIX_INPUT_1_VOLUME 0x781 +#define MADERA_AIF3TX1MIX_INPUT_2_SOURCE 0x782 +#define MADERA_AIF3TX1MIX_INPUT_2_VOLUME 0x783 +#define MADERA_AIF3TX1MIX_INPUT_3_SOURCE 0x784 +#define MADERA_AIF3TX1MIX_INPUT_3_VOLUME 0x785 +#define MADERA_AIF3TX1MIX_INPUT_4_SOURCE 0x786 +#define MADERA_AIF3TX1MIX_INPUT_4_VOLUME 0x787 +#define MADERA_AIF3TX2MIX_INPUT_1_SOURCE 0x788 +#define MADERA_AIF3TX2MIX_INPUT_1_VOLUME 0x789 +#define MADERA_AIF3TX2MIX_INPUT_2_SOURCE 0x78A +#define MADERA_AIF3TX2MIX_INPUT_2_VOLUME 0x78B +#define MADERA_AIF3TX2MIX_INPUT_3_SOURCE 0x78C +#define MADERA_AIF3TX2MIX_INPUT_3_VOLUME 0x78D +#define MADERA_AIF3TX2MIX_INPUT_4_SOURCE 0x78E +#define MADERA_AIF3TX2MIX_INPUT_4_VOLUME 0x78F +#define MADERA_AIF4TX1MIX_INPUT_1_SOURCE 0x7A0 +#define MADERA_AIF4TX1MIX_INPUT_1_VOLUME 0x7A1 +#define MADERA_AIF4TX1MIX_INPUT_2_SOURCE 0x7A2 +#define MADERA_AIF4TX1MIX_INPUT_2_VOLUME 0x7A3 +#define MADERA_AIF4TX1MIX_INPUT_3_SOURCE 0x7A4 +#define MADERA_AIF4TX1MIX_INPUT_3_VOLUME 0x7A5 +#define MADERA_AIF4TX1MIX_INPUT_4_SOURCE 0x7A6 +#define MADERA_AIF4TX1MIX_INPUT_4_VOLUME 0x7A7 +#define MADERA_AIF4TX2MIX_INPUT_1_SOURCE 0x7A8 +#define MADERA_AIF4TX2MIX_INPUT_1_VOLUME 0x7A9 +#define MADERA_AIF4TX2MIX_INPUT_2_SOURCE 0x7AA +#define MADERA_AIF4TX2MIX_INPUT_2_VOLUME 0x7AB +#define MADERA_AIF4TX2MIX_INPUT_3_SOURCE 0x7AC +#define MADERA_AIF4TX2MIX_INPUT_3_VOLUME 0x7AD +#define MADERA_AIF4TX2MIX_INPUT_4_SOURCE 0x7AE +#define MADERA_AIF4TX2MIX_INPUT_4_VOLUME 0x7AF +#define MADERA_SLIMTX1MIX_INPUT_1_SOURCE 0x7C0 +#define MADERA_SLIMTX1MIX_INPUT_1_VOLUME 0x7C1 +#define MADERA_SLIMTX1MIX_INPUT_2_SOURCE 0x7C2 +#define MADERA_SLIMTX1MIX_INPUT_2_VOLUME 0x7C3 +#define MADERA_SLIMTX1MIX_INPUT_3_SOURCE 0x7C4 +#define MADERA_SLIMTX1MIX_INPUT_3_VOLUME 0x7C5 +#define MADERA_SLIMTX1MIX_INPUT_4_SOURCE 0x7C6 +#define MADERA_SLIMTX1MIX_INPUT_4_VOLUME 0x7C7 +#define MADERA_SLIMTX2MIX_INPUT_1_SOURCE 0x7C8 +#define MADERA_SLIMTX2MIX_INPUT_1_VOLUME 0x7C9 +#define MADERA_SLIMTX2MIX_INPUT_2_SOURCE 0x7CA +#define MADERA_SLIMTX2MIX_INPUT_2_VOLUME 0x7CB +#define MADERA_SLIMTX2MIX_INPUT_3_SOURCE 0x7CC +#define MADERA_SLIMTX2MIX_INPUT_3_VOLUME 0x7CD +#define MADERA_SLIMTX2MIX_INPUT_4_SOURCE 0x7CE +#define MADERA_SLIMTX2MIX_INPUT_4_VOLUME 0x7CF +#define MADERA_SLIMTX3MIX_INPUT_1_SOURCE 0x7D0 +#define MADERA_SLIMTX3MIX_INPUT_1_VOLUME 0x7D1 +#define MADERA_SLIMTX3MIX_INPUT_2_SOURCE 0x7D2 +#define MADERA_SLIMTX3MIX_INPUT_2_VOLUME 0x7D3 +#define MADERA_SLIMTX3MIX_INPUT_3_SOURCE 0x7D4 +#define MADERA_SLIMTX3MIX_INPUT_3_VOLUME 0x7D5 +#define MADERA_SLIMTX3MIX_INPUT_4_SOURCE 0x7D6 +#define MADERA_SLIMTX3MIX_INPUT_4_VOLUME 0x7D7 +#define MADERA_SLIMTX4MIX_INPUT_1_SOURCE 0x7D8 +#define MADERA_SLIMTX4MIX_INPUT_1_VOLUME 0x7D9 +#define MADERA_SLIMTX4MIX_INPUT_2_SOURCE 0x7DA +#define MADERA_SLIMTX4MIX_INPUT_2_VOLUME 0x7DB +#define MADERA_SLIMTX4MIX_INPUT_3_SOURCE 0x7DC +#define MADERA_SLIMTX4MIX_INPUT_3_VOLUME 0x7DD +#define MADERA_SLIMTX4MIX_INPUT_4_SOURCE 0x7DE +#define MADERA_SLIMTX4MIX_INPUT_4_VOLUME 0x7DF +#define MADERA_SLIMTX5MIX_INPUT_1_SOURCE 0x7E0 +#define MADERA_SLIMTX5MIX_INPUT_1_VOLUME 0x7E1 +#define MADERA_SLIMTX5MIX_INPUT_2_SOURCE 0x7E2 +#define MADERA_SLIMTX5MIX_INPUT_2_VOLUME 0x7E3 +#define MADERA_SLIMTX5MIX_INPUT_3_SOURCE 0x7E4 +#define MADERA_SLIMTX5MIX_INPUT_3_VOLUME 0x7E5 +#define MADERA_SLIMTX5MIX_INPUT_4_SOURCE 0x7E6 +#define MADERA_SLIMTX5MIX_INPUT_4_VOLUME 0x7E7 +#define MADERA_SLIMTX6MIX_INPUT_1_SOURCE 0x7E8 +#define MADERA_SLIMTX6MIX_INPUT_1_VOLUME 0x7E9 +#define MADERA_SLIMTX6MIX_INPUT_2_SOURCE 0x7EA +#define MADERA_SLIMTX6MIX_INPUT_2_VOLUME 0x7EB +#define MADERA_SLIMTX6MIX_INPUT_3_SOURCE 0x7EC +#define MADERA_SLIMTX6MIX_INPUT_3_VOLUME 0x7ED +#define MADERA_SLIMTX6MIX_INPUT_4_SOURCE 0x7EE +#define MADERA_SLIMTX6MIX_INPUT_4_VOLUME 0x7EF +#define MADERA_SLIMTX7MIX_INPUT_1_SOURCE 0x7F0 +#define MADERA_SLIMTX7MIX_INPUT_1_VOLUME 0x7F1 +#define MADERA_SLIMTX7MIX_INPUT_2_SOURCE 0x7F2 +#define MADERA_SLIMTX7MIX_INPUT_2_VOLUME 0x7F3 +#define MADERA_SLIMTX7MIX_INPUT_3_SOURCE 0x7F4 +#define MADERA_SLIMTX7MIX_INPUT_3_VOLUME 0x7F5 +#define MADERA_SLIMTX7MIX_INPUT_4_SOURCE 0x7F6 +#define MADERA_SLIMTX7MIX_INPUT_4_VOLUME 0x7F7 +#define MADERA_SLIMTX8MIX_INPUT_1_SOURCE 0x7F8 +#define MADERA_SLIMTX8MIX_INPUT_1_VOLUME 0x7F9 +#define MADERA_SLIMTX8MIX_INPUT_2_SOURCE 0x7FA +#define MADERA_SLIMTX8MIX_INPUT_2_VOLUME 0x7FB +#define MADERA_SLIMTX8MIX_INPUT_3_SOURCE 0x7FC +#define MADERA_SLIMTX8MIX_INPUT_3_VOLUME 0x7FD +#define MADERA_SLIMTX8MIX_INPUT_4_SOURCE 0x7FE +#define MADERA_SLIMTX8MIX_INPUT_4_VOLUME 0x7FF +#define MADERA_SPDIF1TX1MIX_INPUT_1_SOURCE 0x800 +#define MADERA_SPDIF1TX1MIX_INPUT_1_VOLUME 0x801 +#define MADERA_SPDIF1TX2MIX_INPUT_1_SOURCE 0x808 +#define MADERA_SPDIF1TX2MIX_INPUT_1_VOLUME 0x809 +#define MADERA_EQ1MIX_INPUT_1_SOURCE 0x880 +#define MADERA_EQ1MIX_INPUT_1_VOLUME 0x881 +#define MADERA_EQ1MIX_INPUT_2_SOURCE 0x882 +#define MADERA_EQ1MIX_INPUT_2_VOLUME 0x883 +#define MADERA_EQ1MIX_INPUT_3_SOURCE 0x884 +#define MADERA_EQ1MIX_INPUT_3_VOLUME 0x885 +#define MADERA_EQ1MIX_INPUT_4_SOURCE 0x886 +#define MADERA_EQ1MIX_INPUT_4_VOLUME 0x887 +#define MADERA_EQ2MIX_INPUT_1_SOURCE 0x888 +#define MADERA_EQ2MIX_INPUT_1_VOLUME 0x889 +#define MADERA_EQ2MIX_INPUT_2_SOURCE 0x88A +#define MADERA_EQ2MIX_INPUT_2_VOLUME 0x88B +#define MADERA_EQ2MIX_INPUT_3_SOURCE 0x88C +#define MADERA_EQ2MIX_INPUT_3_VOLUME 0x88D +#define MADERA_EQ2MIX_INPUT_4_SOURCE 0x88E +#define MADERA_EQ2MIX_INPUT_4_VOLUME 0x88F +#define MADERA_EQ3MIX_INPUT_1_SOURCE 0x890 +#define MADERA_EQ3MIX_INPUT_1_VOLUME 0x891 +#define MADERA_EQ3MIX_INPUT_2_SOURCE 0x892 +#define MADERA_EQ3MIX_INPUT_2_VOLUME 0x893 +#define MADERA_EQ3MIX_INPUT_3_SOURCE 0x894 +#define MADERA_EQ3MIX_INPUT_3_VOLUME 0x895 +#define MADERA_EQ3MIX_INPUT_4_SOURCE 0x896 +#define MADERA_EQ3MIX_INPUT_4_VOLUME 0x897 +#define MADERA_EQ4MIX_INPUT_1_SOURCE 0x898 +#define MADERA_EQ4MIX_INPUT_1_VOLUME 0x899 +#define MADERA_EQ4MIX_INPUT_2_SOURCE 0x89A +#define MADERA_EQ4MIX_INPUT_2_VOLUME 0x89B +#define MADERA_EQ4MIX_INPUT_3_SOURCE 0x89C +#define MADERA_EQ4MIX_INPUT_3_VOLUME 0x89D +#define MADERA_EQ4MIX_INPUT_4_SOURCE 0x89E +#define MADERA_EQ4MIX_INPUT_4_VOLUME 0x89F +#define MADERA_DRC1LMIX_INPUT_1_SOURCE 0x8C0 +#define MADERA_DRC1LMIX_INPUT_1_VOLUME 0x8C1 +#define MADERA_DRC1LMIX_INPUT_2_SOURCE 0x8C2 +#define MADERA_DRC1LMIX_INPUT_2_VOLUME 0x8C3 +#define MADERA_DRC1LMIX_INPUT_3_SOURCE 0x8C4 +#define MADERA_DRC1LMIX_INPUT_3_VOLUME 0x8C5 +#define MADERA_DRC1LMIX_INPUT_4_SOURCE 0x8C6 +#define MADERA_DRC1LMIX_INPUT_4_VOLUME 0x8C7 +#define MADERA_DRC1RMIX_INPUT_1_SOURCE 0x8C8 +#define MADERA_DRC1RMIX_INPUT_1_VOLUME 0x8C9 +#define MADERA_DRC1RMIX_INPUT_2_SOURCE 0x8CA +#define MADERA_DRC1RMIX_INPUT_2_VOLUME 0x8CB +#define MADERA_DRC1RMIX_INPUT_3_SOURCE 0x8CC +#define MADERA_DRC1RMIX_INPUT_3_VOLUME 0x8CD +#define MADERA_DRC1RMIX_INPUT_4_SOURCE 0x8CE +#define MADERA_DRC1RMIX_INPUT_4_VOLUME 0x8CF +#define MADERA_DRC2LMIX_INPUT_1_SOURCE 0x8D0 +#define MADERA_DRC2LMIX_INPUT_1_VOLUME 0x8D1 +#define MADERA_DRC2LMIX_INPUT_2_SOURCE 0x8D2 +#define MADERA_DRC2LMIX_INPUT_2_VOLUME 0x8D3 +#define MADERA_DRC2LMIX_INPUT_3_SOURCE 0x8D4 +#define MADERA_DRC2LMIX_INPUT_3_VOLUME 0x8D5 +#define MADERA_DRC2LMIX_INPUT_4_SOURCE 0x8D6 +#define MADERA_DRC2LMIX_INPUT_4_VOLUME 0x8D7 +#define MADERA_DRC2RMIX_INPUT_1_SOURCE 0x8D8 +#define MADERA_DRC2RMIX_INPUT_1_VOLUME 0x8D9 +#define MADERA_DRC2RMIX_INPUT_2_SOURCE 0x8DA +#define MADERA_DRC2RMIX_INPUT_2_VOLUME 0x8DB +#define MADERA_DRC2RMIX_INPUT_3_SOURCE 0x8DC +#define MADERA_DRC2RMIX_INPUT_3_VOLUME 0x8DD +#define MADERA_DRC2RMIX_INPUT_4_SOURCE 0x8DE +#define MADERA_DRC2RMIX_INPUT_4_VOLUME 0x8DF +#define MADERA_HPLP1MIX_INPUT_1_SOURCE 0x900 +#define MADERA_HPLP1MIX_INPUT_1_VOLUME 0x901 +#define MADERA_HPLP1MIX_INPUT_2_SOURCE 0x902 +#define MADERA_HPLP1MIX_INPUT_2_VOLUME 0x903 +#define MADERA_HPLP1MIX_INPUT_3_SOURCE 0x904 +#define MADERA_HPLP1MIX_INPUT_3_VOLUME 0x905 +#define MADERA_HPLP1MIX_INPUT_4_SOURCE 0x906 +#define MADERA_HPLP1MIX_INPUT_4_VOLUME 0x907 +#define MADERA_HPLP2MIX_INPUT_1_SOURCE 0x908 +#define MADERA_HPLP2MIX_INPUT_1_VOLUME 0x909 +#define MADERA_HPLP2MIX_INPUT_2_SOURCE 0x90A +#define MADERA_HPLP2MIX_INPUT_2_VOLUME 0x90B +#define MADERA_HPLP2MIX_INPUT_3_SOURCE 0x90C +#define MADERA_HPLP2MIX_INPUT_3_VOLUME 0x90D +#define MADERA_HPLP2MIX_INPUT_4_SOURCE 0x90E +#define MADERA_HPLP2MIX_INPUT_4_VOLUME 0x90F +#define MADERA_HPLP3MIX_INPUT_1_SOURCE 0x910 +#define MADERA_HPLP3MIX_INPUT_1_VOLUME 0x911 +#define MADERA_HPLP3MIX_INPUT_2_SOURCE 0x912 +#define MADERA_HPLP3MIX_INPUT_2_VOLUME 0x913 +#define MADERA_HPLP3MIX_INPUT_3_SOURCE 0x914 +#define MADERA_HPLP3MIX_INPUT_3_VOLUME 0x915 +#define MADERA_HPLP3MIX_INPUT_4_SOURCE 0x916 +#define MADERA_HPLP3MIX_INPUT_4_VOLUME 0x917 +#define MADERA_HPLP4MIX_INPUT_1_SOURCE 0x918 +#define MADERA_HPLP4MIX_INPUT_1_VOLUME 0x919 +#define MADERA_HPLP4MIX_INPUT_2_SOURCE 0x91A +#define MADERA_HPLP4MIX_INPUT_2_VOLUME 0x91B +#define MADERA_HPLP4MIX_INPUT_3_SOURCE 0x91C +#define MADERA_HPLP4MIX_INPUT_3_VOLUME 0x91D +#define MADERA_HPLP4MIX_INPUT_4_SOURCE 0x91E +#define MADERA_HPLP4MIX_INPUT_4_VOLUME 0x91F +#define MADERA_DSP1LMIX_INPUT_1_SOURCE 0x940 +#define MADERA_DSP1LMIX_INPUT_1_VOLUME 0x941 +#define MADERA_DSP1LMIX_INPUT_2_SOURCE 0x942 +#define MADERA_DSP1LMIX_INPUT_2_VOLUME 0x943 +#define MADERA_DSP1LMIX_INPUT_3_SOURCE 0x944 +#define MADERA_DSP1LMIX_INPUT_3_VOLUME 0x945 +#define MADERA_DSP1LMIX_INPUT_4_SOURCE 0x946 +#define MADERA_DSP1LMIX_INPUT_4_VOLUME 0x947 +#define MADERA_DSP1RMIX_INPUT_1_SOURCE 0x948 +#define MADERA_DSP1RMIX_INPUT_1_VOLUME 0x949 +#define MADERA_DSP1RMIX_INPUT_2_SOURCE 0x94A +#define MADERA_DSP1RMIX_INPUT_2_VOLUME 0x94B +#define MADERA_DSP1RMIX_INPUT_3_SOURCE 0x94C +#define MADERA_DSP1RMIX_INPUT_3_VOLUME 0x94D +#define MADERA_DSP1RMIX_INPUT_4_SOURCE 0x94E +#define MADERA_DSP1RMIX_INPUT_4_VOLUME 0x94F +#define MADERA_DSP1AUX1MIX_INPUT_1_SOURCE 0x950 +#define MADERA_DSP1AUX2MIX_INPUT_1_SOURCE 0x958 +#define MADERA_DSP1AUX3MIX_INPUT_1_SOURCE 0x960 +#define MADERA_DSP1AUX4MIX_INPUT_1_SOURCE 0x968 +#define MADERA_DSP1AUX5MIX_INPUT_1_SOURCE 0x970 +#define MADERA_DSP1AUX6MIX_INPUT_1_SOURCE 0x978 +#define MADERA_DSP2LMIX_INPUT_1_SOURCE 0x980 +#define MADERA_DSP2LMIX_INPUT_1_VOLUME 0x981 +#define MADERA_DSP2LMIX_INPUT_2_SOURCE 0x982 +#define MADERA_DSP2LMIX_INPUT_2_VOLUME 0x983 +#define MADERA_DSP2LMIX_INPUT_3_SOURCE 0x984 +#define MADERA_DSP2LMIX_INPUT_3_VOLUME 0x985 +#define MADERA_DSP2LMIX_INPUT_4_SOURCE 0x986 +#define MADERA_DSP2LMIX_INPUT_4_VOLUME 0x987 +#define MADERA_DSP2RMIX_INPUT_1_SOURCE 0x988 +#define MADERA_DSP2RMIX_INPUT_1_VOLUME 0x989 +#define MADERA_DSP2RMIX_INPUT_2_SOURCE 0x98A +#define MADERA_DSP2RMIX_INPUT_2_VOLUME 0x98B +#define MADERA_DSP2RMIX_INPUT_3_SOURCE 0x98C +#define MADERA_DSP2RMIX_INPUT_3_VOLUME 0x98D +#define MADERA_DSP2RMIX_INPUT_4_SOURCE 0x98E +#define MADERA_DSP2RMIX_INPUT_4_VOLUME 0x98F +#define MADERA_DSP2AUX1MIX_INPUT_1_SOURCE 0x990 +#define MADERA_DSP2AUX2MIX_INPUT_1_SOURCE 0x998 +#define MADERA_DSP2AUX3MIX_INPUT_1_SOURCE 0x9A0 +#define MADERA_DSP2AUX4MIX_INPUT_1_SOURCE 0x9A8 +#define MADERA_DSP2AUX5MIX_INPUT_1_SOURCE 0x9B0 +#define MADERA_DSP2AUX6MIX_INPUT_1_SOURCE 0x9B8 +#define MADERA_DSP3LMIX_INPUT_1_SOURCE 0x9C0 +#define MADERA_DSP3LMIX_INPUT_1_VOLUME 0x9C1 +#define MADERA_DSP3LMIX_INPUT_2_SOURCE 0x9C2 +#define MADERA_DSP3LMIX_INPUT_2_VOLUME 0x9C3 +#define MADERA_DSP3LMIX_INPUT_3_SOURCE 0x9C4 +#define MADERA_DSP3LMIX_INPUT_3_VOLUME 0x9C5 +#define MADERA_DSP3LMIX_INPUT_4_SOURCE 0x9C6 +#define MADERA_DSP3LMIX_INPUT_4_VOLUME 0x9C7 +#define MADERA_DSP3RMIX_INPUT_1_SOURCE 0x9C8 +#define MADERA_DSP3RMIX_INPUT_1_VOLUME 0x9C9 +#define MADERA_DSP3RMIX_INPUT_2_SOURCE 0x9CA +#define MADERA_DSP3RMIX_INPUT_2_VOLUME 0x9CB +#define MADERA_DSP3RMIX_INPUT_3_SOURCE 0x9CC +#define MADERA_DSP3RMIX_INPUT_3_VOLUME 0x9CD +#define MADERA_DSP3RMIX_INPUT_4_SOURCE 0x9CE +#define MADERA_DSP3RMIX_INPUT_4_VOLUME 0x9CF +#define MADERA_DSP3AUX1MIX_INPUT_1_SOURCE 0x9D0 +#define MADERA_DSP3AUX2MIX_INPUT_1_SOURCE 0x9D8 +#define MADERA_DSP3AUX3MIX_INPUT_1_SOURCE 0x9E0 +#define MADERA_DSP3AUX4MIX_INPUT_1_SOURCE 0x9E8 +#define MADERA_DSP3AUX5MIX_INPUT_1_SOURCE 0x9F0 +#define MADERA_DSP3AUX6MIX_INPUT_1_SOURCE 0x9F8 +#define MADERA_DSP4LMIX_INPUT_1_SOURCE 0xA00 +#define MADERA_DSP4LMIX_INPUT_1_VOLUME 0xA01 +#define MADERA_DSP4LMIX_INPUT_2_SOURCE 0xA02 +#define MADERA_DSP4LMIX_INPUT_2_VOLUME 0xA03 +#define MADERA_DSP4LMIX_INPUT_3_SOURCE 0xA04 +#define MADERA_DSP4LMIX_INPUT_3_VOLUME 0xA05 +#define MADERA_DSP4LMIX_INPUT_4_SOURCE 0xA06 +#define MADERA_DSP4LMIX_INPUT_4_VOLUME 0xA07 +#define MADERA_DSP4RMIX_INPUT_1_SOURCE 0xA08 +#define MADERA_DSP4RMIX_INPUT_1_VOLUME 0xA09 +#define MADERA_DSP4RMIX_INPUT_2_SOURCE 0xA0A +#define MADERA_DSP4RMIX_INPUT_2_VOLUME 0xA0B +#define MADERA_DSP4RMIX_INPUT_3_SOURCE 0xA0C +#define MADERA_DSP4RMIX_INPUT_3_VOLUME 0xA0D +#define MADERA_DSP4RMIX_INPUT_4_SOURCE 0xA0E +#define MADERA_DSP4RMIX_INPUT_4_VOLUME 0xA0F +#define MADERA_DSP4AUX1MIX_INPUT_1_SOURCE 0xA10 +#define MADERA_DSP4AUX2MIX_INPUT_1_SOURCE 0xA18 +#define MADERA_DSP4AUX3MIX_INPUT_1_SOURCE 0xA20 +#define MADERA_DSP4AUX4MIX_INPUT_1_SOURCE 0xA28 +#define MADERA_DSP4AUX5MIX_INPUT_1_SOURCE 0xA30 +#define MADERA_DSP4AUX6MIX_INPUT_1_SOURCE 0xA38 +#define MADERA_DSP5LMIX_INPUT_1_SOURCE 0xA40 +#define MADERA_DSP5LMIX_INPUT_1_VOLUME 0xA41 +#define MADERA_DSP5LMIX_INPUT_2_SOURCE 0xA42 +#define MADERA_DSP5LMIX_INPUT_2_VOLUME 0xA43 +#define MADERA_DSP5LMIX_INPUT_3_SOURCE 0xA44 +#define MADERA_DSP5LMIX_INPUT_3_VOLUME 0xA45 +#define MADERA_DSP5LMIX_INPUT_4_SOURCE 0xA46 +#define MADERA_DSP5LMIX_INPUT_4_VOLUME 0xA47 +#define MADERA_DSP5RMIX_INPUT_1_SOURCE 0xA48 +#define MADERA_DSP5RMIX_INPUT_1_VOLUME 0xA49 +#define MADERA_DSP5RMIX_INPUT_2_SOURCE 0xA4A +#define MADERA_DSP5RMIX_INPUT_2_VOLUME 0xA4B +#define MADERA_DSP5RMIX_INPUT_3_SOURCE 0xA4C +#define MADERA_DSP5RMIX_INPUT_3_VOLUME 0xA4D +#define MADERA_DSP5RMIX_INPUT_4_SOURCE 0xA4E +#define MADERA_DSP5RMIX_INPUT_4_VOLUME 0xA4F +#define MADERA_DSP5AUX1MIX_INPUT_1_SOURCE 0xA50 +#define MADERA_DSP5AUX2MIX_INPUT_1_SOURCE 0xA58 +#define MADERA_DSP5AUX3MIX_INPUT_1_SOURCE 0xA60 +#define MADERA_DSP5AUX4MIX_INPUT_1_SOURCE 0xA68 +#define MADERA_DSP5AUX5MIX_INPUT_1_SOURCE 0xA70 +#define MADERA_DSP5AUX6MIX_INPUT_1_SOURCE 0xA78 +#define MADERA_ASRC1_1LMIX_INPUT_1_SOURCE 0xA80 +#define MADERA_ASRC1_1RMIX_INPUT_1_SOURCE 0xA88 +#define MADERA_ASRC1_2LMIX_INPUT_1_SOURCE 0xA90 +#define MADERA_ASRC1_2RMIX_INPUT_1_SOURCE 0xA98 +#define MADERA_ASRC2_1LMIX_INPUT_1_SOURCE 0xAA0 +#define MADERA_ASRC2_1RMIX_INPUT_1_SOURCE 0xAA8 +#define MADERA_ASRC2_2LMIX_INPUT_1_SOURCE 0xAB0 +#define MADERA_ASRC2_2RMIX_INPUT_1_SOURCE 0xAB8 +#define MADERA_ISRC1DEC1MIX_INPUT_1_SOURCE 0xB00 +#define MADERA_ISRC1DEC2MIX_INPUT_1_SOURCE 0xB08 +#define MADERA_ISRC1DEC3MIX_INPUT_1_SOURCE 0xB10 +#define MADERA_ISRC1DEC4MIX_INPUT_1_SOURCE 0xB18 +#define MADERA_ISRC1INT1MIX_INPUT_1_SOURCE 0xB20 +#define MADERA_ISRC1INT2MIX_INPUT_1_SOURCE 0xB28 +#define MADERA_ISRC1INT3MIX_INPUT_1_SOURCE 0xB30 +#define MADERA_ISRC1INT4MIX_INPUT_1_SOURCE 0xB38 +#define MADERA_ISRC2DEC1MIX_INPUT_1_SOURCE 0xB40 +#define MADERA_ISRC2DEC2MIX_INPUT_1_SOURCE 0xB48 +#define MADERA_ISRC2DEC3MIX_INPUT_1_SOURCE 0xB50 +#define MADERA_ISRC2DEC4MIX_INPUT_1_SOURCE 0xB58 +#define MADERA_ISRC2INT1MIX_INPUT_1_SOURCE 0xB60 +#define MADERA_ISRC2INT2MIX_INPUT_1_SOURCE 0xB68 +#define MADERA_ISRC2INT3MIX_INPUT_1_SOURCE 0xB70 +#define MADERA_ISRC2INT4MIX_INPUT_1_SOURCE 0xB78 +#define MADERA_ISRC3DEC1MIX_INPUT_1_SOURCE 0xB80 +#define MADERA_ISRC3DEC2MIX_INPUT_1_SOURCE 0xB88 +#define MADERA_ISRC3DEC3MIX_INPUT_1_SOURCE 0xB90 +#define MADERA_ISRC3DEC4MIX_INPUT_1_SOURCE 0xB98 +#define MADERA_ISRC3INT1MIX_INPUT_1_SOURCE 0xBA0 +#define MADERA_ISRC3INT2MIX_INPUT_1_SOURCE 0xBA8 +#define MADERA_ISRC3INT3MIX_INPUT_1_SOURCE 0xBB0 +#define MADERA_ISRC3INT4MIX_INPUT_1_SOURCE 0xBB8 +#define MADERA_ISRC4DEC1MIX_INPUT_1_SOURCE 0xBC0 +#define MADERA_ISRC4DEC2MIX_INPUT_1_SOURCE 0xBC8 +#define MADERA_ISRC4INT1MIX_INPUT_1_SOURCE 0xBE0 +#define MADERA_ISRC4INT2MIX_INPUT_1_SOURCE 0xBE8 +#define MADERA_DSP6LMIX_INPUT_1_SOURCE 0xC00 +#define MADERA_DSP6LMIX_INPUT_1_VOLUME 0xC01 +#define MADERA_DSP6LMIX_INPUT_2_SOURCE 0xC02 +#define MADERA_DSP6LMIX_INPUT_2_VOLUME 0xC03 +#define MADERA_DSP6LMIX_INPUT_3_SOURCE 0xC04 +#define MADERA_DSP6LMIX_INPUT_3_VOLUME 0xC05 +#define MADERA_DSP6LMIX_INPUT_4_SOURCE 0xC06 +#define MADERA_DSP6LMIX_INPUT_4_VOLUME 0xC07 +#define MADERA_DSP6RMIX_INPUT_1_SOURCE 0xC08 +#define MADERA_DSP6RMIX_INPUT_1_VOLUME 0xC09 +#define MADERA_DSP6RMIX_INPUT_2_SOURCE 0xC0A +#define MADERA_DSP6RMIX_INPUT_2_VOLUME 0xC0B +#define MADERA_DSP6RMIX_INPUT_3_SOURCE 0xC0C +#define MADERA_DSP6RMIX_INPUT_3_VOLUME 0xC0D +#define MADERA_DSP6RMIX_INPUT_4_SOURCE 0xC0E +#define MADERA_DSP6RMIX_INPUT_4_VOLUME 0xC0F +#define MADERA_DSP6AUX1MIX_INPUT_1_SOURCE 0xC10 +#define MADERA_DSP6AUX2MIX_INPUT_1_SOURCE 0xC18 +#define MADERA_DSP6AUX3MIX_INPUT_1_SOURCE 0xC20 +#define MADERA_DSP6AUX4MIX_INPUT_1_SOURCE 0xC28 +#define MADERA_DSP6AUX5MIX_INPUT_1_SOURCE 0xC30 +#define MADERA_DSP6AUX6MIX_INPUT_1_SOURCE 0xC38 +#define MADERA_DSP7LMIX_INPUT_1_SOURCE 0xC40 +#define MADERA_DSP7LMIX_INPUT_1_VOLUME 0xC41 +#define MADERA_DSP7LMIX_INPUT_2_SOURCE 0xC42 +#define MADERA_DSP7LMIX_INPUT_2_VOLUME 0xC43 +#define MADERA_DSP7LMIX_INPUT_3_SOURCE 0xC44 +#define MADERA_DSP7LMIX_INPUT_3_VOLUME 0xC45 +#define MADERA_DSP7LMIX_INPUT_4_SOURCE 0xC46 +#define MADERA_DSP7LMIX_INPUT_4_VOLUME 0xC47 +#define MADERA_DSP7RMIX_INPUT_1_SOURCE 0xC48 +#define MADERA_DSP7RMIX_INPUT_1_VOLUME 0xC49 +#define MADERA_DSP7RMIX_INPUT_2_SOURCE 0xC4A +#define MADERA_DSP7RMIX_INPUT_2_VOLUME 0xC4B +#define MADERA_DSP7RMIX_INPUT_3_SOURCE 0xC4C +#define MADERA_DSP7RMIX_INPUT_3_VOLUME 0xC4D +#define MADERA_DSP7RMIX_INPUT_4_SOURCE 0xC4E +#define MADERA_DSP7RMIX_INPUT_4_VOLUME 0xC4F +#define MADERA_DSP7AUX1MIX_INPUT_1_SOURCE 0xC50 +#define MADERA_DSP7AUX2MIX_INPUT_1_SOURCE 0xC58 +#define MADERA_DSP7AUX3MIX_INPUT_1_SOURCE 0xC60 +#define MADERA_DSP7AUX4MIX_INPUT_1_SOURCE 0xC68 +#define MADERA_DSP7AUX5MIX_INPUT_1_SOURCE 0xC70 +#define MADERA_DSP7AUX6MIX_INPUT_1_SOURCE 0xC78 +#define MADERA_DFC1MIX_INPUT_1_SOURCE 0xDC0 +#define MADERA_DFC2MIX_INPUT_1_SOURCE 0xDC8 +#define MADERA_DFC3MIX_INPUT_1_SOURCE 0xDD0 +#define MADERA_DFC4MIX_INPUT_1_SOURCE 0xDD8 +#define MADERA_DFC5MIX_INPUT_1_SOURCE 0xDE0 +#define MADERA_DFC6MIX_INPUT_1_SOURCE 0xDE8 +#define MADERA_DFC7MIX_INPUT_1_SOURCE 0xDF0 +#define MADERA_DFC8MIX_INPUT_1_SOURCE 0xDF8 +#define MADERA_FX_CTRL1 0xE00 +#define MADERA_FX_CTRL2 0xE01 +#define MADERA_EQ1_1 0xE10 +#define MADERA_EQ1_2 0xE11 +#define MADERA_EQ1_3 0xE12 +#define MADERA_EQ1_4 0xE13 +#define MADERA_EQ1_5 0xE14 +#define MADERA_EQ1_6 0xE15 +#define MADERA_EQ1_7 0xE16 +#define MADERA_EQ1_8 0xE17 +#define MADERA_EQ1_9 0xE18 +#define MADERA_EQ1_10 0xE19 +#define MADERA_EQ1_11 0xE1A +#define MADERA_EQ1_12 0xE1B +#define MADERA_EQ1_13 0xE1C +#define MADERA_EQ1_14 0xE1D +#define MADERA_EQ1_15 0xE1E +#define MADERA_EQ1_16 0xE1F +#define MADERA_EQ1_17 0xE20 +#define MADERA_EQ1_18 0xE21 +#define MADERA_EQ1_19 0xE22 +#define MADERA_EQ1_20 0xE23 +#define MADERA_EQ1_21 0xE24 +#define MADERA_EQ2_1 0xE26 +#define MADERA_EQ2_2 0xE27 +#define MADERA_EQ2_3 0xE28 +#define MADERA_EQ2_4 0xE29 +#define MADERA_EQ2_5 0xE2A +#define MADERA_EQ2_6 0xE2B +#define MADERA_EQ2_7 0xE2C +#define MADERA_EQ2_8 0xE2D +#define MADERA_EQ2_9 0xE2E +#define MADERA_EQ2_10 0xE2F +#define MADERA_EQ2_11 0xE30 +#define MADERA_EQ2_12 0xE31 +#define MADERA_EQ2_13 0xE32 +#define MADERA_EQ2_14 0xE33 +#define MADERA_EQ2_15 0xE34 +#define MADERA_EQ2_16 0xE35 +#define MADERA_EQ2_17 0xE36 +#define MADERA_EQ2_18 0xE37 +#define MADERA_EQ2_19 0xE38 +#define MADERA_EQ2_20 0xE39 +#define MADERA_EQ2_21 0xE3A +#define MADERA_EQ3_1 0xE3C +#define MADERA_EQ3_2 0xE3D +#define MADERA_EQ3_3 0xE3E +#define MADERA_EQ3_4 0xE3F +#define MADERA_EQ3_5 0xE40 +#define MADERA_EQ3_6 0xE41 +#define MADERA_EQ3_7 0xE42 +#define MADERA_EQ3_8 0xE43 +#define MADERA_EQ3_9 0xE44 +#define MADERA_EQ3_10 0xE45 +#define MADERA_EQ3_11 0xE46 +#define MADERA_EQ3_12 0xE47 +#define MADERA_EQ3_13 0xE48 +#define MADERA_EQ3_14 0xE49 +#define MADERA_EQ3_15 0xE4A +#define MADERA_EQ3_16 0xE4B +#define MADERA_EQ3_17 0xE4C +#define MADERA_EQ3_18 0xE4D +#define MADERA_EQ3_19 0xE4E +#define MADERA_EQ3_20 0xE4F +#define MADERA_EQ3_21 0xE50 +#define MADERA_EQ4_1 0xE52 +#define MADERA_EQ4_2 0xE53 +#define MADERA_EQ4_3 0xE54 +#define MADERA_EQ4_4 0xE55 +#define MADERA_EQ4_5 0xE56 +#define MADERA_EQ4_6 0xE57 +#define MADERA_EQ4_7 0xE58 +#define MADERA_EQ4_8 0xE59 +#define MADERA_EQ4_9 0xE5A +#define MADERA_EQ4_10 0xE5B +#define MADERA_EQ4_11 0xE5C +#define MADERA_EQ4_12 0xE5D +#define MADERA_EQ4_13 0xE5E +#define MADERA_EQ4_14 0xE5F +#define MADERA_EQ4_15 0xE60 +#define MADERA_EQ4_16 0xE61 +#define MADERA_EQ4_17 0xE62 +#define MADERA_EQ4_18 0xE63 +#define MADERA_EQ4_19 0xE64 +#define MADERA_EQ4_20 0xE65 +#define MADERA_EQ4_21 0xE66 +#define MADERA_DRC1_CTRL1 0xE80 +#define MADERA_DRC1_CTRL2 0xE81 +#define MADERA_DRC1_CTRL3 0xE82 +#define MADERA_DRC1_CTRL4 0xE83 +#define MADERA_DRC1_CTRL5 0xE84 +#define MADERA_DRC2_CTRL1 0xE88 +#define MADERA_DRC2_CTRL2 0xE89 +#define MADERA_DRC2_CTRL3 0xE8A +#define MADERA_DRC2_CTRL4 0xE8B +#define MADERA_DRC2_CTRL5 0xE8C +#define MADERA_HPLPF1_1 0xEC0 +#define MADERA_HPLPF1_2 0xEC1 +#define MADERA_HPLPF2_1 0xEC4 +#define MADERA_HPLPF2_2 0xEC5 +#define MADERA_HPLPF3_1 0xEC8 +#define MADERA_HPLPF3_2 0xEC9 +#define MADERA_HPLPF4_1 0xECC +#define MADERA_HPLPF4_2 0xECD +#define MADERA_ASRC2_ENABLE 0xED0 +#define MADERA_ASRC2_STATUS 0xED1 +#define MADERA_ASRC2_RATE1 0xED2 +#define MADERA_ASRC2_RATE2 0xED3 +#define MADERA_ASRC1_ENABLE 0xEE0 +#define MADERA_ASRC1_STATUS 0xEE1 +#define MADERA_ASRC1_RATE1 0xEE2 +#define MADERA_ASRC1_RATE2 0xEE3 +#define MADERA_ISRC_1_CTRL_1 0xEF0 +#define MADERA_ISRC_1_CTRL_2 0xEF1 +#define MADERA_ISRC_1_CTRL_3 0xEF2 +#define MADERA_ISRC_2_CTRL_1 0xEF3 +#define MADERA_ISRC_2_CTRL_2 0xEF4 +#define MADERA_ISRC_2_CTRL_3 0xEF5 +#define MADERA_ISRC_3_CTRL_1 0xEF6 +#define MADERA_ISRC_3_CTRL_2 0xEF7 +#define MADERA_ISRC_3_CTRL_3 0xEF8 +#define MADERA_ISRC_4_CTRL_1 0xEF9 +#define MADERA_ISRC_4_CTRL_2 0xEFA +#define MADERA_ISRC_4_CTRL_3 0xEFB +#define MADERA_CLOCK_CONTROL 0xF00 +#define MADERA_ANC_SRC 0xF01 +#define MADERA_DSP_STATUS 0xF02 +#define MADERA_ANC_COEFF_START 0xF08 +#define MADERA_ANC_COEFF_END 0xF12 +#define MADERA_FCL_FILTER_CONTROL 0xF15 +#define MADERA_FCL_ADC_REFORMATTER_CONTROL 0xF17 +#define MADERA_FCL_COEFF_START 0xF18 +#define MADERA_FCL_COEFF_END 0xF69 +#define MADERA_FCR_FILTER_CONTROL 0xF71 +#define MADERA_FCR_ADC_REFORMATTER_CONTROL 0xF73 +#define MADERA_FCR_COEFF_START 0xF74 +#define MADERA_FCR_COEFF_END 0xFC5 +#define MADERA_DAC_COMP_1 0x1300 +#define MADERA_DAC_COMP_2 0x1302 +#define MADERA_FRF_COEFFICIENT_1L_1 0x1380 +#define MADERA_FRF_COEFFICIENT_1L_2 0x1381 +#define MADERA_FRF_COEFFICIENT_1L_3 0x1382 +#define MADERA_FRF_COEFFICIENT_1L_4 0x1383 +#define MADERA_FRF_COEFFICIENT_1R_1 0x1390 +#define MADERA_FRF_COEFFICIENT_1R_2 0x1391 +#define MADERA_FRF_COEFFICIENT_1R_3 0x1392 +#define MADERA_FRF_COEFFICIENT_1R_4 0x1393 +#define MADERA_FRF_COEFFICIENT_2L_1 0x13A0 +#define MADERA_FRF_COEFFICIENT_2L_2 0x13A1 +#define MADERA_FRF_COEFFICIENT_2L_3 0x13A2 +#define MADERA_FRF_COEFFICIENT_2L_4 0x13A3 +#define MADERA_FRF_COEFFICIENT_2R_1 0x13B0 +#define MADERA_FRF_COEFFICIENT_2R_2 0x13B1 +#define MADERA_FRF_COEFFICIENT_2R_3 0x13B2 +#define MADERA_FRF_COEFFICIENT_2R_4 0x13B3 +#define MADERA_FRF_COEFFICIENT_3L_1 0x13C0 +#define MADERA_FRF_COEFFICIENT_3L_2 0x13C1 +#define MADERA_FRF_COEFFICIENT_3L_3 0x13C2 +#define MADERA_FRF_COEFFICIENT_3L_4 0x13C3 +#define MADERA_FRF_COEFFICIENT_3R_1 0x13D0 +#define MADERA_FRF_COEFFICIENT_3R_2 0x13D1 +#define MADERA_FRF_COEFFICIENT_3R_3 0x13D2 +#define MADERA_FRF_COEFFICIENT_3R_4 0x13D3 +#define MADERA_FRF_COEFFICIENT_4L_1 0x13E0 +#define MADERA_FRF_COEFFICIENT_4L_2 0x13E1 +#define MADERA_FRF_COEFFICIENT_4L_3 0x13E2 +#define MADERA_FRF_COEFFICIENT_4L_4 0x13E3 +#define MADERA_FRF_COEFFICIENT_4R_1 0x13F0 +#define MADERA_FRF_COEFFICIENT_4R_2 0x13F1 +#define MADERA_FRF_COEFFICIENT_4R_3 0x13F2 +#define MADERA_FRF_COEFFICIENT_4R_4 0x13F3 +#define CS47L35_FRF_COEFFICIENT_4L_1 0x13A0 +#define CS47L35_FRF_COEFFICIENT_4L_2 0x13A1 +#define CS47L35_FRF_COEFFICIENT_4L_3 0x13A2 +#define CS47L35_FRF_COEFFICIENT_4L_4 0x13A3 +#define CS47L35_FRF_COEFFICIENT_5L_1 0x13B0 +#define CS47L35_FRF_COEFFICIENT_5L_2 0x13B1 +#define CS47L35_FRF_COEFFICIENT_5L_3 0x13B2 +#define CS47L35_FRF_COEFFICIENT_5L_4 0x13B3 +#define CS47L35_FRF_COEFFICIENT_5R_1 0x13C0 +#define CS47L35_FRF_COEFFICIENT_5R_2 0x13C1 +#define CS47L35_FRF_COEFFICIENT_5R_3 0x13C2 +#define CS47L35_FRF_COEFFICIENT_5R_4 0x13C3 +#define MADERA_FRF_COEFFICIENT_5L_1 0x1400 +#define MADERA_FRF_COEFFICIENT_5L_2 0x1401 +#define MADERA_FRF_COEFFICIENT_5L_3 0x1402 +#define MADERA_FRF_COEFFICIENT_5L_4 0x1403 +#define MADERA_FRF_COEFFICIENT_5R_1 0x1410 +#define MADERA_FRF_COEFFICIENT_5R_2 0x1411 +#define MADERA_FRF_COEFFICIENT_5R_3 0x1412 +#define MADERA_FRF_COEFFICIENT_5R_4 0x1413 +#define MADERA_FRF_COEFFICIENT_6L_1 0x1420 +#define MADERA_FRF_COEFFICIENT_6L_2 0x1421 +#define MADERA_FRF_COEFFICIENT_6L_3 0x1422 +#define MADERA_FRF_COEFFICIENT_6L_4 0x1423 +#define MADERA_FRF_COEFFICIENT_6R_1 0x1430 +#define MADERA_FRF_COEFFICIENT_6R_2 0x1431 +#define MADERA_FRF_COEFFICIENT_6R_3 0x1432 +#define MADERA_FRF_COEFFICIENT_6R_4 0x1433 +#define MADERA_DFC1_CTRL 0x1480 +#define MADERA_DFC1_RX 0x1482 +#define MADERA_DFC1_TX 0x1484 +#define MADERA_DFC2_CTRL 0x1486 +#define MADERA_DFC2_RX 0x1488 +#define MADERA_DFC2_TX 0x148A +#define MADERA_DFC3_CTRL 0x148C +#define MADERA_DFC3_RX 0x148E +#define MADERA_DFC3_TX 0x1490 +#define MADERA_DFC4_CTRL 0x1492 +#define MADERA_DFC4_RX 0x1494 +#define MADERA_DFC4_TX 0x1496 +#define MADERA_DFC5_CTRL 0x1498 +#define MADERA_DFC5_RX 0x149A +#define MADERA_DFC5_TX 0x149C +#define MADERA_DFC6_CTRL 0x149E +#define MADERA_DFC6_RX 0x14A0 +#define MADERA_DFC6_TX 0x14A2 +#define MADERA_DFC7_CTRL 0x14A4 +#define MADERA_DFC7_RX 0x14A6 +#define MADERA_DFC7_TX 0x14A8 +#define MADERA_DFC8_CTRL 0x14AA +#define MADERA_DFC8_RX 0x14AC +#define MADERA_DFC8_TX 0x14AE +#define MADERA_DFC_STATUS 0x14B6 +#define MADERA_ADSP2_IRQ0 0x1600 +#define MADERA_ADSP2_IRQ1 0x1601 +#define MADERA_ADSP2_IRQ2 0x1602 +#define MADERA_ADSP2_IRQ3 0x1603 +#define MADERA_ADSP2_IRQ4 0x1604 +#define MADERA_ADSP2_IRQ5 0x1605 +#define MADERA_ADSP2_IRQ6 0x1606 +#define MADERA_ADSP2_IRQ7 0x1607 +#define MADERA_GPIO1_CTRL_1 0x1700 +#define MADERA_GPIO1_CTRL_2 0x1701 +#define MADERA_GPIO2_CTRL_1 0x1702 +#define MADERA_GPIO2_CTRL_2 0x1703 +#define MADERA_GPIO3_CTRL_1 0x1704 +#define MADERA_GPIO3_CTRL_2 0x1705 +#define MADERA_GPIO4_CTRL_1 0x1706 +#define MADERA_GPIO4_CTRL_2 0x1707 +#define MADERA_GPIO5_CTRL_1 0x1708 +#define MADERA_GPIO5_CTRL_2 0x1709 +#define MADERA_GPIO6_CTRL_1 0x170A +#define MADERA_GPIO6_CTRL_2 0x170B +#define MADERA_GPIO7_CTRL_1 0x170C +#define MADERA_GPIO7_CTRL_2 0x170D +#define MADERA_GPIO8_CTRL_1 0x170E +#define MADERA_GPIO8_CTRL_2 0x170F +#define MADERA_GPIO9_CTRL_1 0x1710 +#define MADERA_GPIO9_CTRL_2 0x1711 +#define MADERA_GPIO10_CTRL_1 0x1712 +#define MADERA_GPIO10_CTRL_2 0x1713 +#define MADERA_GPIO11_CTRL_1 0x1714 +#define MADERA_GPIO11_CTRL_2 0x1715 +#define MADERA_GPIO12_CTRL_1 0x1716 +#define MADERA_GPIO12_CTRL_2 0x1717 +#define MADERA_GPIO13_CTRL_1 0x1718 +#define MADERA_GPIO13_CTRL_2 0x1719 +#define MADERA_GPIO14_CTRL_1 0x171A +#define MADERA_GPIO14_CTRL_2 0x171B +#define MADERA_GPIO15_CTRL_1 0x171C +#define MADERA_GPIO15_CTRL_2 0x171D +#define MADERA_GPIO16_CTRL_1 0x171E +#define MADERA_GPIO16_CTRL_2 0x171F +#define MADERA_GPIO17_CTRL_1 0x1720 +#define MADERA_GPIO17_CTRL_2 0x1721 +#define MADERA_GPIO18_CTRL_1 0x1722 +#define MADERA_GPIO18_CTRL_2 0x1723 +#define MADERA_GPIO19_CTRL_1 0x1724 +#define MADERA_GPIO19_CTRL_2 0x1725 +#define MADERA_GPIO20_CTRL_1 0x1726 +#define MADERA_GPIO20_CTRL_2 0x1727 +#define MADERA_GPIO21_CTRL_1 0x1728 +#define MADERA_GPIO21_CTRL_2 0x1729 +#define MADERA_GPIO22_CTRL_1 0x172A +#define MADERA_GPIO22_CTRL_2 0x172B +#define MADERA_GPIO23_CTRL_1 0x172C +#define MADERA_GPIO23_CTRL_2 0x172D +#define MADERA_GPIO24_CTRL_1 0x172E +#define MADERA_GPIO24_CTRL_2 0x172F +#define MADERA_GPIO25_CTRL_1 0x1730 +#define MADERA_GPIO25_CTRL_2 0x1731 +#define MADERA_GPIO26_CTRL_1 0x1732 +#define MADERA_GPIO26_CTRL_2 0x1733 +#define MADERA_GPIO27_CTRL_1 0x1734 +#define MADERA_GPIO27_CTRL_2 0x1735 +#define MADERA_GPIO28_CTRL_1 0x1736 +#define MADERA_GPIO28_CTRL_2 0x1737 +#define MADERA_GPIO29_CTRL_1 0x1738 +#define MADERA_GPIO29_CTRL_2 0x1739 +#define MADERA_GPIO30_CTRL_1 0x173A +#define MADERA_GPIO30_CTRL_2 0x173B +#define MADERA_GPIO31_CTRL_1 0x173C +#define MADERA_GPIO31_CTRL_2 0x173D +#define MADERA_GPIO32_CTRL_1 0x173E +#define MADERA_GPIO32_CTRL_2 0x173F +#define MADERA_GPIO33_CTRL_1 0x1740 +#define MADERA_GPIO33_CTRL_2 0x1741 +#define MADERA_GPIO34_CTRL_1 0x1742 +#define MADERA_GPIO34_CTRL_2 0x1743 +#define MADERA_GPIO35_CTRL_1 0x1744 +#define MADERA_GPIO35_CTRL_2 0x1745 +#define MADERA_GPIO36_CTRL_1 0x1746 +#define MADERA_GPIO36_CTRL_2 0x1747 +#define MADERA_GPIO37_CTRL_1 0x1748 +#define MADERA_GPIO37_CTRL_2 0x1749 +#define MADERA_GPIO38_CTRL_1 0x174A +#define MADERA_GPIO38_CTRL_2 0x174B +#define MADERA_GPIO39_CTRL_1 0x174C +#define MADERA_GPIO39_CTRL_2 0x174D +#define MADERA_GPIO40_CTRL_1 0x174E +#define MADERA_GPIO40_CTRL_2 0x174F +#define MADERA_IRQ1_STATUS_1 0x1800 +#define MADERA_IRQ1_STATUS_2 0x1801 +#define MADERA_IRQ1_STATUS_3 0x1802 +#define MADERA_IRQ1_STATUS_4 0x1803 +#define MADERA_IRQ1_STATUS_5 0x1804 +#define MADERA_IRQ1_STATUS_6 0x1805 +#define MADERA_IRQ1_STATUS_7 0x1806 +#define MADERA_IRQ1_STATUS_8 0x1807 +#define MADERA_IRQ1_STATUS_9 0x1808 +#define MADERA_IRQ1_STATUS_10 0x1809 +#define MADERA_IRQ1_STATUS_11 0x180A +#define MADERA_IRQ1_STATUS_12 0x180B +#define MADERA_IRQ1_STATUS_13 0x180C +#define MADERA_IRQ1_STATUS_14 0x180D +#define MADERA_IRQ1_STATUS_15 0x180E +#define MADERA_IRQ1_STATUS_16 0x180F +#define MADERA_IRQ1_STATUS_17 0x1810 +#define MADERA_IRQ1_STATUS_18 0x1811 +#define MADERA_IRQ1_STATUS_19 0x1812 +#define MADERA_IRQ1_STATUS_20 0x1813 +#define MADERA_IRQ1_STATUS_21 0x1814 +#define MADERA_IRQ1_STATUS_22 0x1815 +#define MADERA_IRQ1_STATUS_23 0x1816 +#define MADERA_IRQ1_STATUS_24 0x1817 +#define MADERA_IRQ1_STATUS_25 0x1818 +#define MADERA_IRQ1_STATUS_26 0x1819 +#define MADERA_IRQ1_STATUS_27 0x181A +#define MADERA_IRQ1_STATUS_28 0x181B +#define MADERA_IRQ1_STATUS_29 0x181C +#define MADERA_IRQ1_STATUS_30 0x181D +#define MADERA_IRQ1_STATUS_31 0x181E +#define MADERA_IRQ1_STATUS_32 0x181F +#define MADERA_IRQ1_STATUS_33 0x1820 +#define MADERA_IRQ1_MASK_1 0x1840 +#define MADERA_IRQ1_MASK_2 0x1841 +#define MADERA_IRQ1_MASK_3 0x1842 +#define MADERA_IRQ1_MASK_4 0x1843 +#define MADERA_IRQ1_MASK_5 0x1844 +#define MADERA_IRQ1_MASK_6 0x1845 +#define MADERA_IRQ1_MASK_7 0x1846 +#define MADERA_IRQ1_MASK_8 0x1847 +#define MADERA_IRQ1_MASK_9 0x1848 +#define MADERA_IRQ1_MASK_10 0x1849 +#define MADERA_IRQ1_MASK_11 0x184A +#define MADERA_IRQ1_MASK_12 0x184B +#define MADERA_IRQ1_MASK_13 0x184C +#define MADERA_IRQ1_MASK_14 0x184D +#define MADERA_IRQ1_MASK_15 0x184E +#define MADERA_IRQ1_MASK_16 0x184F +#define MADERA_IRQ1_MASK_17 0x1850 +#define MADERA_IRQ1_MASK_18 0x1851 +#define MADERA_IRQ1_MASK_19 0x1852 +#define MADERA_IRQ1_MASK_20 0x1853 +#define MADERA_IRQ1_MASK_21 0x1854 +#define MADERA_IRQ1_MASK_22 0x1855 +#define MADERA_IRQ1_MASK_23 0x1856 +#define MADERA_IRQ1_MASK_24 0x1857 +#define MADERA_IRQ1_MASK_25 0x1858 +#define MADERA_IRQ1_MASK_26 0x1859 +#define MADERA_IRQ1_MASK_27 0x185A +#define MADERA_IRQ1_MASK_28 0x185B +#define MADERA_IRQ1_MASK_29 0x185C +#define MADERA_IRQ1_MASK_30 0x185D +#define MADERA_IRQ1_MASK_31 0x185E +#define MADERA_IRQ1_MASK_32 0x185F +#define MADERA_IRQ1_MASK_33 0x1860 +#define MADERA_IRQ1_RAW_STATUS_1 0x1880 +#define MADERA_IRQ1_RAW_STATUS_2 0x1881 +#define MADERA_IRQ1_RAW_STATUS_3 0x1882 +#define MADERA_IRQ1_RAW_STATUS_4 0x1883 +#define MADERA_IRQ1_RAW_STATUS_5 0x1884 +#define MADERA_IRQ1_RAW_STATUS_6 0x1885 +#define MADERA_IRQ1_RAW_STATUS_7 0x1886 +#define MADERA_IRQ1_RAW_STATUS_8 0x1887 +#define MADERA_IRQ1_RAW_STATUS_9 0x1888 +#define MADERA_IRQ1_RAW_STATUS_10 0x1889 +#define MADERA_IRQ1_RAW_STATUS_11 0x188A +#define MADERA_IRQ1_RAW_STATUS_12 0x188B +#define MADERA_IRQ1_RAW_STATUS_13 0x188C +#define MADERA_IRQ1_RAW_STATUS_14 0x188D +#define MADERA_IRQ1_RAW_STATUS_15 0x188E +#define MADERA_IRQ1_RAW_STATUS_16 0x188F +#define MADERA_IRQ1_RAW_STATUS_17 0x1890 +#define MADERA_IRQ1_RAW_STATUS_18 0x1891 +#define MADERA_IRQ1_RAW_STATUS_19 0x1892 +#define MADERA_IRQ1_RAW_STATUS_20 0x1893 +#define MADERA_IRQ1_RAW_STATUS_21 0x1894 +#define MADERA_IRQ1_RAW_STATUS_22 0x1895 +#define MADERA_IRQ1_RAW_STATUS_23 0x1896 +#define MADERA_IRQ1_RAW_STATUS_24 0x1897 +#define MADERA_IRQ1_RAW_STATUS_25 0x1898 +#define MADERA_IRQ1_RAW_STATUS_26 0x1899 +#define MADERA_IRQ1_RAW_STATUS_27 0x189A +#define MADERA_IRQ1_RAW_STATUS_28 0x189D +#define MADERA_IRQ1_RAW_STATUS_29 0x189C +#define MADERA_IRQ1_RAW_STATUS_30 0x189D +#define MADERA_IRQ1_RAW_STATUS_31 0x189E +#define MADERA_IRQ1_RAW_STATUS_32 0x189F +#define MADERA_IRQ1_RAW_STATUS_33 0x18A0 +#define MADERA_IRQ2_STATUS_1 0x1900 +#define MADERA_IRQ2_STATUS_2 0x1901 +#define MADERA_IRQ2_STATUS_6 0x1905 +#define MADERA_IRQ2_STATUS_7 0x1906 +#define MADERA_IRQ2_STATUS_9 0x1908 +#define MADERA_IRQ2_STATUS_11 0x190A +#define MADERA_IRQ2_STATUS_12 0x190B +#define MADERA_IRQ2_STATUS_13 0x190C +#define MADERA_IRQ2_STATUS_14 0x190D +#define MADERA_IRQ2_STATUS_15 0x190E +#define MADERA_IRQ2_STATUS_17 0x1910 +#define MADERA_IRQ2_STATUS_18 0x1911 +#define MADERA_IRQ2_STATUS_19 0x1912 +#define MADERA_IRQ2_STATUS_21 0x1914 +#define MADERA_IRQ2_STATUS_22 0x1915 +#define MADERA_IRQ2_STATUS_23 0x1916 +#define MADERA_IRQ2_STATUS_24 0x1917 +#define MADERA_IRQ2_STATUS_25 0x1918 +#define MADERA_IRQ2_STATUS_27 0x191A +#define MADERA_IRQ2_STATUS_28 0x191B +#define MADERA_IRQ2_STATUS_30 0x191D +#define MADERA_IRQ2_STATUS_31 0x191E +#define MADERA_IRQ2_STATUS_32 0x191F +#define MADERA_IRQ2_STATUS_33 0x1920 +#define MADERA_IRQ2_MASK_1 0x1940 +#define MADERA_IRQ2_MASK_2 0x1941 +#define MADERA_IRQ2_MASK_6 0x1945 +#define MADERA_IRQ2_MASK_7 0x1946 +#define MADERA_IRQ2_MASK_9 0x1948 +#define MADERA_IRQ2_MASK_11 0x194A +#define MADERA_IRQ2_MASK_12 0x194B +#define MADERA_IRQ2_MASK_13 0x194C +#define MADERA_IRQ2_MASK_14 0x194D +#define MADERA_IRQ2_MASK_15 0x194E +#define MADERA_IRQ2_MASK_17 0x1950 +#define MADERA_IRQ2_MASK_18 0x1951 +#define MADERA_IRQ2_MASK_19 0x1952 +#define MADERA_IRQ2_MASK_21 0x1954 +#define MADERA_IRQ2_MASK_22 0x1955 +#define MADERA_IRQ2_MASK_23 0x1956 +#define MADERA_IRQ2_MASK_24 0x1957 +#define MADERA_IRQ2_MASK_25 0x1958 +#define MADERA_IRQ2_MASK_27 0x195A +#define MADERA_IRQ2_MASK_28 0x195B +#define MADERA_IRQ2_MASK_30 0x195D +#define MADERA_IRQ2_MASK_31 0x195E +#define MADERA_IRQ2_MASK_32 0x195F +#define MADERA_IRQ2_MASK_33 0x1960 +#define MADERA_IRQ2_RAW_STATUS_1 0x1980 +#define MADERA_IRQ2_RAW_STATUS_2 0x1981 +#define MADERA_IRQ2_RAW_STATUS_6 0x1985 +#define MADERA_IRQ2_RAW_STATUS_7 0x1986 +#define MADERA_IRQ2_RAW_STATUS_9 0x1988 +#define MADERA_IRQ2_RAW_STATUS_10 0x1989 +#define MADERA_IRQ2_RAW_STATUS_11 0x198A +#define MADERA_IRQ2_RAW_STATUS_12 0x198B +#define MADERA_IRQ2_RAW_STATUS_13 0x198C +#define MADERA_IRQ2_RAW_STATUS_14 0x198D +#define MADERA_IRQ2_RAW_STATUS_15 0x198E +#define MADERA_IRQ2_RAW_STATUS_17 0x1990 +#define MADERA_IRQ2_RAW_STATUS_18 0x1991 +#define MADERA_IRQ2_RAW_STATUS_19 0x1992 +#define MADERA_IRQ2_RAW_STATUS_21 0x1994 +#define MADERA_IRQ2_RAW_STATUS_22 0x1995 +#define MADERA_IRQ2_RAW_STATUS_23 0x1996 +#define MADERA_IRQ2_RAW_STATUS_24 0x1997 +#define MADERA_IRQ2_RAW_STATUS_25 0x1998 +#define MADERA_IRQ2_RAW_STATUS_30 0x199D +#define MADERA_IRQ2_RAW_STATUS_31 0x199E +#define MADERA_IRQ2_RAW_STATUS_32 0x199F +#define MADERA_IRQ2_RAW_STATUS_33 0x19A0 +#define MADERA_INTERRUPT_DEBOUNCE_7 0x1A06 +#define MADERA_INTERRUPT_DEBOUNCE_15 0x1A0E +#define MADERA_IRQ1_CTRL 0x1A80 +#define MADERA_IRQ2_CTRL 0x1A82 +#define MADERA_INTERRUPT_RAW_STATUS_1 0x1AA0 +#define MADERA_WSEQ_SEQUENCE_1 0x3000 +#define MADERA_WSEQ_SEQUENCE_2 0x3002 +#define MADERA_WSEQ_SEQUENCE_3 0x3004 +#define MADERA_WSEQ_SEQUENCE_4 0x3006 +#define MADERA_WSEQ_SEQUENCE_5 0x3008 +#define MADERA_WSEQ_SEQUENCE_6 0x300A +#define MADERA_WSEQ_SEQUENCE_7 0x300C +#define MADERA_WSEQ_SEQUENCE_8 0x300E +#define MADERA_WSEQ_SEQUENCE_9 0x3010 +#define MADERA_WSEQ_SEQUENCE_10 0x3012 +#define MADERA_WSEQ_SEQUENCE_11 0x3014 +#define MADERA_WSEQ_SEQUENCE_12 0x3016 +#define MADERA_WSEQ_SEQUENCE_13 0x3018 +#define MADERA_WSEQ_SEQUENCE_14 0x301A +#define MADERA_WSEQ_SEQUENCE_15 0x301C +#define MADERA_WSEQ_SEQUENCE_16 0x301E +#define MADERA_WSEQ_SEQUENCE_17 0x3020 +#define MADERA_WSEQ_SEQUENCE_18 0x3022 +#define MADERA_WSEQ_SEQUENCE_19 0x3024 +#define MADERA_WSEQ_SEQUENCE_20 0x3026 +#define MADERA_WSEQ_SEQUENCE_21 0x3028 +#define MADERA_WSEQ_SEQUENCE_22 0x302A +#define MADERA_WSEQ_SEQUENCE_23 0x302C +#define MADERA_WSEQ_SEQUENCE_24 0x302E +#define MADERA_WSEQ_SEQUENCE_25 0x3030 +#define MADERA_WSEQ_SEQUENCE_26 0x3032 +#define MADERA_WSEQ_SEQUENCE_27 0x3034 +#define MADERA_WSEQ_SEQUENCE_28 0x3036 +#define MADERA_WSEQ_SEQUENCE_29 0x3038 +#define MADERA_WSEQ_SEQUENCE_30 0x303A +#define MADERA_WSEQ_SEQUENCE_31 0x303C +#define MADERA_WSEQ_SEQUENCE_32 0x303E +#define MADERA_WSEQ_SEQUENCE_33 0x3040 +#define MADERA_WSEQ_SEQUENCE_34 0x3042 +#define MADERA_WSEQ_SEQUENCE_35 0x3044 +#define MADERA_WSEQ_SEQUENCE_36 0x3046 +#define MADERA_WSEQ_SEQUENCE_37 0x3048 +#define MADERA_WSEQ_SEQUENCE_38 0x304A +#define MADERA_WSEQ_SEQUENCE_39 0x304C +#define MADERA_WSEQ_SEQUENCE_40 0x304E +#define MADERA_WSEQ_SEQUENCE_41 0x3050 +#define MADERA_WSEQ_SEQUENCE_42 0x3052 +#define MADERA_WSEQ_SEQUENCE_43 0x3054 +#define MADERA_WSEQ_SEQUENCE_44 0x3056 +#define MADERA_WSEQ_SEQUENCE_45 0x3058 +#define MADERA_WSEQ_SEQUENCE_46 0x305A +#define MADERA_WSEQ_SEQUENCE_47 0x305C +#define MADERA_WSEQ_SEQUENCE_48 0x305E +#define MADERA_WSEQ_SEQUENCE_49 0x3060 +#define MADERA_WSEQ_SEQUENCE_50 0x3062 +#define MADERA_WSEQ_SEQUENCE_51 0x3064 +#define MADERA_WSEQ_SEQUENCE_52 0x3066 +#define MADERA_WSEQ_SEQUENCE_53 0x3068 +#define MADERA_WSEQ_SEQUENCE_54 0x306A +#define MADERA_WSEQ_SEQUENCE_55 0x306C +#define MADERA_WSEQ_SEQUENCE_56 0x306E +#define MADERA_WSEQ_SEQUENCE_57 0x3070 +#define MADERA_WSEQ_SEQUENCE_58 0x3072 +#define MADERA_WSEQ_SEQUENCE_59 0x3074 +#define MADERA_WSEQ_SEQUENCE_60 0x3076 +#define MADERA_WSEQ_SEQUENCE_61 0x3078 +#define MADERA_WSEQ_SEQUENCE_62 0x307A +#define MADERA_WSEQ_SEQUENCE_63 0x307C +#define MADERA_WSEQ_SEQUENCE_64 0x307E +#define MADERA_WSEQ_SEQUENCE_65 0x3080 +#define MADERA_WSEQ_SEQUENCE_66 0x3082 +#define MADERA_WSEQ_SEQUENCE_67 0x3084 +#define MADERA_WSEQ_SEQUENCE_68 0x3086 +#define MADERA_WSEQ_SEQUENCE_69 0x3088 +#define MADERA_WSEQ_SEQUENCE_70 0x308A +#define MADERA_WSEQ_SEQUENCE_71 0x308C +#define MADERA_WSEQ_SEQUENCE_72 0x308E +#define MADERA_WSEQ_SEQUENCE_73 0x3090 +#define MADERA_WSEQ_SEQUENCE_74 0x3092 +#define MADERA_WSEQ_SEQUENCE_75 0x3094 +#define MADERA_WSEQ_SEQUENCE_76 0x3096 +#define MADERA_WSEQ_SEQUENCE_77 0x3098 +#define MADERA_WSEQ_SEQUENCE_78 0x309A +#define MADERA_WSEQ_SEQUENCE_79 0x309C +#define MADERA_WSEQ_SEQUENCE_80 0x309E +#define MADERA_WSEQ_SEQUENCE_81 0x30A0 +#define MADERA_WSEQ_SEQUENCE_82 0x30A2 +#define MADERA_WSEQ_SEQUENCE_83 0x30A4 +#define MADERA_WSEQ_SEQUENCE_84 0x30A6 +#define MADERA_WSEQ_SEQUENCE_85 0x30A8 +#define MADERA_WSEQ_SEQUENCE_86 0x30AA +#define MADERA_WSEQ_SEQUENCE_87 0x30AC +#define MADERA_WSEQ_SEQUENCE_88 0x30AE +#define MADERA_WSEQ_SEQUENCE_89 0x30B0 +#define MADERA_WSEQ_SEQUENCE_90 0x30B2 +#define MADERA_WSEQ_SEQUENCE_91 0x30B4 +#define MADERA_WSEQ_SEQUENCE_92 0x30B6 +#define MADERA_WSEQ_SEQUENCE_93 0x30B8 +#define MADERA_WSEQ_SEQUENCE_94 0x30BA +#define MADERA_WSEQ_SEQUENCE_95 0x30BC +#define MADERA_WSEQ_SEQUENCE_96 0x30BE +#define MADERA_WSEQ_SEQUENCE_97 0x30C0 +#define MADERA_WSEQ_SEQUENCE_98 0x30C2 +#define MADERA_WSEQ_SEQUENCE_99 0x30C4 +#define MADERA_WSEQ_SEQUENCE_100 0x30C6 +#define MADERA_WSEQ_SEQUENCE_101 0x30C8 +#define MADERA_WSEQ_SEQUENCE_102 0x30CA +#define MADERA_WSEQ_SEQUENCE_103 0x30CC +#define MADERA_WSEQ_SEQUENCE_104 0x30CE +#define MADERA_WSEQ_SEQUENCE_105 0x30D0 +#define MADERA_WSEQ_SEQUENCE_106 0x30D2 +#define MADERA_WSEQ_SEQUENCE_107 0x30D4 +#define MADERA_WSEQ_SEQUENCE_108 0x30D6 +#define MADERA_WSEQ_SEQUENCE_109 0x30D8 +#define MADERA_WSEQ_SEQUENCE_110 0x30DA +#define MADERA_WSEQ_SEQUENCE_111 0x30DC +#define MADERA_WSEQ_SEQUENCE_112 0x30DE +#define MADERA_WSEQ_SEQUENCE_113 0x30E0 +#define MADERA_WSEQ_SEQUENCE_114 0x30E2 +#define MADERA_WSEQ_SEQUENCE_115 0x30E4 +#define MADERA_WSEQ_SEQUENCE_116 0x30E6 +#define MADERA_WSEQ_SEQUENCE_117 0x30E8 +#define MADERA_WSEQ_SEQUENCE_118 0x30EA +#define MADERA_WSEQ_SEQUENCE_119 0x30EC +#define MADERA_WSEQ_SEQUENCE_120 0x30EE +#define MADERA_WSEQ_SEQUENCE_121 0x30F0 +#define MADERA_WSEQ_SEQUENCE_122 0x30F2 +#define MADERA_WSEQ_SEQUENCE_123 0x30F4 +#define MADERA_WSEQ_SEQUENCE_124 0x30F6 +#define MADERA_WSEQ_SEQUENCE_125 0x30F8 +#define MADERA_WSEQ_SEQUENCE_126 0x30FA +#define MADERA_WSEQ_SEQUENCE_127 0x30FC +#define MADERA_WSEQ_SEQUENCE_128 0x30FE +#define MADERA_WSEQ_SEQUENCE_129 0x3100 +#define MADERA_WSEQ_SEQUENCE_130 0x3102 +#define MADERA_WSEQ_SEQUENCE_131 0x3104 +#define MADERA_WSEQ_SEQUENCE_132 0x3106 +#define MADERA_WSEQ_SEQUENCE_133 0x3108 +#define MADERA_WSEQ_SEQUENCE_134 0x310A +#define MADERA_WSEQ_SEQUENCE_135 0x310C +#define MADERA_WSEQ_SEQUENCE_136 0x310E +#define MADERA_WSEQ_SEQUENCE_137 0x3110 +#define MADERA_WSEQ_SEQUENCE_138 0x3112 +#define MADERA_WSEQ_SEQUENCE_139 0x3114 +#define MADERA_WSEQ_SEQUENCE_140 0x3116 +#define MADERA_WSEQ_SEQUENCE_141 0x3118 +#define MADERA_WSEQ_SEQUENCE_142 0x311A +#define MADERA_WSEQ_SEQUENCE_143 0x311C +#define MADERA_WSEQ_SEQUENCE_144 0x311E +#define MADERA_WSEQ_SEQUENCE_145 0x3120 +#define MADERA_WSEQ_SEQUENCE_146 0x3122 +#define MADERA_WSEQ_SEQUENCE_147 0x3124 +#define MADERA_WSEQ_SEQUENCE_148 0x3126 +#define MADERA_WSEQ_SEQUENCE_149 0x3128 +#define MADERA_WSEQ_SEQUENCE_150 0x312A +#define MADERA_WSEQ_SEQUENCE_151 0x312C +#define MADERA_WSEQ_SEQUENCE_152 0x312E +#define MADERA_WSEQ_SEQUENCE_153 0x3130 +#define MADERA_WSEQ_SEQUENCE_154 0x3132 +#define MADERA_WSEQ_SEQUENCE_155 0x3134 +#define MADERA_WSEQ_SEQUENCE_156 0x3136 +#define MADERA_WSEQ_SEQUENCE_157 0x3138 +#define MADERA_WSEQ_SEQUENCE_158 0x313A +#define MADERA_WSEQ_SEQUENCE_159 0x313C +#define MADERA_WSEQ_SEQUENCE_160 0x313E +#define MADERA_WSEQ_SEQUENCE_161 0x3140 +#define MADERA_WSEQ_SEQUENCE_162 0x3142 +#define MADERA_WSEQ_SEQUENCE_163 0x3144 +#define MADERA_WSEQ_SEQUENCE_164 0x3146 +#define MADERA_WSEQ_SEQUENCE_165 0x3148 +#define MADERA_WSEQ_SEQUENCE_166 0x314A +#define MADERA_WSEQ_SEQUENCE_167 0x314C +#define MADERA_WSEQ_SEQUENCE_168 0x314E +#define MADERA_WSEQ_SEQUENCE_169 0x3150 +#define MADERA_WSEQ_SEQUENCE_170 0x3152 +#define MADERA_WSEQ_SEQUENCE_171 0x3154 +#define MADERA_WSEQ_SEQUENCE_172 0x3156 +#define MADERA_WSEQ_SEQUENCE_173 0x3158 +#define MADERA_WSEQ_SEQUENCE_174 0x315A +#define MADERA_WSEQ_SEQUENCE_175 0x315C +#define MADERA_WSEQ_SEQUENCE_176 0x315E +#define MADERA_WSEQ_SEQUENCE_177 0x3160 +#define MADERA_WSEQ_SEQUENCE_178 0x3162 +#define MADERA_WSEQ_SEQUENCE_179 0x3164 +#define MADERA_WSEQ_SEQUENCE_180 0x3166 +#define MADERA_WSEQ_SEQUENCE_181 0x3168 +#define MADERA_WSEQ_SEQUENCE_182 0x316A +#define MADERA_WSEQ_SEQUENCE_183 0x316C +#define MADERA_WSEQ_SEQUENCE_184 0x316E +#define MADERA_WSEQ_SEQUENCE_185 0x3170 +#define MADERA_WSEQ_SEQUENCE_186 0x3172 +#define MADERA_WSEQ_SEQUENCE_187 0x3174 +#define MADERA_WSEQ_SEQUENCE_188 0x3176 +#define MADERA_WSEQ_SEQUENCE_189 0x3178 +#define MADERA_WSEQ_SEQUENCE_190 0x317A +#define MADERA_WSEQ_SEQUENCE_191 0x317C +#define MADERA_WSEQ_SEQUENCE_192 0x317E +#define MADERA_WSEQ_SEQUENCE_193 0x3180 +#define MADERA_WSEQ_SEQUENCE_194 0x3182 +#define MADERA_WSEQ_SEQUENCE_195 0x3184 +#define MADERA_WSEQ_SEQUENCE_196 0x3186 +#define MADERA_WSEQ_SEQUENCE_197 0x3188 +#define MADERA_WSEQ_SEQUENCE_198 0x318A +#define MADERA_WSEQ_SEQUENCE_199 0x318C +#define MADERA_WSEQ_SEQUENCE_200 0x318E +#define MADERA_WSEQ_SEQUENCE_201 0x3190 +#define MADERA_WSEQ_SEQUENCE_202 0x3192 +#define MADERA_WSEQ_SEQUENCE_203 0x3194 +#define MADERA_WSEQ_SEQUENCE_204 0x3196 +#define MADERA_WSEQ_SEQUENCE_205 0x3198 +#define MADERA_WSEQ_SEQUENCE_206 0x319A +#define MADERA_WSEQ_SEQUENCE_207 0x319C +#define MADERA_WSEQ_SEQUENCE_208 0x319E +#define MADERA_WSEQ_SEQUENCE_209 0x31A0 +#define MADERA_WSEQ_SEQUENCE_210 0x31A2 +#define MADERA_WSEQ_SEQUENCE_211 0x31A4 +#define MADERA_WSEQ_SEQUENCE_212 0x31A6 +#define MADERA_WSEQ_SEQUENCE_213 0x31A8 +#define MADERA_WSEQ_SEQUENCE_214 0x31AA +#define MADERA_WSEQ_SEQUENCE_215 0x31AC +#define MADERA_WSEQ_SEQUENCE_216 0x31AE +#define MADERA_WSEQ_SEQUENCE_217 0x31B0 +#define MADERA_WSEQ_SEQUENCE_218 0x31B2 +#define MADERA_WSEQ_SEQUENCE_219 0x31B4 +#define MADERA_WSEQ_SEQUENCE_220 0x31B6 +#define MADERA_WSEQ_SEQUENCE_221 0x31B8 +#define MADERA_WSEQ_SEQUENCE_222 0x31BA +#define MADERA_WSEQ_SEQUENCE_223 0x31BC +#define MADERA_WSEQ_SEQUENCE_224 0x31BE +#define MADERA_WSEQ_SEQUENCE_225 0x31C0 +#define MADERA_WSEQ_SEQUENCE_226 0x31C2 +#define MADERA_WSEQ_SEQUENCE_227 0x31C4 +#define MADERA_WSEQ_SEQUENCE_228 0x31C6 +#define MADERA_WSEQ_SEQUENCE_229 0x31C8 +#define MADERA_WSEQ_SEQUENCE_230 0x31CA +#define MADERA_WSEQ_SEQUENCE_231 0x31CC +#define MADERA_WSEQ_SEQUENCE_232 0x31CE +#define MADERA_WSEQ_SEQUENCE_233 0x31D0 +#define MADERA_WSEQ_SEQUENCE_234 0x31D2 +#define MADERA_WSEQ_SEQUENCE_235 0x31D4 +#define MADERA_WSEQ_SEQUENCE_236 0x31D6 +#define MADERA_WSEQ_SEQUENCE_237 0x31D8 +#define MADERA_WSEQ_SEQUENCE_238 0x31DA +#define MADERA_WSEQ_SEQUENCE_239 0x31DC +#define MADERA_WSEQ_SEQUENCE_240 0x31DE +#define MADERA_WSEQ_SEQUENCE_241 0x31E0 +#define MADERA_WSEQ_SEQUENCE_242 0x31E2 +#define MADERA_WSEQ_SEQUENCE_243 0x31E4 +#define MADERA_WSEQ_SEQUENCE_244 0x31E6 +#define MADERA_WSEQ_SEQUENCE_245 0x31E8 +#define MADERA_WSEQ_SEQUENCE_246 0x31EA +#define MADERA_WSEQ_SEQUENCE_247 0x31EC +#define MADERA_WSEQ_SEQUENCE_248 0x31EE +#define MADERA_WSEQ_SEQUENCE_249 0x31F0 +#define MADERA_WSEQ_SEQUENCE_250 0x31F2 +#define MADERA_WSEQ_SEQUENCE_251 0x31F4 +#define MADERA_WSEQ_SEQUENCE_252 0x31F6 +#define MADERA_WSEQ_SEQUENCE_253 0x31F8 +#define CS47L35_OTP_HPDET_CAL_1 0x31F8 +#define CS47L35_OTP_HPDET_CAL_2 0x31FA +#define MADERA_WSEQ_SEQUENCE_254 0x31FA +#define MADERA_WSEQ_SEQUENCE_255 0x31FC +#define MADERA_WSEQ_SEQUENCE_256 0x31FE +#define MADERA_WSEQ_SEQUENCE_257 0x3200 +#define MADERA_WSEQ_SEQUENCE_258 0x3202 +#define MADERA_WSEQ_SEQUENCE_259 0x3204 +#define MADERA_WSEQ_SEQUENCE_260 0x3206 +#define MADERA_WSEQ_SEQUENCE_261 0x3208 +#define MADERA_WSEQ_SEQUENCE_262 0x320A +#define MADERA_WSEQ_SEQUENCE_263 0x320C +#define MADERA_WSEQ_SEQUENCE_264 0x320E +#define MADERA_WSEQ_SEQUENCE_265 0x3210 +#define MADERA_WSEQ_SEQUENCE_266 0x3212 +#define MADERA_WSEQ_SEQUENCE_267 0x3214 +#define MADERA_WSEQ_SEQUENCE_268 0x3216 +#define MADERA_WSEQ_SEQUENCE_269 0x3218 +#define MADERA_WSEQ_SEQUENCE_270 0x321A +#define MADERA_WSEQ_SEQUENCE_271 0x321C +#define MADERA_WSEQ_SEQUENCE_272 0x321E +#define MADERA_WSEQ_SEQUENCE_273 0x3220 +#define MADERA_WSEQ_SEQUENCE_274 0x3222 +#define MADERA_WSEQ_SEQUENCE_275 0x3224 +#define MADERA_WSEQ_SEQUENCE_276 0x3226 +#define MADERA_WSEQ_SEQUENCE_277 0x3228 +#define MADERA_WSEQ_SEQUENCE_278 0x322A +#define MADERA_WSEQ_SEQUENCE_279 0x322C +#define MADERA_WSEQ_SEQUENCE_280 0x322E +#define MADERA_WSEQ_SEQUENCE_281 0x3230 +#define MADERA_WSEQ_SEQUENCE_282 0x3232 +#define MADERA_WSEQ_SEQUENCE_283 0x3234 +#define MADERA_WSEQ_SEQUENCE_284 0x3236 +#define MADERA_WSEQ_SEQUENCE_285 0x3238 +#define MADERA_WSEQ_SEQUENCE_286 0x323A +#define MADERA_WSEQ_SEQUENCE_287 0x323C +#define MADERA_WSEQ_SEQUENCE_288 0x323E +#define MADERA_WSEQ_SEQUENCE_289 0x3240 +#define MADERA_WSEQ_SEQUENCE_290 0x3242 +#define MADERA_WSEQ_SEQUENCE_291 0x3244 +#define MADERA_WSEQ_SEQUENCE_292 0x3246 +#define MADERA_WSEQ_SEQUENCE_293 0x3248 +#define MADERA_WSEQ_SEQUENCE_294 0x324A +#define MADERA_WSEQ_SEQUENCE_295 0x324C +#define MADERA_WSEQ_SEQUENCE_296 0x324E +#define MADERA_WSEQ_SEQUENCE_297 0x3250 +#define MADERA_WSEQ_SEQUENCE_298 0x3252 +#define MADERA_WSEQ_SEQUENCE_299 0x3254 +#define MADERA_WSEQ_SEQUENCE_300 0x3256 +#define MADERA_WSEQ_SEQUENCE_301 0x3258 +#define MADERA_WSEQ_SEQUENCE_302 0x325A +#define MADERA_WSEQ_SEQUENCE_303 0x325C +#define MADERA_WSEQ_SEQUENCE_304 0x325E +#define MADERA_WSEQ_SEQUENCE_305 0x3260 +#define MADERA_WSEQ_SEQUENCE_306 0x3262 +#define MADERA_WSEQ_SEQUENCE_307 0x3264 +#define MADERA_WSEQ_SEQUENCE_308 0x3266 +#define MADERA_WSEQ_SEQUENCE_309 0x3268 +#define MADERA_WSEQ_SEQUENCE_310 0x326A +#define MADERA_WSEQ_SEQUENCE_311 0x326C +#define MADERA_WSEQ_SEQUENCE_312 0x326E +#define MADERA_WSEQ_SEQUENCE_313 0x3270 +#define MADERA_WSEQ_SEQUENCE_314 0x3272 +#define MADERA_WSEQ_SEQUENCE_315 0x3274 +#define MADERA_WSEQ_SEQUENCE_316 0x3276 +#define MADERA_WSEQ_SEQUENCE_317 0x3278 +#define MADERA_WSEQ_SEQUENCE_318 0x327A +#define MADERA_WSEQ_SEQUENCE_319 0x327C +#define MADERA_WSEQ_SEQUENCE_320 0x327E +#define MADERA_WSEQ_SEQUENCE_321 0x3280 +#define MADERA_WSEQ_SEQUENCE_322 0x3282 +#define MADERA_WSEQ_SEQUENCE_323 0x3284 +#define MADERA_WSEQ_SEQUENCE_324 0x3286 +#define MADERA_WSEQ_SEQUENCE_325 0x3288 +#define MADERA_WSEQ_SEQUENCE_326 0x328A +#define MADERA_WSEQ_SEQUENCE_327 0x328C +#define MADERA_WSEQ_SEQUENCE_328 0x328E +#define MADERA_WSEQ_SEQUENCE_329 0x3290 +#define MADERA_WSEQ_SEQUENCE_330 0x3292 +#define MADERA_WSEQ_SEQUENCE_331 0x3294 +#define MADERA_WSEQ_SEQUENCE_332 0x3296 +#define MADERA_WSEQ_SEQUENCE_333 0x3298 +#define MADERA_WSEQ_SEQUENCE_334 0x329A +#define MADERA_WSEQ_SEQUENCE_335 0x329C +#define MADERA_WSEQ_SEQUENCE_336 0x329E +#define MADERA_WSEQ_SEQUENCE_337 0x32A0 +#define MADERA_WSEQ_SEQUENCE_338 0x32A2 +#define MADERA_WSEQ_SEQUENCE_339 0x32A4 +#define MADERA_WSEQ_SEQUENCE_340 0x32A6 +#define MADERA_WSEQ_SEQUENCE_341 0x32A8 +#define MADERA_WSEQ_SEQUENCE_342 0x32AA +#define MADERA_WSEQ_SEQUENCE_343 0x32AC +#define MADERA_WSEQ_SEQUENCE_344 0x32AE +#define MADERA_WSEQ_SEQUENCE_345 0x32B0 +#define MADERA_WSEQ_SEQUENCE_346 0x32B2 +#define MADERA_WSEQ_SEQUENCE_347 0x32B4 +#define MADERA_WSEQ_SEQUENCE_348 0x32B6 +#define MADERA_WSEQ_SEQUENCE_349 0x32B8 +#define MADERA_WSEQ_SEQUENCE_350 0x32BA +#define MADERA_WSEQ_SEQUENCE_351 0x32BC +#define MADERA_WSEQ_SEQUENCE_352 0x32BE +#define MADERA_WSEQ_SEQUENCE_353 0x32C0 +#define MADERA_WSEQ_SEQUENCE_354 0x32C2 +#define MADERA_WSEQ_SEQUENCE_355 0x32C4 +#define MADERA_WSEQ_SEQUENCE_356 0x32C6 +#define MADERA_WSEQ_SEQUENCE_357 0x32C8 +#define MADERA_WSEQ_SEQUENCE_358 0x32CA +#define MADERA_WSEQ_SEQUENCE_359 0x32CC +#define MADERA_WSEQ_SEQUENCE_360 0x32CE +#define MADERA_WSEQ_SEQUENCE_361 0x32D0 +#define MADERA_WSEQ_SEQUENCE_362 0x32D2 +#define MADERA_WSEQ_SEQUENCE_363 0x32D4 +#define MADERA_WSEQ_SEQUENCE_364 0x32D6 +#define MADERA_WSEQ_SEQUENCE_365 0x32D8 +#define MADERA_WSEQ_SEQUENCE_366 0x32DA +#define MADERA_WSEQ_SEQUENCE_367 0x32DC +#define MADERA_WSEQ_SEQUENCE_368 0x32DE +#define MADERA_WSEQ_SEQUENCE_369 0x32E0 +#define MADERA_WSEQ_SEQUENCE_370 0x32E2 +#define MADERA_WSEQ_SEQUENCE_371 0x32E4 +#define MADERA_WSEQ_SEQUENCE_372 0x32E6 +#define MADERA_WSEQ_SEQUENCE_373 0x32E8 +#define MADERA_WSEQ_SEQUENCE_374 0x32EA +#define MADERA_WSEQ_SEQUENCE_375 0x32EC +#define MADERA_WSEQ_SEQUENCE_376 0x32EE +#define MADERA_WSEQ_SEQUENCE_377 0x32F0 +#define MADERA_WSEQ_SEQUENCE_378 0x32F2 +#define MADERA_WSEQ_SEQUENCE_379 0x32F4 +#define MADERA_WSEQ_SEQUENCE_380 0x32F6 +#define MADERA_WSEQ_SEQUENCE_381 0x32F8 +#define MADERA_WSEQ_SEQUENCE_382 0x32FA +#define MADERA_WSEQ_SEQUENCE_383 0x32FC +#define MADERA_WSEQ_SEQUENCE_384 0x32FE +#define MADERA_WSEQ_SEQUENCE_385 0x3300 +#define MADERA_WSEQ_SEQUENCE_386 0x3302 +#define MADERA_WSEQ_SEQUENCE_387 0x3304 +#define MADERA_WSEQ_SEQUENCE_388 0x3306 +#define MADERA_WSEQ_SEQUENCE_389 0x3308 +#define MADERA_WSEQ_SEQUENCE_390 0x330A +#define MADERA_WSEQ_SEQUENCE_391 0x330C +#define MADERA_WSEQ_SEQUENCE_392 0x330E +#define MADERA_WSEQ_SEQUENCE_393 0x3310 +#define MADERA_WSEQ_SEQUENCE_394 0x3312 +#define MADERA_WSEQ_SEQUENCE_395 0x3314 +#define MADERA_WSEQ_SEQUENCE_396 0x3316 +#define MADERA_WSEQ_SEQUENCE_397 0x3318 +#define MADERA_WSEQ_SEQUENCE_398 0x331A +#define MADERA_WSEQ_SEQUENCE_399 0x331C +#define MADERA_WSEQ_SEQUENCE_400 0x331E +#define MADERA_WSEQ_SEQUENCE_401 0x3320 +#define MADERA_WSEQ_SEQUENCE_402 0x3322 +#define MADERA_WSEQ_SEQUENCE_403 0x3324 +#define MADERA_WSEQ_SEQUENCE_404 0x3326 +#define MADERA_WSEQ_SEQUENCE_405 0x3328 +#define MADERA_WSEQ_SEQUENCE_406 0x332A +#define MADERA_WSEQ_SEQUENCE_407 0x332C +#define MADERA_WSEQ_SEQUENCE_408 0x332E +#define MADERA_WSEQ_SEQUENCE_409 0x3330 +#define MADERA_WSEQ_SEQUENCE_410 0x3332 +#define MADERA_WSEQ_SEQUENCE_411 0x3334 +#define MADERA_WSEQ_SEQUENCE_412 0x3336 +#define MADERA_WSEQ_SEQUENCE_413 0x3338 +#define MADERA_WSEQ_SEQUENCE_414 0x333A +#define MADERA_WSEQ_SEQUENCE_415 0x333C +#define MADERA_WSEQ_SEQUENCE_416 0x333E +#define MADERA_WSEQ_SEQUENCE_417 0x3340 +#define MADERA_WSEQ_SEQUENCE_418 0x3342 +#define MADERA_WSEQ_SEQUENCE_419 0x3344 +#define MADERA_WSEQ_SEQUENCE_420 0x3346 +#define MADERA_WSEQ_SEQUENCE_421 0x3348 +#define MADERA_WSEQ_SEQUENCE_422 0x334A +#define MADERA_WSEQ_SEQUENCE_423 0x334C +#define MADERA_WSEQ_SEQUENCE_424 0x334E +#define MADERA_WSEQ_SEQUENCE_425 0x3350 +#define MADERA_WSEQ_SEQUENCE_426 0x3352 +#define MADERA_WSEQ_SEQUENCE_427 0x3354 +#define MADERA_WSEQ_SEQUENCE_428 0x3356 +#define MADERA_WSEQ_SEQUENCE_429 0x3358 +#define MADERA_WSEQ_SEQUENCE_430 0x335A +#define MADERA_WSEQ_SEQUENCE_431 0x335C +#define MADERA_WSEQ_SEQUENCE_432 0x335E +#define MADERA_WSEQ_SEQUENCE_433 0x3360 +#define MADERA_WSEQ_SEQUENCE_434 0x3362 +#define MADERA_WSEQ_SEQUENCE_435 0x3364 +#define MADERA_WSEQ_SEQUENCE_436 0x3366 +#define MADERA_WSEQ_SEQUENCE_437 0x3368 +#define MADERA_WSEQ_SEQUENCE_438 0x336A +#define MADERA_WSEQ_SEQUENCE_439 0x336C +#define MADERA_WSEQ_SEQUENCE_440 0x336E +#define MADERA_WSEQ_SEQUENCE_441 0x3370 +#define MADERA_WSEQ_SEQUENCE_442 0x3372 +#define MADERA_WSEQ_SEQUENCE_443 0x3374 +#define MADERA_WSEQ_SEQUENCE_444 0x3376 +#define MADERA_WSEQ_SEQUENCE_445 0x3378 +#define MADERA_WSEQ_SEQUENCE_446 0x337A +#define MADERA_WSEQ_SEQUENCE_447 0x337C +#define MADERA_WSEQ_SEQUENCE_448 0x337E +#define MADERA_WSEQ_SEQUENCE_449 0x3380 +#define MADERA_WSEQ_SEQUENCE_450 0x3382 +#define MADERA_WSEQ_SEQUENCE_451 0x3384 +#define MADERA_WSEQ_SEQUENCE_452 0x3386 +#define MADERA_WSEQ_SEQUENCE_453 0x3388 +#define MADERA_WSEQ_SEQUENCE_454 0x338A +#define MADERA_WSEQ_SEQUENCE_455 0x338C +#define MADERA_WSEQ_SEQUENCE_456 0x338E +#define MADERA_WSEQ_SEQUENCE_457 0x3390 +#define MADERA_WSEQ_SEQUENCE_458 0x3392 +#define MADERA_WSEQ_SEQUENCE_459 0x3394 +#define MADERA_WSEQ_SEQUENCE_460 0x3396 +#define MADERA_WSEQ_SEQUENCE_461 0x3398 +#define MADERA_WSEQ_SEQUENCE_462 0x339A +#define MADERA_WSEQ_SEQUENCE_463 0x339C +#define MADERA_WSEQ_SEQUENCE_464 0x339E +#define MADERA_WSEQ_SEQUENCE_465 0x33A0 +#define MADERA_WSEQ_SEQUENCE_466 0x33A2 +#define MADERA_WSEQ_SEQUENCE_467 0x33A4 +#define MADERA_WSEQ_SEQUENCE_468 0x33A6 +#define MADERA_WSEQ_SEQUENCE_469 0x33A8 +#define MADERA_WSEQ_SEQUENCE_470 0x33AA +#define MADERA_WSEQ_SEQUENCE_471 0x33AC +#define MADERA_WSEQ_SEQUENCE_472 0x33AE +#define MADERA_WSEQ_SEQUENCE_473 0x33B0 +#define MADERA_WSEQ_SEQUENCE_474 0x33B2 +#define MADERA_WSEQ_SEQUENCE_475 0x33B4 +#define MADERA_WSEQ_SEQUENCE_476 0x33B6 +#define MADERA_WSEQ_SEQUENCE_477 0x33B8 +#define MADERA_WSEQ_SEQUENCE_478 0x33BA +#define MADERA_WSEQ_SEQUENCE_479 0x33BC +#define MADERA_WSEQ_SEQUENCE_480 0x33BE +#define MADERA_WSEQ_SEQUENCE_481 0x33C0 +#define MADERA_WSEQ_SEQUENCE_482 0x33C2 +#define MADERA_WSEQ_SEQUENCE_483 0x33C4 +#define MADERA_WSEQ_SEQUENCE_484 0x33C6 +#define MADERA_WSEQ_SEQUENCE_485 0x33C8 +#define MADERA_WSEQ_SEQUENCE_486 0x33CA +#define MADERA_WSEQ_SEQUENCE_487 0x33CC +#define MADERA_WSEQ_SEQUENCE_488 0x33CE +#define MADERA_WSEQ_SEQUENCE_489 0x33D0 +#define MADERA_WSEQ_SEQUENCE_490 0x33D2 +#define MADERA_WSEQ_SEQUENCE_491 0x33D4 +#define MADERA_WSEQ_SEQUENCE_492 0x33D6 +#define MADERA_WSEQ_SEQUENCE_493 0x33D8 +#define MADERA_WSEQ_SEQUENCE_494 0x33DA +#define MADERA_WSEQ_SEQUENCE_495 0x33DC +#define MADERA_WSEQ_SEQUENCE_496 0x33DE +#define MADERA_WSEQ_SEQUENCE_497 0x33E0 +#define MADERA_WSEQ_SEQUENCE_498 0x33E2 +#define MADERA_WSEQ_SEQUENCE_499 0x33E4 +#define MADERA_WSEQ_SEQUENCE_500 0x33E6 +#define MADERA_WSEQ_SEQUENCE_501 0x33E8 +#define MADERA_WSEQ_SEQUENCE_502 0x33EA +#define MADERA_WSEQ_SEQUENCE_503 0x33EC +#define MADERA_WSEQ_SEQUENCE_504 0x33EE +#define MADERA_WSEQ_SEQUENCE_505 0x33F0 +#define MADERA_WSEQ_SEQUENCE_506 0x33F2 +#define MADERA_WSEQ_SEQUENCE_507 0x33F4 +#define MADERA_WSEQ_SEQUENCE_508 0x33F6 +#define CS47L85_OTP_HPDET_CAL_1 0x33F8 +#define CS47L85_OTP_HPDET_CAL_2 0x33FA +#define MADERA_OTP_HPDET_CAL_1 0x20004 +#define MADERA_OTP_HPDET_CAL_2 0x20006 +#define MADERA_DSP1_CONFIG_1 0x0FFE00 +#define MADERA_DSP1_CONFIG_2 0x0FFE02 +#define MADERA_DSP1_STATUS_1 0x0FFE04 +#define MADERA_DSP1_STATUS_2 0x0FFE06 +#define MADERA_DSP1_STATUS_3 0x0FFE08 +#define MADERA_DSP1_WATCHDOG_1 0x0FFE0A +#define MADERA_DSP1_DMA_CONFIG_1 0x0FFE30 +#define MADERA_DSP1_DMA_CONFIG_2 0x0FFE32 +#define MADERA_DSP1_DMA_CONFIG_3 0x0FFE34 +#define MADERA_DSP1_DMA_CONFIG_4 0x0FFE36 +#define MADERA_DSP1_SCRATCH_1 0x0FFE40 +#define MADERA_DSP1_SCRATCH_2 0x0FFE42 +#define MADERA_DSP1_BUS_ERROR_ADDR 0xFFE52 +#define MADERA_DSP1_REGION_LOCK_STS_0 0xFFE64 +#define MADERA_DSP1_REGION_LOCK_1___DSP1_REGION_LOCK_0 0xFFE66 +#define MADERA_DSP1_REGION_LOCK_3___DSP1_REGION_LOCK_2 0xFFE68 +#define MADERA_DSP1_REGION_LOCK_5___DSP1_REGION_LOCK_4 0xFFE6A +#define MADERA_DSP1_REGION_LOCK_7___DSP1_REGION_LOCK_6 0xFFE6C +#define MADERA_DSP1_REGION_LOCK_9___DSP1_REGION_LOCK_8 0xFFE6E +#define MADERA_DSP1_REGION_LOCK_CTRL_0 0xFFE7A +#define MADERA_DSP1_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0xFFE7C +#define MADERA_DSP2_CONFIG_1 0x17FE00 +#define MADERA_DSP2_CONFIG_2 0x17FE02 +#define MADERA_DSP2_STATUS_1 0x17FE04 +#define MADERA_DSP2_STATUS_2 0x17FE06 +#define MADERA_DSP2_STATUS_3 0x17FE08 +#define MADERA_DSP2_WATCHDOG_1 0x17FE0A +#define MADERA_DSP2_DMA_CONFIG_1 0x17FE30 +#define MADERA_DSP2_DMA_CONFIG_2 0x17FE32 +#define MADERA_DSP2_DMA_CONFIG_3 0x17FE34 +#define MADERA_DSP2_DMA_CONFIG_4 0x17FE36 +#define MADERA_DSP2_SCRATCH_1 0x17FE40 +#define MADERA_DSP2_SCRATCH_2 0x17FE42 +#define MADERA_DSP2_BUS_ERROR_ADDR 0x17FE52 +#define MADERA_DSP2_REGION_LOCK_STS_0 0x17FE64 +#define MADERA_DSP2_REGION_LOCK_1___DSP2_REGION_LOCK_0 0x17FE66 +#define MADERA_DSP2_REGION_LOCK_3___DSP2_REGION_LOCK_2 0x17FE68 +#define MADERA_DSP2_REGION_LOCK_5___DSP2_REGION_LOCK_4 0x17FE6A +#define MADERA_DSP2_REGION_LOCK_7___DSP2_REGION_LOCK_6 0x17FE6C +#define MADERA_DSP2_REGION_LOCK_9___DSP2_REGION_LOCK_8 0x17FE6E +#define MADERA_DSP2_REGION_LOCK_CTRL_0 0x17FE7A +#define MADERA_DSP2_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x17FE7C +#define MADERA_DSP3_CONFIG_1 0x1FFE00 +#define MADERA_DSP3_CONFIG_2 0x1FFE02 +#define MADERA_DSP3_STATUS_1 0x1FFE04 +#define MADERA_DSP3_STATUS_2 0x1FFE06 +#define MADERA_DSP3_STATUS_3 0x1FFE08 +#define MADERA_DSP3_WATCHDOG_1 0x1FFE0A +#define MADERA_DSP3_DMA_CONFIG_1 0x1FFE30 +#define MADERA_DSP3_DMA_CONFIG_2 0x1FFE32 +#define MADERA_DSP3_DMA_CONFIG_3 0x1FFE34 +#define MADERA_DSP3_DMA_CONFIG_4 0x1FFE36 +#define MADERA_DSP3_SCRATCH_1 0x1FFE40 +#define MADERA_DSP3_SCRATCH_2 0x1FFE42 +#define MADERA_DSP3_BUS_ERROR_ADDR 0x1FFE52 +#define MADERA_DSP3_REGION_LOCK_STS_0 0x1FFE64 +#define MADERA_DSP3_REGION_LOCK_1___DSP3_REGION_LOCK_0 0x1FFE66 +#define MADERA_DSP3_REGION_LOCK_3___DSP3_REGION_LOCK_2 0x1FFE68 +#define MADERA_DSP3_REGION_LOCK_5___DSP3_REGION_LOCK_4 0x1FFE6A +#define MADERA_DSP3_REGION_LOCK_7___DSP3_REGION_LOCK_6 0x1FFE6C +#define MADERA_DSP3_REGION_LOCK_9___DSP3_REGION_LOCK_8 0x1FFE6E +#define MADERA_DSP3_REGION_LOCK_CTRL_0 0x1FFE7A +#define MADERA_DSP3_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x1FFE7C +#define MADERA_DSP4_CONFIG_1 0x27FE00 +#define MADERA_DSP4_CONFIG_2 0x27FE02 +#define MADERA_DSP4_STATUS_1 0x27FE04 +#define MADERA_DSP4_STATUS_2 0x27FE06 +#define MADERA_DSP4_STATUS_3 0x27FE08 +#define MADERA_DSP4_WATCHDOG_1 0x27FE0A +#define MADERA_DSP4_DMA_CONFIG_1 0x27FE30 +#define MADERA_DSP4_DMA_CONFIG_2 0x27FE32 +#define MADERA_DSP4_DMA_CONFIG_3 0x27FE34 +#define MADERA_DSP4_DMA_CONFIG_4 0x27FE36 +#define MADERA_DSP4_SCRATCH_1 0x27FE40 +#define MADERA_DSP4_SCRATCH_2 0x27FE42 +#define MADERA_DSP4_BUS_ERROR_ADDR 0x27FE52 +#define MADERA_DSP4_REGION_LOCK_STS_0 0x27FE64 +#define MADERA_DSP4_REGION_LOCK_1___DSP4_REGION_LOCK_0 0x27FE66 +#define MADERA_DSP4_REGION_LOCK_3___DSP4_REGION_LOCK_2 0x27FE68 +#define MADERA_DSP4_REGION_LOCK_5___DSP4_REGION_LOCK_4 0x27FE6A +#define MADERA_DSP4_REGION_LOCK_7___DSP4_REGION_LOCK_6 0x27FE6C +#define MADERA_DSP4_REGION_LOCK_9___DSP4_REGION_LOCK_8 0x27FE6E +#define MADERA_DSP4_REGION_LOCK_CTRL_0 0x27FE7A +#define MADERA_DSP4_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x27FE7C +#define MADERA_DSP5_CONFIG_1 0x2FFE00 +#define MADERA_DSP5_CONFIG_2 0x2FFE02 +#define MADERA_DSP5_STATUS_1 0x2FFE04 +#define MADERA_DSP5_STATUS_2 0x2FFE06 +#define MADERA_DSP5_STATUS_3 0x2FFE08 +#define MADERA_DSP5_WATCHDOG_1 0x2FFE0A +#define MADERA_DSP5_DMA_CONFIG_1 0x2FFE30 +#define MADERA_DSP5_DMA_CONFIG_2 0x2FFE32 +#define MADERA_DSP5_DMA_CONFIG_3 0x2FFE34 +#define MADERA_DSP5_DMA_CONFIG_4 0x2FFE36 +#define MADERA_DSP5_SCRATCH_1 0x2FFE40 +#define MADERA_DSP5_SCRATCH_2 0x2FFE42 +#define MADERA_DSP5_BUS_ERROR_ADDR 0x2FFE52 +#define MADERA_DSP5_REGION_LOCK_STS_0 0x2FFE64 +#define MADERA_DSP5_REGION_LOCK_1___DSP5_REGION_LOCK_0 0x2FFE66 +#define MADERA_DSP5_REGION_LOCK_3___DSP5_REGION_LOCK_2 0x2FFE68 +#define MADERA_DSP5_REGION_LOCK_5___DSP5_REGION_LOCK_4 0x2FFE6A +#define MADERA_DSP5_REGION_LOCK_7___DSP5_REGION_LOCK_6 0x2FFE6C +#define MADERA_DSP5_REGION_LOCK_9___DSP5_REGION_LOCK_8 0x2FFE6E +#define MADERA_DSP5_REGION_LOCK_CTRL_0 0x2FFE7A +#define MADERA_DSP5_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x2FFE7C +#define MADERA_DSP6_CONFIG_1 0x37FE00 +#define MADERA_DSP6_CONFIG_2 0x37FE02 +#define MADERA_DSP6_STATUS_1 0x37FE04 +#define MADERA_DSP6_STATUS_2 0x37FE06 +#define MADERA_DSP6_STATUS_3 0x37FE08 +#define MADERA_DSP6_WATCHDOG_1 0x37FE0A +#define MADERA_DSP6_DMA_CONFIG_1 0x37FE30 +#define MADERA_DSP6_DMA_CONFIG_2 0x37FE32 +#define MADERA_DSP6_DMA_CONFIG_3 0x37FE34 +#define MADERA_DSP6_DMA_CONFIG_4 0x37FE36 +#define MADERA_DSP6_SCRATCH_1 0x37FE40 +#define MADERA_DSP6_SCRATCH_2 0x37FE42 +#define MADERA_DSP6_BUS_ERROR_ADDR 0x37FE52 +#define MADERA_DSP6_REGION_LOCK_STS_0 0x37FE64 +#define MADERA_DSP6_REGION_LOCK_1___DSP6_REGION_LOCK_0 0x37FE66 +#define MADERA_DSP6_REGION_LOCK_3___DSP6_REGION_LOCK_2 0x37FE68 +#define MADERA_DSP6_REGION_LOCK_5___DSP6_REGION_LOCK_4 0x37FE6A +#define MADERA_DSP6_REGION_LOCK_7___DSP6_REGION_LOCK_6 0x37FE6C +#define MADERA_DSP6_REGION_LOCK_9___DSP6_REGION_LOCK_8 0x37FE6E +#define MADERA_DSP6_REGION_LOCK_CTRL_0 0x37FE7A +#define MADERA_DSP6_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x37FE7C +#define MADERA_DSP7_CONFIG_1 0x3FFE00 +#define MADERA_DSP7_CONFIG_2 0x3FFE02 +#define MADERA_DSP7_STATUS_1 0x3FFE04 +#define MADERA_DSP7_STATUS_2 0x3FFE06 +#define MADERA_DSP7_STATUS_3 0x3FFE08 +#define MADERA_DSP7_WATCHDOG_1 0x3FFE0A +#define MADERA_DSP7_DMA_CONFIG_1 0x3FFE30 +#define MADERA_DSP7_DMA_CONFIG_2 0x3FFE32 +#define MADERA_DSP7_DMA_CONFIG_3 0x3FFE34 +#define MADERA_DSP7_DMA_CONFIG_4 0x3FFE36 +#define MADERA_DSP7_SCRATCH_1 0x3FFE40 +#define MADERA_DSP7_SCRATCH_2 0x3FFE42 +#define MADERA_DSP7_BUS_ERROR_ADDR 0x3FFE52 +#define MADERA_DSP7_REGION_LOCK_STS_0 0x3FFE64 +#define MADERA_DSP7_REGION_LOCK_1___DSP7_REGION_LOCK_0 0x3FFE66 +#define MADERA_DSP7_REGION_LOCK_3___DSP7_REGION_LOCK_2 0x3FFE68 +#define MADERA_DSP7_REGION_LOCK_5___DSP7_REGION_LOCK_4 0x3FFE6A +#define MADERA_DSP7_REGION_LOCK_7___DSP7_REGION_LOCK_6 0x3FFE6C +#define MADERA_DSP7_REGION_LOCK_9___DSP7_REGION_LOCK_8 0x3FFE6E +#define MADERA_DSP7_REGION_LOCK_CTRL_0 0x3FFE7A +#define MADERA_DSP7_PMEM_ERR_ADDR___XMEM_ERR_ADDR 0x3FFE7C
+/* (0x0000) Software_Reset */ +#define MADERA_SW_RST_DEV_ID1_MASK 0xFFFF +#define MADERA_SW_RST_DEV_ID1_SHIFT 0 +#define MADERA_SW_RST_DEV_ID1_WIDTH 16
+/* (0x0001) Hardware_Revision */ +#define MADERA_HW_REVISION_MASK 0x00FF +#define MADERA_HW_REVISION_SHIFT 0 +#define MADERA_HW_REVISION_WIDTH 8
+/* (0x0016) Write_Sequencer_Ctrl_0 */ +#define MADERA_WSEQ_ABORT 0x0800 +#define MADERA_WSEQ_ABORT_MASK 0x0800 +#define MADERA_WSEQ_ABORT_SHIFT 11 +#define MADERA_WSEQ_ABORT_WIDTH 1 +#define MADERA_WSEQ_START 0x0400 +#define MADERA_WSEQ_START_MASK 0x0400 +#define MADERA_WSEQ_START_SHIFT 10 +#define MADERA_WSEQ_START_WIDTH 1 +#define MADERA_WSEQ_ENA 0x0200 +#define MADERA_WSEQ_ENA_MASK 0x0200 +#define MADERA_WSEQ_ENA_SHIFT 9 +#define MADERA_WSEQ_ENA_WIDTH 1 +#define MADERA_WSEQ_START_INDEX_MASK 0x01FF +#define MADERA_WSEQ_START_INDEX_SHIFT 0 +#define MADERA_WSEQ_START_INDEX_WIDTH 9
+/* (0x0017) Write_Sequencer_Ctrl_1 */ +#define MADERA_WSEQ_BUSY 0x0200 +#define MADERA_WSEQ_BUSY_MASK 0x0200 +#define MADERA_WSEQ_BUSY_SHIFT 9 +#define MADERA_WSEQ_BUSY_WIDTH 1 +#define MADERA_WSEQ_CURRENT_INDEX_MASK 0x01FF +#define MADERA_WSEQ_CURRENT_INDEX_SHIFT 0 +#define MADERA_WSEQ_CURRENT_INDEX_WIDTH 9
+/* (0x0018) Write_Sequencer_Ctrl_2 */ +#define MADERA_LOAD_DEFAULTS 0x0002 +#define MADERA_LOAD_DEFAULTS_MASK 0x0002 +#define MADERA_LOAD_DEFAULTS_SHIFT 1 +#define MADERA_LOAD_DEFAULTS_WIDTH 1 +#define MADERA_WSEQ_LOAD_MEM 0x0001 +#define MADERA_WSEQ_LOAD_MEM_MASK 0x0001 +#define MADERA_WSEQ_LOAD_MEM_SHIFT 0 +#define MADERA_WSEQ_LOAD_MEM_WIDTH 1
+/* (0x0020) Tone_Generator_1 */ +#define MADERA_TONE_RATE_MASK 0xF800 +#define MADERA_TONE_RATE_SHIFT 11 +#define MADERA_TONE_RATE_WIDTH 5 +#define MADERA_TONE_OFFSET_MASK 0x0300 +#define MADERA_TONE_OFFSET_SHIFT 8 +#define MADERA_TONE_OFFSET_WIDTH 2 +#define MADERA_TONE2_OVD 0x0020 +#define MADERA_TONE2_OVD_MASK 0x0020 +#define MADERA_TONE2_OVD_SHIFT 5 +#define MADERA_TONE2_OVD_WIDTH 1 +#define MADERA_TONE1_OVD 0x0010 +#define MADERA_TONE1_OVD_MASK 0x0010 +#define MADERA_TONE1_OVD_SHIFT 4 +#define MADERA_TONE1_OVD_WIDTH 1 +#define MADERA_TONE2_ENA 0x0002 +#define MADERA_TONE2_ENA_MASK 0x0002 +#define MADERA_TONE2_ENA_SHIFT 1 +#define MADERA_TONE2_ENA_WIDTH 1 +#define MADERA_TONE1_ENA 0x0001 +#define MADERA_TONE1_ENA_MASK 0x0001 +#define MADERA_TONE1_ENA_SHIFT 0 +#define MADERA_TONE1_ENA_WIDTH 1
+/* (0x0021) Tone_Generator_2 */ +#define MADERA_TONE1_LVL_0_MASK 0xFFFF +#define MADERA_TONE1_LVL_0_SHIFT 0 +#define MADERA_TONE1_LVL_0_WIDTH 16
+/* (0x0022) Tone_Generator_3 */ +#define MADERA_TONE1_LVL_MASK 0x00FF +#define MADERA_TONE1_LVL_SHIFT 0 +#define MADERA_TONE1_LVL_WIDTH 8
+/* (0x0023) Tone_Generator_4 */ +#define MADERA_TONE2_LVL_0_MASK 0xFFFF +#define MADERA_TONE2_LVL_0_SHIFT 0 +#define MADERA_TONE2_LVL_0_WIDTH 16
+/* (0x0024) Tone_Generator_5 */ +#define MADERA_TONE2_LVL_MASK 0x00FF +#define MADERA_TONE2_LVL_SHIFT 0 +#define MADERA_TONE2_LVL_WIDTH 8
+/* (0x0030) PWM_Drive_1 */ +#define MADERA_PWM_RATE_MASK 0xF800 +#define MADERA_PWM_RATE_SHIFT 11 +#define MADERA_PWM_RATE_WIDTH 5 +#define MADERA_PWM_CLK_SEL_MASK 0x0700 +#define MADERA_PWM_CLK_SEL_SHIFT 8 +#define MADERA_PWM_CLK_SEL_WIDTH 3 +#define MADERA_PWM2_OVD 0x0020 +#define MADERA_PWM2_OVD_MASK 0x0020 +#define MADERA_PWM2_OVD_SHIFT 5 +#define MADERA_PWM2_OVD_WIDTH 1 +#define MADERA_PWM1_OVD 0x0010 +#define MADERA_PWM1_OVD_MASK 0x0010 +#define MADERA_PWM1_OVD_SHIFT 4 +#define MADERA_PWM1_OVD_WIDTH 1 +#define MADERA_PWM2_ENA 0x0002 +#define MADERA_PWM2_ENA_MASK 0x0002 +#define MADERA_PWM2_ENA_SHIFT 1 +#define MADERA_PWM2_ENA_WIDTH 1 +#define MADERA_PWM1_ENA 0x0001 +#define MADERA_PWM1_ENA_MASK 0x0001 +#define MADERA_PWM1_ENA_SHIFT 0 +#define MADERA_PWM1_ENA_WIDTH 1
+/* (0x0031) PWM_Drive_2 */ +#define MADERA_PWM1_LVL_MASK 0x03FF +#define MADERA_PWM1_LVL_SHIFT 0 +#define MADERA_PWM1_LVL_WIDTH 10
+/* (0x0032) PWM_Drive_3 */ +#define MADERA_PWM2_LVL_MASK 0x03FF +#define MADERA_PWM2_LVL_SHIFT 0 +#define MADERA_PWM2_LVL_WIDTH 10
+/* (0x0041) Sequence_control */ +#define MADERA_WSEQ_ENA_MICD_CLAMP_FALL 0x0080 +#define MADERA_WSEQ_ENA_MICD_CLAMP_FALL_MASK 0x0080 +#define MADERA_WSEQ_ENA_MICD_CLAMP_FALL_SHIFT 7 +#define MADERA_WSEQ_ENA_MICD_CLAMP_FALL_WIDTH 1 +#define MADERA_WSEQ_ENA_MICD_CLAMP_RISE 0x0040 +#define MADERA_WSEQ_ENA_MICD_CLAMP_RISE_MASK 0x0040 +#define MADERA_WSEQ_ENA_MICD_CLAMP_RISE_SHIFT 6 +#define MADERA_WSEQ_ENA_MICD_CLAMP_RISE_WIDTH 1
+/* (0x0090) Haptics_Control_1 */ +#define MADERA_HAP_RATE_MASK 0xF800 +#define MADERA_HAP_RATE_SHIFT 11 +#define MADERA_HAP_RATE_WIDTH 5 +#define MADERA_ONESHOT_TRIG 0x0010 +#define MADERA_ONESHOT_TRIG_MASK 0x0010 +#define MADERA_ONESHOT_TRIG_SHIFT 4 +#define MADERA_ONESHOT_TRIG_WIDTH 1 +#define MADERA_HAP_CTRL_MASK 0x000C +#define MADERA_HAP_CTRL_SHIFT 2 +#define MADERA_HAP_CTRL_WIDTH 2 +#define MADERA_HAP_ACT 0x0002 +#define MADERA_HAP_ACT_MASK 0x0002 +#define MADERA_HAP_ACT_SHIFT 1 +#define MADERA_HAP_ACT_WIDTH 1
+/* (0x0091) Haptics_Control_2 */ +#define MADERA_LRA_FREQ_MASK 0x7FFF +#define MADERA_LRA_FREQ_SHIFT 0 +#define MADERA_LRA_FREQ_WIDTH 15
+/* (0x0092) Haptics_phase_1_intensity */ +#define MADERA_PHASE1_INTENSITY_MASK 0x00FF +#define MADERA_PHASE1_INTENSITY_SHIFT 0 +#define MADERA_PHASE1_INTENSITY_WIDTH 8
+/* (0x0093) Haptics_phase_1_duration */ +#define MADERA_PHASE1_DURATION_MASK 0x01FF +#define MADERA_PHASE1_DURATION_SHIFT 0 +#define MADERA_PHASE1_DURATION_WIDTH 9
+/* (0x0094) Haptics_phase_2_intensity */ +#define MADERA_PHASE2_INTENSITY_MASK 0x00FF +#define MADERA_PHASE2_INTENSITY_SHIFT 0 +#define MADERA_PHASE2_INTENSITY_WIDTH 8
+/* (0x0095) Haptics_phase_2_duration */ +#define MADERA_PHASE2_DURATION_MASK 0x07FF +#define MADERA_PHASE2_DURATION_SHIFT 0 +#define MADERA_PHASE2_DURATION_WIDTH 11
+/* (0x0096) Haptics_phase_3_intensity */ +#define MADERA_PHASE3_INTENSITY_MASK 0x00FF +#define MADERA_PHASE3_INTENSITY_SHIFT 0 +#define MADERA_PHASE3_INTENSITY_WIDTH 8
+/* (0x0097) Haptics_phase_3_duration */ +#define MADERA_PHASE3_DURATION_MASK 0x01FF +#define MADERA_PHASE3_DURATION_SHIFT 0 +#define MADERA_PHASE3_DURATION_WIDTH 9
+/* (0x0098) Haptics_Status */ +#define MADERA_ONESHOT_STS 0x0001 +#define MADERA_ONESHOT_STS_MASK 0x0001 +#define MADERA_ONESHOT_STS_SHIFT 0 +#define MADERA_ONESHOT_STS_WIDTH 1
+/* (0x00A0) Comfort_Noise_Generator */ +#define MADERA_NOISE_GEN_ENA 0x0020 +#define MADERA_NOISE_GEN_ENA_MASK 0x0020 +#define MADERA_NOISE_GEN_ENA_SHIFT 5 +#define MADERA_NOISE_GEN_ENA_WIDTH 1 +#define MADERA_NOISE_GEN_GAIN_MASK 0x001F +#define MADERA_NOISE_GEN_GAIN_SHIFT 0 +#define MADERA_NOISE_GEN_GAIN_WIDTH 5
+/* (0x0100) Clock_32k_1 */ +#define MADERA_CLK_32K_ENA 0x0040 +#define MADERA_CLK_32K_ENA_MASK 0x0040 +#define MADERA_CLK_32K_ENA_SHIFT 6 +#define MADERA_CLK_32K_ENA_WIDTH 1 +#define MADERA_CLK_32K_SRC_MASK 0x0003 +#define MADERA_CLK_32K_SRC_SHIFT 0 +#define MADERA_CLK_32K_SRC_WIDTH 2
+/* (0x0101) System_Clock_1 */ +#define MADERA_SYSCLK_FRAC 0x8000 +#define MADERA_SYSCLK_FRAC_MASK 0x8000 +#define MADERA_SYSCLK_FRAC_SHIFT 15 +#define MADERA_SYSCLK_FRAC_WIDTH 1 +#define MADERA_SYSCLK_FREQ_MASK 0x0700 +#define MADERA_SYSCLK_FREQ_SHIFT 8 +#define MADERA_SYSCLK_FREQ_WIDTH 3 +#define MADERA_SYSCLK_ENA 0x0040 +#define MADERA_SYSCLK_ENA_MASK 0x0040 +#define MADERA_SYSCLK_ENA_SHIFT 6 +#define MADERA_SYSCLK_ENA_WIDTH 1 +#define MADERA_SYSCLK_SRC_MASK 0x000F +#define MADERA_SYSCLK_SRC_SHIFT 0 +#define MADERA_SYSCLK_SRC_WIDTH 4
+/* (0x0102) Sample_rate_1 */ +#define MADERA_SAMPLE_RATE_1_MASK 0x001F +#define MADERA_SAMPLE_RATE_1_SHIFT 0 +#define MADERA_SAMPLE_RATE_1_WIDTH 5
+/* (0x0103) Sample_rate_2 */ +#define MADERA_SAMPLE_RATE_2_MASK 0x001F +#define MADERA_SAMPLE_RATE_2_SHIFT 0 +#define MADERA_SAMPLE_RATE_2_WIDTH 5
+/* (0x0104) Sample_rate_3 */ +#define MADERA_SAMPLE_RATE_3_MASK 0x001F +#define MADERA_SAMPLE_RATE_3_SHIFT 0 +#define MADERA_SAMPLE_RATE_3_WIDTH 5
+/* (0x010A) Sample_rate_1_status */ +#define MADERA_SAMPLE_RATE_1_STS_MASK 0x001F +#define MADERA_SAMPLE_RATE_1_STS_SHIFT 0 +#define MADERA_SAMPLE_RATE_1_STS_WIDTH 5
+/* (0x010B) Sample_rate_2_status */ +#define MADERA_SAMPLE_RATE_2_STS_MASK 0x001F +#define MADERA_SAMPLE_RATE_2_STS_SHIFT 0 +#define MADERA_SAMPLE_RATE_2_STS_WIDTH 5
+/* (0x010C) Sample_rate_3_status */ +#define MADERA_SAMPLE_RATE_3_STS_MASK 0x001F +#define MADERA_SAMPLE_RATE_3_STS_SHIFT 0 +#define MADERA_SAMPLE_RATE_3_STS_WIDTH 5
+/* (0x0112) Async_clock_1 */ +#define MADERA_ASYNC_CLK_FREQ_MASK 0x0700 +#define MADERA_ASYNC_CLK_FREQ_SHIFT 8 +#define MADERA_ASYNC_CLK_FREQ_WIDTH 3 +#define MADERA_ASYNC_CLK_ENA 0x0040 +#define MADERA_ASYNC_CLK_ENA_MASK 0x0040 +#define MADERA_ASYNC_CLK_ENA_SHIFT 6 +#define MADERA_ASYNC_CLK_ENA_WIDTH 1 +#define MADERA_ASYNC_CLK_SRC_MASK 0x000F +#define MADERA_ASYNC_CLK_SRC_SHIFT 0 +#define MADERA_ASYNC_CLK_SRC_WIDTH 4
+/* (0x0113) Async_sample_rate_1 */ +#define MADERA_ASYNC_SAMPLE_RATE_1_MASK 0x001F +#define MADERA_ASYNC_SAMPLE_RATE_1_SHIFT 0 +#define MADERA_ASYNC_SAMPLE_RATE_1_WIDTH 5
+/* (0x0114) Async_sample_rate_2 */ +#define MADERA_ASYNC_SAMPLE_RATE_2_MASK 0x001F +#define MADERA_ASYNC_SAMPLE_RATE_2_SHIFT 0 +#define MADERA_ASYNC_SAMPLE_RATE_2_WIDTH 5
+/* (0x011B) Async_sample_rate_1_status */ +#define MADERA_ASYNC_SAMPLE_RATE_1_STS_MASK 0x001F +#define MADERA_ASYNC_SAMPLE_RATE_1_STS_SHIFT 0 +#define MADERA_ASYNC_SAMPLE_RATE_1_STS_WIDTH 5
+/* (0x011C) Async_sample_rate_2_status */ +#define MADERA_ASYNC_SAMPLE_RATE_2_STS_MASK 0x001F +#define MADERA_ASYNC_SAMPLE_RATE_2_STS_SHIFT 0 +#define MADERA_ASYNC_SAMPLE_RATE_2_STS_WIDTH 5
+/* (0x0120) DSP_Clock_1 */ +#define MADERA_DSP_CLK_FREQ_LEGACY 0x0700 +#define MADERA_DSP_CLK_FREQ_LEGACY_MASK 0x0700 +#define MADERA_DSP_CLK_FREQ_LEGACY_SHIFT 8 +#define MADERA_DSP_CLK_FREQ_LEGACY_WIDTH 3 +#define MADERA_DSP_CLK_ENA 0x0040 +#define MADERA_DSP_CLK_ENA_MASK 0x0040 +#define MADERA_DSP_CLK_ENA_SHIFT 6 +#define MADERA_DSP_CLK_ENA_WIDTH 1 +#define MADERA_DSP_CLK_SRC 0x000F +#define MADERA_DSP_CLK_SRC_MASK 0x000F +#define MADERA_DSP_CLK_SRC_SHIFT 0 +#define MADERA_DSP_CLK_SRC_WIDTH 4
+/* (0x0122) DSP_Clock_2 */ +#define MADERA_DSP_CLK_FREQ_MASK 0x03FF +#define MADERA_DSP_CLK_FREQ_SHIFT 0 +#define MADERA_DSP_CLK_FREQ_WIDTH 10
+/* (0x0149) Output_system_clock */ +#define MADERA_OPCLK_ENA 0x8000 +#define MADERA_OPCLK_ENA_MASK 0x8000 +#define MADERA_OPCLK_ENA_SHIFT 15 +#define MADERA_OPCLK_ENA_WIDTH 1 +#define MADERA_OPCLK_DIV_MASK 0x00F8 +#define MADERA_OPCLK_DIV_SHIFT 3 +#define MADERA_OPCLK_DIV_WIDTH 5 +#define MADERA_OPCLK_SEL_MASK 0x0007 +#define MADERA_OPCLK_SEL_SHIFT 0 +#define MADERA_OPCLK_SEL_WIDTH 3
+/* (0x014A) Output_async_clock */ +#define MADERA_OPCLK_ASYNC_ENA 0x8000 +#define MADERA_OPCLK_ASYNC_ENA_MASK 0x8000 +#define MADERA_OPCLK_ASYNC_ENA_SHIFT 15 +#define MADERA_OPCLK_ASYNC_ENA_WIDTH 1 +#define MADERA_OPCLK_ASYNC_DIV_MASK 0x00F8 +#define MADERA_OPCLK_ASYNC_DIV_SHIFT 3 +#define MADERA_OPCLK_ASYNC_DIV_WIDTH 5 +#define MADERA_OPCLK_ASYNC_SEL_MASK 0x0007 +#define MADERA_OPCLK_ASYNC_SEL_SHIFT 0 +#define MADERA_OPCLK_ASYNC_SEL_WIDTH 3
+/* (0x0152) Rate_Estimator_1 */ +#define MADERA_TRIG_ON_STARTUP 0x0010 +#define MADERA_TRIG_ON_STARTUP_MASK 0x0010 +#define MADERA_TRIG_ON_STARTUP_SHIFT 4 +#define MADERA_TRIG_ON_STARTUP_WIDTH 1 +#define MADERA_LRCLK_SRC_MASK 0x000E +#define MADERA_LRCLK_SRC_SHIFT 1 +#define MADERA_LRCLK_SRC_WIDTH 3 +#define MADERA_RATE_EST_ENA 0x0001 +#define MADERA_RATE_EST_ENA_MASK 0x0001 +#define MADERA_RATE_EST_ENA_SHIFT 0 +#define MADERA_RATE_EST_ENA_WIDTH 1
+/* (0x0153) Rate_Estimator_2 */ +#define MADERA_SAMPLE_RATE_DETECT_A_MASK 0x001F +#define MADERA_SAMPLE_RATE_DETECT_A_SHIFT 0 +#define MADERA_SAMPLE_RATE_DETECT_A_WIDTH 5
+/* (0x0154) Rate_Estimator_3 */ +#define MADERA_SAMPLE_RATE_DETECT_B_MASK 0x001F +#define MADERA_SAMPLE_RATE_DETECT_B_SHIFT 0 +#define MADERA_SAMPLE_RATE_DETECT_B_WIDTH 5
+/* (0x0155) Rate_Estimator_4 */ +#define MADERA_SAMPLE_RATE_DETECT_C_MASK 0x001F +#define MADERA_SAMPLE_RATE_DETECT_C_SHIFT 0 +#define MADERA_SAMPLE_RATE_DETECT_C_WIDTH 5
+/* (0x0156) Rate_Estimator_5 */ +#define MADERA_SAMPLE_RATE_DETECT_D_MASK 0x001F +#define MADERA_SAMPLE_RATE_DETECT_D_SHIFT 0 +#define MADERA_SAMPLE_RATE_DETECT_D_WIDTH 5
+/* (0x0171) FLL1_Control_1 */ +#define MADERA_FLL1_FREERUN 0x0002 +#define MADERA_FLL1_FREERUN_MASK 0x0002 +#define MADERA_FLL1_FREERUN_SHIFT 1 +#define MADERA_FLL1_FREERUN_WIDTH 1 +#define MADERA_FLL1_ENA 0x0001 +#define MADERA_FLL1_ENA_MASK 0x0001 +#define MADERA_FLL1_ENA_SHIFT 0 +#define MADERA_FLL1_ENA_WIDTH 1
+/* (0x0172) FLL1_Control_2 */ +#define MADERA_FLL1_CTRL_UPD 0x8000 +#define MADERA_FLL1_CTRL_UPD_MASK 0x8000 +#define MADERA_FLL1_CTRL_UPD_SHIFT 15 +#define MADERA_FLL1_CTRL_UPD_WIDTH 1 +#define MADERA_FLL1_N_MASK 0x03FF +#define MADERA_FLL1_N_SHIFT 0 +#define MADERA_FLL1_N_WIDTH 10
+/* (0x0173) FLL1_Control_3 */ +#define MADERA_FLL1_THETA_MASK 0xFFFF +#define MADERA_FLL1_THETA_SHIFT 0 +#define MADERA_FLL1_THETA_WIDTH 16
+/* (0x0174) FLL1_Control_4 */ +#define MADERA_FLL1_LAMBDA_MASK 0xFFFF +#define MADERA_FLL1_LAMBDA_SHIFT 0 +#define MADERA_FLL1_LAMBDA_WIDTH 16
+/* (0x0175) FLL1_Control_5 */ +#define MADERA_FLL1_FRATIO_MASK 0x0F00 +#define MADERA_FLL1_FRATIO_SHIFT 8 +#define MADERA_FLL1_FRATIO_WIDTH 4
+/* (0x0176) FLL1_Control_6 */ +#define MADERA_FLL1_REFCLK_DIV_MASK 0x00C0 +#define MADERA_FLL1_REFCLK_DIV_SHIFT 6 +#define MADERA_FLL1_REFCLK_DIV_WIDTH 2 +#define MADERA_FLL1_REFCLK_SRC_MASK 0x000F +#define MADERA_FLL1_REFCLK_SRC_SHIFT 0 +#define MADERA_FLL1_REFCLK_SRC_WIDTH 4
+/* (0x0177) FLL1_Loop_Filter_Test_1 */ +#define MADERA_FLL1_FRC_INTEG_UPD 0x8000 +#define MADERA_FLL1_FRC_INTEG_UPD_MASK 0x8000 +#define MADERA_FLL1_FRC_INTEG_UPD_SHIFT 15 +#define MADERA_FLL1_FRC_INTEG_UPD_WIDTH 1 +#define MADERA_FLL1_FRC_INTEG_VAL_MASK 0x0FFF +#define MADERA_FLL1_FRC_INTEG_VAL_SHIFT 0 +#define MADERA_FLL1_FRC_INTEG_VAL_WIDTH 12
+/* (0x0179) FLL1_Control_7 */ +#define MADERA_FLL1_GAIN_MASK 0x003c +#define MADERA_FLL1_GAIN_SHIFT 2 +#define MADERA_FLL1_GAIN_WIDTH 4
+/* (0x017A) FLL1_EFS_2 */ +#define MADERA_FLL1_PHASE_GAIN_MASK 0xF000 +#define MADERA_FLL1_PHASE_GAIN_SHIFT 12 +#define MADERA_FLL1_PHASE_GAIN_WIDTH 4 +#define MADERA_FLL1_PHASE_ENA_MASK 0x0800 +#define MADERA_FLL1_PHASE_ENA_SHIFT 11 +#define MADERA_FLL1_PHASE_ENA_WIDTH 1
+/* (0x0181) FLL1_Synchroniser_1 */ +#define MADERA_FLL1_SYNC_ENA 0x0001 +#define MADERA_FLL1_SYNC_ENA_MASK 0x0001 +#define MADERA_FLL1_SYNC_ENA_SHIFT 0 +#define MADERA_FLL1_SYNC_ENA_WIDTH 1
+/* (0x0182) FLL1_Synchroniser_2 */ +#define MADERA_FLL1_SYNC_N_MASK 0x03FF +#define MADERA_FLL1_SYNC_N_SHIFT 0 +#define MADERA_FLL1_SYNC_N_WIDTH 10
+/* (0x0183) FLL1_Synchroniser_3 */ +#define MADERA_FLL1_SYNC_THETA_MASK 0xFFFF +#define MADERA_FLL1_SYNC_THETA_SHIFT 0 +#define MADERA_FLL1_SYNC_THETA_WIDTH 16
+/* (0x0184) FLL1_Synchroniser_4 */ +#define MADERA_FLL1_SYNC_LAMBDA_MASK 0xFFFF +#define MADERA_FLL1_SYNC_LAMBDA_SHIFT 0 +#define MADERA_FLL1_SYNC_LAMBDA_WIDTH 16
+/* (0x0185) FLL1_Synchroniser_5 */ +#define MADERA_FLL1_SYNC_FRATIO_MASK 0x0700 +#define MADERA_FLL1_SYNC_FRATIO_SHIFT 8 +#define MADERA_FLL1_SYNC_FRATIO_WIDTH 3
+/* (0x0186) FLL1_Synchroniser_6 */ +#define MADERA_FLL1_SYNCCLK_DIV_MASK 0x00C0 +#define MADERA_FLL1_SYNCCLK_DIV_SHIFT 6 +#define MADERA_FLL1_SYNCCLK_DIV_WIDTH 2 +#define MADERA_FLL1_SYNCCLK_SRC_MASK 0x000F +#define MADERA_FLL1_SYNCCLK_SRC_SHIFT 0 +#define MADERA_FLL1_SYNCCLK_SRC_WIDTH 4
+/* (0x0187) FLL1_Synchroniser_7 */ +#define MADERA_FLL1_SYNC_GAIN_MASK 0x003c +#define MADERA_FLL1_SYNC_GAIN_SHIFT 2 +#define MADERA_FLL1_SYNC_GAIN_WIDTH 4 +#define MADERA_FLL1_SYNC_DFSAT 0x0001 +#define MADERA_FLL1_SYNC_DFSAT_MASK 0x0001 +#define MADERA_FLL1_SYNC_DFSAT_SHIFT 0 +#define MADERA_FLL1_SYNC_DFSAT_WIDTH 1
+/* (0x0189) FLL1_Spread_Spectrum */ +#define MADERA_FLL1_SS_AMPL_MASK 0x0030 +#define MADERA_FLL1_SS_AMPL_SHIFT 4 +#define MADERA_FLL1_SS_AMPL_WIDTH 2 +#define MADERA_FLL1_SS_FREQ_MASK 0x000C +#define MADERA_FLL1_SS_FREQ_SHIFT 2 +#define MADERA_FLL1_SS_FREQ_WIDTH 2 +#define MADERA_FLL1_SS_SEL_MASK 0x0003 +#define MADERA_FLL1_SS_SEL_SHIFT 0 +#define MADERA_FLL1_SS_SEL_WIDTH 2
+/* (0x018A) FLL1_GPIO_Clock */ +#define MADERA_FLL1_GPCLK_DIV_MASK 0x00FE +#define MADERA_FLL1_GPCLK_DIV_SHIFT 1 +#define MADERA_FLL1_GPCLK_DIV_WIDTH 7 +#define MADERA_FLL1_GPCLK_ENA 0x0001 +#define MADERA_FLL1_GPCLK_ENA_MASK 0x0001 +#define MADERA_FLL1_GPCLK_ENA_SHIFT 0 +#define MADERA_FLL1_GPCLK_ENA_WIDTH 1
+/* (0x0191) FLL2_Control_1 */ +#define MADERA_FLL2_FREERUN 0x0002 +#define MADERA_FLL2_FREERUN_MASK 0x0002 +#define MADERA_FLL2_FREERUN_SHIFT 1 +#define MADERA_FLL2_FREERUN_WIDTH 1 +#define MADERA_FLL2_ENA 0x0001 +#define MADERA_FLL2_ENA_MASK 0x0001 +#define MADERA_FLL2_ENA_SHIFT 0 +#define MADERA_FLL2_ENA_WIDTH 1
+/* (0x0192) FLL2_Control_2 */ +#define MADERA_FLL2_CTRL_UPD 0x8000 +#define MADERA_FLL2_CTRL_UPD_MASK 0x8000 +#define MADERA_FLL2_CTRL_UPD_SHIFT 15 +#define MADERA_FLL2_CTRL_UPD_WIDTH 1 +#define MADERA_FLL2_N_MASK 0x03FF +#define MADERA_FLL2_N_SHIFT 0 +#define MADERA_FLL2_N_WIDTH 10
+/* (0x0193) FLL2_Control_3 */ +#define MADERA_FLL2_THETA_MASK 0xFFFF +#define MADERA_FLL2_THETA_SHIFT 0 +#define MADERA_FLL2_THETA_WIDTH 16
+/* (0x0194) FLL2_Control_4 */ +#define MADERA_FLL2_LAMBDA_MASK 0xFFFF +#define MADERA_FLL2_LAMBDA_SHIFT 0 +#define MADERA_FLL2_LAMBDA_WIDTH 16
+/* (0x0195) FLL2_Control_5 */ +#define MADERA_FLL2_FRATIO_MASK 0x0700 +#define MADERA_FLL2_FRATIO_SHIFT 8 +#define MADERA_FLL2_FRATIO_WIDTH 3
+/* (0x0196) FLL2_Control_6 */ +#define MADERA_FLL2_REFCLK_DIV_MASK 0x00C0 +#define MADERA_FLL2_REFCLK_DIV_SHIFT 6 +#define MADERA_FLL2_REFCLK_DIV_WIDTH 2 +#define MADERA_FLL2_REFCLK_SRC_MASK 0x000F +#define MADERA_FLL2_REFCLK_SRC_SHIFT 0 +#define MADERA_FLL2_REFCLK_SRC_WIDTH 4
+/* (0x0197) FLL2_Loop_Filter_Test_1 */ +#define MADERA_FLL2_FRC_INTEG_UPD 0x8000 +#define MADERA_FLL2_FRC_INTEG_UPD_MASK 0x8000 +#define MADERA_FLL2_FRC_INTEG_UPD_SHIFT 15 +#define MADERA_FLL2_FRC_INTEG_UPD_WIDTH 1 +#define MADERA_FLL2_FRC_INTEG_VAL_MASK 0x0FFF +#define MADERA_FLL2_FRC_INTEG_VAL_SHIFT 0 +#define MADERA_FLL2_FRC_INTEG_VAL_WIDTH 12
+/* (0x0199) FLL2_Control_7 */ +#define MADERA_FLL2_GAIN_MASK 0x003c +#define MADERA_FLL2_GAIN_SHIFT 2 +#define MADERA_FLL2_GAIN_WIDTH 4
+/* (0x019A) FLL2_EFS_2 */ +#define MADERA_FLL2_PHASE_GAIN_MASK 0xF000 +#define MADERA_FLL2_PHASE_GAIN_SHIFT 12 +#define MADERA_FLL2_PHASE_GAIN_WIDTH 4 +#define MADERA_FLL2_PHASE_ENA_MASK 0x0800 +#define MADERA_FLL2_PHASE_ENA_SHIFT 11 +#define MADERA_FLL2_PHASE_ENA_WIDTH 1
+/* (0x01A1) FLL2_Synchroniser_1 */ +#define MADERA_FLL2_SYNC_ENA 0x0001 +#define MADERA_FLL2_SYNC_ENA_MASK 0x0001 +#define MADERA_FLL2_SYNC_ENA_SHIFT 0 +#define MADERA_FLL2_SYNC_ENA_WIDTH 1
+/* (0x01A2) FLL2_Synchroniser_2 */ +#define MADERA_FLL2_SYNC_N_MASK 0x03FF +#define MADERA_FLL2_SYNC_N_SHIFT 0 +#define MADERA_FLL2_SYNC_N_WIDTH 10
+/* (0x01A3) FLL2_Synchroniser_3 */ +#define MADERA_FLL2_SYNC_THETA_MASK 0xFFFF +#define MADERA_FLL2_SYNC_THETA_SHIFT 0 +#define MADERA_FLL2_SYNC_THETA_WIDTH 16
+/* (0x01A4) FLL2_Synchroniser_4 */ +#define MADERA_FLL2_SYNC_LAMBDA_MASK 0xFFFF +#define MADERA_FLL2_SYNC_LAMBDA_SHIFT 0 +#define MADERA_FLL2_SYNC_LAMBDA_WIDTH 16
+/* (0x01A5) FLL2_Synchroniser_5 */ +#define MADERA_FLL2_SYNC_FRATIO_MASK 0x0700 +#define MADERA_FLL2_SYNC_FRATIO_SHIFT 8 +#define MADERA_FLL2_SYNC_FRATIO_WIDTH 3
+/* (0x01A6) FLL2_Synchroniser_6 */ +#define MADERA_FLL2_SYNCCLK_DIV_MASK 0x00C0 +#define MADERA_FLL2_SYNCCLK_DIV_SHIFT 6 +#define MADERA_FLL2_SYNCCLK_DIV_WIDTH 2 +#define MADERA_FLL2_SYNCCLK_SRC_MASK 0x000F +#define MADERA_FLL2_SYNCCLK_SRC_SHIFT 0 +#define MADERA_FLL2_SYNCCLK_SRC_WIDTH 4
+/* (0x01A7) FLL2_Synchroniser_7 */ +#define MADERA_FLL2_SYNC_GAIN_MASK 0x003c +#define MADERA_FLL2_SYNC_GAIN_SHIFT 2 +#define MADERA_FLL2_SYNC_GAIN_WIDTH 4 +#define MADERA_FLL2_SYNC_DFSAT 0x0001 +#define MADERA_FLL2_SYNC_DFSAT_MASK 0x0001 +#define MADERA_FLL2_SYNC_DFSAT_SHIFT 0 +#define MADERA_FLL2_SYNC_DFSAT_WIDTH 1
+/* (0x01A9) FLL2_Spread_Spectrum */ +#define MADERA_FLL2_SS_AMPL_MASK 0x0030 +#define MADERA_FLL2_SS_AMPL_SHIFT 4 +#define MADERA_FLL2_SS_AMPL_WIDTH 2 +#define MADERA_FLL2_SS_FREQ_MASK 0x000C +#define MADERA_FLL2_SS_FREQ_SHIFT 2 +#define MADERA_FLL2_SS_FREQ_WIDTH 2 +#define MADERA_FLL2_SS_SEL_MASK 0x0003 +#define MADERA_FLL2_SS_SEL_SHIFT 0 +#define MADERA_FLL2_SS_SEL_WIDTH 2
+/* (0x01AA) FLL2_GPIO_Clock */ +#define MADERA_FLL2_GPCLK_DIV_MASK 0x00FE +#define MADERA_FLL2_GPCLK_DIV_SHIFT 1 +#define MADERA_FLL2_GPCLK_DIV_WIDTH 7 +#define MADERA_FLL2_GPCLK_ENA 0x0001 +#define MADERA_FLL2_GPCLK_ENA_MASK 0x0001 +#define MADERA_FLL2_GPCLK_ENA_SHIFT 0 +#define MADERA_FLL2_GPCLK_ENA_WIDTH 1
+/* (0x01B1) FLL3_Control_1 */ +#define MADERA_FLL3_FREERUN 0x0002 +#define MADERA_FLL3_FREERUN_MASK 0x0002 +#define MADERA_FLL3_FREERUN_SHIFT 1 +#define MADERA_FLL3_FREERUN_WIDTH 1 +#define MADERA_FLL3_ENA 0x0001 +#define MADERA_FLL3_ENA_MASK 0x0001 +#define MADERA_FLL3_ENA_SHIFT 0 +#define MADERA_FLL3_ENA_WIDTH 1
+/* (0x01B2) FLL3_Control_2 */ +#define MADERA_FLL3_CTRL_UPD 0x8000 +#define MADERA_FLL3_CTRL_UPD_MASK 0x8000 +#define MADERA_FLL3_CTRL_UPD_SHIFT 15 +#define MADERA_FLL3_CTRL_UPD_WIDTH 1 +#define MADERA_FLL3_N_MASK 0x03FF +#define MADERA_FLL3_N_SHIFT 0 +#define MADERA_FLL3_N_WIDTH 10
+/* (0x01B3) FLL3_Control_3 */ +#define MADERA_FLL3_THETA_MASK 0xFFFF +#define MADERA_FLL3_THETA_SHIFT 0 +#define MADERA_FLL3_THETA_WIDTH 16
+/* (0x01B4) FLL3_Control_4 */ +#define MADERA_FLL3_LAMBDA_MASK 0xFFFF +#define MADERA_FLL3_LAMBDA_SHIFT 0 +#define MADERA_FLL3_LAMBDA_WIDTH 16
+/* (0x01B5) FLL3_Control_5 */ +#define MADERA_FLL3_FRATIO_MASK 0x0700 +#define MADERA_FLL3_FRATIO_SHIFT 8 +#define MADERA_FLL3_FRATIO_WIDTH 3
+/* (0x01B6) FLL3_Control_6 */ +#define MADERA_FLL3_REFCLK_DIV_MASK 0x00C0 +#define MADERA_FLL3_REFCLK_DIV_SHIFT 6 +#define MADERA_FLL3_REFCLK_DIV_WIDTH 2 +#define MADERA_FLL3_REFCLK_SRC_MASK 0x000F +#define MADERA_FLL3_REFCLK_SRC_SHIFT 0 +#define MADERA_FLL3_REFCLK_SRC_WIDTH 4
+/* (0x01B7) FLL3_Loop_Filter_Test_1 */ +#define MADERA_FLL3_FRC_INTEG_UPD 0x8000 +#define MADERA_FLL3_FRC_INTEG_UPD_MASK 0x8000 +#define MADERA_FLL3_FRC_INTEG_UPD_SHIFT 15 +#define MADERA_FLL3_FRC_INTEG_UPD_WIDTH 1 +#define MADERA_FLL3_FRC_INTEG_VAL_MASK 0x0FFF +#define MADERA_FLL3_FRC_INTEG_VAL_SHIFT 0 +#define MADERA_FLL3_FRC_INTEG_VAL_WIDTH 12
+/* (0x01B9) FLL3_Control_7 */ +#define MADERA_FLL3_GAIN_MASK 0x003c +#define MADERA_FLL3_GAIN_SHIFT 2 +#define MADERA_FLL3_GAIN_WIDTH 4
+/* (0x01C1) FLL3_Synchroniser_1 */ +#define MADERA_FLL3_SYNC_ENA 0x0001 +#define MADERA_FLL3_SYNC_ENA_MASK 0x0001 +#define MADERA_FLL3_SYNC_ENA_SHIFT 0 +#define MADERA_FLL3_SYNC_ENA_WIDTH 1
+/* (0x01C2) FLL3_Synchroniser_2 */ +#define MADERA_FLL3_SYNC_N_MASK 0x03FF +#define MADERA_FLL3_SYNC_N_SHIFT 0 +#define MADERA_FLL3_SYNC_N_WIDTH 10
+/* (0x01C3) FLL3_Synchroniser_3 */ +#define MADERA_FLL3_SYNC_THETA_MASK 0xFFFF +#define MADERA_FLL3_SYNC_THETA_SHIFT 0 +#define MADERA_FLL3_SYNC_THETA_WIDTH 16
+/* (0x01C4) FLL3_Synchroniser_4 */ +#define MADERA_FLL3_SYNC_LAMBDA_MASK 0xFFFF +#define MADERA_FLL3_SYNC_LAMBDA_SHIFT 0 +#define MADERA_FLL3_SYNC_LAMBDA_WIDTH 16
+/* (0x01C5) FLL3_Synchroniser_5 */ +#define MADERA_FLL3_SYNC_FRATIO_MASK 0x0700 +#define MADERA_FLL3_SYNC_FRATIO_SHIFT 8 +#define MADERA_FLL3_SYNC_FRATIO_WIDTH 3
+/* (0x01C6) FLL3_Synchroniser_6 */ +#define MADERA_FLL3_SYNCCLK_DIV_MASK 0x00C0 +#define MADERA_FLL3_SYNCCLK_DIV_SHIFT 6 +#define MADERA_FLL3_SYNCCLK_DIV_WIDTH 2 +#define MADERA_FLL3_SYNCCLK_SRC_MASK 0x000F +#define MADERA_FLL3_SYNCCLK_SRC_SHIFT 0 +#define MADERA_FLL3_SYNCCLK_SRC_WIDTH 4
+/* (0x01C7) FLL3_Synchroniser_7 */ +#define MADERA_FLL3_SYNC_GAIN_MASK 0x003c +#define MADERA_FLL3_SYNC_GAIN_SHIFT 2 +#define MADERA_FLL3_SYNC_GAIN_WIDTH 4 +#define MADERA_FLL3_SYNC_DFSAT 0x0001 +#define MADERA_FLL3_SYNC_DFSAT_MASK 0x0001 +#define MADERA_FLL3_SYNC_DFSAT_SHIFT 0 +#define MADERA_FLL3_SYNC_DFSAT_WIDTH 1
+/* (0x01C9) FLL3_Spread_Spectrum */ +#define MADERA_FLL3_SS_AMPL_MASK 0x0030 +#define MADERA_FLL3_SS_AMPL_SHIFT 4 +#define MADERA_FLL3_SS_AMPL_WIDTH 2 +#define MADERA_FLL3_SS_FREQ_MASK 0x000C +#define MADERA_FLL3_SS_FREQ_SHIFT 2 +#define MADERA_FLL3_SS_FREQ_WIDTH 2 +#define MADERA_FLL3_SS_SEL_MASK 0x0003 +#define MADERA_FLL3_SS_SEL_SHIFT 0 +#define MADERA_FLL3_SS_SEL_WIDTH 2
+/* (0x01CA) FLL3_GPIO_Clock */ +#define MADERA_FLL3_GPCLK_DIV_MASK 0x00FE +#define MADERA_FLL3_GPCLK_DIV_SHIFT 1 +#define MADERA_FLL3_GPCLK_DIV_WIDTH 7 +#define MADERA_FLL3_GPCLK_DIV_ENA 0x0001 +#define MADERA_FLL3_GPCLK_DIV_ENA_MASK 0x0001 +#define MADERA_FLL3_GPCLK_DIV_ENA_SHIFT 0 +#define MADERA_FLL3_GPCLK_DIV_ENA_WIDTH 1
+/* (0x01D1) FLL_AO_Control_1 */ +#define MADERA_FLL_AO_HOLD 0x0004 +#define MADERA_FLL_AO_HOLD_MASK 0x0004 +#define MADERA_FLL_AO_HOLD_SHIFT 2 +#define MADERA_FLL_AO_HOLD_WIDTH 1 +#define MADERA_FLL_AO_FREERUN 0x0002 +#define MADERA_FLL_AO_FREERUN_MASK 0x0002 +#define MADERA_FLL_AO_FREERUN_SHIFT 1 +#define MADERA_FLL_AO_FREERUN_WIDTH 1 +#define MADERA_FLL_AO_ENA 0x0001 +#define MADERA_FLL_AO_ENA_MASK 0x0001 +#define MADERA_FLL_AO_ENA_SHIFT 0 +#define MADERA_FLL_AO_ENA_WIDTH 1
+/* (0x01D2) FLL_AO_Control_2 */ +#define MADERA_FLL_AO_CTRL_UPD 0x8000 +#define MADERA_FLL_AO_CTRL_UPD_MASK 0x8000 +#define MADERA_FLL_AO_CTRL_UPD_SHIFT 15 +#define MADERA_FLL_AO_CTRL_UPD_WIDTH 1 +#define MADERA_FLL_AO_N_MASK 0x03FF +#define MADERA_FLL_AO_N_SHIFT 0 +#define MADERA_FLL_AO_N_WIDTH 10
+/* (0x01D3) FLL_AO_Control_3 */ +#define MADERA_FLL_AO_THETA_MASK 0x00FF +#define MADERA_FLL_AO_THETA_SHIFT 0 +#define MADERA_FLL_AO_THETA_WIDTH 8
+/* (0x01D4) FLL_AO_Control_4 */ +#define MADERA_FLL_AO_LAMBDA_MASK 0x00FF +#define MADERA_FLL_AO_LAMBDA_SHIFT 0 +#define MADERA_FLL_AO_LAMBDA_WIDTH 8
+/* (0x01D5) FLL_AO_Control_5 */ +#define MADERA_FLL_AO_FB_DIV_MASK 0x00FF +#define MADERA_FLL_AO_FB_DIV_SHIFT 0 +#define MADERA_FLL_AO_FB_DIV_WIDTH 8
+/* (0x01D6) FLL_AO_Control_6 */ +#define MADERA_FLL_AO_REFDET_ENA 0x8000 +#define MADERA_FLL_AO_REFDET_ENA_MASK 0x8000 +#define MADERA_FLL_AO_REFDET_ENA_SHIFT 15 +#define MADERA_FLL_AO_REFDET_ENA_WIDTH 1 +#define MADERA_FLL_AO_REFCLK_DIV_MASK 0x00C0 +#define MADERA_FLL_AO_REFCLK_DIV_SHIFT 6 +#define MADERA_FLL_AO_REFCLK_DIV_WIDTH 2 +#define MADERA_FLL_AO_REFCLK_SRC_MASK 0x000F +#define MADERA_FLL_AO_REFCLK_SRC_SHIFT 0 +#define MADERA_FLL_AO_REFCLK_SRC_WIDTH 4
+/* (0x01D8) FLL_AO_Control_7 */ +#define MADERA_FLL_AO_GAIN_MASK 0x000F +#define MADERA_FLL_AO_GAIN_SHIFT 0 +#define MADERA_FLL_AO_GAIN_WIDTH 4
+/* (0x01DA) FLL_AO_Control_8 */ +#define MADERA_FLL_AO_HS_DITH_TUNE_MASK 0xF000 +#define MADERA_FLL_AO_HS_DITH_TUNE_SHIFT 12 +#define MADERA_FLL_AO_HS_DITH_TUNE_WIDTH 4 +#define MADERA_FLL_AO_LS_DITH_TUNE_SHAPED_MASK 0x00F0 +#define MADERA_FLL_AO_LS_DITH_TUNE_SHAPED_SHIFT 4 +#define MADERA_FLL_AO_LS_DITH_TUNE_SHAPED_WIDTH 4 +#define MADERA_FLL_AO_LS_DITH_TUNE_NONSHAPED_MASK 0x000F +#define MADERA_FLL_AO_LS_DITH_TUNE_NONSHAPED_SHIFT 0 +#define MADERA_FLL_AO_LS_DITH_TUNE_NONSHAPED_WIDTH 4
+/* (0x01DB) FLL_AO_Control_9 */ +#define MADERA_FLL_AO_TR_RATE_MASK 0x000F +#define MADERA_FLL_AO_TR_RATE_SHIFT 0 +#define MADERA_FLL_AO_TR_RATE_WIDTH 4
+/* (0x01DC) FLL_AO_Control_10 */ +#define MADERA_FLL_AO_PHASEDET_ENA 0x1000 +#define MADERA_FLL_AO_PHASEDET_ENA_MASK 0x1000 +#define MADERA_FLL_AO_PHASEDET_ENA_SHIFT 12 +#define MADERA_FLL_AO_PHASEDET_ENA_WIDTH 1 +#define MADERA_FLL_AO_WLR_SDM_FRC_ENA 0x0800 +#define MADERA_FLL_AO_WLR_SDM_FRC_ENA_MASK 0x0800 +#define MADERA_FLL_AO_WLR_SDM_FRC_ENA_SHIFT 11 +#define MADERA_FLL_AO_WLR_SDM_FRC_ENA_WIDTH 1 +#define MADERA_FLL_AO_WLR_SDM_ENA 0x0400 +#define MADERA_FLL_AO_WLR_SDM_ENA_MASK 0x0400 +#define MADERA_FLL_AO_WLR_SDM_ENA_SHIFT 10 +#define MADERA_FLL_AO_WLR_SDM_ENA_WIDTH 1 +#define MADERA_FLL_AO_SYNC_EFS_ENA 0x0200 +#define MADERA_FLL_AO_SYNC_EFS_ENA_MASK 0x0200 +#define MADERA_FLL_AO_SYNC_EFS_ENA_SHIFT 9 +#define MADERA_FLL_AO_SYNC_EFS_ENA_WIDTH 1 +#define MADERA_FLL_AO_LS_DITH_ENA 0x0080 +#define MADERA_FLL_AO_LS_DITH_ENA_MASK 0x0080 +#define MADERA_FLL_AO_LS_DITH_ENA_SHIFT 7 +#define MADERA_FLL_AO_LS_DITH_ENA_WIDTH 1 +#define MADERA_FLL_AO_HS_DITH_ENA 0x0040 +#define MADERA_FLL_AO_HS_DITH_ENA_MASK 0x0040 +#define MADERA_FLL_AO_HS_DITH_ENA_SHIFT 6 +#define MADERA_FLL_AO_HS_DITH_ENA_WIDTH 1 +#define MADERA_FLL_AO_OSF_FRC_ENA 0x0010 +#define MADERA_FLL_AO_OSF_FRC_ENA_MASK 0x0010 +#define MADERA_FLL_AO_OSF_FRC_ENA_SHIFT 4 +#define MADERA_FLL_AO_OSF_FRC_ENA_WIDTH 1 +#define MADERA_FLL_AO_OSF_ENA 0x0008 +#define MADERA_FLL_AO_OSF_ENA_MASK 0x0008 +#define MADERA_FLL_AO_OSF_ENA_SHIFT 3 +#define MADERA_FLL_AO_OSF_ENA_WIDTH 1 +#define MADERA_FLL_AO_AUTO_DFSAT_ENA 0x0002 +#define MADERA_FLL_AO_AUTO_DFSAT_ENA_MASK 0x0002 +#define MADERA_FLL_AO_AUTO_DFSAT_ENA_SHIFT 1 +#define MADERA_FLL_AO_AUTO_DFSAT_ENA_WIDTH 1 +#define MADERA_FLL_AO_DFSAT_ENA 0x0001 +#define MADERA_FLL_AO_DFSAT_ENA_MASK 0x0001 +#define MADERA_FLL_AO_DFSAT_ENA_SHIFT 0 +#define MADERA_FLL_AO_DFSAT_ENA_WIDTH 1
+/* (0x01DD) FLL_AO_Control_11 */ +#define MADERA_FLL_AO_LOCKDET_PHASE_MASK 0x0080 +#define MADERA_FLL_AO_LOCKDET_PHASE_MASK_MASK 0x0080 +#define MADERA_FLL_AO_LOCKDET_PHASE_MASK_SHIFT 7 +#define MADERA_FLL_AO_LOCKDET_PHASE_MASK_WIDTH 1 +#define MADERA_FLL_AO_LOCKDET_THR_MASK 0x001E +#define MADERA_FLL_AO_LOCKDET_THR_SHIFT 1 +#define MADERA_FLL_AO_LOCKDET_THR_WIDTH 4 +#define MADERA_FLL_AO_LOCKDET_ENA 0x0001 +#define MADERA_FLL_AO_LOCKDET_ENA_MASK 0x0001 +#define MADERA_FLL_AO_LOCKDET_ENA_SHIFT 0 +#define MADERA_FLL_AO_LOCKDET_ENA_WIDTH 1
+/* (0x0200) Mic_Charge_Pump_1 */ +#define MADERA_CPMIC_DISCH 0x0004 +#define MADERA_CPMIC_DISCH_MASK 0x0004 +#define MADERA_CPMIC_DISCH_SHIFT 2 +#define MADERA_CPMIC_DISCH_WIDTH 1 +#define MADERA_CPMIC_BYPASS 0x0002 +#define MADERA_CPMIC_BYPASS_MASK 0x0002 +#define MADERA_CPMIC_BYPASS_SHIFT 1 +#define MADERA_CPMIC_BYPASS_WIDTH 1 +#define MADERA_CPMIC_ENA 0x0001 +#define MADERA_CPMIC_ENA_MASK 0x0001 +#define MADERA_CPMIC_ENA_SHIFT 0 +#define MADERA_CPMIC_ENA_WIDTH 1
+/* (0x0210) LDO1_Control_1 */ +#define MADERA_LDO1_VSEL_MASK 0x07E0 +#define MADERA_LDO1_VSEL_SHIFT 5 +#define MADERA_LDO1_VSEL_WIDTH 6 +#define MADERA_LDO1_FAST 0x0010 +#define MADERA_LDO1_FAST_MASK 0x0010 +#define MADERA_LDO1_FAST_SHIFT 4 +#define MADERA_LDO1_FAST_WIDTH 1 +#define MADERA_LDO1_DISCH 0x0004 +#define MADERA_LDO1_DISCH_MASK 0x0004 +#define MADERA_LDO1_DISCH_SHIFT 2 +#define MADERA_LDO1_DISCH_WIDTH 1 +#define MADERA_LDO1_BYPASS 0x0002 +#define MADERA_LDO1_BYPASS_MASK 0x0002 +#define MADERA_LDO1_BYPASS_SHIFT 1 +#define MADERA_LDO1_BYPASS_WIDTH 1 +#define MADERA_LDO1_ENA 0x0001 +#define MADERA_LDO1_ENA_MASK 0x0001 +#define MADERA_LDO1_ENA_SHIFT 0 +#define MADERA_LDO1_ENA_WIDTH 1
+/* (0x0213) LDO2_Control_1 */ +#define MADERA_LDO2_VSEL_MASK 0x07E0 +#define MADERA_LDO2_VSEL_SHIFT 5 +#define MADERA_LDO2_VSEL_WIDTH 6 +#define MADERA_LDO2_FAST 0x0010 +#define MADERA_LDO2_FAST_MASK 0x0010 +#define MADERA_LDO2_FAST_SHIFT 4 +#define MADERA_LDO2_FAST_WIDTH 1 +#define MADERA_LDO2_DISCH 0x0004 +#define MADERA_LDO2_DISCH_MASK 0x0004 +#define MADERA_LDO2_DISCH_SHIFT 2 +#define MADERA_LDO2_DISCH_WIDTH 1 +#define MADERA_LDO2_BYPASS 0x0002 +#define MADERA_LDO2_BYPASS_MASK 0x0002 +#define MADERA_LDO2_BYPASS_SHIFT 1 +#define MADERA_LDO2_BYPASS_WIDTH 1 +#define MADERA_LDO2_ENA 0x0001 +#define MADERA_LDO2_ENA_MASK 0x0001 +#define MADERA_LDO2_ENA_SHIFT 0 +#define MADERA_LDO2_ENA_WIDTH 1
+/* (0x0218) Mic_Bias_Ctrl_1 */ +#define MADERA_MICB1_EXT_CAP 0x8000 +#define MADERA_MICB1_EXT_CAP_MASK 0x8000 +#define MADERA_MICB1_EXT_CAP_SHIFT 15 +#define MADERA_MICB1_EXT_CAP_WIDTH 1 +#define MADERA_MICB1_LVL_MASK 0x01E0 +#define MADERA_MICB1_LVL_SHIFT 5 +#define MADERA_MICB1_LVL_WIDTH 4 +#define MADERA_MICB1_FAST 0x0010 +#define MADERA_MICB1_FAST_MASK 0x0010 +#define MADERA_MICB1_FAST_SHIFT 4 +#define MADERA_MICB1_FAST_WIDTH 1 +#define MADERA_MICB1_RATE 0x0008 +#define MADERA_MICB1_RATE_MASK 0x0008 +#define MADERA_MICB1_RATE_SHIFT 3 +#define MADERA_MICB1_RATE_WIDTH 1 +#define MADERA_MICB1_DISCH 0x0004 +#define MADERA_MICB1_DISCH_MASK 0x0004 +#define MADERA_MICB1_DISCH_SHIFT 2 +#define MADERA_MICB1_DISCH_WIDTH 1 +#define MADERA_MICB1_BYPASS 0x0002 +#define MADERA_MICB1_BYPASS_MASK 0x0002 +#define MADERA_MICB1_BYPASS_SHIFT 1 +#define MADERA_MICB1_BYPASS_WIDTH 1 +#define MADERA_MICB1_ENA 0x0001 +#define MADERA_MICB1_ENA_MASK 0x0001 +#define MADERA_MICB1_ENA_SHIFT 0 +#define MADERA_MICB1_ENA_WIDTH 1
+/* (0x0219) Mic_Bias_Ctrl_2 */ +#define MADERA_MICB2_EXT_CAP 0x8000 +#define MADERA_MICB2_EXT_CAP_MASK 0x8000 +#define MADERA_MICB2_EXT_CAP_SHIFT 15 +#define MADERA_MICB2_EXT_CAP_WIDTH 1 +#define MADERA_MICB2_LVL_MASK 0x01E0 +#define MADERA_MICB2_LVL_SHIFT 5 +#define MADERA_MICB2_LVL_WIDTH 4 +#define MADERA_MICB2_FAST 0x0010 +#define MADERA_MICB2_FAST_MASK 0x0010 +#define MADERA_MICB2_FAST_SHIFT 4 +#define MADERA_MICB2_FAST_WIDTH 1 +#define MADERA_MICB2_RATE 0x0008 +#define MADERA_MICB2_RATE_MASK 0x0008 +#define MADERA_MICB2_RATE_SHIFT 3 +#define MADERA_MICB2_RATE_WIDTH 1 +#define MADERA_MICB2_DISCH 0x0004 +#define MADERA_MICB2_DISCH_MASK 0x0004 +#define MADERA_MICB2_DISCH_SHIFT 2 +#define MADERA_MICB2_DISCH_WIDTH 1 +#define MADERA_MICB2_BYPASS 0x0002 +#define MADERA_MICB2_BYPASS_MASK 0x0002 +#define MADERA_MICB2_BYPASS_SHIFT 1 +#define MADERA_MICB2_BYPASS_WIDTH 1 +#define MADERA_MICB2_ENA 0x0001 +#define MADERA_MICB2_ENA_MASK 0x0001 +#define MADERA_MICB2_ENA_SHIFT 0 +#define MADERA_MICB2_ENA_WIDTH 1
+/* (0x021A) Mic_Bias_Ctrl_3 */ +#define MADERA_MICB3_EXT_CAP 0x8000 +#define MADERA_MICB3_EXT_CAP_MASK 0x8000 +#define MADERA_MICB3_EXT_CAP_SHIFT 15 +#define MADERA_MICB3_EXT_CAP_WIDTH 1 +#define MADERA_MICB3_LVL_MASK 0x01E0 +#define MADERA_MICB3_LVL_SHIFT 5 +#define MADERA_MICB3_LVL_WIDTH 4 +#define MADERA_MICB3_FAST 0x0010 +#define MADERA_MICB3_FAST_MASK 0x0010 +#define MADERA_MICB3_FAST_SHIFT 4 +#define MADERA_MICB3_FAST_WIDTH 1 +#define MADERA_MICB3_RATE 0x0008 +#define MADERA_MICB3_RATE_MASK 0x0008 +#define MADERA_MICB3_RATE_SHIFT 3 +#define MADERA_MICB3_RATE_WIDTH 1 +#define MADERA_MICB3_DISCH 0x0004 +#define MADERA_MICB3_DISCH_MASK 0x0004 +#define MADERA_MICB3_DISCH_SHIFT 2 +#define MADERA_MICB3_DISCH_WIDTH 1 +#define MADERA_MICB3_BYPASS 0x0002 +#define MADERA_MICB3_BYPASS_MASK 0x0002 +#define MADERA_MICB3_BYPASS_SHIFT 1 +#define MADERA_MICB3_BYPASS_WIDTH 1 +#define MADERA_MICB3_ENA 0x0001 +#define MADERA_MICB3_ENA_MASK 0x0001 +#define MADERA_MICB3_ENA_SHIFT 0 +#define MADERA_MICB3_ENA_WIDTH 1
+/* (0x021B) Mic_Bias_Ctrl_4 */ +#define MADERA_MICB4_EXT_CAP 0x8000 +#define MADERA_MICB4_EXT_CAP_MASK 0x8000 +#define MADERA_MICB4_EXT_CAP_SHIFT 15 +#define MADERA_MICB4_EXT_CAP_WIDTH 1 +#define MADERA_MICB4_LVL_MASK 0x01E0 +#define MADERA_MICB4_LVL_SHIFT 5 +#define MADERA_MICB4_LVL_WIDTH 4 +#define MADERA_MICB4_FAST 0x0010 +#define MADERA_MICB4_FAST_MASK 0x0010 +#define MADERA_MICB4_FAST_SHIFT 4 +#define MADERA_MICB4_FAST_WIDTH 1 +#define MADERA_MICB4_RATE 0x0008 +#define MADERA_MICB4_RATE_MASK 0x0008 +#define MADERA_MICB4_RATE_SHIFT 3 +#define MADERA_MICB4_RATE_WIDTH 1 +#define MADERA_MICB4_DISCH 0x0004 +#define MADERA_MICB4_DISCH_MASK 0x0004 +#define MADERA_MICB4_DISCH_SHIFT 2 +#define MADERA_MICB4_DISCH_WIDTH 1 +#define MADERA_MICB4_BYPASS 0x0002 +#define MADERA_MICB4_BYPASS_MASK 0x0002 +#define MADERA_MICB4_BYPASS_SHIFT 1 +#define MADERA_MICB4_BYPASS_WIDTH 1 +#define MADERA_MICB4_ENA 0x0001 +#define MADERA_MICB4_ENA_MASK 0x0001 +#define MADERA_MICB4_ENA_SHIFT 0 +#define MADERA_MICB4_ENA_WIDTH 1
+/* (0x021C) Mic_Bias_Ctrl_5 */ +#define MADERA_MICB1D_BYP 0x4000 +#define MADERA_MICB1D_BYP_MASK 0x4000 +#define MADERA_MICB1D_BYP_SHIFT 14 +#define MADERA_MICB1D_BYP_WIDTH 1 +#define MADERA_MICB1D_DISCH 0x2000 +#define MADERA_MICB1D_DISCH_MASK 0x2000 +#define MADERA_MICB1D_DISCH_SHIFT 13 +#define MADERA_MICB1D_DISCH_WIDTH 1 +#define MADERA_MICB1D_ENA 0x1000 +#define MADERA_MICB1D_ENA_MASK 0x1000 +#define MADERA_MICB1D_ENA_SHIFT 12 +#define MADERA_MICB1D_ENA_WIDTH 1 +#define MADERA_MICB1C_BYP 0x0400 +#define MADERA_MICB1C_BYP_MASK 0x0400 +#define MADERA_MICB1C_BYP_SHIFT 10 +#define MADERA_MICB1C_BYP_WIDTH 1 +#define MADERA_MICB1C_DISCH 0x0200 +#define MADERA_MICB1C_DISCH_MASK 0x0200 +#define MADERA_MICB1C_DISCH_SHIFT 9 +#define MADERA_MICB1C_DISCH_WIDTH 1 +#define MADERA_MICB1C_ENA 0x0100 +#define MADERA_MICB1C_ENA_MASK 0x0100 +#define MADERA_MICB1C_ENA_SHIFT 8 +#define MADERA_MICB1C_ENA_WIDTH 1 +#define MADERA_MICB1B_BYP 0x0040 +#define MADERA_MICB1B_BYP_MASK 0x0040 +#define MADERA_MICB1B_BYP_SHIFT 6 +#define MADERA_MICB1B_BYP_WIDTH 1 +#define MADERA_MICB1B_DISCH 0x0020 +#define MADERA_MICB1B_DISCH_MASK 0x0020 +#define MADERA_MICB1B_DISCH_SHIFT 5 +#define MADERA_MICB1B_DISCH_WIDTH 1 +#define MADERA_MICB1B_ENA 0x0010 +#define MADERA_MICB1B_ENA_MASK 0x0010 +#define MADERA_MICB1B_ENA_SHIFT 4 +#define MADERA_MICB1B_ENA_WIDTH 1 +#define MADERA_MICB1A_BYP 0x0004 +#define MADERA_MICB1A_BYP_MASK 0x0004 +#define MADERA_MICB1A_BYP_SHIFT 2 +#define MADERA_MICB1A_BYP_WIDTH 1 +#define MADERA_MICB1A_DISCH 0x0002 +#define MADERA_MICB1A_DISCH_MASK 0x0002 +#define MADERA_MICB1A_DISCH_SHIFT 1 +#define MADERA_MICB1A_DISCH_WIDTH 1 +#define MADERA_MICB1A_ENA 0x0001 +#define MADERA_MICB1A_ENA_MASK 0x0001 +#define MADERA_MICB1A_ENA_SHIFT 0 +#define MADERA_MICB1A_ENA_WIDTH 1
+/* (0x021E) Mic_Bias_Ctrl_6 */ +#define MADERA_MICB2D_BYP 0x4000 +#define MADERA_MICB2D_BYP_MASK 0x4000 +#define MADERA_MICB2D_BYP_SHIFT 14 +#define MADERA_MICB2D_BYP_WIDTH 1 +#define MADERA_MICB2D_DISCH 0x2000 +#define MADERA_MICB2D_DISCH_MASK 0x2000 +#define MADERA_MICB2D_DISCH_SHIFT 13 +#define MADERA_MICB2D_DISCH_WIDTH 1 +#define MADERA_MICB2D_ENA 0x1000 +#define MADERA_MICB2D_ENA_MASK 0x1000 +#define MADERA_MICB2D_ENA_SHIFT 12 +#define MADERA_MICB2D_ENA_WIDTH 1 +#define MADERA_MICB2C_BYP 0x0400 +#define MADERA_MICB2C_BYP_MASK 0x0400 +#define MADERA_MICB2C_BYP_SHIFT 10 +#define MADERA_MICB2C_BYP_WIDTH 1 +#define MADERA_MICB2C_DISCH 0x0200 +#define MADERA_MICB2C_DISCH_MASK 0x0200 +#define MADERA_MICB2C_DISCH_SHIFT 9 +#define MADERA_MICB2C_DISCH_WIDTH 1 +#define MADERA_MICB2C_ENA 0x0100 +#define MADERA_MICB2C_ENA_MASK 0x0100 +#define MADERA_MICB2C_ENA_SHIFT 8 +#define MADERA_MICB2C_ENA_WIDTH 1 +#define MADERA_MICB2B_BYP 0x0040 +#define MADERA_MICB2B_BYP_MASK 0x0040 +#define MADERA_MICB2B_BYP_SHIFT 6 +#define MADERA_MICB2B_BYP_WIDTH 1 +#define MADERA_MICB2B_DISCH 0x0020 +#define MADERA_MICB2B_DISCH_MASK 0x0020 +#define MADERA_MICB2B_DISCH_SHIFT 5 +#define MADERA_MICB2B_DISCH_WIDTH 1 +#define MADERA_MICB2B_ENA 0x0010 +#define MADERA_MICB2B_ENA_MASK 0x0010 +#define MADERA_MICB2B_ENA_SHIFT 4 +#define MADERA_MICB2B_ENA_WIDTH 1 +#define MADERA_MICB2A_BYP 0x0004 +#define MADERA_MICB2A_BYP_MASK 0x0004 +#define MADERA_MICB2A_BYP_SHIFT 2 +#define MADERA_MICB2A_BYP_WIDTH 1 +#define MADERA_MICB2A_DISCH 0x0002 +#define MADERA_MICB2A_DISCH_MASK 0x0002 +#define MADERA_MICB2A_DISCH_SHIFT 1 +#define MADERA_MICB2A_DISCH_WIDTH 1 +#define MADERA_MICB2A_ENA 0x0001 +#define MADERA_MICB2A_ENA_MASK 0x0001 +#define MADERA_MICB2A_ENA_SHIFT 0 +#define MADERA_MICB2A_ENA_WIDTH 1
+/* (0x0225) - HP Ctrl 1L */ +#define MADERA_RMV_SHRT_HP1L 0x4000 +#define MADERA_RMV_SHRT_HP1L_MASK 0x4000 +#define MADERA_RMV_SHRT_HP1L_SHIFT 14 +#define MADERA_RMV_SHRT_HP1L_WIDTH 1 +#define MADERA_HP1L_FLWR 0x0004 +#define MADERA_HP1L_FLWR_MASK 0x0004 +#define MADERA_HP1L_FLWR_SHIFT 2 +#define MADERA_HP1L_FLWR_WIDTH 1 +#define MADERA_HP1L_SHRTI 0x0002 +#define MADERA_HP1L_SHRTI_MASK 0x0002 +#define MADERA_HP1L_SHRTI_SHIFT 1 +#define MADERA_HP1L_SHRTI_WIDTH 1 +#define MADERA_HP1L_SHRTO 0x0001 +#define MADERA_HP1L_SHRTO_MASK 0x0001 +#define MADERA_HP1L_SHRTO_SHIFT 0 +#define MADERA_HP1L_SHRTO_WIDTH 1
+/* (0x0226) - HP Ctrl 1R */ +#define MADERA_RMV_SHRT_HP1R 0x4000 +#define MADERA_RMV_SHRT_HP1R_MASK 0x4000 +#define MADERA_RMV_SHRT_HP1R_SHIFT 14 +#define MADERA_RMV_SHRT_HP1R_WIDTH 1 +#define MADERA_HP1R_FLWR 0x0004 +#define MADERA_HP1R_FLWR_MASK 0x0004 +#define MADERA_HP1R_FLWR_SHIFT 2 +#define MADERA_HP1R_FLWR_WIDTH 1 +#define MADERA_HP1R_SHRTI 0x0002 +#define MADERA_HP1R_SHRTI_MASK 0x0002 +#define MADERA_HP1R_SHRTI_SHIFT 1 +#define MADERA_HP1R_SHRTI_WIDTH 1 +#define MADERA_HP1R_SHRTO 0x0001 +#define MADERA_HP1R_SHRTO_MASK 0x0001 +#define MADERA_HP1R_SHRTO_SHIFT 0 +#define MADERA_HP1R_SHRTO_WIDTH 1
+/* (0x027E) - EDRE HP stereo control */ +#define MADERA_HP3_EDRE_STEREO 0x0004 +#define MADERA_HP3_EDRE_STEREO_MASK 0x0004 +#define MADERA_HP3_EDRE_STEREO_SHIFT 2 +#define MADERA_HP3_EDRE_STEREO_WIDTH 1 +#define MADERA_HP2_EDRE_STEREO 0x0002 +#define MADERA_HP2_EDRE_STEREO_MASK 0x0002 +#define MADERA_HP2_EDRE_STEREO_SHIFT 1 +#define MADERA_HP2_EDRE_STEREO_WIDTH 1 +#define MADERA_HP1_EDRE_STEREO 0x0001 +#define MADERA_HP1_EDRE_STEREO_MASK 0x0001 +#define MADERA_HP1_EDRE_STEREO_SHIFT 0 +#define MADERA_HP1_EDRE_STEREO_WIDTH 1
+/* (0x0293) Accessory_Detect_Mode_1 */ +#define MADERA_ACCDET_SRC 0x2000 +#define MADERA_ACCDET_SRC_MASK 0x2000 +#define MADERA_ACCDET_SRC_SHIFT 13 +#define MADERA_ACCDET_SRC_WIDTH 1 +#define MADERA_ACCDET_POLARITY_INV_ENA 0x0080 +#define MADERA_ACCDET_POLARITY_INV_ENA_MASK 0x0080 +#define MADERA_ACCDET_POLARITY_INV_ENA_SHIFT 7 +#define MADERA_ACCDET_POLARITY_INV_ENA_WIDTH 1 +#define MADERA_ACCDET_MODE_MASK 0x0007 +#define MADERA_ACCDET_MODE_SHIFT 0 +#define MADERA_ACCDET_MODE_WIDTH 3
+/* (0x0299) Headphone_Detect_0 */ +#define MADERA_HPD_GND_SEL 0x0007 +#define MADERA_HPD_GND_SEL_MASK 0x0007 +#define MADERA_HPD_GND_SEL_SHIFT 0 +#define MADERA_HPD_GND_SEL_WIDTH 3 +#define MADERA_HPD_SENSE_SEL 0x00F0 +#define MADERA_HPD_SENSE_SEL_MASK 0x00F0 +#define MADERA_HPD_SENSE_SEL_SHIFT 4 +#define MADERA_HPD_SENSE_SEL_WIDTH 4 +#define MADERA_HPD_FRC_SEL 0x0F00 +#define MADERA_HPD_FRC_SEL_MASK 0x0F00 +#define MADERA_HPD_FRC_SEL_SHIFT 8 +#define MADERA_HPD_FRC_SEL_WIDTH 4 +#define MADERA_HPD_OUT_SEL 0x7000 +#define MADERA_HPD_OUT_SEL_MASK 0x7000 +#define MADERA_HPD_OUT_SEL_SHIFT 12 +#define MADERA_HPD_OUT_SEL_WIDTH 3 +#define MADERA_HPD_OVD_ENA_SEL 0x8000 +#define MADERA_HPD_OVD_ENA_SEL_MASK 0x8000 +#define MADERA_HPD_OVD_ENA_SEL_SHIFT 15 +#define MADERA_HPD_OVD_ENA_SEL_WIDTH 1
+/* (0x029B) Headphone_Detect_1 */ +#define MADERA_HP_IMPEDANCE_RANGE_MASK 0x0600 +#define MADERA_HP_IMPEDANCE_RANGE_SHIFT 9 +#define MADERA_HP_IMPEDANCE_RANGE_WIDTH 2 +#define MADERA_HP_STEP_SIZE 0x0100 +#define MADERA_HP_STEP_SIZE_MASK 0x0100 +#define MADERA_HP_STEP_SIZE_SHIFT 8 +#define MADERA_HP_STEP_SIZE_WIDTH 1 +#define MADERA_HP_HOLDTIME_MASK 0x00E0 +#define MADERA_HP_HOLDTIME_SHIFT 5 +#define MADERA_HP_HOLDTIME_WIDTH 3 +#define MADERA_HP_CLK_DIV_MASK 0x0018 +#define MADERA_HP_CLK_DIV_SHIFT 3 +#define MADERA_HP_CLK_DIV_WIDTH 2 +#define MADERA_HP_IDAC_STEER 0x0004 +#define MADERA_HP_IDAC_STEER_MASK 0x0004 +#define MADERA_HP_IDAC_STEER_SHIFT 2 +#define MADERA_HP_IDAC_STEER_WIDTH 1 +#define MADERA_HP_RATE_MASK 0x0006 +#define MADERA_HP_RATE_SHIFT 1 +#define MADERA_HP_RATE_WIDTH 2 +#define MADERA_HP_POLL 0x0001 +#define MADERA_HP_POLL_MASK 0x0001 +#define MADERA_HP_POLL_SHIFT 0 +#define MADERA_HP_POLL_WIDTH 1
+/* (0x029C) Headphone_Detect_2 */ +#define MADERA_HP_DONE_MASK 0x8000 +#define MADERA_HP_DONE_SHIFT 15 +#define MADERA_HP_DONE_WIDTH 1 +#define MADERA_HP_LVL_MASK 0x7FFF +#define MADERA_HP_LVL_SHIFT 0 +#define MADERA_HP_LVL_WIDTH 15
+/* (0x029D) Headphone_Detect_3 */ +#define MADERA_HP_DACVAL_MASK 0x03FF +#define MADERA_HP_DACVAL_SHIFT 0 +#define MADERA_HP_DACVAL_WIDTH 10
+/* (0x029F) - Headphone Detect 5 */ +#define MADERA_HP_DACVAL_DOWN_MASK 0x03FF +#define MADERA_HP_DACVAL_DOWN_SHIFT 0 +#define MADERA_HP_DACVAL_DOWN_WIDTH 10
+/* (0x02A2) Mic_Detect_1_Control_0 */ +#define MADERA_MICD1_GND_MASK 0x0007 +#define MADERA_MICD1_GND_SHIFT 0 +#define MADERA_MICD1_GND_WIDTH 3 +#define MADERA_MICD1_SENSE_MASK 0x00F0 +#define MADERA_MICD1_SENSE_SHIFT 4 +#define MADERA_MICD1_SENSE_WIDTH 4 +#define MADERA_MICD1_ADC_MODE_MASK 0x8000 +#define MADERA_MICD1_ADC_MODE_SHIFT 15 +#define MADERA_MICD1_ADC_MODE_WIDTH 1
+/* (0x02A3) Mic_Detect_1_Control_1 */ +#define MADERA_MICD_BIAS_STARTTIME_MASK 0xF000 +#define MADERA_MICD_BIAS_STARTTIME_SHIFT 12 +#define MADERA_MICD_BIAS_STARTTIME_WIDTH 4 +#define MADERA_MICD_RATE_MASK 0x0F00 +#define MADERA_MICD_RATE_SHIFT 8 +#define MADERA_MICD_RATE_WIDTH 4 +#define MADERA_MICD_BIAS_SRC_MASK 0x00F0 +#define MADERA_MICD_BIAS_SRC_SHIFT 4 +#define MADERA_MICD_BIAS_SRC_WIDTH 4 +#define MADERA_MICD_DBTIME 0x0002 +#define MADERA_MICD_DBTIME_MASK 0x0002 +#define MADERA_MICD_DBTIME_SHIFT 1 +#define MADERA_MICD_DBTIME_WIDTH 1 +#define MADERA_MICD_ENA 0x0001 +#define MADERA_MICD_ENA_MASK 0x0001 +#define MADERA_MICD_ENA_SHIFT 0 +#define MADERA_MICD_ENA_WIDTH 1
+/* (0x02A4) Mic_Detect_1_Control_2 */ +#define MADERA_MICD_LVL_SEL_MASK 0x00FF +#define MADERA_MICD_LVL_SEL_SHIFT 0 +#define MADERA_MICD_LVL_SEL_WIDTH 8
+/* (0x02A5) Mic_Detect_1_Control_3 */ +#define MADERA_MICD_LVL_0 0x0004 +#define MADERA_MICD_LVL_1 0x0008 +#define MADERA_MICD_LVL_2 0x0010 +#define MADERA_MICD_LVL_3 0x0020 +#define MADERA_MICD_LVL_4 0x0040 +#define MADERA_MICD_LVL_5 0x0080 +#define MADERA_MICD_LVL_6 0x0100 +#define MADERA_MICD_LVL_7 0x0200 +#define MADERA_MICD_LVL_8 0x0400 +#define MADERA_MICD_LVL_MASK 0x07FC +#define MADERA_MICD_LVL_SHIFT 2 +#define MADERA_MICD_LVL_WIDTH 9 +#define MADERA_MICD_VALID 0x0002 +#define MADERA_MICD_VALID_MASK 0x0002 +#define MADERA_MICD_VALID_SHIFT 1 +#define MADERA_MICD_VALID_WIDTH 1 +#define MADERA_MICD_STS 0x0001 +#define MADERA_MICD_STS_MASK 0x0001 +#define MADERA_MICD_STS_SHIFT 0 +#define MADERA_MICD_STS_WIDTH 1
+/* (0x02AB) Mic_Detect_1_Control_4 */ +#define MADERA_MICDET_ADCVAL_DIFF_MASK 0xFF00 +#define MADERA_MICDET_ADCVAL_DIFF_SHIFT 8 +#define MADERA_MICDET_ADCVAL_DIFF_WIDTH 8 +#define MADERA_MICDET_ADCVAL_MASK 0x007F +#define MADERA_MICDET_ADCVAL_SHIFT 0 +#define MADERA_MICDET_ADCVAL_WIDTH 7
+/* (0x02B2) Mic_Detect_2_Control_0 */ +#define MADERA_MICD2_ADC_MODE 0x8000 +#define MADERA_MICD2_ADC_MODE_MASK 0x8000 +#define MADERA_MICD2_ADC_MODE_SHIFT 15 +#define MADERA_MICD2_ADC_MODE_WIDTH 1 +#define MADERA_MICD2_SENSE_SEL 0x0070 +#define MADERA_MICD2_SENSE_SEL_MASK 0x0070 +#define MADERA_MICD2_SENSE_SEL_SHIFT 4 +#define MADERA_MICD2_SENSE_SEL_WIDTH 3 +#define MADERA_MICD2_GND_SEL 0x0007 +#define MADERA_MICD2_GND_SEL_MASK 0x0007 +#define MADERA_MICD2_GND_SEL_SHIFT 0 +#define MADERA_MICD2_GND_SEL_WIDTH 3
+/* (0x02B3) Mic_Detect_2_Control_1 */ +#define MADERA_MICD2_BIAS_STARTTIME 0xF000 +#define MADERA_MICD2_BIAS_STARTTIME_MASK 0xF000 +#define MADERA_MICD2_BIAS_STARTTIME_SHIFT 12 +#define MADERA_MICD2_BIAS_STARTTIME_WIDTH 4 +#define MADERA_MICD2_RATE 0x0F00 +#define MADERA_MICD2_RATE_MASK 0x0F00 +#define MADERA_MICD2_RATE_SHIFT 8 +#define MADERA_MICD2_RATE_WIDTH 4 +#define MADERA_MICD2_BIAS_SRC 0x00F0 +#define MADERA_MICD2_BIAS_SRC_MASK 0x00F0 +#define MADERA_MICD2_BIAS_SRC_SHIFT 4 +#define MADERA_MICD2_BIAS_SRC_WIDTH 4 +#define MADERA_MICD2_DBTIME 0x0002 +#define MADERA_MICD2_DBTIME_MASK 0x0002 +#define MADERA_MICD2_DBTIME_SHIFT 1 +#define MADERA_MICD2_DBTIME_WIDTH 1 +#define MADERA_MICD2_ENA 0x0001 +#define MADERA_MICD2_ENA_MASK 0x0001 +#define MADERA_MICD2_ENA_SHIFT 0 +#define MADERA_MICD2_ENA_WIDTH 1
+/* (0x02B4) Mic_Detect_2_Control_2 */ +#define MADERA_MICD2_LVL_SEL_MASK 0x00FF +#define MADERA_MICD2_LVL_SEL_SHIFT 0 +#define MADERA_MICD2_LVL_SEL_WIDTH 8
+/* (0x02B5) Mic_Detect_2_Control_3 */ +#define MADERA_MICD2_LVL 0x07FC +#define MADERA_MICD2_LVL_MASK 0x07FC +#define MADERA_MICD2_LVL_SHIFT 2 +#define MADERA_MICD2_LVL_WIDTH 9 +#define MADERA_MICD2_VALID 0x0002 +#define MADERA_MICD2_VALID_MASK 0x0002 +#define MADERA_MICD2_VALID_SHIFT 1 +#define MADERA_MICD2_VALID_WIDTH 1 +#define MADERA_MICD2_STS 0x0001 +#define MADERA_MICD2_STS_MASK 0x0001 +#define MADERA_MICD2_STS_SHIFT 0 +#define MADERA_MICD2_STS_WIDTH 1
+/* (0x02BB) Mic_Detect_2_Control_4 */ +#define MADERA_MICD2_ADCVAL_DIFF 0xFF00 +#define MADERA_MICD2_ADCVAL_DIFF_MASK 0xFF00 +#define MADERA_MICD2_ADCVAL_DIFF_SHIFT 8 +#define MADERA_MICD2_ADCVAL_DIFF_WIDTH 8 +#define MADERA_MICD2_ADCVAL 0x007F +#define MADERA_MICD2_ADCVAL_MASK 0x007F +#define MADERA_MICD2_ADCVAL_SHIFT 0 +#define MADERA_MICD2_ADCVAL_WIDTH 7
+/* (0x02C6) Micd_Clamp_control */ +#define MADERA_MICD_CLAMP_OVD 0x0010 +#define MADERA_MICD_CLAMP_OVD_MASK 0x0010 +#define MADERA_MICD_CLAMP_OVD_SHIFT 4 +#define MADERA_MICD_CLAMP_OVD_WIDTH 1 +#define MADERA_MICD_CLAMP_MODE_MASK 0x000F +#define MADERA_MICD_CLAMP_MODE_SHIFT 0 +#define MADERA_MICD_CLAMP_MODE_WIDTH 4
+/* (0x02C8) GP_Switch_1 */ +#define MADERA_SW2_MODE_MASK 0x000C +#define MADERA_SW2_MODE_SHIFT 2 +#define MADERA_SW2_MODE_WIDTH 2 +#define MADERA_SW1_MODE_MASK 0x0003 +#define MADERA_SW1_MODE_SHIFT 0 +#define MADERA_SW1_MODE_WIDTH 2
+/* (0x02D3) Jack_detect_analogue */ +#define MADERA_JD2_ENA 0x0002 +#define MADERA_JD2_ENA_MASK 0x0002 +#define MADERA_JD2_ENA_SHIFT 1 +#define MADERA_JD2_ENA_WIDTH 1 +#define MADERA_JD1_ENA 0x0001 +#define MADERA_JD1_ENA_MASK 0x0001 +#define MADERA_JD1_ENA_SHIFT 0 +#define MADERA_JD1_ENA_WIDTH 1
+/* (0x0300) Input_Enables */ +#define MADERA_IN6L_ENA 0x0800 +#define MADERA_IN6L_ENA_MASK 0x0800 +#define MADERA_IN6L_ENA_SHIFT 11 +#define MADERA_IN6L_ENA_WIDTH 1 +#define MADERA_IN6R_ENA 0x0400 +#define MADERA_IN6R_ENA_MASK 0x0400 +#define MADERA_IN6R_ENA_SHIFT 10 +#define MADERA_IN6R_ENA_WIDTH 1 +#define MADERA_IN5L_ENA 0x0200 +#define MADERA_IN5L_ENA_MASK 0x0200 +#define MADERA_IN5L_ENA_SHIFT 9 +#define MADERA_IN5L_ENA_WIDTH 1 +#define MADERA_IN5R_ENA 0x0100 +#define MADERA_IN5R_ENA_MASK 0x0100 +#define MADERA_IN5R_ENA_SHIFT 8 +#define MADERA_IN5R_ENA_WIDTH 1 +#define MADERA_IN4L_ENA 0x0080 +#define MADERA_IN4L_ENA_MASK 0x0080 +#define MADERA_IN4L_ENA_SHIFT 7 +#define MADERA_IN4L_ENA_WIDTH 1 +#define MADERA_IN4R_ENA 0x0040 +#define MADERA_IN4R_ENA_MASK 0x0040 +#define MADERA_IN4R_ENA_SHIFT 6 +#define MADERA_IN4R_ENA_WIDTH 1 +#define MADERA_IN3L_ENA 0x0020 +#define MADERA_IN3L_ENA_MASK 0x0020 +#define MADERA_IN3L_ENA_SHIFT 5 +#define MADERA_IN3L_ENA_WIDTH 1 +#define MADERA_IN3R_ENA 0x0010 +#define MADERA_IN3R_ENA_MASK 0x0010 +#define MADERA_IN3R_ENA_SHIFT 4 +#define MADERA_IN3R_ENA_WIDTH 1 +#define MADERA_IN2L_ENA 0x0008 +#define MADERA_IN2L_ENA_MASK 0x0008 +#define MADERA_IN2L_ENA_SHIFT 3 +#define MADERA_IN2L_ENA_WIDTH 1 +#define MADERA_IN2R_ENA 0x0004 +#define MADERA_IN2R_ENA_MASK 0x0004 +#define MADERA_IN2R_ENA_SHIFT 2 +#define MADERA_IN2R_ENA_WIDTH 1 +#define MADERA_IN1L_ENA 0x0002 +#define MADERA_IN1L_ENA_MASK 0x0002 +#define MADERA_IN1L_ENA_SHIFT 1 +#define MADERA_IN1L_ENA_WIDTH 1 +#define MADERA_IN1R_ENA 0x0001 +#define MADERA_IN1R_ENA_MASK 0x0001 +#define MADERA_IN1R_ENA_SHIFT 0 +#define MADERA_IN1R_ENA_WIDTH 1
+/* (0x0308) Input_Rate */ +#define MADERA_IN_RATE_MASK 0xF800 +#define MADERA_IN_RATE_SHIFT 11 +#define MADERA_IN_RATE_WIDTH 5 +#define MADERA_IN_MODE_MASK 0x0400 +#define MADERA_IN_MODE_SHIFT 10 +#define MADERA_IN_MODE_WIDTH 1
+/* (0x0309) Input_Volume_Ramp */ +#define MADERA_IN_VD_RAMP_MASK 0x0070 +#define MADERA_IN_VD_RAMP_SHIFT 4 +#define MADERA_IN_VD_RAMP_WIDTH 3 +#define MADERA_IN_VI_RAMP_MASK 0x0007 +#define MADERA_IN_VI_RAMP_SHIFT 0 +#define MADERA_IN_VI_RAMP_WIDTH 3
+/* (0x030C) HPF_Control */ +#define MADERA_IN_HPF_CUT_MASK 0x0007 +#define MADERA_IN_HPF_CUT_SHIFT 0 +#define MADERA_IN_HPF_CUT_WIDTH 3
+/* (0x0310) IN1L_Control */ +#define MADERA_IN1L_HPF_MASK 0x8000 +#define MADERA_IN1L_HPF_SHIFT 15 +#define MADERA_IN1L_HPF_WIDTH 1 +#define MADERA_IN1_DMIC_SUP_MASK 0x1800 +#define MADERA_IN1_DMIC_SUP_SHIFT 11 +#define MADERA_IN1_DMIC_SUP_WIDTH 2 +#define MADERA_IN1_MODE_MASK 0x0400 +#define MADERA_IN1_MODE_SHIFT 10 +#define MADERA_IN1_MODE_WIDTH 1 +#define MADERA_IN1_SINGLE_ENDED_MASK 0x0200 +#define MADERA_IN1_SINGLE_ENDED_SHIFT 9 +#define MADERA_IN1_SINGLE_ENDED_WIDTH 1 +#define MADERA_IN1L_PGA_VOL_MASK 0x00FE +#define MADERA_IN1L_PGA_VOL_SHIFT 1 +#define MADERA_IN1L_PGA_VOL_WIDTH 7
+/* (0x0311) ADC_Digital_Volume_1L */ +#define MADERA_IN1L_SRC_MASK 0x4000 +#define MADERA_IN1L_SRC_SHIFT 14 +#define MADERA_IN1L_SRC_WIDTH 1 +#define MADERA_IN1L_SRC_SE_MASK 0x2000 +#define MADERA_IN1L_SRC_SE_SHIFT 13 +#define MADERA_IN1L_SRC_SE_WIDTH 1 +#define MADERA_IN1L_LP_MODE 0x0800 +#define MADERA_IN1L_LP_MODE_MASK 0x0800 +#define MADERA_IN1L_LP_MODE_SHIFT 11 +#define MADERA_IN1L_LP_MODE_WIDTH 1 +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN1L_MUTE 0x0100 +#define MADERA_IN1L_MUTE_MASK 0x0100 +#define MADERA_IN1L_MUTE_SHIFT 8 +#define MADERA_IN1L_MUTE_WIDTH 1 +#define MADERA_IN1L_DIG_VOL_MASK 0x00FF +#define MADERA_IN1L_DIG_VOL_SHIFT 0 +#define MADERA_IN1L_DIG_VOL_WIDTH 8
+/* (0x0312) DMIC1L_Control */ +#define MADERA_IN1_DMICL_DLY_MASK 0x003F +#define MADERA_IN1_DMICL_DLY_SHIFT 0 +#define MADERA_IN1_DMICL_DLY_WIDTH 6 +#define MADERA_IN1_OSR_MASK 0x0700 +#define MADERA_IN1_OSR_SHIFT 8 +#define MADERA_IN1_OSR_WIDTH 3
+/* (0x0313) IN1L_Rate_Control */ +#define MADERA_IN1L_RATE_MASK 0xF800 +#define MADERA_IN1L_RATE_SHIFT 11 +#define MADERA_IN1L_RATE_WIDTH 5
+/* (0x0314) IN1R_Control */ +#define MADERA_IN1R_HPF_MASK 0x8000 +#define MADERA_IN1R_HPF_SHIFT 15 +#define MADERA_IN1R_HPF_WIDTH 1 +#define MADERA_IN1R_PGA_VOL_MASK 0x00FE +#define MADERA_IN1R_PGA_VOL_SHIFT 1 +#define MADERA_IN1R_PGA_VOL_WIDTH 7 +#define MADERA_IN1_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN1_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN1_DMICCLK_SRC_WIDTH 2
+/* (0x0315) ADC_Digital_Volume_1R */ +#define MADERA_IN1R_SRC_MASK 0x4000 +#define MADERA_IN1R_SRC_SHIFT 14 +#define MADERA_IN1R_SRC_WIDTH 1 +#define MADERA_IN1R_SRC_SE_MASK 0x2000 +#define MADERA_IN1R_SRC_SE_SHIFT 13 +#define MADERA_IN1R_SRC_SE_WIDTH 1 +#define MADERA_IN1R_LP_MODE 0x0800 +#define MADERA_IN1R_LP_MODE_MASK 0x0800 +#define MADERA_IN1R_LP_MODE_SHIFT 11 +#define MADERA_IN1R_LP_MODE_WIDTH 1 +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN1R_MUTE 0x0100 +#define MADERA_IN1R_MUTE_MASK 0x0100 +#define MADERA_IN1R_MUTE_SHIFT 8 +#define MADERA_IN1R_MUTE_WIDTH 1 +#define MADERA_IN1R_DIG_VOL_MASK 0x00FF +#define MADERA_IN1R_DIG_VOL_SHIFT 0 +#define MADERA_IN1R_DIG_VOL_WIDTH 8
+/* (0x0316) DMIC1R_Control */ +#define MADERA_IN1_DMICR_DLY_MASK 0x003F +#define MADERA_IN1_DMICR_DLY_SHIFT 0 +#define MADERA_IN1_DMICR_DLY_WIDTH 6
+/* (0x0317) IN1R_Rate_Control */ +#define MADERA_IN1R_RATE_MASK 0xF800 +#define MADERA_IN1R_RATE_SHIFT 11 +#define MADERA_IN1R_RATE_WIDTH 5
+/* (0x0318) IN2L_Control */ +#define MADERA_IN2L_HPF_MASK 0x8000 +#define MADERA_IN2L_HPF_SHIFT 15 +#define MADERA_IN2L_HPF_WIDTH 1 +#define MADERA_IN2_DMIC_SUP_MASK 0x1800 +#define MADERA_IN2_DMIC_SUP_SHIFT 11 +#define MADERA_IN2_DMIC_SUP_WIDTH 2 +#define MADERA_IN2_MODE_MASK 0x0400 +#define MADERA_IN2_MODE_SHIFT 10 +#define MADERA_IN2_MODE_WIDTH 1 +#define MADERA_IN2_SINGLE_ENDED_MASK 0x0200 +#define MADERA_IN2_SINGLE_ENDED_SHIFT 9 +#define MADERA_IN2_SINGLE_ENDED_WIDTH 1 +#define MADERA_IN2L_PGA_VOL_MASK 0x00FE +#define MADERA_IN2L_PGA_VOL_SHIFT 1 +#define MADERA_IN2L_PGA_VOL_WIDTH 7
+/* (0x0319) ADC_Digital_Volume_2L */ +#define MADERA_IN2L_SRC_MASK 0x4000 +#define MADERA_IN2L_SRC_SHIFT 14 +#define MADERA_IN2L_SRC_WIDTH 1 +#define MADERA_IN2L_SRC_SE_MASK 0x2000 +#define MADERA_IN2L_SRC_SE_SHIFT 13 +#define MADERA_IN2L_SRC_SE_WIDTH 1 +#define MADERA_IN2L_LP_MODE 0x0800 +#define MADERA_IN2L_LP_MODE_MASK 0x0800 +#define MADERA_IN2L_LP_MODE_SHIFT 11 +#define MADERA_IN2L_LP_MODE_WIDTH 1 +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN2L_MUTE 0x0100 +#define MADERA_IN2L_MUTE_MASK 0x0100 +#define MADERA_IN2L_MUTE_SHIFT 8 +#define MADERA_IN2L_MUTE_WIDTH 1 +#define MADERA_IN2L_DIG_VOL_MASK 0x00FF +#define MADERA_IN2L_DIG_VOL_SHIFT 0 +#define MADERA_IN2L_DIG_VOL_WIDTH 8
+/* (0x031A) DMIC2L_Control */ +#define MADERA_IN2_DMICL_DLY_MASK 0x003F +#define MADERA_IN2_DMICL_DLY_SHIFT 0 +#define MADERA_IN2_DMICL_DLY_WIDTH 6 +#define MADERA_IN2_OSR_MASK 0x0700 +#define MADERA_IN2_OSR_SHIFT 8 +#define MADERA_IN2_OSR_WIDTH 3
+/* (0x031B) IN2L_Rate_Control */ +#define MADERA_IN2L_RATE_MASK 0xF800 +#define MADERA_IN2L_RATE_SHIFT 11 +#define MADERA_IN2L_RATE_WIDTH 5
+/* (0x031C) IN2R_Control */ +#define MADERA_IN2R_HPF_MASK 0x8000 +#define MADERA_IN2R_HPF_SHIFT 15 +#define MADERA_IN2R_HPF_WIDTH 1 +#define MADERA_IN2R_PGA_VOL_MASK 0x00FE +#define MADERA_IN2R_PGA_VOL_SHIFT 1 +#define MADERA_IN2R_PGA_VOL_WIDTH 7 +#define MADERA_IN2_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN2_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN2_DMICCLK_SRC_WIDTH 2
+/* (0x031D) ADC_Digital_Volume_2R */ +#define MADERA_IN2R_SRC_MASK 0x4000 +#define MADERA_IN2R_SRC_SHIFT 14 +#define MADERA_IN2R_SRC_WIDTH 1 +#define MADERA_IN2R_SRC_SE_MASK 0x2000 +#define MADERA_IN2R_SRC_SE_SHIFT 13 +#define MADERA_IN2R_SRC_SE_WIDTH 1 +#define MADERA_IN2R_LP_MODE 0x0800 +#define MADERA_IN2R_LP_MODE_MASK 0x0800 +#define MADERA_IN2R_LP_MODE_SHIFT 11 +#define MADERA_IN2R_LP_MODE_WIDTH 1 +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN2R_MUTE 0x0100 +#define MADERA_IN2R_MUTE_MASK 0x0100 +#define MADERA_IN2R_MUTE_SHIFT 8 +#define MADERA_IN2R_MUTE_WIDTH 1 +#define MADERA_IN2R_DIG_VOL_MASK 0x00FF +#define MADERA_IN2R_DIG_VOL_SHIFT 0 +#define MADERA_IN2R_DIG_VOL_WIDTH 8
+/* (0x031E) DMIC2R_Control */ +#define MADERA_IN2_DMICR_DLY_MASK 0x003F +#define MADERA_IN2_DMICR_DLY_SHIFT 0 +#define MADERA_IN2_DMICR_DLY_WIDTH 6
+/* (0x031F) IN2R_Rate_Control */ +#define MADERA_IN2R_RATE_MASK 0xF800 +#define MADERA_IN2R_RATE_SHIFT 11 +#define MADERA_IN2R_RATE_WIDTH 5
+/* (0x0320) IN3L_Control */ +#define MADERA_IN3L_HPF_MASK 0x8000 +#define MADERA_IN3L_HPF_SHIFT 15 +#define MADERA_IN3L_HPF_WIDTH 1 +#define MADERA_IN3_DMIC_SUP_MASK 0x1800 +#define MADERA_IN3_DMIC_SUP_SHIFT 11 +#define MADERA_IN3_DMIC_SUP_WIDTH 2 +#define MADERA_IN3_MODE_MASK 0x0400 +#define MADERA_IN3_MODE_SHIFT 10 +#define MADERA_IN3_MODE_WIDTH 1 +#define MADERA_IN3_SINGLE_ENDED_MASK 0x0200 +#define MADERA_IN3_SINGLE_ENDED_SHIFT 9 +#define MADERA_IN3_SINGLE_ENDED_WIDTH 1 +#define MADERA_IN3L_PGA_VOL_MASK 0x00FE +#define MADERA_IN3L_PGA_VOL_SHIFT 1 +#define MADERA_IN3L_PGA_VOL_WIDTH 7
+/* (0x0321) ADC_Digital_Volume_3L */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN3L_MUTE 0x0100 +#define MADERA_IN3L_MUTE_MASK 0x0100 +#define MADERA_IN3L_MUTE_SHIFT 8 +#define MADERA_IN3L_MUTE_WIDTH 1 +#define MADERA_IN3L_DIG_VOL_MASK 0x00FF +#define MADERA_IN3L_DIG_VOL_SHIFT 0 +#define MADERA_IN3L_DIG_VOL_WIDTH 8
+/* (0x0322) DMIC3L_Control */ +#define MADERA_IN3_DMICL_DLY_MASK 0x003F +#define MADERA_IN3_DMICL_DLY_SHIFT 0 +#define MADERA_IN3_DMICL_DLY_WIDTH 6 +#define MADERA_IN3_OSR_MASK 0x0700 +#define MADERA_IN3_OSR_SHIFT 8 +#define MADERA_IN3_OSR_WIDTH 3
+/* (0x0323) IN3L_Rate_Control */ +#define MADERA_IN3L_RATE_MASK 0xF800 +#define MADERA_IN3L_RATE_SHIFT 11 +#define MADERA_IN3L_RATE_WIDTH 5
+/* (0x0324) IN3R_Control */ +#define MADERA_IN3R_HPF_MASK 0x8000 +#define MADERA_IN3R_HPF_SHIFT 15 +#define MADERA_IN3R_HPF_WIDTH 1 +#define MADERA_IN3R_PGA_VOL_MASK 0x00FE +#define MADERA_IN3R_PGA_VOL_SHIFT 1 +#define MADERA_IN3R_PGA_VOL_WIDTH 7 +#define MADERA_IN3_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN3_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN3_DMICCLK_SRC_WIDTH 2
+/* (0x0325) ADC_Digital_Volume_3R */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN3R_MUTE 0x0100 +#define MADERA_IN3R_MUTE_MASK 0x0100 +#define MADERA_IN3R_MUTE_SHIFT 8 +#define MADERA_IN3R_MUTE_WIDTH 1 +#define MADERA_IN3R_DIG_VOL_MASK 0x00FF +#define MADERA_IN3R_DIG_VOL_SHIFT 0 +#define MADERA_IN3R_DIG_VOL_WIDTH 8
+/* (0x0326) DMIC3R_Control */ +#define MADERA_IN3_DMICR_DLY_MASK 0x003F +#define MADERA_IN3_DMICR_DLY_SHIFT 0 +#define MADERA_IN3_DMICR_DLY_WIDTH 6
+/* (0x0327) IN3R_Rate_Control */ +#define MADERA_IN3R_RATE_MASK 0xF800 +#define MADERA_IN3R_RATE_SHIFT 11 +#define MADERA_IN3R_RATE_WIDTH 5
+/* (0x0328) IN4L_Control */ +#define MADERA_IN4L_HPF_MASK 0x8000 +#define MADERA_IN4L_HPF_SHIFT 15 +#define MADERA_IN4L_HPF_WIDTH 1 +#define MADERA_IN4_DMIC_SUP_MASK 0x1800 +#define MADERA_IN4_DMIC_SUP_SHIFT 11 +#define MADERA_IN4_DMIC_SUP_WIDTH 2
+/* (0x0329) ADC_Digital_Volume_4L */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN4L_MUTE 0x0100 +#define MADERA_IN4L_MUTE_MASK 0x0100 +#define MADERA_IN4L_MUTE_SHIFT 8 +#define MADERA_IN4L_MUTE_WIDTH 1 +#define MADERA_IN4L_DIG_VOL_MASK 0x00FF +#define MADERA_IN4L_DIG_VOL_SHIFT 0 +#define MADERA_IN4L_DIG_VOL_WIDTH 8
+/* (0x032A) DMIC4L_Control */ +#define MADERA_IN4L_DMIC_DLY_MASK 0x003F +#define MADERA_IN4L_DMIC_DLY_SHIFT 0 +#define MADERA_IN4L_DMIC_DLY_WIDTH 6 +#define MADERA_IN4_OSR_MASK 0x0700 +#define MADERA_IN4_OSR_SHIFT 8 +#define MADERA_IN4_OSR_WIDTH 3
+/* (0x032B) IN4L_Rate_Control */ +#define MADERA_IN4L_RATE_MASK 0xF800 +#define MADERA_IN4L_RATE_SHIFT 11 +#define MADERA_IN4L_RATE_WIDTH 5
+/* (0x032C) IN4R_Control */ +#define MADERA_IN4R_HPF_MASK 0x8000 +#define MADERA_IN4R_HPF_SHIFT 15 +#define MADERA_IN4R_HPF_WIDTH 1 +#define MADERA_IN4_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN4_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN4_DMICCLK_SRC_WIDTH 2
+/* (0x032D) ADC_Digital_Volume_4R */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN4R_MUTE 0x0100 +#define MADERA_IN4R_MUTE_MASK 0x0100 +#define MADERA_IN4R_MUTE_SHIFT 8 +#define MADERA_IN4R_MUTE_WIDTH 1 +#define MADERA_IN4R_DIG_VOL_MASK 0x00FF +#define MADERA_IN4R_DIG_VOL_SHIFT 0 +#define MADERA_IN4R_DIG_VOL_WIDTH 8
+/* (0x032E) DMIC4R_Control */ +#define MADERA_IN4R_DMIC_DLY_MASK 0x003F +#define MADERA_IN4R_DMIC_DLY_SHIFT 0 +#define MADERA_IN4R_DMIC_DLY_WIDTH 6
+/* (0x032F) IN4R_Rate_Control */ +#define MADERA_IN4R_RATE_MASK 0xF800 +#define MADERA_IN4R_RATE_SHIFT 11 +#define MADERA_IN4R_RATE_WIDTH 5
+/* (0x0330) IN5L_Control */ +#define MADERA_IN5L_HPF_MASK 0x8000 +#define MADERA_IN5L_HPF_SHIFT 15 +#define MADERA_IN5L_HPF_WIDTH 1 +#define MADERA_IN5_DMIC_SUP_MASK 0x1800 +#define MADERA_IN5_DMIC_SUP_SHIFT 11 +#define MADERA_IN5_DMIC_SUP_WIDTH 2
+/* (0x0331) ADC_Digital_Volume_5L */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN5L_MUTE 0x0100 +#define MADERA_IN5L_MUTE_MASK 0x0100 +#define MADERA_IN5L_MUTE_SHIFT 8 +#define MADERA_IN5L_MUTE_WIDTH 1 +#define MADERA_IN5L_DIG_VOL_MASK 0x00FF +#define MADERA_IN5L_DIG_VOL_SHIFT 0 +#define MADERA_IN5L_DIG_VOL_WIDTH 8
+/* (0x0332) DMIC5L_Control */ +#define MADERA_IN5L_DMIC_DLY_MASK 0x003F +#define MADERA_IN5L_DMIC_DLY_SHIFT 0 +#define MADERA_IN5L_DMIC_DLY_WIDTH 6 +#define MADERA_IN5_OSR_MASK 0x0700 +#define MADERA_IN5_OSR_SHIFT 8 +#define MADERA_IN5_OSR_WIDTH 3
+/* (0x0333) IN5L_Rate_Control */ +#define MADERA_IN5L_RATE_MASK 0x7800 +#define MADERA_IN5L_RATE_SHIFT 11 +#define MADERA_IN5L_RATE_WIDTH 4
+/* (0x0334) IN5R_Control */ +#define MADERA_IN5R_HPF_MASK 0x8000 +#define MADERA_IN5R_HPF_SHIFT 15 +#define MADERA_IN5R_HPF_WIDTH 1 +#define MADERA_IN5_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN5_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN5_DMICCLK_SRC_WIDTH 2
+/* (0x0335) ADC_Digital_Volume_5R */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN5R_MUTE 0x0100 +#define MADERA_IN5R_MUTE_MASK 0x0100 +#define MADERA_IN5R_MUTE_SHIFT 8 +#define MADERA_IN5R_MUTE_WIDTH 1 +#define MADERA_IN5R_DIG_VOL_MASK 0x00FF +#define MADERA_IN5R_DIG_VOL_SHIFT 0 +#define MADERA_IN5R_DIG_VOL_WIDTH 8
+/* (0x0336) DMIC5R_Control */ +#define MADERA_IN5R_DMIC_DLY_MASK 0x003F +#define MADERA_IN5R_DMIC_DLY_SHIFT 0 +#define MADERA_IN5R_DMIC_DLY_WIDTH 6
+/* (0x0337) IN5R_Rate_Control */ +#define MADERA_IN5R_RATE_MASK 0x7800 +#define MADERA_IN5R_RATE_SHIFT 11 +#define MADERA_IN5R_RATE_WIDTH 4
+/* (0x0338) IN6L_Control */ +#define MADERA_IN6L_HPF_MASK 0x8000 +#define MADERA_IN6L_HPF_SHIFT 15 +#define MADERA_IN6L_HPF_WIDTH 1 +#define MADERA_IN6_DMIC_SUP_MASK 0x1800 +#define MADERA_IN6_DMIC_SUP_SHIFT 11 +#define MADERA_IN6_DMIC_SUP_WIDTH 2
+/* (0x0339) ADC_Digital_Volume_6L */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN6L_MUTE 0x0100 +#define MADERA_IN6L_MUTE_MASK 0x0100 +#define MADERA_IN6L_MUTE_SHIFT 8 +#define MADERA_IN6L_MUTE_WIDTH 1 +#define MADERA_IN6L_DIG_VOL_MASK 0x00FF +#define MADERA_IN6L_DIG_VOL_SHIFT 0 +#define MADERA_IN6L_DIG_VOL_WIDTH 8
+/* (0x033A) DMIC6L_Control */ +#define MADERA_IN6L_DMIC_DLY_MASK 0x003F +#define MADERA_IN6L_DMIC_DLY_SHIFT 0 +#define MADERA_IN6L_DMIC_DLY_WIDTH 6 +#define MADERA_IN6_OSR_MASK 0x0700 +#define MADERA_IN6_OSR_SHIFT 8 +#define MADERA_IN6_OSR_WIDTH 3
+/* (0x033C) IN6R_Control */ +#define MADERA_IN6R_HPF_MASK 0x8000 +#define MADERA_IN6R_HPF_SHIFT 15 +#define MADERA_IN6R_HPF_WIDTH 1
+/* (0x033D) ADC_Digital_Volume_6R */ +#define MADERA_IN_VU 0x0200 +#define MADERA_IN_VU_MASK 0x0200 +#define MADERA_IN_VU_SHIFT 9 +#define MADERA_IN_VU_WIDTH 1 +#define MADERA_IN6R_MUTE 0x0100 +#define MADERA_IN6R_MUTE_MASK 0x0100 +#define MADERA_IN6R_MUTE_SHIFT 8 +#define MADERA_IN6R_MUTE_WIDTH 1 +#define MADERA_IN6R_DIG_VOL_MASK 0x00FF +#define MADERA_IN6R_DIG_VOL_SHIFT 0 +#define MADERA_IN6R_DIG_VOL_WIDTH 8
+/* (0x033E) DMIC6R_Control */ +#define MADERA_IN6R_DMIC_DLY_MASK 0x003F +#define MADERA_IN6R_DMIC_DLY_SHIFT 0 +#define MADERA_IN6R_DMIC_DLY_WIDTH 6 +#define MADERA_IN6_DMICCLK_SRC_MASK 0x1800 +#define MADERA_IN6_DMICCLK_SRC_SHIFT 11 +#define MADERA_IN6_DMICCLK_SRC_WIDTH 2
+/* (0x0400) Output_Enables_1 */ +#define MADERA_EP_SEL 0x8000 +#define MADERA_EP_SEL_MASK 0x8000 +#define MADERA_EP_SEL_SHIFT 15 +#define MADERA_EP_SEL_WIDTH 1 +#define MADERA_OUT6L_ENA 0x0800 +#define MADERA_OUT6L_ENA_MASK 0x0800 +#define MADERA_OUT6L_ENA_SHIFT 11 +#define MADERA_OUT6L_ENA_WIDTH 1 +#define MADERA_OUT6R_ENA 0x0400 +#define MADERA_OUT6R_ENA_MASK 0x0400 +#define MADERA_OUT6R_ENA_SHIFT 10 +#define MADERA_OUT6R_ENA_WIDTH 1 +#define MADERA_OUT5L_ENA 0x0200 +#define MADERA_OUT5L_ENA_MASK 0x0200 +#define MADERA_OUT5L_ENA_SHIFT 9 +#define MADERA_OUT5L_ENA_WIDTH 1 +#define MADERA_OUT5R_ENA 0x0100 +#define MADERA_OUT5R_ENA_MASK 0x0100 +#define MADERA_OUT5R_ENA_SHIFT 8 +#define MADERA_OUT5R_ENA_WIDTH 1 +#define MADERA_OUT4L_ENA 0x0080 +#define MADERA_OUT4L_ENA_MASK 0x0080 +#define MADERA_OUT4L_ENA_SHIFT 7 +#define MADERA_OUT4L_ENA_WIDTH 1 +#define MADERA_OUT4R_ENA 0x0040 +#define MADERA_OUT4R_ENA_MASK 0x0040 +#define MADERA_OUT4R_ENA_SHIFT 6 +#define MADERA_OUT4R_ENA_WIDTH 1 +#define MADERA_OUT3L_ENA 0x0020 +#define MADERA_OUT3L_ENA_MASK 0x0020 +#define MADERA_OUT3L_ENA_SHIFT 5 +#define MADERA_OUT3L_ENA_WIDTH 1 +#define MADERA_OUT3R_ENA 0x0010 +#define MADERA_OUT3R_ENA_MASK 0x0010 +#define MADERA_OUT3R_ENA_SHIFT 4 +#define MADERA_OUT3R_ENA_WIDTH 1 +#define MADERA_OUT2L_ENA 0x0008 +#define MADERA_OUT2L_ENA_MASK 0x0008 +#define MADERA_OUT2L_ENA_SHIFT 3 +#define MADERA_OUT2L_ENA_WIDTH 1 +#define MADERA_OUT2R_ENA 0x0004 +#define MADERA_OUT2R_ENA_MASK 0x0004 +#define MADERA_OUT2R_ENA_SHIFT 2 +#define MADERA_OUT2R_ENA_WIDTH 1 +#define MADERA_OUT1L_ENA 0x0002 +#define MADERA_OUT1L_ENA_MASK 0x0002 +#define MADERA_OUT1L_ENA_SHIFT 1 +#define MADERA_OUT1L_ENA_WIDTH 1 +#define MADERA_OUT1R_ENA 0x0001 +#define MADERA_OUT1R_ENA_MASK 0x0001 +#define MADERA_OUT1R_ENA_SHIFT 0 +#define MADERA_OUT1R_ENA_WIDTH 1
+/* (0x0401) Output_Status_1 */ +#define MADERA_OUT6L_ENA_STS 0x0800 +#define MADERA_OUT6L_ENA_STS_MASK 0x0800 +#define MADERA_OUT6L_ENA_STS_SHIFT 11 +#define MADERA_OUT6L_ENA_STS_WIDTH 1 +#define MADERA_OUT6R_ENA_STS 0x0400 +#define MADERA_OUT6R_ENA_STS_MASK 0x0400 +#define MADERA_OUT6R_ENA_STS_SHIFT 10 +#define MADERA_OUT6R_ENA_STS_WIDTH 1 +#define MADERA_OUT5L_ENA_STS 0x0200 +#define MADERA_OUT5L_ENA_STS_MASK 0x0200 +#define MADERA_OUT5L_ENA_STS_SHIFT 9 +#define MADERA_OUT5L_ENA_STS_WIDTH 1 +#define MADERA_OUT5R_ENA_STS 0x0100 +#define MADERA_OUT5R_ENA_STS_MASK 0x0100 +#define MADERA_OUT5R_ENA_STS_SHIFT 8 +#define MADERA_OUT5R_ENA_STS_WIDTH 1 +#define MADERA_OUT4L_ENA_STS 0x0080 +#define MADERA_OUT4L_ENA_STS_MASK 0x0080 +#define MADERA_OUT4L_ENA_STS_SHIFT 7 +#define MADERA_OUT4L_ENA_STS_WIDTH 1 +#define MADERA_OUT4R_ENA_STS 0x0040 +#define MADERA_OUT4R_ENA_STS_MASK 0x0040 +#define MADERA_OUT4R_ENA_STS_SHIFT 6 +#define MADERA_OUT4R_ENA_STS_WIDTH 1
+/* (0x0408) Output_Rate_1 */ +#define MADERA_OUT_RATE_MASK 0xF800 +#define MADERA_OUT_RATE_SHIFT 11 +#define MADERA_OUT_RATE_WIDTH 5 +#define MADERA_CP_DAC_MODE_MASK 0x0040 +#define MADERA_CP_DAC_MODE_SHIFT 6 +#define MADERA_CP_DAC_MODE_WIDTH 1
+/* (0x0409) Output_Volume_Ramp */ +#define MADERA_OUT_VD_RAMP_MASK 0x0070 +#define MADERA_OUT_VD_RAMP_SHIFT 4 +#define MADERA_OUT_VD_RAMP_WIDTH 3 +#define MADERA_OUT_VI_RAMP_MASK 0x0007 +#define MADERA_OUT_VI_RAMP_SHIFT 0 +#define MADERA_OUT_VI_RAMP_WIDTH 3
+/* (0x0410) Output_Path_Config_1L */ +#define MADERA_OUT1_LP_MODE 0x8000 +#define MADERA_OUT1_LP_MODE_MASK 0x8000 +#define MADERA_OUT1_LP_MODE_SHIFT 15 +#define MADERA_OUT1_LP_MODE_WIDTH 1 +#define MADERA_OUT1_OSR 0x2000 +#define MADERA_OUT1_OSR_MASK 0x2000 +#define MADERA_OUT1_OSR_SHIFT 13 +#define MADERA_OUT1_OSR_WIDTH 1 +#define MADERA_OUT1_MONO 0x1000 +#define MADERA_OUT1_MONO_MASK 0x1000 +#define MADERA_OUT1_MONO_SHIFT 12 +#define MADERA_OUT1_MONO_WIDTH 1 +#define MADERA_OUT1L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT1L_ANC_SRC_SHIFT 10 +#define MADERA_OUT1L_ANC_SRC_WIDTH 2 +#define MADERA_OUT1L_PGA_VOL_MASK 0x00FE +#define MADERA_OUT1L_PGA_VOL_SHIFT 1 +#define MADERA_OUT1L_PGA_VOL_WIDTH 7
+/* (0x0411) DAC_Digital_Volume_1L */ +#define MADERA_OUT1L_VU 0x0200 +#define MADERA_OUT1L_VU_MASK 0x0200 +#define MADERA_OUT1L_VU_SHIFT 9 +#define MADERA_OUT1L_VU_WIDTH 1 +#define MADERA_OUT1L_MUTE 0x0100 +#define MADERA_OUT1L_MUTE_MASK 0x0100 +#define MADERA_OUT1L_MUTE_SHIFT 8 +#define MADERA_OUT1L_MUTE_WIDTH 1 +#define MADERA_OUT1L_VOL_MASK 0x00FF +#define MADERA_OUT1L_VOL_SHIFT 0 +#define MADERA_OUT1L_VOL_WIDTH 8
+/* (0x0412) Output_Path_Config_1 */ +#define MADERA_HP1_GND_SEL_MASK 0x0007 +#define MADERA_HP1_GND_SEL_SHIFT 0 +#define MADERA_HP1_GND_SEL_WIDTH 3
+/* (0x0413) Noise_Gate_Select_1L */ +#define MADERA_OUT1L_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT1L_NGATE_SRC_SHIFT 0 +#define MADERA_OUT1L_NGATE_SRC_WIDTH 12
+/* (0x0414) Output_Path_Config_1R */ +#define MADERA_OUT1R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT1R_ANC_SRC_SHIFT 10 +#define MADERA_OUT1R_ANC_SRC_WIDTH 2 +#define MADERA_OUT1R_PGA_VOL_MASK 0x00FE +#define MADERA_OUT1R_PGA_VOL_SHIFT 1 +#define MADERA_OUT1R_PGA_VOL_WIDTH 7
+/* (0x0415) DAC_Digital_Volume_1R */ +#define MADERA_OUT1R_VU 0x0200 +#define MADERA_OUT1R_VU_MASK 0x0200 +#define MADERA_OUT1R_VU_SHIFT 9 +#define MADERA_OUT1R_VU_WIDTH 1 +#define MADERA_OUT1R_MUTE 0x0100 +#define MADERA_OUT1R_MUTE_MASK 0x0100 +#define MADERA_OUT1R_MUTE_SHIFT 8 +#define MADERA_OUT1R_MUTE_WIDTH 1 +#define MADERA_OUT1R_VOL_MASK 0x00FF +#define MADERA_OUT1R_VOL_SHIFT 0 +#define MADERA_OUT1R_VOL_WIDTH 8
+/* (0x0417) Noise_Gate_Select_1R */ +#define MADERA_OUT1R_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT1R_NGATE_SRC_SHIFT 0 +#define MADERA_OUT1R_NGATE_SRC_WIDTH 12
+/* (0x0418) Output_Path_Config_2L */ +#define MADERA_OUT2_LP_MODE 0x8000 +#define MADERA_OUT2_LP_MODE_MASK 0x8000 +#define MADERA_OUT2_LP_MODE_SHIFT 15 +#define MADERA_OUT2_LP_MODE_WIDTH 1 +#define MADERA_OUT2_OSR 0x2000 +#define MADERA_OUT2_OSR_MASK 0x2000 +#define MADERA_OUT2_OSR_SHIFT 13 +#define MADERA_OUT2_OSR_WIDTH 1 +#define MADERA_OUT2_MONO 0x1000 +#define MADERA_OUT2_MONO_MASK 0x1000 +#define MADERA_OUT2_MONO_SHIFT 12 +#define MADERA_OUT2_MONO_WIDTH 1 +#define MADERA_OUT2L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT2L_ANC_SRC_SHIFT 10 +#define MADERA_OUT2L_ANC_SRC_WIDTH 2 +#define MADERA_OUT2L_PGA_VOL_MASK 0x00FE +#define MADERA_OUT2L_PGA_VOL_SHIFT 1 +#define MADERA_OUT2L_PGA_VOL_WIDTH 7
+/* (0x0419) DAC_Digital_Volume_2L */ +#define MADERA_OUT2L_VU 0x0200 +#define MADERA_OUT2L_VU_MASK 0x0200 +#define MADERA_OUT2L_VU_SHIFT 9 +#define MADERA_OUT2L_VU_WIDTH 1 +#define MADERA_OUT2L_MUTE 0x0100 +#define MADERA_OUT2L_MUTE_MASK 0x0100 +#define MADERA_OUT2L_MUTE_SHIFT 8 +#define MADERA_OUT2L_MUTE_WIDTH 1 +#define MADERA_OUT2L_VOL_MASK 0x00FF +#define MADERA_OUT2L_VOL_SHIFT 0 +#define MADERA_OUT2L_VOL_WIDTH 8
+/* (0x041A) Output_Path_Config_2 */ +#define MADERA_HP2_GND_SEL_MASK 0x0007 +#define MADERA_HP2_GND_SEL_SHIFT 0 +#define MADERA_HP2_GND_SEL_WIDTH 3
+/* (0x041B) Noise_Gate_Select_2L */ +#define MADERA_OUT2L_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT2L_NGATE_SRC_SHIFT 0 +#define MADERA_OUT2L_NGATE_SRC_WIDTH 12
+/* (0x041C) Output_Path_Config_2R */ +#define MADERA_OUT2R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT2R_ANC_SRC_SHIFT 10 +#define MADERA_OUT2R_ANC_SRC_WIDTH 2 +#define MADERA_OUT2R_PGA_VOL_MASK 0x00FE +#define MADERA_OUT2R_PGA_VOL_SHIFT 1 +#define MADERA_OUT2R_PGA_VOL_WIDTH 7
+/* (0x041D) DAC_Digital_Volume_2R */ +#define MADERA_OUT2R_VU 0x0200 +#define MADERA_OUT2R_VU_MASK 0x0200 +#define MADERA_OUT2R_VU_SHIFT 9 +#define MADERA_OUT2R_VU_WIDTH 1 +#define MADERA_OUT2R_MUTE 0x0100 +#define MADERA_OUT2R_MUTE_MASK 0x0100 +#define MADERA_OUT2R_MUTE_SHIFT 8 +#define MADERA_OUT2R_MUTE_WIDTH 1 +#define MADERA_OUT2R_VOL_MASK 0x00FF +#define MADERA_OUT2R_VOL_SHIFT 0 +#define MADERA_OUT2R_VOL_WIDTH 8
+/* (0x041F) Noise_Gate_Select_2R */ +#define MADERA_OUT2R_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT2R_NGATE_SRC_SHIFT 0 +#define MADERA_OUT2R_NGATE_SRC_WIDTH 12
+/* (0x0420) Output_Path_Config_3L */ +#define MADERA_OUT3_LP_MODE 0x8000 +#define MADERA_OUT3_LP_MODE_MASK 0x8000 +#define MADERA_OUT3_LP_MODE_SHIFT 15 +#define MADERA_OUT3_LP_MODE_WIDTH 1 +#define MADERA_OUT3_OSR 0x2000 +#define MADERA_OUT3_OSR_MASK 0x2000 +#define MADERA_OUT3_OSR_SHIFT 13 +#define MADERA_OUT3_OSR_WIDTH 1 +#define MADERA_OUT3_MONO 0x1000 +#define MADERA_OUT3_MONO_MASK 0x1000 +#define MADERA_OUT3_MONO_SHIFT 12 +#define MADERA_OUT3_MONO_WIDTH 1 +#define MADERA_OUT3L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT3L_ANC_SRC_SHIFT 10 +#define MADERA_OUT3L_ANC_SRC_WIDTH 2 +#define MADERA_OUT3L_PGA_VOL_MASK 0x00FE +#define MADERA_OUT3L_PGA_VOL_SHIFT 1 +#define MADERA_OUT3L_PGA_VOL_WIDTH 7
+/* (0x0421) DAC_Digital_Volume_3L */ +#define MADERA_OUT3L_VU 0x0200 +#define MADERA_OUT3L_VU_MASK 0x0200 +#define MADERA_OUT3L_VU_SHIFT 9 +#define MADERA_OUT3L_VU_WIDTH 1 +#define MADERA_OUT3L_MUTE 0x0100 +#define MADERA_OUT3L_MUTE_MASK 0x0100 +#define MADERA_OUT3L_MUTE_SHIFT 8 +#define MADERA_OUT3L_MUTE_WIDTH 1 +#define MADERA_OUT3L_VOL_MASK 0x00FF +#define MADERA_OUT3L_VOL_SHIFT 0 +#define MADERA_OUT3L_VOL_WIDTH 8
+/* (0x0423) Noise_Gate_Select_3L */ +#define MADERA_OUT3_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT3_NGATE_SRC_SHIFT 0 +#define MADERA_OUT3_NGATE_SRC_WIDTH 12
+/* (0x0424) Output_Path_Config_3R */ +#define MADERA_OUT3R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT3R_ANC_SRC_SHIFT 10 +#define MADERA_OUT3R_ANC_SRC_WIDTH 2 +#define MADERA_OUT3R_PGA_VOL_MASK 0x00FE +#define MADERA_OUT3R_PGA_VOL_SHIFT 1 +#define MADERA_OUT3R_PGA_VOL_WIDTH 7
+/* (0x0425) DAC_Digital_Volume_3R */ +#define MADERA_OUT3R_VU 0x0200 +#define MADERA_OUT3R_VU_MASK 0x0200 +#define MADERA_OUT3R_VU_SHIFT 9 +#define MADERA_OUT3R_VU_WIDTH 1 +#define MADERA_OUT3R_MUTE 0x0100 +#define MADERA_OUT3R_MUTE_MASK 0x0100 +#define MADERA_OUT3R_MUTE_SHIFT 8 +#define MADERA_OUT3R_MUTE_WIDTH 1 +#define MADERA_OUT3R_VOL_MASK 0x00FF +#define MADERA_OUT3R_VOL_SHIFT 0 +#define MADERA_OUT3R_VOL_WIDTH 8
+/* (0x0428) Output_Path_Config_4L */ +#define MADERA_OUT4_OSR 0x2000 +#define MADERA_OUT4_OSR_MASK 0x2000 +#define MADERA_OUT4_OSR_SHIFT 13 +#define MADERA_OUT4_OSR_WIDTH 1 +#define MADERA_OUT4L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT4L_ANC_SRC_SHIFT 10 +#define MADERA_OUT4L_ANC_SRC_WIDTH 2
+/* (0x0429) DAC_Digital_Volume_4L */ +#define MADERA_OUT4L_VU 0x0200 +#define MADERA_OUT4L_VU_MASK 0x0200 +#define MADERA_OUT4L_VU_SHIFT 9 +#define MADERA_OUT4L_VU_WIDTH 1 +#define MADERA_OUT4L_MUTE 0x0100 +#define MADERA_OUT4L_MUTE_MASK 0x0100 +#define MADERA_OUT4L_MUTE_SHIFT 8 +#define MADERA_OUT4L_MUTE_WIDTH 1 +#define MADERA_OUT4L_VOL_MASK 0x00FF +#define MADERA_OUT4L_VOL_SHIFT 0 +#define MADERA_OUT4L_VOL_WIDTH 8
+/* (0x042B) Noise_Gate_Select_4L */ +#define MADERA_OUT4L_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT4L_NGATE_SRC_SHIFT 0 +#define MADERA_OUT4L_NGATE_SRC_WIDTH 12
+/* (0x042C) Output_Path_Config_4R */ +#define MADERA_OUT4R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT4R_ANC_SRC_SHIFT 10 +#define MADERA_OUT4R_ANC_SRC_WIDTH 2
+/* (0x042D) DAC_Digital_Volume_4R */ +#define MADERA_OUT4R_VU 0x0200 +#define MADERA_OUT4R_VU_MASK 0x0200 +#define MADERA_OUT4R_VU_SHIFT 9 +#define MADERA_OUT4R_VU_WIDTH 1 +#define MADERA_OUT4R_MUTE 0x0100 +#define MADERA_OUT4R_MUTE_MASK 0x0100 +#define MADERA_OUT4R_MUTE_SHIFT 8 +#define MADERA_OUT4R_MUTE_WIDTH 1 +#define MADERA_OUT4R_VOL_MASK 0x00FF +#define MADERA_OUT4R_VOL_SHIFT 0 +#define MADERA_OUT4R_VOL_WIDTH 8
+/* (0x042F) Noise_Gate_Select_4R */ +#define MADERA_OUT4R_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT4R_NGATE_SRC_SHIFT 0 +#define MADERA_OUT4R_NGATE_SRC_WIDTH 12
+/* (0x0430) Output_Path_Config_5L */ +#define MADERA_OUT5_OSR 0x2000 +#define MADERA_OUT5_OSR_MASK 0x2000 +#define MADERA_OUT5_OSR_SHIFT 13 +#define MADERA_OUT5_OSR_WIDTH 1 +#define MADERA_OUT5L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT5L_ANC_SRC_SHIFT 10 +#define MADERA_OUT5L_ANC_SRC_WIDTH 2
+/* (0x0431) DAC_Digital_Volume_5L */ +#define MADERA_OUT5L_VU 0x0200 +#define MADERA_OUT5L_VU_MASK 0x0200 +#define MADERA_OUT5L_VU_SHIFT 9 +#define MADERA_OUT5L_VU_WIDTH 1 +#define MADERA_OUT5L_MUTE 0x0100 +#define MADERA_OUT5L_MUTE_MASK 0x0100 +#define MADERA_OUT5L_MUTE_SHIFT 8 +#define MADERA_OUT5L_MUTE_WIDTH 1 +#define MADERA_OUT5L_VOL_MASK 0x00FF +#define MADERA_OUT5L_VOL_SHIFT 0 +#define MADERA_OUT5L_VOL_WIDTH 8
+/* (0x0433) Noise_Gate_Select_5L */ +#define MADERA_OUT5L_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT5L_NGATE_SRC_SHIFT 0 +#define MADERA_OUT5L_NGATE_SRC_WIDTH 12
+/* (0x0434) Output_Path_Config_5R */ +#define MADERA_OUT5R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT5R_ANC_SRC_SHIFT 10 +#define MADERA_OUT5R_ANC_SRC_WIDTH 2
+/* (0x0435) DAC_Digital_Volume_5R */ +#define MADERA_OUT5R_VU 0x0200 +#define MADERA_OUT5R_VU_MASK 0x0200 +#define MADERA_OUT5R_VU_SHIFT 9 +#define MADERA_OUT5R_VU_WIDTH 1 +#define MADERA_OUT5R_MUTE 0x0100 +#define MADERA_OUT5R_MUTE_MASK 0x0100 +#define MADERA_OUT5R_MUTE_SHIFT 8 +#define MADERA_OUT5R_MUTE_WIDTH 1 +#define MADERA_OUT5R_VOL_MASK 0x00FF +#define MADERA_OUT5R_VOL_SHIFT 0 +#define MADERA_OUT5R_VOL_WIDTH 8
+/* (0x0437) Noise_Gate_Select_5R */ +#define MADERA_OUT5R_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT5R_NGATE_SRC_SHIFT 0 +#define MADERA_OUT5R_NGATE_SRC_WIDTH 12
+/* (0x0438) Output_Path_Config_6L */ +#define MADERA_OUT6_OSR 0x2000 +#define MADERA_OUT6_OSR_MASK 0x2000 +#define MADERA_OUT6_OSR_SHIFT 13 +#define MADERA_OUT6_OSR_WIDTH 1 +#define MADERA_OUT6L_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT6L_ANC_SRC_SHIFT 10 +#define MADERA_OUT6L_ANC_SRC_WIDTH 2
+/* (0x0439) DAC_Digital_Volume_6L */ +#define MADERA_OUT6L_VU 0x0200 +#define MADERA_OUT6L_VU_MASK 0x0200 +#define MADERA_OUT6L_VU_SHIFT 9 +#define MADERA_OUT6L_VU_WIDTH 1 +#define MADERA_OUT6L_MUTE 0x0100 +#define MADERA_OUT6L_MUTE_MASK 0x0100 +#define MADERA_OUT6L_MUTE_SHIFT 8 +#define MADERA_OUT6L_MUTE_WIDTH 1 +#define MADERA_OUT6L_VOL_MASK 0x00FF +#define MADERA_OUT6L_VOL_SHIFT 0 +#define MADERA_OUT6L_VOL_WIDTH 8
+/* (0x043B) Noise_Gate_Select_6L */ +#define MADERA_OUT6L_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT6L_NGATE_SRC_SHIFT 0 +#define MADERA_OUT6L_NGATE_SRC_WIDTH 12
+/* (0x043C) Output_Path_Config_6R */ +#define MADERA_OUT6R_ANC_SRC_MASK 0x0C00 +#define MADERA_OUT6R_ANC_SRC_SHIFT 10 +#define MADERA_OUT6R_ANC_SRC_WIDTH 2
+/* (0x043D) DAC_Digital_Volume_6R */ +#define MADERA_OUT6R_VU 0x0200 +#define MADERA_OUT6R_VU_MASK 0x0200 +#define MADERA_OUT6R_VU_SHIFT 9 +#define MADERA_OUT6R_VU_WIDTH 1 +#define MADERA_OUT6R_MUTE 0x0100 +#define MADERA_OUT6R_MUTE_MASK 0x0100 +#define MADERA_OUT6R_MUTE_SHIFT 8 +#define MADERA_OUT6R_MUTE_WIDTH 1 +#define MADERA_OUT6R_VOL_MASK 0x00FF +#define MADERA_OUT6R_VOL_SHIFT 0 +#define MADERA_OUT6R_VOL_WIDTH 8
+/* (0x043F) Noise_Gate_Select_6R */ +#define MADERA_OUT6R_NGATE_SRC_MASK 0x0FFF +#define MADERA_OUT6R_NGATE_SRC_SHIFT 0 +#define MADERA_OUT6R_NGATE_SRC_WIDTH 12
+/* (0x0440) - DRE Enable */ +#define MADERA_DRE3R_ENA 0x0020 +#define MADERA_DRE3R_ENA_MASK 0x0020 +#define MADERA_DRE3R_ENA_SHIFT 5 +#define MADERA_DRE3R_ENA_WIDTH 1 +#define MADERA_DRE3L_ENA 0x0010 +#define MADERA_DRE3L_ENA_MASK 0x0010 +#define MADERA_DRE3L_ENA_SHIFT 4 +#define MADERA_DRE3L_ENA_WIDTH 1 +#define MADERA_DRE2R_ENA 0x0008 +#define MADERA_DRE2R_ENA_MASK 0x0008 +#define MADERA_DRE2R_ENA_SHIFT 3 +#define MADERA_DRE2R_ENA_WIDTH 1 +#define MADERA_DRE2L_ENA 0x0004 +#define MADERA_DRE2L_ENA_MASK 0x0004 +#define MADERA_DRE2L_ENA_SHIFT 2 +#define MADERA_DRE2L_ENA_WIDTH 1 +#define MADERA_DRE1R_ENA 0x0002 +#define MADERA_DRE1R_ENA_MASK 0x0002 +#define MADERA_DRE1R_ENA_SHIFT 1 +#define MADERA_DRE1R_ENA_WIDTH 1 +#define MADERA_DRE1L_ENA 0x0001 +#define MADERA_DRE1L_ENA_MASK 0x0001 +#define MADERA_DRE1L_ENA_SHIFT 0 +#define MADERA_DRE1L_ENA_WIDTH 1
+/* (0x0448) - EDRE_Enable */ +#define MADERA_EDRE_OUT4L_THR3_ENA 0x0800 +#define MADERA_EDRE_OUT4L_THR3_ENA_MASK 0x0800 +#define MADERA_EDRE_OUT4L_THR3_ENA_SHIFT 11 +#define MADERA_EDRE_OUT4L_THR3_ENA_WIDTH 1 +#define MADERA_EDRE_OUT4R_THR3_ENA 0x0400 +#define MADERA_EDRE_OUT4R_THR3_ENA_MASK 0x0400 +#define MADERA_EDRE_OUT4R_THR3_ENA_SHIFT 10 +#define MADERA_EDRE_OUT4R_THR3_ENA_WIDTH 1 +#define MADERA_EDRE_OUT4L_THR2_ENA 0x0200 +#define MADERA_EDRE_OUT4L_THR2_ENA_MASK 0x0200 +#define MADERA_EDRE_OUT4L_THR2_ENA_SHIFT 9 +#define MADERA_EDRE_OUT4L_THR2_ENA_WIDTH 1 +#define MADERA_EDRE_OUT4R_THR2_ENA 0x0100 +#define MADERA_EDRE_OUT4R_THR2_ENA_MASK 0x0100 +#define MADERA_EDRE_OUT4R_THR2_ENA_SHIFT 8 +#define MADERA_EDRE_OUT4R_THR2_ENA_WIDTH 1 +#define MADERA_EDRE_OUT4L_THR1_ENA 0x0080 +#define MADERA_EDRE_OUT4L_THR1_ENA_MASK 0x0080 +#define MADERA_EDRE_OUT4L_THR1_ENA_SHIFT 7 +#define MADERA_EDRE_OUT4L_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT4R_THR1_ENA 0x0040 +#define MADERA_EDRE_OUT4R_THR1_ENA_MASK 0x0040 +#define MADERA_EDRE_OUT4R_THR1_ENA_SHIFT 6 +#define MADERA_EDRE_OUT4R_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT3L_THR1_ENA 0x0020 +#define MADERA_EDRE_OUT3L_THR1_ENA_MASK 0x0020 +#define MADERA_EDRE_OUT3L_THR1_ENA_SHIFT 5 +#define MADERA_EDRE_OUT3L_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT3R_THR1_ENA 0x0010 +#define MADERA_EDRE_OUT3R_THR1_ENA_MASK 0x0010 +#define MADERA_EDRE_OUT3R_THR1_ENA_SHIFT 4 +#define MADERA_EDRE_OUT3R_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT2L_THR1_ENA 0x0008 +#define MADERA_EDRE_OUT2L_THR1_ENA_MASK 0x0008 +#define MADERA_EDRE_OUT2L_THR1_ENA_SHIFT 3 +#define MADERA_EDRE_OUT2L_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT2R_THR1_ENA 0x0004 +#define MADERA_EDRE_OUT2R_THR1_ENA_MASK 0x0004 +#define MADERA_EDRE_OUT2R_THR1_ENA_SHIFT 2 +#define MADERA_EDRE_OUT2R_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT1L_THR1_ENA 0x0002 +#define MADERA_EDRE_OUT1L_THR1_ENA_MASK 0x0002 +#define MADERA_EDRE_OUT1L_THR1_ENA_SHIFT 1 +#define MADERA_EDRE_OUT1L_THR1_ENA_WIDTH 1 +#define MADERA_EDRE_OUT1R_THR1_ENA 0x0001 +#define MADERA_EDRE_OUT1R_THR1_ENA_MASK 0x0001 +#define MADERA_EDRE_OUT1R_THR1_ENA_SHIFT 0 +#define MADERA_EDRE_OUT1R_THR1_ENA_WIDTH 1
+/* (0x044A) - EDRE_Manual */ +#define MADERA_EDRE_OUT3L_MANUAL 0x0020 +#define MADERA_EDRE_OUT3L_MANUAL_MASK 0x0020 +#define MADERA_EDRE_OUT3L_MANUAL_SHIFT 5 +#define MADERA_EDRE_OUT3L_MANUAL_WIDTH 1 +#define MADERA_EDRE_OUT3R_MANUAL 0x0010 +#define MADERA_EDRE_OUT3R_MANUAL_MASK 0x0010 +#define MADERA_EDRE_OUT3R_MANUAL_SHIFT 4 +#define MADERA_EDRE_OUT3R_MANUAL_WIDTH 1 +#define MADERA_EDRE_OUT2L_MANUAL 0x0008 +#define MADERA_EDRE_OUT2L_MANUAL_MASK 0x0008 +#define MADERA_EDRE_OUT2L_MANUAL_SHIFT 3 +#define MADERA_EDRE_OUT2L_MANUAL_WIDTH 1 +#define MADERA_EDRE_OUT2R_MANUAL 0x0004 +#define MADERA_EDRE_OUT2R_MANUAL_MASK 0x0004 +#define MADERA_EDRE_OUT2R_MANUAL_SHIFT 2 +#define MADERA_EDRE_OUT2R_MANUAL_WIDTH 1 +#define MADERA_EDRE_OUT1L_MANUAL 0x0002 +#define MADERA_EDRE_OUT1L_MANUAL_MASK 0x0002 +#define MADERA_EDRE_OUT1L_MANUAL_SHIFT 1 +#define MADERA_EDRE_OUT1L_MANUAL_WIDTH 1 +#define MADERA_EDRE_OUT1R_MANUAL 0x0001 +#define MADERA_EDRE_OUT1R_MANUAL_MASK 0x0001 +#define MADERA_EDRE_OUT1R_MANUAL_SHIFT 0 +#define MADERA_EDRE_OUT1R_MANUAL_WIDTH 1
+/* (0x0450) - DAC AEC Control 1 */ +#define MADERA_AEC1_LOOPBACK_SRC_MASK 0x003C +#define MADERA_AEC1_LOOPBACK_SRC_SHIFT 2 +#define MADERA_AEC1_LOOPBACK_SRC_WIDTH 4 +#define MADERA_AEC1_ENA_STS 0x0002 +#define MADERA_AEC1_ENA_STS_MASK 0x0002 +#define MADERA_AEC1_ENA_STS_SHIFT 1 +#define MADERA_AEC1_ENA_STS_WIDTH 1 +#define MADERA_AEC1_LOOPBACK_ENA 0x0001 +#define MADERA_AEC1_LOOPBACK_ENA_MASK 0x0001 +#define MADERA_AEC1_LOOPBACK_ENA_SHIFT 0 +#define MADERA_AEC1_LOOPBACK_ENA_WIDTH 1
+/* (0x0451) DAC_AEC_Control_2 */ +#define MADERA_AEC2_LOOPBACK_SRC_MASK 0x003C +#define MADERA_AEC2_LOOPBACK_SRC_SHIFT 2 +#define MADERA_AEC2_LOOPBACK_SRC_WIDTH 4 +#define MADERA_AEC2_ENA_STS 0x0002 +#define MADERA_AEC2_ENA_STS_MASK 0x0002 +#define MADERA_AEC2_ENA_STS_SHIFT 1 +#define MADERA_AEC2_ENA_STS_WIDTH 1 +#define MADERA_AEC2_LOOPBACK_ENA 0x0001 +#define MADERA_AEC2_LOOPBACK_ENA_MASK 0x0001 +#define MADERA_AEC2_LOOPBACK_ENA_SHIFT 0 +#define MADERA_AEC2_LOOPBACK_ENA_WIDTH 1
+/* (0x0458) Noise_Gate_Control */ +#define MADERA_NGATE_HOLD_MASK 0x0030 +#define MADERA_NGATE_HOLD_SHIFT 4 +#define MADERA_NGATE_HOLD_WIDTH 2 +#define MADERA_NGATE_THR_MASK 0x000E +#define MADERA_NGATE_THR_SHIFT 1 +#define MADERA_NGATE_THR_WIDTH 3 +#define MADERA_NGATE_ENA 0x0001 +#define MADERA_NGATE_ENA_MASK 0x0001 +#define MADERA_NGATE_ENA_SHIFT 0 +#define MADERA_NGATE_ENA_WIDTH 1
+/* (0x0490) PDM_SPK1_CTRL_1 */ +#define MADERA_SPK1R_MUTE 0x2000 +#define MADERA_SPK1R_MUTE_MASK 0x2000 +#define MADERA_SPK1R_MUTE_SHIFT 13 +#define MADERA_SPK1R_MUTE_WIDTH 1 +#define MADERA_SPK1L_MUTE 0x1000 +#define MADERA_SPK1L_MUTE_MASK 0x1000 +#define MADERA_SPK1L_MUTE_SHIFT 12 +#define MADERA_SPK1L_MUTE_WIDTH 1 +#define MADERA_SPK1_MUTE_ENDIAN 0x0100 +#define MADERA_SPK1_MUTE_ENDIAN_MASK 0x0100 +#define MADERA_SPK1_MUTE_ENDIAN_SHIFT 8 +#define MADERA_SPK1_MUTE_ENDIAN_WIDTH 1 +#define MADERA_SPK1_MUTE_SEQ1_MASK 0x00FF +#define MADERA_SPK1_MUTE_SEQ1_SHIFT 0 +#define MADERA_SPK1_MUTE_SEQ1_WIDTH 8
+/* (0x0491) PDM_SPK1_CTRL_2 */ +#define MADERA_SPK1_FMT 0x0001 +#define MADERA_SPK1_FMT_MASK 0x0001 +#define MADERA_SPK1_FMT_SHIFT 0 +#define MADERA_SPK1_FMT_WIDTH 1
+/* (0x0492) PDM_SPK2_CTRL_1 */ +#define MADERA_SPK2R_MUTE 0x2000 +#define MADERA_SPK2R_MUTE_MASK 0x2000 +#define MADERA_SPK2R_MUTE_SHIFT 13 +#define MADERA_SPK2R_MUTE_WIDTH 1 +#define MADERA_SPK2L_MUTE 0x1000 +#define MADERA_SPK2L_MUTE_MASK 0x1000 +#define MADERA_SPK2L_MUTE_SHIFT 12 +#define MADERA_SPK2L_MUTE_WIDTH 1 +#define MADERA_SPK2_MUTE_ENDIAN 0x0100 +#define MADERA_SPK2_MUTE_ENDIAN_MASK 0x0100 +#define MADERA_SPK2_MUTE_ENDIAN_SHIFT 8 +#define MADERA_SPK2_MUTE_ENDIAN_WIDTH 1 +#define MADERA_SPK2_MUTE_SEQ_MASK 0x00FF +#define MADERA_SPK2_MUTE_SEQ_SHIFT 0 +#define MADERA_SPK2_MUTE_SEQ_WIDTH 8
+/* (0x0493) PDM_SPK2_CTRL_2 */ +#define MADERA_SPK2_FMT 0x0001 +#define MADERA_SPK2_FMT_MASK 0x0001 +#define MADERA_SPK2_FMT_SHIFT 0 +#define MADERA_SPK2_FMT_WIDTH 1
+/* (0x04A0) - HP1 Short Circuit Ctrl */ +#define MADERA_HP1_SC_ENA 0x1000 +#define MADERA_HP1_SC_ENA_MASK 0x1000 +#define MADERA_HP1_SC_ENA_SHIFT 12 +#define MADERA_HP1_SC_ENA_WIDTH 1
+/* (0x04A1) - HP2 Short Circuit Ctrl */ +#define MADERA_HP2_SC_ENA 0x1000 +#define MADERA_HP2_SC_ENA_MASK 0x1000 +#define MADERA_HP2_SC_ENA_SHIFT 12 +#define MADERA_HP2_SC_ENA_WIDTH 1
+/* (0x04A2) - HP3 Short Circuit Ctrl */ +#define MADERA_HP3_SC_ENA 0x1000 +#define MADERA_HP3_SC_ENA_MASK 0x1000 +#define MADERA_HP3_SC_ENA_SHIFT 12 +#define MADERA_HP3_SC_ENA_WIDTH 1
+/* (0x04A4) HP Test Ctrl 1 */ +#define MADERA_HP1_TST_CAP_SEL_MASK 0x0003 +#define MADERA_HP1_TST_CAP_SEL_SHIFT 0 +#define MADERA_HP1_TST_CAP_SEL_WIDTH 2
+/* (0x04A8) - HP_Test_Ctrl_5 */ +#define MADERA_HP1L_TST_CINT 0x4000 +#define MADERA_HP1L_TST_CINT_MASK 0x4000 +#define MADERA_HP1L_TST_CINT_SHIFT 14 +#define MADERA_HP1L_TST_CINT_WIDTH 1 +#define MADERA_HP1L_TST_GBW 0x3000 +#define MADERA_HP1L_TST_GBW_MASK 0x3000 +#define MADERA_HP1L_TST_GBW_SHIFT 12 +#define MADERA_HP1L_TST_GBW_WIDTH 2 +#define MADERA_HP1L_TST_PGAS 0x0800 +#define MADERA_HP1L_TST_PGAS_MASK 0x0800 +#define MADERA_HP1L_TST_PGAS_SHIFT 11 +#define MADERA_HP1L_TST_PGAS_WIDTH 1 +#define MADERA_HP1L_TST_DUMP 0x0400 +#define MADERA_HP1L_TST_DUMP_MASK 0x0400 +#define MADERA_HP1L_TST_DUMP_SHIFT 10 +#define MADERA_HP1L_TST_DUMP_WIDTH 1 +#define MADERA_HP1L_TST_RST 0x0200 +#define MADERA_HP1L_TST_RST_MASK 0x0200 +#define MADERA_HP1L_TST_RST_SHIFT 9 +#define MADERA_HP1L_TST_RST_WIDTH 1 +#define MADERA_HP1L_ONEFLT 0x0100 +#define MADERA_HP1L_ONEFLT_MASK 0x0100 +#define MADERA_HP1L_ONEFLT_SHIFT 8 +#define MADERA_HP1L_ONEFLT_WIDTH 1 +#define MADERA_HP1L_TST_THDOFF 0x00C0 +#define MADERA_HP1L_TST_THDOFF_MASK 0x00C0 +#define MADERA_HP1L_TST_THDOFF_SHIFT 6 +#define MADERA_HP1L_TST_THDOFF_WIDTH 2 +#define MADERA_HP1L_CTRL_IOUT 0x0030 +#define MADERA_HP1L_CTRL_IOUT_MASK 0x0030 +#define MADERA_HP1L_CTRL_IOUT_SHIFT 4 +#define MADERA_HP1L_CTRL_IOUT_WIDTH 2 +#define MADERA_HP1L_TST_ILG 0x0008 +#define MADERA_HP1L_TST_ILG_MASK 0x0008 +#define MADERA_HP1L_TST_ILG_SHIFT 3 +#define MADERA_HP1L_TST_ILG_WIDTH 1 +#define MADERA_HP1L_TST_IBIAS 0x0003 +#define MADERA_HP1L_TST_IBIAS_MASK 0x0003 +#define MADERA_HP1L_TST_IBIAS_SHIFT 0 +#define MADERA_HP1L_TST_IBIAS_WIDTH 2
+/* (0x04A9) - HP_Test_Ctrl_6 */ +#define MADERA_HP1R_TST_CINT 0x4000 +#define MADERA_HP1R_TST_CINT_MASK 0x4000 +#define MADERA_HP1R_TST_CINT_SHIFT 14 +#define MADERA_HP1R_TST_CINT_WIDTH 1 +#define MADERA_HP1R_TST_GBW 0x3000 +#define MADERA_HP1R_TST_GBW_MASK 0x3000 +#define MADERA_HP1R_TST_GBW_SHIFT 12 +#define MADERA_HP1R_TST_GBW_WIDTH 2 +#define MADERA_HP1R_TST_PGAS 0x0800 +#define MADERA_HP1R_TST_PGAS_MASK 0x0800 +#define MADERA_HP1R_TST_PGAS_SHIFT 11 +#define MADERA_HP1R_TST_PGAS_WIDTH 1 +#define MADERA_HP1R_TST_DUMP 0x0400 +#define MADERA_HP1R_TST_DUMP_MASK 0x0400 +#define MADERA_HP1R_TST_DUMP_SHIFT 10 +#define MADERA_HP1R_TST_DUMP_WIDTH 1 +#define MADERA_HP1R_TST_RST 0x0200 +#define MADERA_HP1R_TST_RST_MASK 0x0200 +#define MADERA_HP1R_TST_RST_SHIFT 9 +#define MADERA_HP1R_TST_RST_WIDTH 1 +#define MADERA_HP1R_ONEFLT 0x0100 +#define MADERA_HP1R_ONEFLT_MASK 0x0100 +#define MADERA_HP1R_ONEFLT_SHIFT 8 +#define MADERA_HP1R_ONEFLT_WIDTH 1 +#define MADERA_HP1R_TST_THDOFF 0x00C0 +#define MADERA_HP1R_TST_THDOFF_MASK 0x00C0 +#define MADERA_HP1R_TST_THDOFF_SHIFT 6 +#define MADERA_HP1R_TST_THDOFF_WIDTH 2 +#define MADERA_HP1R_CTRL_IOUT 0x0030 +#define MADERA_HP1R_CTRL_IOUT_MASK 0x0030 +#define MADERA_HP1R_CTRL_IOUT_SHIFT 4 +#define MADERA_HP1R_CTRL_IOUT_WIDTH 2 +#define MADERA_HP1R_TST_ILG 0x0008 +#define MADERA_HP1R_TST_ILG_MASK 0x0008 +#define MADERA_HP1R_TST_ILG_SHIFT 3 +#define MADERA_HP1R_TST_ILG_WIDTH 1 +#define MADERA_HP1R_TST_IBIAS 0x0003 +#define MADERA_HP1R_TST_IBIAS_MASK 0x0003 +#define MADERA_HP1R_TST_IBIAS_SHIFT 0 +#define MADERA_HP1R_TST_IBIAS_WIDTH 2
+/* (0x0500) AIF1_BCLK_Ctrl */ +#define MADERA_AIF1_BCLK_INV 0x0080 +#define MADERA_AIF1_BCLK_INV_MASK 0x0080 +#define MADERA_AIF1_BCLK_INV_SHIFT 7 +#define MADERA_AIF1_BCLK_INV_WIDTH 1 +#define MADERA_AIF1_BCLK_FRC 0x0040 +#define MADERA_AIF1_BCLK_FRC_MASK 0x0040 +#define MADERA_AIF1_BCLK_FRC_SHIFT 6 +#define MADERA_AIF1_BCLK_FRC_WIDTH 1 +#define MADERA_AIF1_BCLK_MSTR 0x0020 +#define MADERA_AIF1_BCLK_MSTR_MASK 0x0020 +#define MADERA_AIF1_BCLK_MSTR_SHIFT 5 +#define MADERA_AIF1_BCLK_MSTR_WIDTH 1 +#define MADERA_AIF1_BCLK_FREQ_MASK 0x001F +#define MADERA_AIF1_BCLK_FREQ_SHIFT 0 +#define MADERA_AIF1_BCLK_FREQ_WIDTH 5
+/* (0x0501) AIF1_Tx_Pin_Ctrl */ +#define MADERA_AIF1TX_DAT_TRI 0x0020 +#define MADERA_AIF1TX_DAT_TRI_MASK 0x0020 +#define MADERA_AIF1TX_DAT_TRI_SHIFT 5 +#define MADERA_AIF1TX_DAT_TRI_WIDTH 1 +#define MADERA_AIF1TX_LRCLK_SRC 0x0008 +#define MADERA_AIF1TX_LRCLK_SRC_MASK 0x0008 +#define MADERA_AIF1TX_LRCLK_SRC_SHIFT 3 +#define MADERA_AIF1TX_LRCLK_SRC_WIDTH 1 +#define MADERA_AIF1TX_LRCLK_INV 0x0004 +#define MADERA_AIF1TX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF1TX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF1TX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF1TX_LRCLK_FRC 0x0002 +#define MADERA_AIF1TX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF1TX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF1TX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF1TX_LRCLK_MSTR 0x0001 +#define MADERA_AIF1TX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF1TX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF1TX_LRCLK_MSTR_WIDTH 1
+/* (0x0502) AIF1_Rx_Pin_Ctrl */ +#define MADERA_AIF1RX_LRCLK_INV 0x0004 +#define MADERA_AIF1RX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF1RX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF1RX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF1RX_LRCLK_FRC 0x0002 +#define MADERA_AIF1RX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF1RX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF1RX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF1RX_LRCLK_MSTR 0x0001 +#define MADERA_AIF1RX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF1RX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF1RX_LRCLK_MSTR_WIDTH 1
+/* (0x0503) AIF1_Rate_Ctrl */ +#define MADERA_AIF1_RATE_MASK 0xF800 +#define MADERA_AIF1_RATE_SHIFT 11 +#define MADERA_AIF1_RATE_WIDTH 5 +#define MADERA_AIF1_TRI 0x0040 +#define MADERA_AIF1_TRI_MASK 0x0040 +#define MADERA_AIF1_TRI_SHIFT 6 +#define MADERA_AIF1_TRI_WIDTH 1
+/* (0x0504) AIF1_Format */ +#define MADERA_AIF1_FMT_MASK 0x0007 +#define MADERA_AIF1_FMT_SHIFT 0 +#define MADERA_AIF1_FMT_WIDTH 3
+/* (0x0506) AIF1_Rx_BCLK_Rate */ +#define MADERA_AIF1RX_BCPF_MASK 0x1FFF +#define MADERA_AIF1RX_BCPF_SHIFT 0 +#define MADERA_AIF1RX_BCPF_WIDTH 13
+/* (0x0507) AIF1_Frame_Ctrl_1 */ +#define MADERA_AIF1TX_WL_MASK 0x3F00 +#define MADERA_AIF1TX_WL_SHIFT 8 +#define MADERA_AIF1TX_WL_WIDTH 6 +#define MADERA_AIF1TX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF1TX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF1TX_SLOT_LEN_WIDTH 8
+/* (0x0508) AIF1_Frame_Ctrl_2 */ +#define MADERA_AIF1RX_WL_MASK 0x3F00 +#define MADERA_AIF1RX_WL_SHIFT 8 +#define MADERA_AIF1RX_WL_WIDTH 6 +#define MADERA_AIF1RX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF1RX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF1RX_SLOT_LEN_WIDTH 8
+/* (0x0509) AIF1_Frame_Ctrl_3 */ +#define MADERA_AIF1TX1_SLOT_MASK 0x003F +#define MADERA_AIF1TX1_SLOT_SHIFT 0 +#define MADERA_AIF1TX1_SLOT_WIDTH 6
+/* (0x050A) AIF1_Frame_Ctrl_4 */ +#define MADERA_AIF1TX2_SLOT_MASK 0x003F +#define MADERA_AIF1TX2_SLOT_SHIFT 0 +#define MADERA_AIF1TX2_SLOT_WIDTH 6
+/* (0x050B) AIF1_Frame_Ctrl_5 */ +#define MADERA_AIF1TX3_SLOT_MASK 0x003F +#define MADERA_AIF1TX3_SLOT_SHIFT 0 +#define MADERA_AIF1TX3_SLOT_WIDTH 6
+/* (0x050C) AIF1_Frame_Ctrl_6 */ +#define MADERA_AIF1TX4_SLOT_MASK 0x003F +#define MADERA_AIF1TX4_SLOT_SHIFT 0 +#define MADERA_AIF1TX4_SLOT_WIDTH 6
+/* (0x050D) AIF1_Frame_Ctrl_7 */ +#define MADERA_AIF1TX5_SLOT_MASK 0x003F +#define MADERA_AIF1TX5_SLOT_SHIFT 0 +#define MADERA_AIF1TX5_SLOT_WIDTH 6
+/* (0x050E) AIF1_Frame_Ctrl_8 */ +#define MADERA_AIF1TX6_SLOT_MASK 0x003F +#define MADERA_AIF1TX6_SLOT_SHIFT 0 +#define MADERA_AIF1TX6_SLOT_WIDTH 6
+/* (0x050F) AIF1_Frame_Ctrl_9 */ +#define MADERA_AIF1TX7_SLOT_MASK 0x003F +#define MADERA_AIF1TX7_SLOT_SHIFT 0 +#define MADERA_AIF1TX7_SLOT_WIDTH 6
+/* (0x0510) AIF1_Frame_Ctrl_10 */ +#define MADERA_AIF1TX8_SLOT_MASK 0x003F +#define MADERA_AIF1TX8_SLOT_SHIFT 0 +#define MADERA_AIF1TX8_SLOT_WIDTH 6
+/* (0x0511) AIF1_Frame_Ctrl_11 */ +#define MADERA_AIF1RX1_SLOT_MASK 0x003F +#define MADERA_AIF1RX1_SLOT_SHIFT 0 +#define MADERA_AIF1RX1_SLOT_WIDTH 6
+/* (0x0512) AIF1_Frame_Ctrl_12 */ +#define MADERA_AIF1RX2_SLOT_MASK 0x003F +#define MADERA_AIF1RX2_SLOT_SHIFT 0 +#define MADERA_AIF1RX2_SLOT_WIDTH 6
+/* (0x0513) AIF1_Frame_Ctrl_13 */ +#define MADERA_AIF1RX3_SLOT_MASK 0x003F +#define MADERA_AIF1RX3_SLOT_SHIFT 0 +#define MADERA_AIF1RX3_SLOT_WIDTH 6
+/* (0x0514) AIF1_Frame_Ctrl_14 */ +#define MADERA_AIF1RX4_SLOT_MASK 0x003F +#define MADERA_AIF1RX4_SLOT_SHIFT 0 +#define MADERA_AIF1RX4_SLOT_WIDTH 6
+/* (0x0515) AIF1_Frame_Ctrl_15 */ +#define MADERA_AIF1RX5_SLOT_MASK 0x003F +#define MADERA_AIF1RX5_SLOT_SHIFT 0 +#define MADERA_AIF1RX5_SLOT_WIDTH 6
+/* (0x0516) AIF1_Frame_Ctrl_16 */ +#define MADERA_AIF1RX6_SLOT_MASK 0x003F +#define MADERA_AIF1RX6_SLOT_SHIFT 0 +#define MADERA_AIF1RX6_SLOT_WIDTH 6
+/* (0x0517) AIF1_Frame_Ctrl_17 */ +#define MADERA_AIF1RX7_SLOT_MASK 0x003F +#define MADERA_AIF1RX7_SLOT_SHIFT 0 +#define MADERA_AIF1RX7_SLOT_WIDTH 6
+/* (0x0518) AIF1_Frame_Ctrl_18 */ +#define MADERA_AIF1RX8_SLOT_MASK 0x003F +#define MADERA_AIF1RX8_SLOT_SHIFT 0 +#define MADERA_AIF1RX8_SLOT_WIDTH 6
+/* (0x0519) AIF1_Tx_Enables */ +#define MADERA_AIF1TX8_ENA 0x0080 +#define MADERA_AIF1TX8_ENA_MASK 0x0080 +#define MADERA_AIF1TX8_ENA_SHIFT 7 +#define MADERA_AIF1TX8_ENA_WIDTH 1 +#define MADERA_AIF1TX7_ENA 0x0040 +#define MADERA_AIF1TX7_ENA_MASK 0x0040 +#define MADERA_AIF1TX7_ENA_SHIFT 6 +#define MADERA_AIF1TX7_ENA_WIDTH 1 +#define MADERA_AIF1TX6_ENA 0x0020 +#define MADERA_AIF1TX6_ENA_MASK 0x0020 +#define MADERA_AIF1TX6_ENA_SHIFT 5 +#define MADERA_AIF1TX6_ENA_WIDTH 1 +#define MADERA_AIF1TX5_ENA 0x0010 +#define MADERA_AIF1TX5_ENA_MASK 0x0010 +#define MADERA_AIF1TX5_ENA_SHIFT 4 +#define MADERA_AIF1TX5_ENA_WIDTH 1 +#define MADERA_AIF1TX4_ENA 0x0008 +#define MADERA_AIF1TX4_ENA_MASK 0x0008 +#define MADERA_AIF1TX4_ENA_SHIFT 3 +#define MADERA_AIF1TX4_ENA_WIDTH 1 +#define MADERA_AIF1TX3_ENA 0x0004 +#define MADERA_AIF1TX3_ENA_MASK 0x0004 +#define MADERA_AIF1TX3_ENA_SHIFT 2 +#define MADERA_AIF1TX3_ENA_WIDTH 1 +#define MADERA_AIF1TX2_ENA 0x0002 +#define MADERA_AIF1TX2_ENA_MASK 0x0002 +#define MADERA_AIF1TX2_ENA_SHIFT 1 +#define MADERA_AIF1TX2_ENA_WIDTH 1 +#define MADERA_AIF1TX1_ENA 0x0001 +#define MADERA_AIF1TX1_ENA_MASK 0x0001 +#define MADERA_AIF1TX1_ENA_SHIFT 0 +#define MADERA_AIF1TX1_ENA_WIDTH 1
+/* (0x051A) AIF1_Rx_Enables */ +#define MADERA_AIF1RX8_ENA 0x0080 +#define MADERA_AIF1RX8_ENA_MASK 0x0080 +#define MADERA_AIF1RX8_ENA_SHIFT 7 +#define MADERA_AIF1RX8_ENA_WIDTH 1 +#define MADERA_AIF1RX7_ENA 0x0040 +#define MADERA_AIF1RX7_ENA_MASK 0x0040 +#define MADERA_AIF1RX7_ENA_SHIFT 6 +#define MADERA_AIF1RX7_ENA_WIDTH 1 +#define MADERA_AIF1RX6_ENA 0x0020 +#define MADERA_AIF1RX6_ENA_MASK 0x0020 +#define MADERA_AIF1RX6_ENA_SHIFT 5 +#define MADERA_AIF1RX6_ENA_WIDTH 1 +#define MADERA_AIF1RX5_ENA 0x0010 +#define MADERA_AIF1RX5_ENA_MASK 0x0010 +#define MADERA_AIF1RX5_ENA_SHIFT 4 +#define MADERA_AIF1RX5_ENA_WIDTH 1 +#define MADERA_AIF1RX4_ENA 0x0008 +#define MADERA_AIF1RX4_ENA_MASK 0x0008 +#define MADERA_AIF1RX4_ENA_SHIFT 3 +#define MADERA_AIF1RX4_ENA_WIDTH 1 +#define MADERA_AIF1RX3_ENA 0x0004 +#define MADERA_AIF1RX3_ENA_MASK 0x0004 +#define MADERA_AIF1RX3_ENA_SHIFT 2 +#define MADERA_AIF1RX3_ENA_WIDTH 1 +#define MADERA_AIF1RX2_ENA 0x0002 +#define MADERA_AIF1RX2_ENA_MASK 0x0002 +#define MADERA_AIF1RX2_ENA_SHIFT 1 +#define MADERA_AIF1RX2_ENA_WIDTH 1 +#define MADERA_AIF1RX1_ENA 0x0001 +#define MADERA_AIF1RX1_ENA_MASK 0x0001 +#define MADERA_AIF1RX1_ENA_SHIFT 0 +#define MADERA_AIF1RX1_ENA_WIDTH 1
+/* (0x051B) - AIF1 Force Write */ +#define MADERA_AIF1_FRC_WR 0x0001 +#define MADERA_AIF1_FRC_WR_MASK 0x0001 +#define MADERA_AIF1_FRC_WR_SHIFT 0 +#define MADERA_AIF1_FRC_WR_WIDTH 1
+/* (0x0540) AIF2_BCLK_Ctrl */ +#define MADERA_AIF2_BCLK_INV 0x0080 +#define MADERA_AIF2_BCLK_INV_MASK 0x0080 +#define MADERA_AIF2_BCLK_INV_SHIFT 7 +#define MADERA_AIF2_BCLK_INV_WIDTH 1 +#define MADERA_AIF2_BCLK_FRC 0x0040 +#define MADERA_AIF2_BCLK_FRC_MASK 0x0040 +#define MADERA_AIF2_BCLK_FRC_SHIFT 6 +#define MADERA_AIF2_BCLK_FRC_WIDTH 1 +#define MADERA_AIF2_BCLK_MSTR 0x0020 +#define MADERA_AIF2_BCLK_MSTR_MASK 0x0020 +#define MADERA_AIF2_BCLK_MSTR_SHIFT 5 +#define MADERA_AIF2_BCLK_MSTR_WIDTH 1 +#define MADERA_AIF2_BCLK_FREQ_MASK 0x001F +#define MADERA_AIF2_BCLK_FREQ_SHIFT 0 +#define MADERA_AIF2_BCLK_FREQ_WIDTH 5
+/* (0x0541) AIF2_Tx_Pin_Ctrl */ +#define MADERA_AIF2TX_DAT_TRI 0x0020 +#define MADERA_AIF2TX_DAT_TRI_MASK 0x0020 +#define MADERA_AIF2TX_DAT_TRI_SHIFT 5 +#define MADERA_AIF2TX_DAT_TRI_WIDTH 1 +#define MADERA_AIF2TX_LRCLK_SRC 0x0008 +#define MADERA_AIF2TX_LRCLK_SRC_MASK 0x0008 +#define MADERA_AIF2TX_LRCLK_SRC_SHIFT 3 +#define MADERA_AIF2TX_LRCLK_SRC_WIDTH 1 +#define MADERA_AIF2TX_LRCLK_INV 0x0004 +#define MADERA_AIF2TX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF2TX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF2TX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF2TX_LRCLK_FRC 0x0002 +#define MADERA_AIF2TX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF2TX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF2TX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF2TX_LRCLK_MSTR 0x0001 +#define MADERA_AIF2TX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF2TX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF2TX_LRCLK_MSTR_WIDTH 1
+/* (0x0542) AIF2_Rx_Pin_Ctrl */ +#define MADERA_AIF2RX_LRCLK_INV 0x0004 +#define MADERA_AIF2RX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF2RX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF2RX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF2RX_LRCLK_FRC 0x0002 +#define MADERA_AIF2RX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF2RX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF2RX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF2RX_LRCLK_MSTR 0x0001 +#define MADERA_AIF2RX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF2RX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF2RX_LRCLK_MSTR_WIDTH 1
+/* (0x0543) AIF2_Rate_Ctrl */ +#define MADERA_AIF2_RATE_MASK 0xF800 +#define MADERA_AIF2_RATE_SHIFT 11 +#define MADERA_AIF2_RATE_WIDTH 5 +#define MADERA_AIF2_TRI 0x0040 +#define MADERA_AIF2_TRI_MASK 0x0040 +#define MADERA_AIF2_TRI_SHIFT 6 +#define MADERA_AIF2_TRI_WIDTH 1
+/* (0x0544) AIF2_Format */ +#define MADERA_AIF2_FMT_MASK 0x0007 +#define MADERA_AIF2_FMT_SHIFT 0 +#define MADERA_AIF2_FMT_WIDTH 3
+/* (0x0546) AIF2_Rx_BCLK_Rate */ +#define MADERA_AIF2RX_BCPF_MASK 0x1FFF +#define MADERA_AIF2RX_BCPF_SHIFT 0 +#define MADERA_AIF2RX_BCPF_WIDTH 13
+/* (0x0547) AIF2_Frame_Ctrl_1 */ +#define MADERA_AIF2TX_WL_MASK 0x3F00 +#define MADERA_AIF2TX_WL_SHIFT 8 +#define MADERA_AIF2TX_WL_WIDTH 6 +#define MADERA_AIF2TX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF2TX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF2TX_SLOT_LEN_WIDTH 8
+/* (0x0548) AIF2_Frame_Ctrl_2 */ +#define MADERA_AIF2RX_WL_MASK 0x3F00 +#define MADERA_AIF2RX_WL_SHIFT 8 +#define MADERA_AIF2RX_WL_WIDTH 6 +#define MADERA_AIF2RX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF2RX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF2RX_SLOT_LEN_WIDTH 8
+/* (0x0549) AIF2_Frame_Ctrl_3 */ +#define MADERA_AIF2TX1_SLOT_MASK 0x003F +#define MADERA_AIF2TX1_SLOT_SHIFT 0 +#define MADERA_AIF2TX1_SLOT_WIDTH 6
+/* (0x054A) AIF2_Frame_Ctrl_4 */ +#define MADERA_AIF2TX2_SLOT_MASK 0x003F +#define MADERA_AIF2TX2_SLOT_SHIFT 0 +#define MADERA_AIF2TX2_SLOT_WIDTH 6
+/* (0x054B) AIF2_Frame_Ctrl_5 */ +#define MADERA_AIF2TX3_SLOT_MASK 0x003F +#define MADERA_AIF2TX3_SLOT_SHIFT 0 +#define MADERA_AIF2TX3_SLOT_WIDTH 6
+/* (0x054C) AIF2_Frame_Ctrl_6 */ +#define MADERA_AIF2TX4_SLOT_MASK 0x003F +#define MADERA_AIF2TX4_SLOT_SHIFT 0 +#define MADERA_AIF2TX4_SLOT_WIDTH 6
+/* (0x054D) AIF2_Frame_Ctrl_7 */ +#define MADERA_AIF2TX5_SLOT_MASK 0x003F +#define MADERA_AIF2TX5_SLOT_SHIFT 0 +#define MADERA_AIF2TX5_SLOT_WIDTH 6
+/* (0x054E) AIF2_Frame_Ctrl_8 */ +#define MADERA_AIF2TX6_SLOT_MASK 0x003F +#define MADERA_AIF2TX6_SLOT_SHIFT 0 +#define MADERA_AIF2TX6_SLOT_WIDTH 6
+/* (0x054F) AIF2_Frame_Ctrl_9 */ +#define MADERA_AIF2TX7_SLOT_MASK 0x003F +#define MADERA_AIF2TX7_SLOT_SHIFT 0 +#define MADERA_AIF2TX7_SLOT_WIDTH 6 +/* (0x0550) AIF2_Frame_Ctrl_10 */ +#define MADERA_AIF2TX8_SLOT_MASK 0x003F +#define MADERA_AIF2TX8_SLOT_SHIFT 0 +#define MADERA_AIF2TX8_SLOT_WIDTH 6
+/* (0x0551) AIF2_Frame_Ctrl_11 */ +#define MADERA_AIF2RX1_SLOT_MASK 0x003F +#define MADERA_AIF2RX1_SLOT_SHIFT 0 +#define MADERA_AIF2RX1_SLOT_WIDTH 6
+/* (0x0552) AIF2_Frame_Ctrl_12 */ +#define MADERA_AIF2RX2_SLOT_MASK 0x003F +#define MADERA_AIF2RX2_SLOT_SHIFT 0 +#define MADERA_AIF2RX2_SLOT_WIDTH 6
+/* (0x0553) AIF2_Frame_Ctrl_13 */ +#define MADERA_AIF2RX3_SLOT_MASK 0x003F +#define MADERA_AIF2RX3_SLOT_SHIFT 0 +#define MADERA_AIF2RX3_SLOT_WIDTH 6
+/* (0x0554) AIF2_Frame_Ctrl_14 */ +#define MADERA_AIF2RX4_SLOT_MASK 0x003F +#define MADERA_AIF2RX4_SLOT_SHIFT 0 +#define MADERA_AIF2RX4_SLOT_WIDTH 6
+/* (0x0555) AIF2_Frame_Ctrl_15 */ +#define MADERA_AIF2RX5_SLOT_MASK 0x003F +#define MADERA_AIF2RX5_SLOT_SHIFT 0 +#define MADERA_AIF2RX5_SLOT_WIDTH 6
+/* (0x0556) AIF2_Frame_Ctrl_16 */ +#define MADERA_AIF2RX6_SLOT_MASK 0x003F +#define MADERA_AIF2RX6_SLOT_SHIFT 0 +#define MADERA_AIF2RX6_SLOT_WIDTH 6
+/* (0x0557) AIF2_Frame_Ctrl_17 */ +#define MADERA_AIF2RX7_SLOT_MASK 0x003F +#define MADERA_AIF2RX7_SLOT_SHIFT 0 +#define MADERA_AIF2RX7_SLOT_WIDTH 6
+/* (0x0558) AIF2_Frame_Ctrl_18 */ +#define MADERA_AIF2RX8_SLOT_MASK 0x003F +#define MADERA_AIF2RX8_SLOT_SHIFT 0 +#define MADERA_AIF2RX8_SLOT_WIDTH 6
+/* (0x0559) AIF2_Tx_Enables */ +#define MADERA_AIF2TX8_ENA 0x0080 +#define MADERA_AIF2TX8_ENA_MASK 0x0080 +#define MADERA_AIF2TX8_ENA_SHIFT 7 +#define MADERA_AIF2TX8_ENA_WIDTH 1 +#define MADERA_AIF2TX7_ENA 0x0040 +#define MADERA_AIF2TX7_ENA_MASK 0x0040 +#define MADERA_AIF2TX7_ENA_SHIFT 6 +#define MADERA_AIF2TX7_ENA_WIDTH 1 +#define MADERA_AIF2TX6_ENA 0x0020 +#define MADERA_AIF2TX6_ENA_MASK 0x0020 +#define MADERA_AIF2TX6_ENA_SHIFT 5 +#define MADERA_AIF2TX6_ENA_WIDTH 1 +#define MADERA_AIF2TX5_ENA 0x0010 +#define MADERA_AIF2TX5_ENA_MASK 0x0010 +#define MADERA_AIF2TX5_ENA_SHIFT 4 +#define MADERA_AIF2TX5_ENA_WIDTH 1 +#define MADERA_AIF2TX4_ENA 0x0008 +#define MADERA_AIF2TX4_ENA_MASK 0x0008 +#define MADERA_AIF2TX4_ENA_SHIFT 3 +#define MADERA_AIF2TX4_ENA_WIDTH 1 +#define MADERA_AIF2TX3_ENA 0x0004 +#define MADERA_AIF2TX3_ENA_MASK 0x0004 +#define MADERA_AIF2TX3_ENA_SHIFT 2 +#define MADERA_AIF2TX3_ENA_WIDTH 1 +#define MADERA_AIF2TX2_ENA 0x0002 +#define MADERA_AIF2TX2_ENA_MASK 0x0002 +#define MADERA_AIF2TX2_ENA_SHIFT 1 +#define MADERA_AIF2TX2_ENA_WIDTH 1 +#define MADERA_AIF2TX1_ENA 0x0001 +#define MADERA_AIF2TX1_ENA_MASK 0x0001 +#define MADERA_AIF2TX1_ENA_SHIFT 0 +#define MADERA_AIF2TX1_ENA_WIDTH 1
+/* (0x055A) AIF2_Rx_Enables */ +#define MADERA_AIF2RX8_ENA 0x0080 +#define MADERA_AIF2RX8_ENA_MASK 0x0080 +#define MADERA_AIF2RX8_ENA_SHIFT 7 +#define MADERA_AIF2RX8_ENA_WIDTH 1 +#define MADERA_AIF2RX7_ENA 0x0040 +#define MADERA_AIF2RX7_ENA_MASK 0x0040 +#define MADERA_AIF2RX7_ENA_SHIFT 6 +#define MADERA_AIF2RX7_ENA_WIDTH 1 +#define MADERA_AIF2RX6_ENA 0x0020 +#define MADERA_AIF2RX6_ENA_MASK 0x0020 +#define MADERA_AIF2RX6_ENA_SHIFT 5 +#define MADERA_AIF2RX6_ENA_WIDTH 1 +#define MADERA_AIF2RX5_ENA 0x0010 +#define MADERA_AIF2RX5_ENA_MASK 0x0010 +#define MADERA_AIF2RX5_ENA_SHIFT 4 +#define MADERA_AIF2RX5_ENA_WIDTH 1 +#define MADERA_AIF2RX4_ENA 0x0008 +#define MADERA_AIF2RX4_ENA_MASK 0x0008 +#define MADERA_AIF2RX4_ENA_SHIFT 3 +#define MADERA_AIF2RX4_ENA_WIDTH 1 +#define MADERA_AIF2RX3_ENA 0x0004 +#define MADERA_AIF2RX3_ENA_MASK 0x0004 +#define MADERA_AIF2RX3_ENA_SHIFT 2 +#define MADERA_AIF2RX3_ENA_WIDTH 1 +#define MADERA_AIF2RX2_ENA 0x0002 +#define MADERA_AIF2RX2_ENA_MASK 0x0002 +#define MADERA_AIF2RX2_ENA_SHIFT 1 +#define MADERA_AIF2RX2_ENA_WIDTH 1 +#define MADERA_AIF2RX1_ENA 0x0001 +#define MADERA_AIF2RX1_ENA_MASK 0x0001 +#define MADERA_AIF2RX1_ENA_SHIFT 0 +#define MADERA_AIF2RX1_ENA_WIDTH 1
+/* (0x055B) - AIF2 Force Write */ +#define MADERA_AIF2_FRC_WR 0x0001 +#define MADERA_AIF2_FRC_WR_MASK 0x0001 +#define MADERA_AIF2_FRC_WR_SHIFT 0 +#define MADERA_AIF2_FRC_WR_WIDTH 1
+/* (0x0580) AIF3_BCLK_Ctrl */ +#define MADERA_AIF3_BCLK_INV 0x0080 +#define MADERA_AIF3_BCLK_INV_MASK 0x0080 +#define MADERA_AIF3_BCLK_INV_SHIFT 7 +#define MADERA_AIF3_BCLK_INV_WIDTH 1 +#define MADERA_AIF3_BCLK_FRC 0x0040 +#define MADERA_AIF3_BCLK_FRC_MASK 0x0040 +#define MADERA_AIF3_BCLK_FRC_SHIFT 6 +#define MADERA_AIF3_BCLK_FRC_WIDTH 1 +#define MADERA_AIF3_BCLK_MSTR 0x0020 +#define MADERA_AIF3_BCLK_MSTR_MASK 0x0020 +#define MADERA_AIF3_BCLK_MSTR_SHIFT 5 +#define MADERA_AIF3_BCLK_MSTR_WIDTH 1 +#define MADERA_AIF3_BCLK_FREQ_MASK 0x001F +#define MADERA_AIF3_BCLK_FREQ_SHIFT 0 +#define MADERA_AIF3_BCLK_FREQ_WIDTH 5
+/* (0x0581) AIF3_Tx_Pin_Ctrl */ +#define MADERA_AIF3TX_DAT_TRI 0x0020 +#define MADERA_AIF3TX_DAT_TRI_MASK 0x0020 +#define MADERA_AIF3TX_DAT_TRI_SHIFT 5 +#define MADERA_AIF3TX_DAT_TRI_WIDTH 1 +#define MADERA_AIF3TX_LRCLK_SRC 0x0008 +#define MADERA_AIF3TX_LRCLK_SRC_MASK 0x0008 +#define MADERA_AIF3TX_LRCLK_SRC_SHIFT 3 +#define MADERA_AIF3TX_LRCLK_SRC_WIDTH 1 +#define MADERA_AIF3TX_LRCLK_INV 0x0004 +#define MADERA_AIF3TX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF3TX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF3TX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF3TX_LRCLK_FRC 0x0002 +#define MADERA_AIF3TX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF3TX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF3TX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF3TX_LRCLK_MSTR 0x0001 +#define MADERA_AIF3TX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF3TX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF3TX_LRCLK_MSTR_WIDTH 1
+/* (0x0582) AIF3_Rx_Pin_Ctrl */ +#define MADERA_AIF3RX_LRCLK_INV 0x0004 +#define MADERA_AIF3RX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF3RX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF3RX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF3RX_LRCLK_FRC 0x0002 +#define MADERA_AIF3RX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF3RX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF3RX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF3RX_LRCLK_MSTR 0x0001 +#define MADERA_AIF3RX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF3RX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF3RX_LRCLK_MSTR_WIDTH 1
+/* (0x0583) AIF3_Rate_Ctrl */ +#define MADERA_AIF3_RATE_MASK 0xF800 +#define MADERA_AIF3_RATE_SHIFT 11 +#define MADERA_AIF3_RATE_WIDTH 5 +#define MADERA_AIF3_TRI 0x0040 +#define MADERA_AIF3_TRI_MASK 0x0040 +#define MADERA_AIF3_TRI_SHIFT 6 +#define MADERA_AIF3_TRI_WIDTH 1
+/* (0x0584) AIF3_Format */ +#define MADERA_AIF3_FMT_MASK 0x0007 +#define MADERA_AIF3_FMT_SHIFT 0 +#define MADERA_AIF3_FMT_WIDTH 3
+/* (0x0586) AIF3_Rx_BCLK_Rate */ +#define MADERA_AIF3RX_BCPF_MASK 0x1FFF +#define MADERA_AIF3RX_BCPF_SHIFT 0 +#define MADERA_AIF3RX_BCPF_WIDTH 13
+/* (0x0587) AIF3_Frame_Ctrl_1 */ +#define MADERA_AIF3TX_WL_MASK 0x3F00 +#define MADERA_AIF3TX_WL_SHIFT 8 +#define MADERA_AIF3TX_WL_WIDTH 6 +#define MADERA_AIF3TX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF3TX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF3TX_SLOT_LEN_WIDTH 8
+/* (0x0588) AIF3_Frame_Ctrl_2 */ +#define MADERA_AIF3RX_WL_MASK 0x3F00 +#define MADERA_AIF3RX_WL_SHIFT 8 +#define MADERA_AIF3RX_WL_WIDTH 6 +#define MADERA_AIF3RX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF3RX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF3RX_SLOT_LEN_WIDTH 8
+/* (0x0589) AIF3_Frame_Ctrl_3 */ +#define MADERA_AIF3TX1_SLOT_MASK 0x003F +#define MADERA_AIF3TX1_SLOT_SHIFT 0 +#define MADERA_AIF3TX1_SLOT_WIDTH 6
+/* (0x058A) AIF3_Frame_Ctrl_4 */ +#define MADERA_AIF3TX2_SLOT_MASK 0x003F +#define MADERA_AIF3TX2_SLOT_SHIFT 0 +#define MADERA_AIF3TX2_SLOT_WIDTH 6
+/* (0x0591) AIF3_Frame_Ctrl_11 */ +#define MADERA_AIF3RX1_SLOT_MASK 0x003F +#define MADERA_AIF3RX1_SLOT_SHIFT 0 +#define MADERA_AIF3RX1_SLOT_WIDTH 6
+/* (0x0592) AIF3_Frame_Ctrl_12 */ +#define MADERA_AIF3RX2_SLOT_MASK 0x003F +#define MADERA_AIF3RX2_SLOT_SHIFT 0 +#define MADERA_AIF3RX2_SLOT_WIDTH 6
+/* (0x0599) AIF3_Tx_Enables */ +#define MADERA_AIF3TX2_ENA 0x0002 +#define MADERA_AIF3TX2_ENA_MASK 0x0002 +#define MADERA_AIF3TX2_ENA_SHIFT 1 +#define MADERA_AIF3TX2_ENA_WIDTH 1 +#define MADERA_AIF3TX1_ENA 0x0001 +#define MADERA_AIF3TX1_ENA_MASK 0x0001 +#define MADERA_AIF3TX1_ENA_SHIFT 0 +#define MADERA_AIF3TX1_ENA_WIDTH 1
+/* (0x059A) AIF3_Rx_Enables */ +#define MADERA_AIF3RX2_ENA 0x0002 +#define MADERA_AIF3RX2_ENA_MASK 0x0002 +#define MADERA_AIF3RX2_ENA_SHIFT 1 +#define MADERA_AIF3RX2_ENA_WIDTH 1 +#define MADERA_AIF3RX1_ENA 0x0001 +#define MADERA_AIF3RX1_ENA_MASK 0x0001 +#define MADERA_AIF3RX1_ENA_SHIFT 0 +#define MADERA_AIF3RX1_ENA_WIDTH 1
+/* (0x059B) - AIF3 Force Write */ +#define MADERA_AIF3_FRC_WR 0x0001 +#define MADERA_AIF3_FRC_WR_MASK 0x0001 +#define MADERA_AIF3_FRC_WR_SHIFT 0 +#define MADERA_AIF3_FRC_WR_WIDTH 1
+/* (0x05A0) AIF4_BCLK_Ctrl */ +#define MADERA_AIF4_BCLK_INV 0x0080 +#define MADERA_AIF4_BCLK_INV_MASK 0x0080 +#define MADERA_AIF4_BCLK_INV_SHIFT 7 +#define MADERA_AIF4_BCLK_INV_WIDTH 1 +#define MADERA_AIF4_BCLK_FRC 0x0040 +#define MADERA_AIF4_BCLK_FRC_MASK 0x0040 +#define MADERA_AIF4_BCLK_FRC_SHIFT 6 +#define MADERA_AIF4_BCLK_FRC_WIDTH 1 +#define MADERA_AIF4_BCLK_MSTR 0x0020 +#define MADERA_AIF4_BCLK_MSTR_MASK 0x0020 +#define MADERA_AIF4_BCLK_MSTR_SHIFT 5 +#define MADERA_AIF4_BCLK_MSTR_WIDTH 1 +#define MADERA_AIF4_BCLK_FREQ_MASK 0x001F +#define MADERA_AIF4_BCLK_FREQ_SHIFT 0 +#define MADERA_AIF4_BCLK_FREQ_WIDTH 5
+/* (0x05A1) AIF4_Tx_Pin_Ctrl */ +#define MADERA_AIF4TX_DAT_TRI 0x0020 +#define MADERA_AIF4TX_DAT_TRI_MASK 0x0020 +#define MADERA_AIF4TX_DAT_TRI_SHIFT 5 +#define MADERA_AIF4TX_DAT_TRI_WIDTH 1 +#define MADERA_AIF4TX_LRCLK_SRC 0x0008 +#define MADERA_AIF4TX_LRCLK_SRC_MASK 0x0008 +#define MADERA_AIF4TX_LRCLK_SRC_SHIFT 3 +#define MADERA_AIF4TX_LRCLK_SRC_WIDTH 1 +#define MADERA_AIF4TX_LRCLK_INV 0x0004 +#define MADERA_AIF4TX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF4TX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF4TX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF4TX_LRCLK_FRC 0x0002 +#define MADERA_AIF4TX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF4TX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF4TX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF4TX_LRCLK_MSTR 0x0001 +#define MADERA_AIF4TX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF4TX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF4TX_LRCLK_MSTR_WIDTH 1
+/* (0x05A2) AIF4_Rx_Pin_Ctrl */ +#define MADERA_AIF4RX_LRCLK_INV 0x0004 +#define MADERA_AIF4RX_LRCLK_INV_MASK 0x0004 +#define MADERA_AIF4RX_LRCLK_INV_SHIFT 2 +#define MADERA_AIF4RX_LRCLK_INV_WIDTH 1 +#define MADERA_AIF4RX_LRCLK_FRC 0x0002 +#define MADERA_AIF4RX_LRCLK_FRC_MASK 0x0002 +#define MADERA_AIF4RX_LRCLK_FRC_SHIFT 1 +#define MADERA_AIF4RX_LRCLK_FRC_WIDTH 1 +#define MADERA_AIF4RX_LRCLK_MSTR 0x0001 +#define MADERA_AIF4RX_LRCLK_MSTR_MASK 0x0001 +#define MADERA_AIF4RX_LRCLK_MSTR_SHIFT 0 +#define MADERA_AIF4RX_LRCLK_MSTR_WIDTH 1
+/* (0x05A3) AIF4_Rate_Ctrl */ +#define MADERA_AIF4_RATE_MASK 0x7800 +#define MADERA_AIF4_RATE_SHIFT 11 +#define MADERA_AIF4_RATE_WIDTH 4 +#define MADERA_AIF4_TRI 0x0040 +#define MADERA_AIF4_TRI_MASK 0x0040 +#define MADERA_AIF4_TRI_SHIFT 6 +#define MADERA_AIF4_TRI_WIDTH 1
+/* (0x05A4) AIF4_Format */ +#define MADERA_AIF4_FMT_MASK 0x0007 +#define MADERA_AIF4_FMT_SHIFT 0 +#define MADERA_AIF4_FMT_WIDTH 3
+/* (0x05A6) AIF4_Rx_BCLK_Rate */ +#define MADERA_AIF4RX_BCPF_MASK 0x1FFF +#define MADERA_AIF4RX_BCPF_SHIFT 0 +#define MADERA_AIF4RX_BCPF_WIDTH 13
+/* (0x05A7) AIF4_Frame_Ctrl_1 */ +#define MADERA_AIF4TX_WL_MASK 0x3F00 +#define MADERA_AIF4TX_WL_SHIFT 8 +#define MADERA_AIF4TX_WL_WIDTH 6 +#define MADERA_AIF4TX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF4TX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF4TX_SLOT_LEN_WIDTH 8
+/* (0x05A8) AIF4_Frame_Ctrl_2 */ +#define MADERA_AIF4RX_WL_MASK 0x3F00 +#define MADERA_AIF4RX_WL_SHIFT 8 +#define MADERA_AIF4RX_WL_WIDTH 6 +#define MADERA_AIF4RX_SLOT_LEN_MASK 0x00FF +#define MADERA_AIF4RX_SLOT_LEN_SHIFT 0 +#define MADERA_AIF4RX_SLOT_LEN_WIDTH 8
+/* (0x05A9) AIF4_Frame_Ctrl_3 */ +#define MADERA_AIF4TX1_SLOT_MASK 0x003F +#define MADERA_AIF4TX1_SLOT_SHIFT 0 +#define MADERA_AIF4TX1_SLOT_WIDTH 6
+/* (0x05AA) AIF4_Frame_Ctrl_4 */ +#define MADERA_AIF4TX2_SLOT_MASK 0x003F +#define MADERA_AIF4TX2_SLOT_SHIFT 0 +#define MADERA_AIF4TX2_SLOT_WIDTH 6
+/* (0x05B1) AIF4_Frame_Ctrl_11 */ +#define MADERA_AIF4RX1_SLOT_MASK 0x003F +#define MADERA_AIF4RX1_SLOT_SHIFT 0 +#define MADERA_AIF4RX1_SLOT_WIDTH 6
+/* (0x05B2) AIF4_Frame_Ctrl_12 */ +#define MADERA_AIF4RX2_SLOT_MASK 0x003F +#define MADERA_AIF4RX2_SLOT_SHIFT 0 +#define MADERA_AIF4RX2_SLOT_WIDTH 6
+/* (0x05B9) AIF4_Tx_Enables */ +#define MADERA_AIF4TX2_ENA 0x0002 +#define MADERA_AIF4TX2_ENA_MASK 0x0002 +#define MADERA_AIF4TX2_ENA_SHIFT 1 +#define MADERA_AIF4TX2_ENA_WIDTH 1 +#define MADERA_AIF4TX1_ENA 0x0001 +#define MADERA_AIF4TX1_ENA_MASK 0x0001 +#define MADERA_AIF4TX1_ENA_SHIFT 0 +#define MADERA_AIF4TX1_ENA_WIDTH 1
+/* (0x05BA) AIF4_Rx_Enables */ +#define MADERA_AIF4RX2_ENA 0x0002 +#define MADERA_AIF4RX2_ENA_MASK 0x0002 +#define MADERA_AIF4RX2_ENA_SHIFT 1 +#define MADERA_AIF4RX2_ENA_WIDTH 1 +#define MADERA_AIF4RX1_ENA 0x0001 +#define MADERA_AIF4RX1_ENA_MASK 0x0001 +#define MADERA_AIF4RX1_ENA_SHIFT 0 +#define MADERA_AIF4RX1_ENA_WIDTH 1
+/* (0x05BB) - AIF4 Force Write */ +#define MADERA_AIF4_FRC_WR 0x0001 +#define MADERA_AIF4_FRC_WR_MASK 0x0001 +#define MADERA_AIF4_FRC_WR_SHIFT 0 +#define MADERA_AIF4_FRC_WR_WIDTH 1
+/* (0x05C2) SPD1_TX_Control */ +#define MADERA_SPD1_VAL2 0x2000 +#define MADERA_SPD1_VAL2_MASK 0x2000 +#define MADERA_SPD1_VAL2_SHIFT 13 +#define MADERA_SPD1_VAL2_WIDTH 1 +#define MADERA_SPD1_VAL1 0x1000 +#define MADERA_SPD1_VAL1_MASK 0x1000 +#define MADERA_SPD1_VAL1_SHIFT 12 +#define MADERA_SPD1_VAL1_WIDTH 1 +#define MADERA_SPD1_RATE_MASK 0x00F0 +#define MADERA_SPD1_RATE_SHIFT 4 +#define MADERA_SPD1_RATE_WIDTH 4 +#define MADERA_SPD1_ENA 0x0001 +#define MADERA_SPD1_ENA_MASK 0x0001 +#define MADERA_SPD1_ENA_SHIFT 0 +#define MADERA_SPD1_ENA_WIDTH 1
+/* (0x05C3) SPD1_TX_Channel_Status_1 */ +#define MADERA_SPD1_CATCODE_MASK 0xFF00 +#define MADERA_SPD1_CATCODE_SHIFT 8 +#define MADERA_SPD1_CATCODE_WIDTH 8 +#define MADERA_SPD1_CHSTMODE_MASK 0x00C0 +#define MADERA_SPD1_CHSTMODE_SHIFT 6 +#define MADERA_SPD1_CHSTMODE_WIDTH 2 +#define MADERA_SPD1_PREEMPH_MASK 0x0038 +#define MADERA_SPD1_PREEMPH_SHIFT 3 +#define MADERA_SPD1_PREEMPH_WIDTH 3 +#define MADERA_SPD1_NOCOPY 0x0004 +#define MADERA_SPD1_NOCOPY_MASK 0x0004 +#define MADERA_SPD1_NOCOPY_SHIFT 2 +#define MADERA_SPD1_NOCOPY_WIDTH 1 +#define MADERA_SPD1_NOAUDIO 0x0002 +#define MADERA_SPD1_NOAUDIO_MASK 0x0002 +#define MADERA_SPD1_NOAUDIO_SHIFT 1 +#define MADERA_SPD1_NOAUDIO_WIDTH 1 +#define MADERA_SPD1_PRO 0x0001 +#define MADERA_SPD1_PRO_MASK 0x0001 +#define MADERA_SPD1_PRO_SHIFT 0 +#define MADERA_SPD1_PRO_WIDTH 1
+/* (0x05C4) SPD1_TX_Channel_Status_2 */ +#define MADERA_SPD1_FREQ_MASK 0xF000 +#define MADERA_SPD1_FREQ_SHIFT 12 +#define MADERA_SPD1_FREQ_WIDTH 4 +#define MADERA_SPD1_CHNUM2_MASK 0x0F00 +#define MADERA_SPD1_CHNUM2_SHIFT 8 +#define MADERA_SPD1_CHNUM2_WIDTH 4 +#define MADERA_SPD1_CHNUM1_MASK 0x00F0 +#define MADERA_SPD1_CHNUM1_SHIFT 4 +#define MADERA_SPD1_CHNUM1_WIDTH 4 +#define MADERA_SPD1_SRCNUM_MASK 0x000F +#define MADERA_SPD1_SRCNUM_SHIFT 0 +#define MADERA_SPD1_SRCNUM_WIDTH 4
+/* (0x05C5) SPD1_TX_Channel_Status_3 */ +#define MADERA_SPD1_ORGSAMP_MASK 0x0F00 +#define MADERA_SPD1_ORGSAMP_SHIFT 8 +#define MADERA_SPD1_ORGSAMP_WIDTH 4 +#define MADERA_SPD1_TXWL_MASK 0x00E0 +#define MADERA_SPD1_TXWL_SHIFT 5 +#define MADERA_SPD1_TXWL_WIDTH 3 +#define MADERA_SPD1_MAXWL 0x0010 +#define MADERA_SPD1_MAXWL_MASK 0x0010 +#define MADERA_SPD1_MAXWL_SHIFT 4 +#define MADERA_SPD1_MAXWL_WIDTH 1 +#define MADERA_SPD1_CS31_30_MASK 0x000C +#define MADERA_SPD1_CS31_30_SHIFT 2 +#define MADERA_SPD1_CS31_30_WIDTH 2 +#define MADERA_SPD1_CLKACU_MASK 0x0003 +#define MADERA_SPD1_CLKACU_SHIFT 2 +#define MADERA_SPD1_CLKACU_WIDTH 0
+/* (0x05E3) SLIMbus_Framer_Ref_Gear */ +#define MADERA_SLIMCLK_SRC 0x0010 +#define MADERA_SLIMCLK_SRC_MASK 0x0010 +#define MADERA_SLIMCLK_SRC_SHIFT 4 +#define MADERA_SLIMCLK_SRC_WIDTH 1 +#define MADERA_FRAMER_REF_GEAR_MASK 0x000F +#define MADERA_FRAMER_REF_GEAR_SHIFT 0 +#define MADERA_FRAMER_REF_GEAR_WIDTH 4
+/* (0x05E5) SLIMbus_Rates_1 */ +#define MADERA_SLIMRX2_RATE_MASK 0xF800 +#define MADERA_SLIMRX2_RATE_SHIFT 11 +#define MADERA_SLIMRX2_RATE_WIDTH 5 +#define MADERA_SLIMRX1_RATE_MASK 0x00F8 +#define MADERA_SLIMRX1_RATE_SHIFT 3 +#define MADERA_SLIMRX1_RATE_WIDTH 5
+/* (0x05E6) SLIMbus_Rates_2 */ +#define MADERA_SLIMRX4_RATE_MASK 0xF800 +#define MADERA_SLIMRX4_RATE_SHIFT 11 +#define MADERA_SLIMRX4_RATE_WIDTH 5 +#define MADERA_SLIMRX3_RATE_MASK 0x00F8 +#define MADERA_SLIMRX3_RATE_SHIFT 3 +#define MADERA_SLIMRX3_RATE_WIDTH 5
+/* (0x05E7) SLIMbus_Rates_3 */ +#define MADERA_SLIMRX6_RATE_MASK 0xF800 +#define MADERA_SLIMRX6_RATE_SHIFT 11 +#define MADERA_SLIMRX6_RATE_WIDTH 5 +#define MADERA_SLIMRX5_RATE_MASK 0x00F8 +#define MADERA_SLIMRX5_RATE_SHIFT 3 +#define MADERA_SLIMRX5_RATE_WIDTH 5
+/* (0x05E8) SLIMbus_Rates_4 */ +#define MADERA_SLIMRX8_RATE_MASK 0xF800 +#define MADERA_SLIMRX8_RATE_SHIFT 11 +#define MADERA_SLIMRX8_RATE_WIDTH 5 +#define MADERA_SLIMRX7_RATE_MASK 0x00F8 +#define MADERA_SLIMRX7_RATE_SHIFT 3 +#define MADERA_SLIMRX7_RATE_WIDTH 5
+/* (0x05E9) SLIMbus_Rates_5 */ +#define MADERA_SLIMTX2_RATE_MASK 0xF800 +#define MADERA_SLIMTX2_RATE_SHIFT 11 +#define MADERA_SLIMTX2_RATE_WIDTH 5 +#define MADERA_SLIMTX1_RATE_MASK 0x00F8 +#define MADERA_SLIMTX1_RATE_SHIFT 3 +#define MADERA_SLIMTX1_RATE_WIDTH 5
+/* (0x05EA) SLIMbus_Rates_6 */ +#define MADERA_SLIMTX4_RATE_MASK 0xF800 +#define MADERA_SLIMTX4_RATE_SHIFT 11 +#define MADERA_SLIMTX4_RATE_WIDTH 5 +#define MADERA_SLIMTX3_RATE_MASK 0x00F8 +#define MADERA_SLIMTX3_RATE_SHIFT 3 +#define MADERA_SLIMTX3_RATE_WIDTH 5
+/* (0x05EB) SLIMbus_Rates_7 */ +#define MADERA_SLIMTX6_RATE_MASK 0xF800 +#define MADERA_SLIMTX6_RATE_SHIFT 11 +#define MADERA_SLIMTX6_RATE_WIDTH 5 +#define MADERA_SLIMTX5_RATE_MASK 0x00F8 +#define MADERA_SLIMTX5_RATE_SHIFT 3 +#define MADERA_SLIMTX5_RATE_WIDTH 5
+/* (0x05EC) SLIMbus_Rates_8 */ +#define MADERA_SLIMTX8_RATE_MASK 0xF800 +#define MADERA_SLIMTX8_RATE_SHIFT 11 +#define MADERA_SLIMTX8_RATE_WIDTH 5 +#define MADERA_SLIMTX7_RATE_MASK 0x00F8 +#define MADERA_SLIMTX7_RATE_SHIFT 3 +#define MADERA_SLIMTX7_RATE_WIDTH 5
+/* (0x05F5) SLIMbus_RX_Channel_Enable */ +#define MADERA_SLIMRX8_ENA 0x0080 +#define MADERA_SLIMRX8_ENA_MASK 0x0080 +#define MADERA_SLIMRX8_ENA_SHIFT 7 +#define MADERA_SLIMRX8_ENA_WIDTH 1 +#define MADERA_SLIMRX7_ENA 0x0040 +#define MADERA_SLIMRX7_ENA_MASK 0x0040 +#define MADERA_SLIMRX7_ENA_SHIFT 6 +#define MADERA_SLIMRX7_ENA_WIDTH 1 +#define MADERA_SLIMRX6_ENA 0x0020 +#define MADERA_SLIMRX6_ENA_MASK 0x0020 +#define MADERA_SLIMRX6_ENA_SHIFT 5 +#define MADERA_SLIMRX6_ENA_WIDTH 1 +#define MADERA_SLIMRX5_ENA 0x0010 +#define MADERA_SLIMRX5_ENA_MASK 0x0010 +#define MADERA_SLIMRX5_ENA_SHIFT 4 +#define MADERA_SLIMRX5_ENA_WIDTH 1 +#define MADERA_SLIMRX4_ENA 0x0008 +#define MADERA_SLIMRX4_ENA_MASK 0x0008 +#define MADERA_SLIMRX4_ENA_SHIFT 3 +#define MADERA_SLIMRX4_ENA_WIDTH 1 +#define MADERA_SLIMRX3_ENA 0x0004 +#define MADERA_SLIMRX3_ENA_MASK 0x0004 +#define MADERA_SLIMRX3_ENA_SHIFT 2 +#define MADERA_SLIMRX3_ENA_WIDTH 1 +#define MADERA_SLIMRX2_ENA 0x0002 +#define MADERA_SLIMRX2_ENA_MASK 0x0002 +#define MADERA_SLIMRX2_ENA_SHIFT 1 +#define MADERA_SLIMRX2_ENA_WIDTH 1 +#define MADERA_SLIMRX1_ENA 0x0001 +#define MADERA_SLIMRX1_ENA_MASK 0x0001 +#define MADERA_SLIMRX1_ENA_SHIFT 0 +#define MADERA_SLIMRX1_ENA_WIDTH 1
+/* (0x05F6) SLIMbus_TX_Channel_Enable */ +#define MADERA_SLIMTX8_ENA 0x0080 +#define MADERA_SLIMTX8_ENA_MASK 0x0080 +#define MADERA_SLIMTX8_ENA_SHIFT 7 +#define MADERA_SLIMTX8_ENA_WIDTH 1 +#define MADERA_SLIMTX7_ENA 0x0040 +#define MADERA_SLIMTX7_ENA_MASK 0x0040 +#define MADERA_SLIMTX7_ENA_SHIFT 6 +#define MADERA_SLIMTX7_ENA_WIDTH 1 +#define MADERA_SLIMTX6_ENA 0x0020 +#define MADERA_SLIMTX6_ENA_MASK 0x0020 +#define MADERA_SLIMTX6_ENA_SHIFT 5 +#define MADERA_SLIMTX6_ENA_WIDTH 1 +#define MADERA_SLIMTX5_ENA 0x0010 +#define MADERA_SLIMTX5_ENA_MASK 0x0010 +#define MADERA_SLIMTX5_ENA_SHIFT 4 +#define MADERA_SLIMTX5_ENA_WIDTH 1 +#define MADERA_SLIMTX4_ENA 0x0008 +#define MADERA_SLIMTX4_ENA_MASK 0x0008 +#define MADERA_SLIMTX4_ENA_SHIFT 3 +#define MADERA_SLIMTX4_ENA_WIDTH 1 +#define MADERA_SLIMTX3_ENA 0x0004 +#define MADERA_SLIMTX3_ENA_MASK 0x0004 +#define MADERA_SLIMTX3_ENA_SHIFT 2 +#define MADERA_SLIMTX3_ENA_WIDTH 1 +#define MADERA_SLIMTX2_ENA 0x0002 +#define MADERA_SLIMTX2_ENA_MASK 0x0002 +#define MADERA_SLIMTX2_ENA_SHIFT 1 +#define MADERA_SLIMTX2_ENA_WIDTH 1 +#define MADERA_SLIMTX1_ENA 0x0001 +#define MADERA_SLIMTX1_ENA_MASK 0x0001 +#define MADERA_SLIMTX1_ENA_SHIFT 0 +#define MADERA_SLIMTX1_ENA_WIDTH 1
+/* (0x05F7) SLIMbus_RX_Port_Status */ +#define MADERA_SLIMRX8_PORT_STS 0x0080 +#define MADERA_SLIMRX8_PORT_STS_MASK 0x0080 +#define MADERA_SLIMRX8_PORT_STS_SHIFT 7 +#define MADERA_SLIMRX8_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX7_PORT_STS 0x0040 +#define MADERA_SLIMRX7_PORT_STS_MASK 0x0040 +#define MADERA_SLIMRX7_PORT_STS_SHIFT 6 +#define MADERA_SLIMRX7_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX6_PORT_STS 0x0020 +#define MADERA_SLIMRX6_PORT_STS_MASK 0x0020 +#define MADERA_SLIMRX6_PORT_STS_SHIFT 5 +#define MADERA_SLIMRX6_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX5_PORT_STS 0x0010 +#define MADERA_SLIMRX5_PORT_STS_MASK 0x0010 +#define MADERA_SLIMRX5_PORT_STS_SHIFT 4 +#define MADERA_SLIMRX5_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX4_PORT_STS 0x0008 +#define MADERA_SLIMRX4_PORT_STS_MASK 0x0008 +#define MADERA_SLIMRX4_PORT_STS_SHIFT 3 +#define MADERA_SLIMRX4_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX3_PORT_STS 0x0004 +#define MADERA_SLIMRX3_PORT_STS_MASK 0x0004 +#define MADERA_SLIMRX3_PORT_STS_SHIFT 2 +#define MADERA_SLIMRX3_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX2_PORT_STS 0x0002 +#define MADERA_SLIMRX2_PORT_STS_MASK 0x0002 +#define MADERA_SLIMRX2_PORT_STS_SHIFT 1 +#define MADERA_SLIMRX2_PORT_STS_WIDTH 1 +#define MADERA_SLIMRX1_PORT_STS 0x0001 +#define MADERA_SLIMRX1_PORT_STS_MASK 0x0001 +#define MADERA_SLIMRX1_PORT_STS_SHIFT 0 +#define MADERA_SLIMRX1_PORT_STS_WIDTH 1
+/* (0x05F8) SLIMbus_TX_Port_Status */ +#define MADERA_SLIMTX8_PORT_STS 0x0080 +#define MADERA_SLIMTX8_PORT_STS_MASK 0x0080 +#define MADERA_SLIMTX8_PORT_STS_SHIFT 7 +#define MADERA_SLIMTX8_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX7_PORT_STS 0x0040 +#define MADERA_SLIMTX7_PORT_STS_MASK 0x0040 +#define MADERA_SLIMTX7_PORT_STS_SHIFT 6 +#define MADERA_SLIMTX7_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX6_PORT_STS 0x0020 +#define MADERA_SLIMTX6_PORT_STS_MASK 0x0020 +#define MADERA_SLIMTX6_PORT_STS_SHIFT 5 +#define MADERA_SLIMTX6_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX5_PORT_STS 0x0010 +#define MADERA_SLIMTX5_PORT_STS_MASK 0x0010 +#define MADERA_SLIMTX5_PORT_STS_SHIFT 4 +#define MADERA_SLIMTX5_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX4_PORT_STS 0x0008 +#define MADERA_SLIMTX4_PORT_STS_MASK 0x0008 +#define MADERA_SLIMTX4_PORT_STS_SHIFT 3 +#define MADERA_SLIMTX4_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX3_PORT_STS 0x0004 +#define MADERA_SLIMTX3_PORT_STS_MASK 0x0004 +#define MADERA_SLIMTX3_PORT_STS_SHIFT 2 +#define MADERA_SLIMTX3_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX2_PORT_STS 0x0002 +#define MADERA_SLIMTX2_PORT_STS_MASK 0x0002 +#define MADERA_SLIMTX2_PORT_STS_SHIFT 1 +#define MADERA_SLIMTX2_PORT_STS_WIDTH 1 +#define MADERA_SLIMTX1_PORT_STS 0x0001 +#define MADERA_SLIMTX1_PORT_STS_MASK 0x0001 +#define MADERA_SLIMTX1_PORT_STS_SHIFT 0 +#define MADERA_SLIMTX1_PORT_STS_WIDTH 1
+/* (0x0E00) FX_Ctrl1 */ +#define MADERA_FX_RATE_MASK 0xF800 +#define MADERA_FX_RATE_SHIFT 11 +#define MADERA_FX_RATE_WIDTH 5
+/* (0x0E01) FX_Ctrl2 */ +#define MADERA_FX_STS_MASK 0xFFF0 +#define MADERA_FX_STS_SHIFT 4 +#define MADERA_FX_STS_WIDTH 12
+/* (0x0E10) EQ1_1 */ +#define MADERA_EQ1_B1_GAIN_MASK 0xF800 +#define MADERA_EQ1_B1_GAIN_SHIFT 11 +#define MADERA_EQ1_B1_GAIN_WIDTH 5 +#define MADERA_EQ1_B2_GAIN_MASK 0x07C0 +#define MADERA_EQ1_B2_GAIN_SHIFT 6 +#define MADERA_EQ1_B2_GAIN_WIDTH 5 +#define MADERA_EQ1_B3_GAIN_MASK 0x003E +#define MADERA_EQ1_B3_GAIN_SHIFT 1 +#define MADERA_EQ1_B3_GAIN_WIDTH 5 +#define MADERA_EQ1_ENA 0x0001 +#define MADERA_EQ1_ENA_MASK 0x0001 +#define MADERA_EQ1_ENA_SHIFT 0 +#define MADERA_EQ1_ENA_WIDTH 1
+/* (0x0E11) EQ1_2 */ +#define MADERA_EQ1_B4_GAIN_MASK 0xF800 +#define MADERA_EQ1_B4_GAIN_SHIFT 11 +#define MADERA_EQ1_B4_GAIN_WIDTH 5 +#define MADERA_EQ1_B5_GAIN_MASK 0x07C0 +#define MADERA_EQ1_B5_GAIN_SHIFT 6 +#define MADERA_EQ1_B5_GAIN_WIDTH 5 +#define MADERA_EQ1_B1_MODE 0x0001 +#define MADERA_EQ1_B1_MODE_MASK 0x0001 +#define MADERA_EQ1_B1_MODE_SHIFT 0 +#define MADERA_EQ1_B1_MODE_WIDTH 1
+/* (0x0E12) EQ1_3 */ +#define MADERA_EQ1_B1_A_MASK 0xFFFF +#define MADERA_EQ1_B1_A_SHIFT 0 +#define MADERA_EQ1_B1_A_WIDTH 16
+/* (0x0E13) EQ1_4 */ +#define MADERA_EQ1_B1_B_MASK 0xFFFF +#define MADERA_EQ1_B1_B_SHIFT 0 +#define MADERA_EQ1_B1_B_WIDTH 16
+/* (0x0E14) EQ1_5 */ +#define MADERA_EQ1_B1_PG_MASK 0xFFFF +#define MADERA_EQ1_B1_PG_SHIFT 0 +#define MADERA_EQ1_B1_PG_WIDTH 16
+/* (0x0E15) EQ1_6 */ +#define MADERA_EQ1_B2_A_MASK 0xFFFF +#define MADERA_EQ1_B2_A_SHIFT 0 +#define MADERA_EQ1_B2_A_WIDTH 16
+/* (0x0E16) EQ1_7 */ +#define MADERA_EQ1_B2_B_MASK 0xFFFF +#define MADERA_EQ1_B2_B_SHIFT 0 +#define MADERA_EQ1_B2_B_WIDTH 16
+/* (0x0E17) EQ1_8 */ +#define MADERA_EQ1_B2_C_MASK 0xFFFF +#define MADERA_EQ1_B2_C_SHIFT 0 +#define MADERA_EQ1_B2_C_WIDTH 16
+/* (0x0E18) EQ1_9 */ +#define MADERA_EQ1_B2_PG_MASK 0xFFFF +#define MADERA_EQ1_B2_PG_SHIFT 0 +#define MADERA_EQ1_B2_PG_WIDTH 16
+/* (0x0E19) EQ1_10 */ +#define MADERA_EQ1_B3_A_MASK 0xFFFF +#define MADERA_EQ1_B3_A_SHIFT 0 +#define MADERA_EQ1_B3_A_WIDTH 16
+/* (0x0E1A) EQ1_11 */ +#define MADERA_EQ1_B3_B_MASK 0xFFFF +#define MADERA_EQ1_B3_B_SHIFT 0 +#define MADERA_EQ1_B3_B_WIDTH 16
+/* (0x0E1B) EQ1_12 */ +#define MADERA_EQ1_B3_C_MASK 0xFFFF +#define MADERA_EQ1_B3_C_SHIFT 0 +#define MADERA_EQ1_B3_C_WIDTH 16
+/* (0x0E1C) EQ1_13 */ +#define MADERA_EQ1_B3_PG_MASK 0xFFFF +#define MADERA_EQ1_B3_PG_SHIFT 0 +#define MADERA_EQ1_B3_PG_WIDTH 16
+/* (0x0E1D) EQ1_14 */ +#define MADERA_EQ1_B4_A_MASK 0xFFFF +#define MADERA_EQ1_B4_A_SHIFT 0 +#define MADERA_EQ1_B4_A_WIDTH 16
+/* (0x0E1E) EQ1_15 */ +#define MADERA_EQ1_B4_B_MASK 0xFFFF +#define MADERA_EQ1_B4_B_SHIFT 0 +#define MADERA_EQ1_B4_B_WIDTH 16
+/* (0x0E1F) EQ1_16 */ +#define MADERA_EQ1_B4_C_MASK 0xFFFF +#define MADERA_EQ1_B4_C_SHIFT 0 +#define MADERA_EQ1_B4_C_WIDTH 16
+/* (0x0E20) EQ1_17 */ +#define MADERA_EQ1_B4_PG_MASK 0xFFFF +#define MADERA_EQ1_B4_PG_SHIFT 0 +#define MADERA_EQ1_B4_PG_WIDTH 16
+/* (0x0E21) EQ1_18 */ +#define MADERA_EQ1_B5_A_MASK 0xFFFF +#define MADERA_EQ1_B5_A_SHIFT 0 +#define MADERA_EQ1_B5_A_WIDTH 16
+/* (0x0E22) EQ1_19 */ +#define MADERA_EQ1_B5_B_MASK 0xFFFF +#define MADERA_EQ1_B5_B_SHIFT 0 +#define MADERA_EQ1_B5_B_WIDTH 16
+/* (0x0E23) EQ1_20 */ +#define MADERA_EQ1_B5_PG_MASK 0xFFFF +#define MADERA_EQ1_B5_PG_SHIFT 0 +#define MADERA_EQ1_B5_PG_WIDTH 16
+/* (0x0E24) EQ1_21 */ +#define MADERA_EQ1_B1_C_MASK 0xFFFF +#define MADERA_EQ1_B1_C_SHIFT 0 +#define MADERA_EQ1_B1_C_WIDTH 16
+/* (0x0E26) EQ2_1 */ +#define MADERA_EQ2_B1_GAIN_MASK 0xF800 +#define MADERA_EQ2_B1_GAIN_SHIFT 11 +#define MADERA_EQ2_B1_GAIN_WIDTH 5 +#define MADERA_EQ2_B2_GAIN_MASK 0x07C0 +#define MADERA_EQ2_B2_GAIN_SHIFT 6 +#define MADERA_EQ2_B2_GAIN_WIDTH 5 +#define MADERA_EQ2_B3_GAIN_MASK 0x003E +#define MADERA_EQ2_B3_GAIN_SHIFT 1 +#define MADERA_EQ2_B3_GAIN_WIDTH 5 +#define MADERA_EQ2_ENA 0x0001 +#define MADERA_EQ2_ENA_MASK 0x0001 +#define MADERA_EQ2_ENA_SHIFT 0 +#define MADERA_EQ2_ENA_WIDTH 1
+/* (0x0E27) EQ2_2 */ +#define MADERA_EQ2_B4_GAIN_MASK 0xF800 +#define MADERA_EQ2_B4_GAIN_SHIFT 11 +#define MADERA_EQ2_B4_GAIN_WIDTH 5 +#define MADERA_EQ2_B5_GAIN_MASK 0x07C0 +#define MADERA_EQ2_B5_GAIN_SHIFT 6 +#define MADERA_EQ2_B5_GAIN_WIDTH 5 +#define MADERA_EQ2_B1_MODE 0x0001 +#define MADERA_EQ2_B1_MODE_MASK 0x0001 +#define MADERA_EQ2_B1_MODE_SHIFT 0 +#define MADERA_EQ2_B1_MODE_WIDTH 1
+/* (0x0E28) EQ2_3 */ +#define MADERA_EQ2_B1_A_MASK 0xFFFF +#define MADERA_EQ2_B1_A_SHIFT 0 +#define MADERA_EQ2_B1_A_WIDTH 16
+/* (0x0E29) EQ2_4 */ +#define MADERA_EQ2_B1_B_MASK 0xFFFF +#define MADERA_EQ2_B1_B_SHIFT 0 +#define MADERA_EQ2_B1_B_WIDTH 16
+/* (0x0E2A) EQ2_5 */ +#define MADERA_EQ2_B1_PG_MASK 0xFFFF +#define MADERA_EQ2_B1_PG_SHIFT 0 +#define MADERA_EQ2_B1_PG_WIDTH 16
+/* (0x0E2B) EQ2_6 */ +#define MADERA_EQ2_B2_A_MASK 0xFFFF +#define MADERA_EQ2_B2_A_SHIFT 0 +#define MADERA_EQ2_B2_A_WIDTH 16
+/* (0x0E2C) EQ2_7 */ +#define MADERA_EQ2_B2_B_MASK 0xFFFF +#define MADERA_EQ2_B2_B_SHIFT 0 +#define MADERA_EQ2_B2_B_WIDTH 16
+/* (0x0E2D) EQ2_8 */ +#define MADERA_EQ2_B2_C_MASK 0xFFFF +#define MADERA_EQ2_B2_C_SHIFT 0 +#define MADERA_EQ2_B2_C_WIDTH 16
+/* (0x0E2E) EQ2_9 */ +#define MADERA_EQ2_B2_PG_MASK 0xFFFF +#define MADERA_EQ2_B2_PG_SHIFT 0 +#define MADERA_EQ2_B2_PG_WIDTH 16
+/* (0x0E2F) EQ2_10 */ +#define MADERA_EQ2_B3_A_MASK 0xFFFF +#define MADERA_EQ2_B3_A_SHIFT 0 +#define MADERA_EQ2_B3_A_WIDTH 16
+/* (0x0E30) EQ2_11 */ +#define MADERA_EQ2_B3_B_MASK 0xFFFF +#define MADERA_EQ2_B3_B_SHIFT 0 +#define MADERA_EQ2_B3_B_WIDTH 16
+/* (0x0E31) EQ2_12 */ +#define MADERA_EQ2_B3_C_MASK 0xFFFF +#define MADERA_EQ2_B3_C_SHIFT 0 +#define MADERA_EQ2_B3_C_WIDTH 16
+/* (0x0E32) EQ2_13 */ +#define MADERA_EQ2_B3_PG_MASK 0xFFFF +#define MADERA_EQ2_B3_PG_SHIFT 0 +#define MADERA_EQ2_B3_PG_WIDTH 16
+/* (0x0E33) EQ2_14 */ +#define MADERA_EQ2_B4_A_MASK 0xFFFF +#define MADERA_EQ2_B4_A_SHIFT 0 +#define MADERA_EQ2_B4_A_WIDTH 16
+/* (0x0E34) EQ2_15 */ +#define MADERA_EQ2_B4_B_MASK 0xFFFF +#define MADERA_EQ2_B4_B_SHIFT 0 +#define MADERA_EQ2_B4_B_WIDTH 16
+/* (0x0E35) EQ2_16 */ +#define MADERA_EQ2_B4_C_MASK 0xFFFF +#define MADERA_EQ2_B4_C_SHIFT 0 +#define MADERA_EQ2_B4_C_WIDTH 16
+/* (0x0E36) EQ2_17 */ +#define MADERA_EQ2_B4_PG_MASK 0xFFFF +#define MADERA_EQ2_B4_PG_SHIFT 0 +#define MADERA_EQ2_B4_PG_WIDTH 16
+/* (0x0E37) EQ2_18 */ +#define MADERA_EQ2_B5_A_MASK 0xFFFF +#define MADERA_EQ2_B5_A_SHIFT 0 +#define MADERA_EQ2_B5_A_WIDTH 16
+/* (0x0E38) EQ2_19 */ +#define MADERA_EQ2_B5_B_MASK 0xFFFF +#define MADERA_EQ2_B5_B_SHIFT 0 +#define MADERA_EQ2_B5_B_WIDTH 16
+/* (0x0E39) EQ2_20 */ +#define MADERA_EQ2_B5_PG_MASK 0xFFFF +#define MADERA_EQ2_B5_PG_SHIFT 0 +#define MADERA_EQ2_B5_PG_WIDTH 16
+/* (0x0E3A) EQ2_21 */ +#define MADERA_EQ2_B1_C_MASK 0xFFFF +#define MADERA_EQ2_B1_C_SHIFT 0 +#define MADERA_EQ2_B1_C_WIDTH 16
+/* (0x0E3C) EQ3_1 */ +#define MADERA_EQ3_B1_GAIN_MASK 0xF800 +#define MADERA_EQ3_B1_GAIN_SHIFT 11 +#define MADERA_EQ3_B1_GAIN_WIDTH 5 +#define MADERA_EQ3_B2_GAIN_MASK 0x07C0 +#define MADERA_EQ3_B2_GAIN_SHIFT 6 +#define MADERA_EQ3_B2_GAIN_WIDTH 5 +#define MADERA_EQ3_B3_GAIN_MASK 0x003E +#define MADERA_EQ3_B3_GAIN_SHIFT 1 +#define MADERA_EQ3_B3_GAIN_WIDTH 5 +#define MADERA_EQ3_ENA 0x0001 +#define MADERA_EQ3_ENA_MASK 0x0001 +#define MADERA_EQ3_ENA_SHIFT 0 +#define MADERA_EQ3_ENA_WIDTH 1
+/* (0x0E3D) EQ3_2 */ +#define MADERA_EQ3_B4_GAIN_MASK 0xF800 +#define MADERA_EQ3_B4_GAIN_SHIFT 11 +#define MADERA_EQ3_B4_GAIN_WIDTH 5 +#define MADERA_EQ3_B5_GAIN_MASK 0x07C0 +#define MADERA_EQ3_B5_GAIN_SHIFT 6 +#define MADERA_EQ3_B5_GAIN_WIDTH 5 +#define MADERA_EQ3_B1_MODE 0x0001 +#define MADERA_EQ3_B1_MODE_MASK 0x0001 +#define MADERA_EQ3_B1_MODE_SHIFT 0 +#define MADERA_EQ3_B1_MODE_WIDTH 1
+/* (0x0E3E) EQ3_3 */ +#define MADERA_EQ3_B1_A_MASK 0xFFFF +#define MADERA_EQ3_B1_A_SHIFT 0 +#define MADERA_EQ3_B1_A_WIDTH 16
+/* (0x0E3F) EQ3_4 */ +#define MADERA_EQ3_B1_B_MASK 0xFFFF +#define MADERA_EQ3_B1_B_SHIFT 0 +#define MADERA_EQ3_B1_B_WIDTH 16
+/* (0x0E40) EQ3_5 */ +#define MADERA_EQ3_B1_PG_MASK 0xFFFF +#define MADERA_EQ3_B1_PG_SHIFT 0 +#define MADERA_EQ3_B1_PG_WIDTH 16
+/* (0x0E41) EQ3_6 */ +#define MADERA_EQ3_B2_A_MASK 0xFFFF +#define MADERA_EQ3_B2_A_SHIFT 0 +#define MADERA_EQ3_B2_A_WIDTH 16
+/* (0x0E42) EQ3_7 */ +#define MADERA_EQ3_B2_B_MASK 0xFFFF +#define MADERA_EQ3_B2_B_SHIFT 0 +#define MADERA_EQ3_B2_B_WIDTH 16
+/* (0x0E43) EQ3_8 */ +#define MADERA_EQ3_B2_C_MASK 0xFFFF +#define MADERA_EQ3_B2_C_SHIFT 0 +#define MADERA_EQ3_B2_C_WIDTH 16
+/* (0x0E44) EQ3_9 */ +#define MADERA_EQ3_B2_PG_MASK 0xFFFF +#define MADERA_EQ3_B2_PG_SHIFT 0 +#define MADERA_EQ3_B2_PG_WIDTH 16
+/* (0x0E45) EQ3_10 */ +#define MADERA_EQ3_B3_A_MASK 0xFFFF +#define MADERA_EQ3_B3_A_SHIFT 0 +#define MADERA_EQ3_B3_A_WIDTH 16
+/* (0x0E46) EQ3_11 */ +#define MADERA_EQ3_B3_B_MASK 0xFFFF +#define MADERA_EQ3_B3_B_SHIFT 0 +#define MADERA_EQ3_B3_B_WIDTH 16
+/* (0x0E47) EQ3_12 */ +#define MADERA_EQ3_B3_C_MASK 0xFFFF +#define MADERA_EQ3_B3_C_SHIFT 0 +#define MADERA_EQ3_B3_C_WIDTH 16
+/* (0x0E48) EQ3_13 */ +#define MADERA_EQ3_B3_PG_MASK 0xFFFF +#define MADERA_EQ3_B3_PG_SHIFT 0 +#define MADERA_EQ3_B3_PG_WIDTH 16
+/* (0x0E49) EQ3_14 */ +#define MADERA_EQ3_B4_A_MASK 0xFFFF +#define MADERA_EQ3_B4_A_SHIFT 0 +#define MADERA_EQ3_B4_A_WIDTH 16
+/* (0x0E4A) EQ3_15 */ +#define MADERA_EQ3_B4_B_MASK 0xFFFF +#define MADERA_EQ3_B4_B_SHIFT 0 +#define MADERA_EQ3_B4_B_WIDTH 16
+/* (0x0E4B) EQ3_16 */ +#define MADERA_EQ3_B4_C_MASK 0xFFFF +#define MADERA_EQ3_B4_C_SHIFT 0 +#define MADERA_EQ3_B4_C_WIDTH 16
+/* (0x0E4C) EQ3_17 */ +#define MADERA_EQ3_B4_PG_MASK 0xFFFF +#define MADERA_EQ3_B4_PG_SHIFT 0 +#define MADERA_EQ3_B4_PG_WIDTH 16
+/* (0x0E4D) EQ3_18 */ +#define MADERA_EQ3_B5_A_MASK 0xFFFF +#define MADERA_EQ3_B5_A_SHIFT 0 +#define MADERA_EQ3_B5_A_WIDTH 16
+/* (0x0E4E) EQ3_19 */ +#define MADERA_EQ3_B5_B_MASK 0xFFFF +#define MADERA_EQ3_B5_B_SHIFT 0 +#define MADERA_EQ3_B5_B_WIDTH 16
+/* (0x0E4F) EQ3_20 */ +#define MADERA_EQ3_B5_PG_MASK 0xFFFF +#define MADERA_EQ3_B5_PG_SHIFT 0 +#define MADERA_EQ3_B5_PG_WIDTH 16
+/* (0x0E50) EQ3_21 */ +#define MADERA_EQ3_B1_C_MASK 0xFFFF +#define MADERA_EQ3_B1_C_SHIFT 0 +#define MADERA_EQ3_B1_C_WIDTH 16
+/* (0x0E52) EQ4_1 */ +#define MADERA_EQ4_B1_GAIN_MASK 0xF800 +#define MADERA_EQ4_B1_GAIN_SHIFT 11 +#define MADERA_EQ4_B1_GAIN_WIDTH 5 +#define MADERA_EQ4_B2_GAIN_MASK 0x07C0 +#define MADERA_EQ4_B2_GAIN_SHIFT 6 +#define MADERA_EQ4_B2_GAIN_WIDTH 5 +#define MADERA_EQ4_B3_GAIN_MASK 0x003E +#define MADERA_EQ4_B3_GAIN_SHIFT 1 +#define MADERA_EQ4_B3_GAIN_WIDTH 5 +#define MADERA_EQ4_ENA 0x0001 +#define MADERA_EQ4_ENA_MASK 0x0001 +#define MADERA_EQ4_ENA_SHIFT 0 +#define MADERA_EQ4_ENA_WIDTH 1
+/* (0x0E53) EQ4_2 */ +#define MADERA_EQ4_B4_GAIN_MASK 0xF800 +#define MADERA_EQ4_B4_GAIN_SHIFT 11 +#define MADERA_EQ4_B4_GAIN_WIDTH 5 +#define MADERA_EQ4_B5_GAIN_MASK 0x07C0 +#define MADERA_EQ4_B5_GAIN_SHIFT 6 +#define MADERA_EQ4_B5_GAIN_WIDTH 5 +#define MADERA_EQ4_B1_MODE 0x0001 +#define MADERA_EQ4_B1_MODE_MASK 0x0001 +#define MADERA_EQ4_B1_MODE_SHIFT 0 +#define MADERA_EQ4_B1_MODE_WIDTH 1
+/* (0x0E54) EQ4_3 */ +#define MADERA_EQ4_B1_A_MASK 0xFFFF +#define MADERA_EQ4_B1_A_SHIFT 0 +#define MADERA_EQ4_B1_A_WIDTH 16
+/* (0x0E55) EQ4_4 */ +#define MADERA_EQ4_B1_B_MASK 0xFFFF +#define MADERA_EQ4_B1_B_SHIFT 0 +#define MADERA_EQ4_B1_B_WIDTH 16
+/* (0x0E56) EQ4_5 */ +#define MADERA_EQ4_B1_PG_MASK 0xFFFF +#define MADERA_EQ4_B1_PG_SHIFT 0 +#define MADERA_EQ4_B1_PG_WIDTH 16
+/* (0x0E57) EQ4_6 */ +#define MADERA_EQ4_B2_A_MASK 0xFFFF +#define MADERA_EQ4_B2_A_SHIFT 0 +#define MADERA_EQ4_B2_A_WIDTH 16
+/* (0x0E58) EQ4_7 */ +#define MADERA_EQ4_B2_B_MASK 0xFFFF +#define MADERA_EQ4_B2_B_SHIFT 0 +#define MADERA_EQ4_B2_B_WIDTH 16
+/* (0x0E59) EQ4_8 */ +#define MADERA_EQ4_B2_C_MASK 0xFFFF +#define MADERA_EQ4_B2_C_SHIFT 0 +#define MADERA_EQ4_B2_C_WIDTH 16
+/* (0x0E5A) EQ4_9 */ +#define MADERA_EQ4_B2_PG_MASK 0xFFFF +#define MADERA_EQ4_B2_PG_SHIFT 0 +#define MADERA_EQ4_B2_PG_WIDTH 16
+/* (0x0E5B) EQ4_10 */ +#define MADERA_EQ4_B3_A_MASK 0xFFFF +#define MADERA_EQ4_B3_A_SHIFT 0 +#define MADERA_EQ4_B3_A_WIDTH 16
+/* (0x0E5C) EQ4_11 */ +#define MADERA_EQ4_B3_B_MASK 0xFFFF +#define MADERA_EQ4_B3_B_SHIFT 0 +#define MADERA_EQ4_B3_B_WIDTH 16
+/* (0x0E5D) EQ4_12 */ +#define MADERA_EQ4_B3_C_MASK 0xFFFF +#define MADERA_EQ4_B3_C_SHIFT 0 +#define MADERA_EQ4_B3_C_WIDTH 16
+/* (0x0E5E) EQ4_13 */ +#define MADERA_EQ4_B3_PG_MASK 0xFFFF +#define MADERA_EQ4_B3_PG_SHIFT 0 +#define MADERA_EQ4_B3_PG_WIDTH 16
+/* (0x0E5F) EQ4_14 */ +#define MADERA_EQ4_B4_A_MASK 0xFFFF +#define MADERA_EQ4_B4_A_SHIFT 0 +#define MADERA_EQ4_B4_A_WIDTH 16
+/* (0x0E60) EQ4_15 */ +#define MADERA_EQ4_B4_B_MASK 0xFFFF +#define MADERA_EQ4_B4_B_SHIFT 0 +#define MADERA_EQ4_B4_B_WIDTH 16
+/* (0x0E61) EQ4_16 */ +#define MADERA_EQ4_B4_C_MASK 0xFFFF +#define MADERA_EQ4_B4_C_SHIFT 0 +#define MADERA_EQ4_B4_C_WIDTH 16
+/* (0x0E62) EQ4_17 */ +#define MADERA_EQ4_B4_PG_MASK 0xFFFF +#define MADERA_EQ4_B4_PG_SHIFT 0 +#define MADERA_EQ4_B4_PG_WIDTH 16
+/* (0x0E63) EQ4_18 */ +#define MADERA_EQ4_B5_A_MASK 0xFFFF +#define MADERA_EQ4_B5_A_SHIFT 0 +#define MADERA_EQ4_B5_A_WIDTH 16
+/* (0x0E64) EQ4_19 */ +#define MADERA_EQ4_B5_B_MASK 0xFFFF +#define MADERA_EQ4_B5_B_SHIFT 0 +#define MADERA_EQ4_B5_B_WIDTH 16
+/* (0x0E65) EQ4_20 */ +#define MADERA_EQ4_B5_PG_MASK 0xFFFF +#define MADERA_EQ4_B5_PG_SHIFT 0 +#define MADERA_EQ4_B5_PG_WIDTH 16
+/* (0x0E66) EQ4_21 */ +#define MADERA_EQ4_B1_C_MASK 0xFFFF +#define MADERA_EQ4_B1_C_SHIFT 0 +#define MADERA_EQ4_B1_C_WIDTH 16
+/* (0x0E80) DRC1_ctrl1 */ +#define MADERA_DRC1_SIG_DET_RMS_MASK 0xF800 +#define MADERA_DRC1_SIG_DET_RMS_SHIFT 11 +#define MADERA_DRC1_SIG_DET_RMS_WIDTH 5 +#define MADERA_DRC1_SIG_DET_PK_MASK 0x0600 +#define MADERA_DRC1_SIG_DET_PK_SHIFT 9 +#define MADERA_DRC1_SIG_DET_PK_WIDTH 2 +#define MADERA_DRC1_NG_ENA 0x0100 +#define MADERA_DRC1_NG_ENA_MASK 0x0100 +#define MADERA_DRC1_NG_ENA_SHIFT 8 +#define MADERA_DRC1_NG_ENA_WIDTH 1 +#define MADERA_DRC1_SIG_DET_MODE 0x0080 +#define MADERA_DRC1_SIG_DET_MODE_MASK 0x0080 +#define MADERA_DRC1_SIG_DET_MODE_SHIFT 7 +#define MADERA_DRC1_SIG_DET_MODE_WIDTH 1 +#define MADERA_DRC1_SIG_DET 0x0040 +#define MADERA_DRC1_SIG_DET_MASK 0x0040 +#define MADERA_DRC1_SIG_DET_SHIFT 6 +#define MADERA_DRC1_SIG_DET_WIDTH 1 +#define MADERA_DRC1_KNEE2_OP_ENA 0x0020 +#define MADERA_DRC1_KNEE2_OP_ENA_MASK 0x0020 +#define MADERA_DRC1_KNEE2_OP_ENA_SHIFT 5 +#define MADERA_DRC1_KNEE2_OP_ENA_WIDTH 1 +#define MADERA_DRC1_QR 0x0010 +#define MADERA_DRC1_QR_MASK 0x0010 +#define MADERA_DRC1_QR_SHIFT 4 +#define MADERA_DRC1_QR_WIDTH 1 +#define MADERA_DRC1_ANTICLIP 0x0008 +#define MADERA_DRC1_ANTICLIP_MASK 0x0008 +#define MADERA_DRC1_ANTICLIP_SHIFT 3 +#define MADERA_DRC1_ANTICLIP_WIDTH 1 +#define MADERA_DRC1L_ENA 0x0002 +#define MADERA_DRC1L_ENA_MASK 0x0002 +#define MADERA_DRC1L_ENA_SHIFT 1 +#define MADERA_DRC1L_ENA_WIDTH 1 +#define MADERA_DRC1R_ENA 0x0001 +#define MADERA_DRC1R_ENA_MASK 0x0001 +#define MADERA_DRC1R_ENA_SHIFT 0 +#define MADERA_DRC1R_ENA_WIDTH 1
+/* (0x0E81) DRC1_ctrl2 */ +#define MADERA_DRC1_ATK_MASK 0x1E00 +#define MADERA_DRC1_ATK_SHIFT 9 +#define MADERA_DRC1_ATK_WIDTH 4 +#define MADERA_DRC1_DCY_MASK 0x01E0 +#define MADERA_DRC1_DCY_SHIFT 5 +#define MADERA_DRC1_DCY_WIDTH 4 +#define MADERA_DRC1_MINGAIN_MASK 0x001C +#define MADERA_DRC1_MINGAIN_SHIFT 2 +#define MADERA_DRC1_MINGAIN_WIDTH 3 +#define MADERA_DRC1_MAXGAIN_MASK 0x0003 +#define MADERA_DRC1_MAXGAIN_SHIFT 0 +#define MADERA_DRC1_MAXGAIN_WIDTH 2
+/* (0x0E82) DRC1_ctrl3 */ +#define MADERA_DRC1_NG_MINGAIN_MASK 0xF000 +#define MADERA_DRC1_NG_MINGAIN_SHIFT 12 +#define MADERA_DRC1_NG_MINGAIN_WIDTH 4 +#define MADERA_DRC1_NG_EXP_MASK 0x0C00 +#define MADERA_DRC1_NG_EXP_SHIFT 10 +#define MADERA_DRC1_NG_EXP_WIDTH 2 +#define MADERA_DRC1_QR_THR_MASK 0x0300 +#define MADERA_DRC1_QR_THR_SHIFT 8 +#define MADERA_DRC1_QR_THR_WIDTH 2 +#define MADERA_DRC1_QR_DCY_MASK 0x00C0 +#define MADERA_DRC1_QR_DCY_SHIFT 6 +#define MADERA_DRC1_QR_DCY_WIDTH 2 +#define MADERA_DRC1_HI_COMP_MASK 0x0038 +#define MADERA_DRC1_HI_COMP_SHIFT 3 +#define MADERA_DRC1_HI_COMP_WIDTH 3 +#define MADERA_DRC1_LO_COMP_MASK 0x0007 +#define MADERA_DRC1_LO_COMP_SHIFT 0 +#define MADERA_DRC1_LO_COMP_WIDTH 3
+/* (0x0E83) DRC1_ctrl4 */ +#define MADERA_DRC1_KNEE_IP_MASK 0x07E0 +#define MADERA_DRC1_KNEE_IP_SHIFT 5 +#define MADERA_DRC1_KNEE_IP_WIDTH 6 +#define MADERA_DRC1_KNEE_OP_MASK 0x001F +#define MADERA_DRC1_KNEE_OP_SHIFT 0 +#define MADERA_DRC1_KNEE_OP_WIDTH 5
+/* (0x0E84) DRC1_ctrl5 */ +#define MADERA_DRC1_KNEE2_IP_MASK 0x03E0 +#define MADERA_DRC1_KNEE2_IP_SHIFT 5 +#define MADERA_DRC1_KNEE2_IP_WIDTH 5 +#define MADERA_DRC1_KNEE2_OP_MASK 0x001F +#define MADERA_DRC1_KNEE2_OP_SHIFT 0 +#define MADERA_DRC1_KNEE2_OP_WIDTH 5
+/* (0x0E88) DRC2_ctrl1 */ +#define MADERA_DRC2_SIG_DET_RMS_MASK 0xF800 +#define MADERA_DRC2_SIG_DET_RMS_SHIFT 11 +#define MADERA_DRC2_SIG_DET_RMS_WIDTH 5 +#define MADERA_DRC2_SIG_DET_PK_MASK 0x0600 +#define MADERA_DRC2_SIG_DET_PK_SHIFT 9 +#define MADERA_DRC2_SIG_DET_PK_WIDTH 2 +#define MADERA_DRC2_NG_ENA 0x0100 +#define MADERA_DRC2_NG_ENA_MASK 0x0100 +#define MADERA_DRC2_NG_ENA_SHIFT 8 +#define MADERA_DRC2_NG_ENA_WIDTH 1 +#define MADERA_DRC2_SIG_DET_MODE 0x0080 +#define MADERA_DRC2_SIG_DET_MODE_MASK 0x0080 +#define MADERA_DRC2_SIG_DET_MODE_SHIFT 7 +#define MADERA_DRC2_SIG_DET_MODE_WIDTH 1 +#define MADERA_DRC2_SIG_DET 0x0040 +#define MADERA_DRC2_SIG_DET_MASK 0x0040 +#define MADERA_DRC2_SIG_DET_SHIFT 6 +#define MADERA_DRC2_SIG_DET_WIDTH 1 +#define MADERA_DRC2_KNEE2_OP_ENA 0x0020 +#define MADERA_DRC2_KNEE2_OP_ENA_MASK 0x0020 +#define MADERA_DRC2_KNEE2_OP_ENA_SHIFT 5 +#define MADERA_DRC2_KNEE2_OP_ENA_WIDTH 1 +#define MADERA_DRC2_QR 0x0010 +#define MADERA_DRC2_QR_MASK 0x0010 +#define MADERA_DRC2_QR_SHIFT 4 +#define MADERA_DRC2_QR_WIDTH 1 +#define MADERA_DRC2_ANTICLIP 0x0008 +#define MADERA_DRC2_ANTICLIP_MASK 0x0008 +#define MADERA_DRC2_ANTICLIP_SHIFT 3 +#define MADERA_DRC2_ANTICLIP_WIDTH 1 +#define MADERA_DRC2L_ENA 0x0002 +#define MADERA_DRC2L_ENA_MASK 0x0002 +#define MADERA_DRC2L_ENA_SHIFT 1 +#define MADERA_DRC2L_ENA_WIDTH 1 +#define MADERA_DRC2R_ENA 0x0001 +#define MADERA_DRC2R_ENA_MASK 0x0001 +#define MADERA_DRC2R_ENA_SHIFT 0 +#define MADERA_DRC2R_ENA_WIDTH 1
+/* (0x0E89) DRC2_ctrl2 */ +#define MADERA_DRC2_ATK_MASK 0x1E00 +#define MADERA_DRC2_ATK_SHIFT 9 +#define MADERA_DRC2_ATK_WIDTH 4 +#define MADERA_DRC2_DCY_MASK 0x01E0 +#define MADERA_DRC2_DCY_SHIFT 5 +#define MADERA_DRC2_DCY_WIDTH 4 +#define MADERA_DRC2_MINGAIN_MASK 0x001C +#define MADERA_DRC2_MINGAIN_SHIFT 2 +#define MADERA_DRC2_MINGAIN_WIDTH 3 +#define MADERA_DRC2_MAXGAIN_MASK 0x0003 +#define MADERA_DRC2_MAXGAIN_SHIFT 0 +#define MADERA_DRC2_MAXGAIN_WIDTH 2
+/* (0x0E8A) DRC2_ctrl3 */ +#define MADERA_DRC2_NG_MINGAIN_MASK 0xF000 +#define MADERA_DRC2_NG_MINGAIN_SHIFT 12 +#define MADERA_DRC2_NG_MINGAIN_WIDTH 4 +#define MADERA_DRC2_NG_EXP_MASK 0x0C00 +#define MADERA_DRC2_NG_EXP_SHIFT 10 +#define MADERA_DRC2_NG_EXP_WIDTH 2 +#define MADERA_DRC2_QR_THR_MASK 0x0300 +#define MADERA_DRC2_QR_THR_SHIFT 8 +#define MADERA_DRC2_QR_THR_WIDTH 2 +#define MADERA_DRC2_QR_DCY_MASK 0x00C0 +#define MADERA_DRC2_QR_DCY_SHIFT 6 +#define MADERA_DRC2_QR_DCY_WIDTH 2 +#define MADERA_DRC2_HI_COMP_MASK 0x0038 +#define MADERA_DRC2_HI_COMP_SHIFT 3 +#define MADERA_DRC2_HI_COMP_WIDTH 3 +#define MADERA_DRC2_LO_COMP_MASK 0x0007 +#define MADERA_DRC2_LO_COMP_SHIFT 0 +#define MADERA_DRC2_LO_COMP_WIDTH 3
+/* (0x0E8B) DRC2_ctrl4 */ +#define MADERA_DRC2_KNEE_IP_MASK 0x07E0 +#define MADERA_DRC2_KNEE_IP_SHIFT 5 +#define MADERA_DRC2_KNEE_IP_WIDTH 6 +#define MADERA_DRC2_KNEE_OP_MASK 0x001F +#define MADERA_DRC2_KNEE_OP_SHIFT 0 +#define MADERA_DRC2_KNEE_OP_WIDTH 5
+/* (0x0E8C) DRC2_ctrl5 */ +#define MADERA_DRC2_KNEE2_IP_MASK 0x03E0 +#define MADERA_DRC2_KNEE2_IP_SHIFT 5 +#define MADERA_DRC2_KNEE2_IP_WIDTH 5 +#define MADERA_DRC2_KNEE2_OP_MASK 0x001F +#define MADERA_DRC2_KNEE2_OP_SHIFT 0 +#define MADERA_DRC2_KNEE2_OP_WIDTH 5
+/* (0x0EC0) HPLPF1_1 */ +#define MADERA_LHPF1_MODE 0x0002 +#define MADERA_LHPF1_MODE_MASK 0x0002 +#define MADERA_LHPF1_MODE_SHIFT 1 +#define MADERA_LHPF1_MODE_WIDTH 1 +#define MADERA_LHPF1_ENA 0x0001 +#define MADERA_LHPF1_ENA_MASK 0x0001 +#define MADERA_LHPF1_ENA_SHIFT 0 +#define MADERA_LHPF1_ENA_WIDTH 1
+/* (0x0EC1) HPLPF1_2 */ +#define MADERA_LHPF1_COEFF_MASK 0xFFFF +#define MADERA_LHPF1_COEFF_SHIFT 0 +#define MADERA_LHPF1_COEFF_WIDTH 16
+/* (0x0EC4) HPLPF2_1 */ +#define MADERA_LHPF2_MODE 0x0002 +#define MADERA_LHPF2_MODE_MASK 0x0002 +#define MADERA_LHPF2_MODE_SHIFT 1 +#define MADERA_LHPF2_MODE_WIDTH 1 +#define MADERA_LHPF2_ENA 0x0001 +#define MADERA_LHPF2_ENA_MASK 0x0001 +#define MADERA_LHPF2_ENA_SHIFT 0 +#define MADERA_LHPF2_ENA_WIDTH 1
+/* (0x0EC5) HPLPF2_2 */ +#define MADERA_LHPF2_COEFF_MASK 0xFFFF +#define MADERA_LHPF2_COEFF_SHIFT 0 +#define MADERA_LHPF2_COEFF_WIDTH 16
+/* (0x0EC8) HPLPF3_1 */ +#define MADERA_LHPF3_MODE 0x0002 +#define MADERA_LHPF3_MODE_MASK 0x0002 +#define MADERA_LHPF3_MODE_SHIFT 1 +#define MADERA_LHPF3_MODE_WIDTH 1 +#define MADERA_LHPF3_ENA 0x0001 +#define MADERA_LHPF3_ENA_MASK 0x0001 +#define MADERA_LHPF3_ENA_SHIFT 0 +#define MADERA_LHPF3_ENA_WIDTH 1
+/* (0x0EC9) HPLPF3_2 */ +#define MADERA_LHPF3_COEFF_MASK 0xFFFF +#define MADERA_LHPF3_COEFF_SHIFT 0 +#define MADERA_LHPF3_COEFF_WIDTH 16
+/* (0x0ECC) HPLPF4_1 */ +#define MADERA_LHPF4_MODE 0x0002 +#define MADERA_LHPF4_MODE_MASK 0x0002 +#define MADERA_LHPF4_MODE_SHIFT 1 +#define MADERA_LHPF4_MODE_WIDTH 1 +#define MADERA_LHPF4_ENA 0x0001 +#define MADERA_LHPF4_ENA_MASK 0x0001 +#define MADERA_LHPF4_ENA_SHIFT 0 +#define MADERA_LHPF4_ENA_WIDTH 1
+/* (0x0ECD) HPLPF4_2 */ +#define MADERA_LHPF4_COEFF_MASK 0xFFFF +#define MADERA_LHPF4_COEFF_SHIFT 0 +#define MADERA_LHPF4_COEFF_WIDTH 16
+/* (0x0ED0) ASRC2_ENABLE */ +#define MADERA_ASRC2_IN2L_ENA 0x0008 +#define MADERA_ASRC2_IN2L_ENA_MASK 0x0008 +#define MADERA_ASRC2_IN2L_ENA_SHIFT 3 +#define MADERA_ASRC2_IN2L_ENA_WIDTH 1 +#define MADERA_ASRC2_IN2R_ENA 0x0004 +#define MADERA_ASRC2_IN2R_ENA_MASK 0x0004 +#define MADERA_ASRC2_IN2R_ENA_SHIFT 2 +#define MADERA_ASRC2_IN2R_ENA_WIDTH 1 +#define MADERA_ASRC2_IN1L_ENA 0x0002 +#define MADERA_ASRC2_IN1L_ENA_MASK 0x0002 +#define MADERA_ASRC2_IN1L_ENA_SHIFT 1 +#define MADERA_ASRC2_IN1L_ENA_WIDTH 1 +#define MADERA_ASRC2_IN1R_ENA 0x0001 +#define MADERA_ASRC2_IN1R_ENA_MASK 0x0001 +#define MADERA_ASRC2_IN1R_ENA_SHIFT 0 +#define MADERA_ASRC2_IN1R_ENA_WIDTH 1
+/* (0x0ED2) ASRC2_RATE1 */ +#define MADERA_ASRC2_RATE1_MASK 0xF800 +#define MADERA_ASRC2_RATE1_SHIFT 11 +#define MADERA_ASRC2_RATE1_WIDTH 5
+/* (0x0ED3) ASRC2_RATE2 */ +#define MADERA_ASRC2_RATE2_MASK 0xF800 +#define MADERA_ASRC2_RATE2_SHIFT 11 +#define MADERA_ASRC2_RATE2_WIDTH 5
+/* (0x0EE0) ASRC1_ENABLE */ +#define MADERA_ASRC1_IN2L_ENA 0x0008 +#define MADERA_ASRC1_IN2L_ENA_MASK 0x0008 +#define MADERA_ASRC1_IN2L_ENA_SHIFT 3 +#define MADERA_ASRC1_IN2L_ENA_WIDTH 1 +#define MADERA_ASRC1_IN2R_ENA 0x0004 +#define MADERA_ASRC1_IN2R_ENA_MASK 0x0004 +#define MADERA_ASRC1_IN2R_ENA_SHIFT 2 +#define MADERA_ASRC1_IN2R_ENA_WIDTH 1 +#define MADERA_ASRC1_IN1L_ENA 0x0002 +#define MADERA_ASRC1_IN1L_ENA_MASK 0x0002 +#define MADERA_ASRC1_IN1L_ENA_SHIFT 1 +#define MADERA_ASRC1_IN1L_ENA_WIDTH 1 +#define MADERA_ASRC1_IN1R_ENA 0x0001 +#define MADERA_ASRC1_IN1R_ENA_MASK 0x0001 +#define MADERA_ASRC1_IN1R_ENA_SHIFT 0 +#define MADERA_ASRC1_IN1R_ENA_WIDTH 1
+/* (0x0EE2) ASRC1_RATE1 */ +#define MADERA_ASRC1_RATE1_MASK 0xF800 +#define MADERA_ASRC1_RATE1_SHIFT 11 +#define MADERA_ASRC1_RATE1_WIDTH 5
+/* (0x0EE3) ASRC1_RATE2 */ +#define MADERA_ASRC1_RATE2_MASK 0xF800 +#define MADERA_ASRC1_RATE2_SHIFT 11 +#define MADERA_ASRC1_RATE2_WIDTH 5
+/* (0x0EF0) - ISRC1 CTRL 1 */ +#define MADERA_ISRC1_FSH_MASK 0xF800 +#define MADERA_ISRC1_FSH_SHIFT 11 +#define MADERA_ISRC1_FSH_WIDTH 5 +#define MADERA_ISRC1_CLK_SEL_MASK 0x0700 +#define MADERA_ISRC1_CLK_SEL_SHIFT 8 +#define MADERA_ISRC1_CLK_SEL_WIDTH 3
+/* (0x0EF1) ISRC1_CTRL_2 */ +#define MADERA_ISRC1_FSL_MASK 0xF800 +#define MADERA_ISRC1_FSL_SHIFT 11 +#define MADERA_ISRC1_FSL_WIDTH 5
+/* (0x0EF2) ISRC1_CTRL_3 */ +#define MADERA_ISRC1_INT1_ENA 0x8000 +#define MADERA_ISRC1_INT1_ENA_MASK 0x8000 +#define MADERA_ISRC1_INT1_ENA_SHIFT 15 +#define MADERA_ISRC1_INT1_ENA_WIDTH 1 +#define MADERA_ISRC1_INT2_ENA 0x4000 +#define MADERA_ISRC1_INT2_ENA_MASK 0x4000 +#define MADERA_ISRC1_INT2_ENA_SHIFT 14 +#define MADERA_ISRC1_INT2_ENA_WIDTH 1 +#define MADERA_ISRC1_INT3_ENA 0x2000 +#define MADERA_ISRC1_INT3_ENA_MASK 0x2000 +#define MADERA_ISRC1_INT3_ENA_SHIFT 13 +#define MADERA_ISRC1_INT3_ENA_WIDTH 1 +#define MADERA_ISRC1_INT4_ENA 0x1000 +#define MADERA_ISRC1_INT4_ENA_MASK 0x1000 +#define MADERA_ISRC1_INT4_ENA_SHIFT 12 +#define MADERA_ISRC1_INT4_ENA_WIDTH 1 +#define MADERA_ISRC1_DEC1_ENA 0x0200 +#define MADERA_ISRC1_DEC1_ENA_MASK 0x0200 +#define MADERA_ISRC1_DEC1_ENA_SHIFT 9 +#define MADERA_ISRC1_DEC1_ENA_WIDTH 1 +#define MADERA_ISRC1_DEC2_ENA 0x0100 +#define MADERA_ISRC1_DEC2_ENA_MASK 0x0100 +#define MADERA_ISRC1_DEC2_ENA_SHIFT 8 +#define MADERA_ISRC1_DEC2_ENA_WIDTH 1 +#define MADERA_ISRC1_DEC3_ENA 0x0080 +#define MADERA_ISRC1_DEC3_ENA_MASK 0x0080 +#define MADERA_ISRC1_DEC3_ENA_SHIFT 7 +#define MADERA_ISRC1_DEC3_ENA_WIDTH 1 +#define MADERA_ISRC1_DEC4_ENA 0x0040 +#define MADERA_ISRC1_DEC4_ENA_MASK 0x0040 +#define MADERA_ISRC1_DEC4_ENA_SHIFT 6 +#define MADERA_ISRC1_DEC4_ENA_WIDTH 1 +#define MADERA_ISRC1_NOTCH_ENA 0x0001 +#define MADERA_ISRC1_NOTCH_ENA_MASK 0x0001 +#define MADERA_ISRC1_NOTCH_ENA_SHIFT 0 +#define MADERA_ISRC1_NOTCH_ENA_WIDTH 1
+/* (0x0EF3) ISRC2_CTRL_1 */ +#define MADERA_ISRC2_FSH_MASK 0xF800 +#define MADERA_ISRC2_FSH_SHIFT 11 +#define MADERA_ISRC2_FSH_WIDTH 5 +#define MADERA_ISRC2_CLK_SEL_MASK 0x0700 +#define MADERA_ISRC2_CLK_SEL_SHIFT 8 +#define MADERA_ISRC2_CLK_SEL_WIDTH 3
+/* (0x0EF4) ISRC2_CTRL_2 */ +#define MADERA_ISRC2_FSL_MASK 0xF800 +#define MADERA_ISRC2_FSL_SHIFT 11 +#define MADERA_ISRC2_FSL_WIDTH 5
+/* (0x0EF5) ISRC2_CTRL_3 */ +#define MADERA_ISRC2_INT1_ENA 0x8000 +#define MADERA_ISRC2_INT1_ENA_MASK 0x8000 +#define MADERA_ISRC2_INT1_ENA_SHIFT 15 +#define MADERA_ISRC2_INT1_ENA_WIDTH 1 +#define MADERA_ISRC2_INT2_ENA 0x4000 +#define MADERA_ISRC2_INT2_ENA_MASK 0x4000 +#define MADERA_ISRC2_INT2_ENA_SHIFT 14 +#define MADERA_ISRC2_INT2_ENA_WIDTH 1 +#define MADERA_ISRC2_INT3_ENA 0x2000 +#define MADERA_ISRC2_INT3_ENA_MASK 0x2000 +#define MADERA_ISRC2_INT3_ENA_SHIFT 13 +#define MADERA_ISRC2_INT3_ENA_WIDTH 1 +#define MADERA_ISRC2_INT4_ENA 0x1000 +#define MADERA_ISRC2_INT4_ENA_MASK 0x1000 +#define MADERA_ISRC2_INT4_ENA_SHIFT 12 +#define MADERA_ISRC2_INT4_ENA_WIDTH 1 +#define MADERA_ISRC2_DEC1_ENA 0x0200 +#define MADERA_ISRC2_DEC1_ENA_MASK 0x0200 +#define MADERA_ISRC2_DEC1_ENA_SHIFT 9 +#define MADERA_ISRC2_DEC1_ENA_WIDTH 1 +#define MADERA_ISRC2_DEC2_ENA 0x0100 +#define MADERA_ISRC2_DEC2_ENA_MASK 0x0100 +#define MADERA_ISRC2_DEC2_ENA_SHIFT 8 +#define MADERA_ISRC2_DEC2_ENA_WIDTH 1 +#define MADERA_ISRC2_DEC3_ENA 0x0080 +#define MADERA_ISRC2_DEC3_ENA_MASK 0x0080 +#define MADERA_ISRC2_DEC3_ENA_SHIFT 7 +#define MADERA_ISRC2_DEC3_ENA_WIDTH 1 +#define MADERA_ISRC2_DEC4_ENA 0x0040 +#define MADERA_ISRC2_DEC4_ENA_MASK 0x0040 +#define MADERA_ISRC2_DEC4_ENA_SHIFT 6 +#define MADERA_ISRC2_DEC4_ENA_WIDTH 1 +#define MADERA_ISRC2_NOTCH_ENA 0x0001 +#define MADERA_ISRC2_NOTCH_ENA_MASK 0x0001 +#define MADERA_ISRC2_NOTCH_ENA_SHIFT 0 +#define MADERA_ISRC2_NOTCH_ENA_WIDTH 1
+/* (0x0EF6) ISRC3_CTRL_1 */ +#define MADERA_ISRC3_FSH_MASK 0xF800 +#define MADERA_ISRC3_FSH_SHIFT 11 +#define MADERA_ISRC3_FSH_WIDTH 5 +#define MADERA_ISRC3_CLK_SEL_MASK 0x0700 +#define MADERA_ISRC3_CLK_SEL_SHIFT 8 +#define MADERA_ISRC3_CLK_SEL_WIDTH 3
+/* (0x0EF7) ISRC3_CTRL_2 */ +#define MADERA_ISRC3_FSL_MASK 0xF800 +#define MADERA_ISRC3_FSL_SHIFT 11 +#define MADERA_ISRC3_FSL_WIDTH 5
+/* (0x0EF8) ISRC3_CTRL_3 */ +#define MADERA_ISRC3_INT1_ENA 0x8000 +#define MADERA_ISRC3_INT1_ENA_MASK 0x8000 +#define MADERA_ISRC3_INT1_ENA_SHIFT 15 +#define MADERA_ISRC3_INT1_ENA_WIDTH 1 +#define MADERA_ISRC3_INT2_ENA 0x4000 +#define MADERA_ISRC3_INT2_ENA_MASK 0x4000 +#define MADERA_ISRC3_INT2_ENA_SHIFT 14 +#define MADERA_ISRC3_INT2_ENA_WIDTH 1 +#define MADERA_ISRC3_INT3_ENA 0x2000 +#define MADERA_ISRC3_INT3_ENA_MASK 0x2000 +#define MADERA_ISRC3_INT3_ENA_SHIFT 13 +#define MADERA_ISRC3_INT3_ENA_WIDTH 1 +#define MADERA_ISRC3_INT4_ENA 0x1000 +#define MADERA_ISRC3_INT4_ENA_MASK 0x1000 +#define MADERA_ISRC3_INT4_ENA_SHIFT 12 +#define MADERA_ISRC3_INT4_ENA_WIDTH 1 +#define MADERA_ISRC3_DEC1_ENA 0x0200 +#define MADERA_ISRC3_DEC1_ENA_MASK 0x0200 +#define MADERA_ISRC3_DEC1_ENA_SHIFT 9 +#define MADERA_ISRC3_DEC1_ENA_WIDTH 1 +#define MADERA_ISRC3_DEC2_ENA 0x0100 +#define MADERA_ISRC3_DEC2_ENA_MASK 0x0100 +#define MADERA_ISRC3_DEC2_ENA_SHIFT 8 +#define MADERA_ISRC3_DEC2_ENA_WIDTH 1 +#define MADERA_ISRC3_DEC3_ENA 0x0080 +#define MADERA_ISRC3_DEC3_ENA_MASK 0x0080 +#define MADERA_ISRC3_DEC3_ENA_SHIFT 7 +#define MADERA_ISRC3_DEC3_ENA_WIDTH 1 +#define MADERA_ISRC3_DEC4_ENA 0x0040 +#define MADERA_ISRC3_DEC4_ENA_MASK 0x0040 +#define MADERA_ISRC3_DEC4_ENA_SHIFT 6 +#define MADERA_ISRC3_DEC4_ENA_WIDTH 1 +#define MADERA_ISRC3_NOTCH_ENA 0x0001 +#define MADERA_ISRC3_NOTCH_ENA_MASK 0x0001 +#define MADERA_ISRC3_NOTCH_ENA_SHIFT 0 +#define MADERA_ISRC3_NOTCH_ENA_WIDTH 1
+/* (0x0EF9) ISRC4_CTRL_1 */ +#define MADERA_ISRC4_FSH_MASK 0xF800 +#define MADERA_ISRC4_FSH_SHIFT 11 +#define MADERA_ISRC4_FSH_WIDTH 5 +#define MADERA_ISRC4_CLK_SEL_MASK 0x0700 +#define MADERA_ISRC4_CLK_SEL_SHIFT 8 +#define MADERA_ISRC4_CLK_SEL_WIDTH 3
+/* (0x0EFA) ISRC4_CTRL_2 */ +#define MADERA_ISRC4_FSL_MASK 0xF800 +#define MADERA_ISRC4_FSL_SHIFT 11 +#define MADERA_ISRC4_FSL_WIDTH 5
+/* (0x0EFB) ISRC4_CTRL_3 */ +#define MADERA_ISRC4_INT1_ENA 0x8000 +#define MADERA_ISRC4_INT1_ENA_MASK 0x8000 +#define MADERA_ISRC4_INT1_ENA_SHIFT 15 +#define MADERA_ISRC4_INT1_ENA_WIDTH 1 +#define MADERA_ISRC4_INT2_ENA 0x4000 +#define MADERA_ISRC4_INT2_ENA_MASK 0x4000 +#define MADERA_ISRC4_INT2_ENA_SHIFT 14 +#define MADERA_ISRC4_INT2_ENA_WIDTH 1 +#define MADERA_ISRC4_INT3_ENA 0x2000 +#define MADERA_ISRC4_INT3_ENA_MASK 0x2000 +#define MADERA_ISRC4_INT3_ENA_SHIFT 13 +#define MADERA_ISRC4_INT3_ENA_WIDTH 1 +#define MADERA_ISRC4_INT4_ENA 0x1000 +#define MADERA_ISRC4_INT4_ENA_MASK 0x1000 +#define MADERA_ISRC4_INT4_ENA_SHIFT 12 +#define MADERA_ISRC4_INT4_ENA_WIDTH 1 +#define MADERA_ISRC4_DEC1_ENA 0x0200 +#define MADERA_ISRC4_DEC1_ENA_MASK 0x0200 +#define MADERA_ISRC4_DEC1_ENA_SHIFT 9 +#define MADERA_ISRC4_DEC1_ENA_WIDTH 1 +#define MADERA_ISRC4_DEC2_ENA 0x0100 +#define MADERA_ISRC4_DEC2_ENA_MASK 0x0100 +#define MADERA_ISRC4_DEC2_ENA_SHIFT 8 +#define MADERA_ISRC4_DEC2_ENA_WIDTH 1 +#define MADERA_ISRC4_DEC3_ENA 0x0080 +#define MADERA_ISRC4_DEC3_ENA_MASK 0x0080 +#define MADERA_ISRC4_DEC3_ENA_SHIFT 7 +#define MADERA_ISRC4_DEC3_ENA_WIDTH 1 +#define MADERA_ISRC4_DEC4_ENA 0x0040 +#define MADERA_ISRC4_DEC4_ENA_MASK 0x0040 +#define MADERA_ISRC4_DEC4_ENA_SHIFT 6 +#define MADERA_ISRC4_DEC4_ENA_WIDTH 1 +#define MADERA_ISRC4_NOTCH_ENA 0x0001 +#define MADERA_ISRC4_NOTCH_ENA_MASK 0x0001 +#define MADERA_ISRC4_NOTCH_ENA_SHIFT 0 +#define MADERA_ISRC4_NOTCH_ENA_WIDTH 1
+/* (0x0F00) Clock_Control */ +#define MADERA_EXT_NG_SEL_CLR 0x0080 +#define MADERA_EXT_NG_SEL_CLR_MASK 0x0080 +#define MADERA_EXT_NG_SEL_CLR_SHIFT 7 +#define MADERA_EXT_NG_SEL_CLR_WIDTH 1 +#define MADERA_EXT_NG_SEL_SET 0x0040 +#define MADERA_EXT_NG_SEL_SET_MASK 0x0040 +#define MADERA_EXT_NG_SEL_SET_SHIFT 6 +#define MADERA_EXT_NG_SEL_SET_WIDTH 1 +#define MADERA_CLK_R_ENA_CLR 0x0020 +#define MADERA_CLK_R_ENA_CLR_MASK 0x0020 +#define MADERA_CLK_R_ENA_CLR_SHIFT 5 +#define MADERA_CLK_R_ENA_CLR_WIDTH 1 +#define MADERA_CLK_R_ENA_SET 0x0010 +#define MADERA_CLK_R_ENA_SET_MASK 0x0010 +#define MADERA_CLK_R_ENA_SET_SHIFT 4 +#define MADERA_CLK_R_ENA_SET_WIDTH 1 +#define MADERA_CLK_NG_ENA_CLR 0x0008 +#define MADERA_CLK_NG_ENA_CLR_MASK 0x0008 +#define MADERA_CLK_NG_ENA_CLR_SHIFT 3 +#define MADERA_CLK_NG_ENA_CLR_WIDTH 1 +#define MADERA_CLK_NG_ENA_SET 0x0004 +#define MADERA_CLK_NG_ENA_SET_MASK 0x0004 +#define MADERA_CLK_NG_ENA_SET_SHIFT 2 +#define MADERA_CLK_NG_ENA_SET_WIDTH 1 +#define MADERA_CLK_L_ENA_CLR 0x0002 +#define MADERA_CLK_L_ENA_CLR_MASK 0x0002 +#define MADERA_CLK_L_ENA_CLR_SHIFT 1 +#define MADERA_CLK_L_ENA_CLR_WIDTH 1 +#define MADERA_CLK_L_ENA_SET 0x0001 +#define MADERA_CLK_L_ENA_SET_MASK 0x0001 +#define MADERA_CLK_L_ENA_SET_SHIFT 0 +#define MADERA_CLK_L_ENA_SET_WIDTH 1
+/* (0x0F01) ANC_SRC */ +#define MADERA_IN_RXANCR_SEL_MASK 0x0070 +#define MADERA_IN_RXANCR_SEL_SHIFT 4 +#define MADERA_IN_RXANCR_SEL_WIDTH 3 +#define MADERA_IN_RXANCL_SEL_MASK 0x0007 +#define MADERA_IN_RXANCL_SEL_SHIFT 0 +#define MADERA_IN_RXANCL_SEL_WIDTH 3
+/* (0x0F17) FCL_ADC_reformatter_control */ +#define MADERA_FCL_MIC_MODE_SEL 0x000C +#define MADERA_FCL_MIC_MODE_SEL_SHIFT 2 +#define MADERA_FCL_MIC_MODE_SEL_WIDTH 2
+/* (0x0F73) FCR_ADC_reformatter_control */ +#define MADERA_FCR_MIC_MODE_SEL 0x000C +#define MADERA_FCR_MIC_MODE_SEL_SHIFT 2 +#define MADERA_FCR_MIC_MODE_SEL_WIDTH 2
+/* (0x1480) DFC1_CTRL_W0 */ +#define MADERA_DFC1_RATE_MASK 0x007C +#define MADERA_DFC1_RATE_SHIFT 2 +#define MADERA_DFC1_RATE_WIDTH 5 +#define MADERA_DFC1_DITH_ENA 0x0002 +#define MADERA_DFC1_DITH_ENA_MASK 0x0002 +#define MADERA_DFC1_DITH_ENA_SHIFT 1 +#define MADERA_DFC1_DITH_ENA_WIDTH 1 +#define MADERA_DFC1_ENA 0x0001 +#define MADERA_DFC1_ENA_MASK 0x0001 +#define MADERA_DFC1_ENA_SHIFT 0 +#define MADERA_DFC1_ENA_WIDTH 1
+/* (0x1482) DFC1_RX_W0 */ +#define MADERA_DFC1_RX_DATA_WIDTH_MASK 0x1F00 +#define MADERA_DFC1_RX_DATA_WIDTH_SHIFT 8 +#define MADERA_DFC1_RX_DATA_WIDTH_WIDTH 5
+#define MADERA_DFC1_RX_DATA_TYPE_MASK 0x0007 +#define MADERA_DFC1_RX_DATA_TYPE_SHIFT 0 +#define MADERA_DFC1_RX_DATA_TYPE_WIDTH 3
+/* (0x1484) DFC1_TX_W0 */ +#define MADERA_DFC1_TX_DATA_WIDTH_MASK 0x1F00 +#define MADERA_DFC1_TX_DATA_WIDTH_SHIFT 8 +#define MADERA_DFC1_TX_DATA_WIDTH_WIDTH 5
+#define MADERA_DFC1_TX_DATA_TYPE_MASK 0x0007 +#define MADERA_DFC1_TX_DATA_TYPE_SHIFT 0 +#define MADERA_DFC1_TX_DATA_TYPE_WIDTH 3
+/* (0x1600) ADSP2_IRQ0 */ +#define MADERA_DSP_IRQ2 0x0002 +#define MADERA_DSP_IRQ1 0x0001
+/* (0x1601) ADSP2_IRQ1 */ +#define MADERA_DSP_IRQ4 0x0002 +#define MADERA_DSP_IRQ3 0x0001
+/* (0x1602) ADSP2_IRQ2 */ +#define MADERA_DSP_IRQ6 0x0002 +#define MADERA_DSP_IRQ5 0x0001
+/* (0x1603) ADSP2_IRQ3 */ +#define MADERA_DSP_IRQ8 0x0002 +#define MADERA_DSP_IRQ7 0x0001
+/* (0x1604) ADSP2_IRQ4 */ +#define MADERA_DSP_IRQ10 0x0002 +#define MADERA_DSP_IRQ9 0x0001
+/* (0x1605) ADSP2_IRQ5 */ +#define MADERA_DSP_IRQ12 0x0002 +#define MADERA_DSP_IRQ11 0x0001
+/* (0x1606) ADSP2_IRQ6 */ +#define MADERA_DSP_IRQ14 0x0002 +#define MADERA_DSP_IRQ13 0x0001
+/* (0x1607) ADSP2_IRQ7 */ +#define MADERA_DSP_IRQ16 0x0002 +#define MADERA_DSP_IRQ15 0x0001
+/* (0x1700) GPIO1_CTRL_1 */ +#define MADERA_GP1_LVL 0x8000 +#define MADERA_GP1_LVL_MASK 0x8000 +#define MADERA_GP1_LVL_SHIFT 15 +#define MADERA_GP1_LVL_WIDTH 1 +#define MADERA_GP1_OP_CFG 0x4000 +#define MADERA_GP1_OP_CFG_MASK 0x4000 +#define MADERA_GP1_OP_CFG_SHIFT 14 +#define MADERA_GP1_OP_CFG_WIDTH 1 +#define MADERA_GP1_DB 0x2000 +#define MADERA_GP1_DB_MASK 0x2000 +#define MADERA_GP1_DB_SHIFT 13 +#define MADERA_GP1_DB_WIDTH 1 +#define MADERA_GP1_POL 0x1000 +#define MADERA_GP1_POL_MASK 0x1000 +#define MADERA_GP1_POL_SHIFT 12 +#define MADERA_GP1_POL_WIDTH 1 +#define MADERA_GP1_IP_CFG 0x0800 +#define MADERA_GP1_IP_CFG_MASK 0x0800 +#define MADERA_GP1_IP_CFG_SHIFT 11 +#define MADERA_GP1_IP_CFG_WIDTH 1 +#define MADERA_GP1_FN_MASK 0x03FF +#define MADERA_GP1_FN_SHIFT 0 +#define MADERA_GP1_FN_WIDTH 10
+/* (0x1701) GPIO1_CTRL_2 */ +#define MADERA_GP1_DIR 0x8000 +#define MADERA_GP1_DIR_MASK 0x8000 +#define MADERA_GP1_DIR_SHIFT 15 +#define MADERA_GP1_DIR_WIDTH 1 +#define MADERA_GP1_PU 0x4000 +#define MADERA_GP1_PU_MASK 0x4000 +#define MADERA_GP1_PU_SHIFT 14 +#define MADERA_GP1_PU_WIDTH 1 +#define MADERA_GP1_PD 0x2000 +#define MADERA_GP1_PD_MASK 0x2000 +#define MADERA_GP1_PD_SHIFT 13 +#define MADERA_GP1_PD_WIDTH 1 +#define MADERA_GP1_DRV_STR_MASK 0x1800 +#define MADERA_GP1_DRV_STR_SHIFT 11 +#define MADERA_GP1_DRV_STR_WIDTH 2
+/* (0x1800) IRQ1_Status_1 */ +#define MADERA_DSP_SHARED_WR_COLL_EINT1 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_EINT1_MASK 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_EINT1_SHIFT 15 +#define MADERA_DSP_SHARED_WR_COLL_EINT1_WIDTH 1 +#define MADERA_CTRLIF_ERR_EINT1 0x1000 +#define MADERA_CTRLIF_ERR_EINT1_MASK 0x1000 +#define MADERA_CTRLIF_ERR_EINT1_SHIFT 12 +#define MADERA_CTRLIF_ERR_EINT1_WIDTH 1 +#define MADERA_SYSCLK_FAIL_EINT1 0x0200 +#define MADERA_SYSCLK_FAIL_EINT1_MASK 0x0200 +#define MADERA_SYSCLK_FAIL_EINT1_SHIFT 9 +#define MADERA_SYSCLK_FAIL_EINT1_WIDTH 1 +#define MADERA_CLOCK_DETECT_EINT1 0x0100 +#define MADERA_CLOCK_DETECT_EINT1_MASK 0x0100 +#define MADERA_CLOCK_DETECT_EINT1_SHIFT 8 +#define MADERA_CLOCK_DETECT_EINT1_WIDTH 1 +#define MADERA_BOOT_DONE_EINT1 0x0080 +#define MADERA_BOOT_DONE_EINT1_MASK 0x0080 +#define MADERA_BOOT_DONE_EINT1_SHIFT 7 +#define MADERA_BOOT_DONE_EINT1_WIDTH 1
+/* (0x1801) IRQ1_Status_2 */ +#define MADERA_FLLAO_LOCK_EINT1 0x0800 +#define MADERA_FLLAO_LOCK_EINT1_MASK 0x0800 +#define MADERA_FLLAO_LOCK_EINT1_SHIFT 11 +#define MADERA_FLLAO_LOCK_EINT1_WIDTH 1 +#define MADERA_FLL3_LOCK_EINT1 0x0400 +#define MADERA_FLL3_LOCK_EINT1_MASK 0x0400 +#define MADERA_FLL3_LOCK_EINT1_SHIFT 10 +#define MADERA_FLL3_LOCK_EINT1_WIDTH 1 +#define MADERA_FLL2_LOCK_EINT1 0x0200 +#define MADERA_FLL2_LOCK_EINT1_MASK 0x0200 +#define MADERA_FLL2_LOCK_EINT1_SHIFT 9 +#define MADERA_FLL2_LOCK_EINT1_WIDTH 1 +#define MADERA_FLL1_LOCK_EINT1 0x0100 +#define MADERA_FLL1_LOCK_EINT1_MASK 0x0100 +#define MADERA_FLL1_LOCK_EINT1_SHIFT 8 +#define MADERA_FLL1_LOCK_EINT1_WIDTH 1
+/* (0x1805) IRQ1_Status_6 */ +#define MADERA_MICDET2_EINT1 0x0200 +#define MADERA_MICDET2_EINT1_MASK 0x0200 +#define MADERA_MICDET2_EINT1_SHIFT 9 +#define MADERA_MICDET2_EINT1_WIDTH 1 +#define MADERA_MICDET1_EINT1 0x0100 +#define MADERA_MICDET1_EINT1_MASK 0x0100 +#define MADERA_MICDET1_EINT1_SHIFT 8 +#define MADERA_MICDET1_EINT1_WIDTH 1 +#define MADERA_HPDET_EINT1 0x0001 +#define MADERA_HPDET_EINT1_MASK 0x0001 +#define MADERA_HPDET_EINT1_SHIFT 0 +#define MADERA_HPDET_EINT1_WIDTH 1
+/* (0x1806) IRQ1_Status_7 */ +#define MADERA_MICD_CLAMP_FALL_EINT1 0x0020 +#define MADERA_MICD_CLAMP_FALL_EINT1_MASK 0x0020 +#define MADERA_MICD_CLAMP_FALL_EINT1_SHIFT 5 +#define MADERA_MICD_CLAMP_FALL_EINT1_WIDTH 1 +#define MADERA_MICD_CLAMP_RISE_EINT1 0x0010 +#define MADERA_MICD_CLAMP_RISE_EINT1_MASK 0x0010 +#define MADERA_MICD_CLAMP_RISE_EINT1_SHIFT 4 +#define MADERA_MICD_CLAMP_RISE_EINT1_WIDTH 1 +#define MADERA_JD2_FALL_EINT1 0x0008 +#define MADERA_JD2_FALL_EINT1_MASK 0x0008 +#define MADERA_JD2_FALL_EINT1_SHIFT 3 +#define MADERA_JD2_FALL_EINT1_WIDTH 1 +#define MADERA_JD2_RISE_EINT1 0x0004 +#define MADERA_JD2_RISE_EINT1_MASK 0x0004 +#define MADERA_JD2_RISE_EINT1_SHIFT 2 +#define MADERA_JD2_RISE_EINT1_WIDTH 1 +#define MADERA_JD1_FALL_EINT1 0x0002 +#define MADERA_JD1_FALL_EINT1_MASK 0x0002 +#define MADERA_JD1_FALL_EINT1_SHIFT 1 +#define MADERA_JD1_FALL_EINT1_WIDTH 1 +#define MADERA_JD1_RISE_EINT1 0x0001 +#define MADERA_JD1_RISE_EINT1_MASK 0x0001 +#define MADERA_JD1_RISE_EINT1_SHIFT 0 +#define MADERA_JD1_RISE_EINT1_WIDTH 1
+/* (0x1808) IRQ1_Status_9 */ +#define MADERA_ASRC2_IN2_LOCK_EINT1 0x0800 +#define MADERA_ASRC2_IN2_LOCK_EINT1_MASK 0x0800 +#define MADERA_ASRC2_IN2_LOCK_EINT1_SHIFT 11 +#define MADERA_ASRC2_IN2_LOCK_EINT1_WIDTH 1 +#define MADERA_ASRC2_IN1_LOCK_EINT1 0x0400 +#define MADERA_ASRC2_IN1_LOCK_EINT1_MASK 0x0400 +#define MADERA_ASRC2_IN1_LOCK_EINT1_SHIFT 10 +#define MADERA_ASRC2_IN1_LOCK_EINT1_WIDTH 1 +#define MADERA_ASRC1_IN2_LOCK_EINT1 0x0200 +#define MADERA_ASRC1_IN2_LOCK_EINT1_MASK 0x0200 +#define MADERA_ASRC1_IN2_LOCK_EINT1_SHIFT 9 +#define MADERA_ASRC1_IN2_LOCK_EINT1_WIDTH 1 +#define MADERA_ASRC1_IN1_LOCK_EINT1 0x0100 +#define MADERA_ASRC1_IN1_LOCK_EINT1_MASK 0x0100 +#define MADERA_ASRC1_IN1_LOCK_EINT1_SHIFT 8 +#define MADERA_ASRC1_IN1_LOCK_EINT1_WIDTH 1 +#define MADERA_DRC2_SIG_DET_EINT1 0x0002 +#define MADERA_DRC2_SIG_DET_EINT1_MASK 0x0002 +#define MADERA_DRC2_SIG_DET_EINT1_SHIFT 1 +#define MADERA_DRC2_SIG_DET_EINT1_WIDTH 1 +#define MADERA_DRC1_SIG_DET_EINT1 0x0001 +#define MADERA_DRC1_SIG_DET_EINT1_MASK 0x0001 +#define MADERA_DRC1_SIG_DET_EINT1_SHIFT 0 +#define MADERA_DRC1_SIG_DET_EINT1_WIDTH 1
+/* (0x180A) IRQ1_Status_11 */ +#define MADERA_DSP_IRQ16_EINT1 0x8000 +#define MADERA_DSP_IRQ16_EINT1_MASK 0x8000 +#define MADERA_DSP_IRQ16_EINT1_SHIFT 15 +#define MADERA_DSP_IRQ16_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ15_EINT1 0x4000 +#define MADERA_DSP_IRQ15_EINT1_MASK 0x4000 +#define MADERA_DSP_IRQ15_EINT1_SHIFT 14 +#define MADERA_DSP_IRQ15_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ14_EINT1 0x2000 +#define MADERA_DSP_IRQ14_EINT1_MASK 0x2000 +#define MADERA_DSP_IRQ14_EINT1_SHIFT 13 +#define MADERA_DSP_IRQ14_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ13_EINT1 0x1000 +#define MADERA_DSP_IRQ13_EINT1_MASK 0x1000 +#define MADERA_DSP_IRQ13_EINT1_SHIFT 12 +#define MADERA_DSP_IRQ13_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ12_EINT1 0x0800 +#define MADERA_DSP_IRQ12_EINT1_MASK 0x0800 +#define MADERA_DSP_IRQ12_EINT1_SHIFT 11 +#define MADERA_DSP_IRQ12_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ11_EINT1 0x0400 +#define MADERA_DSP_IRQ11_EINT1_MASK 0x0400 +#define MADERA_DSP_IRQ11_EINT1_SHIFT 10 +#define MADERA_DSP_IRQ11_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ10_EINT1 0x0200 +#define MADERA_DSP_IRQ10_EINT1_MASK 0x0200 +#define MADERA_DSP_IRQ10_EINT1_SHIFT 9 +#define MADERA_DSP_IRQ10_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ9_EINT1 0x0100 +#define MADERA_DSP_IRQ9_EINT1_MASK 0x0100 +#define MADERA_DSP_IRQ9_EINT1_SHIFT 8 +#define MADERA_DSP_IRQ9_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ8_EINT1 0x0080 +#define MADERA_DSP_IRQ8_EINT1_MASK 0x0080 +#define MADERA_DSP_IRQ8_EINT1_SHIFT 7 +#define MADERA_DSP_IRQ8_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ7_EINT1 0x0040 +#define MADERA_DSP_IRQ7_EINT1_MASK 0x0040 +#define MADERA_DSP_IRQ7_EINT1_SHIFT 6 +#define MADERA_DSP_IRQ7_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ6_EINT1 0x0020 +#define MADERA_DSP_IRQ6_EINT1_MASK 0x0020 +#define MADERA_DSP_IRQ6_EINT1_SHIFT 5 +#define MADERA_DSP_IRQ6_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ5_EINT1 0x0010 +#define MADERA_DSP_IRQ5_EINT1_MASK 0x0010 +#define MADERA_DSP_IRQ5_EINT1_SHIFT 4 +#define MADERA_DSP_IRQ5_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ4_EINT1 0x0008 +#define MADERA_DSP_IRQ4_EINT1_MASK 0x0008 +#define MADERA_DSP_IRQ4_EINT1_SHIFT 3 +#define MADERA_DSP_IRQ4_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ3_EINT1 0x0004 +#define MADERA_DSP_IRQ3_EINT1_MASK 0x0004 +#define MADERA_DSP_IRQ3_EINT1_SHIFT 2 +#define MADERA_DSP_IRQ3_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ2_EINT1 0x0002 +#define MADERA_DSP_IRQ2_EINT1_MASK 0x0002 +#define MADERA_DSP_IRQ2_EINT1_SHIFT 1 +#define MADERA_DSP_IRQ2_EINT1_WIDTH 1 +#define MADERA_DSP_IRQ1_EINT1 0x0001 +#define MADERA_DSP_IRQ1_EINT1_MASK 0x0001 +#define MADERA_DSP_IRQ1_EINT1_SHIFT 0 +#define MADERA_DSP_IRQ1_EINT1_WIDTH 1
+/* (0x180B) IRQ1_Status_12 */ +#define MADERA_SPKOUTR_SC_EINT1 0x0080 +#define MADERA_SPKOUTR_SC_EINT1_MASK 0x0080 +#define MADERA_SPKOUTR_SC_EINT1_SHIFT 7 +#define MADERA_SPKOUTR_SC_EINT1_WIDTH 1 +#define MADERA_SPKOUTL_SC_EINT1 0x0040 +#define MADERA_SPKOUTL_SC_EINT1_MASK 0x0040 +#define MADERA_SPKOUTL_SC_EINT1_SHIFT 6 +#define MADERA_SPKOUTL_SC_EINT1_WIDTH 1 +#define MADERA_HP3R_SC_EINT1 0x0020 +#define MADERA_HP3R_SC_EINT1_MASK 0x0020 +#define MADERA_HP3R_SC_EINT1_SHIFT 5 +#define MADERA_HP3R_SC_EINT1_WIDTH 1 +#define MADERA_HP3L_SC_EINT1 0x0010 +#define MADERA_HP3L_SC_EINT1_MASK 0x0010 +#define MADERA_HP3L_SC_EINT1_SHIFT 4 +#define MADERA_HP3L_SC_EINT1_WIDTH 1 +#define MADERA_HP2R_SC_EINT1 0x0008 +#define MADERA_HP2R_SC_EINT1_MASK 0x0008 +#define MADERA_HP2R_SC_EINT1_SHIFT 3 +#define MADERA_HP2R_SC_EINT1_WIDTH 1 +#define MADERA_HP2L_SC_EINT1 0x0004 +#define MADERA_HP2L_SC_EINT1_MASK 0x0004 +#define MADERA_HP2L_SC_EINT1_SHIFT 2 +#define MADERA_HP2L_SC_EINT1_WIDTH 1 +#define MADERA_HP1R_SC_EINT1 0x0002 +#define MADERA_HP1R_SC_EINT1_MASK 0x0002 +#define MADERA_HP1R_SC_EINT1_SHIFT 1 +#define MADERA_HP1R_SC_EINT1_WIDTH 1 +#define MADERA_HP1L_SC_EINT1 0x0001 +#define MADERA_HP1L_SC_EINT1_MASK 0x0001 +#define MADERA_HP1L_SC_EINT1_SHIFT 0 +#define MADERA_HP1L_SC_EINT1_WIDTH 1
+/* (0x180C) IRQ1_Status_13 */ +#define MADERA_SPKOUTR_ENABLE_DONE_EINT1 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT1_MASK 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT1_SHIFT 7 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT1 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT1_MASK 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT1_SHIFT 6 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP3R_ENABLE_DONE_EINT1 0x0020 +#define MADERA_HP3R_ENABLE_DONE_EINT1_MASK 0x0020 +#define MADERA_HP3R_ENABLE_DONE_EINT1_SHIFT 5 +#define MADERA_HP3R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP3L_ENABLE_DONE_EINT1 0x0010 +#define MADERA_HP3L_ENABLE_DONE_EINT1_MASK 0x0010 +#define MADERA_HP3L_ENABLE_DONE_EINT1_SHIFT 4 +#define MADERA_HP3L_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP2R_ENABLE_DONE_EINT1 0x0008 +#define MADERA_HP2R_ENABLE_DONE_EINT1_MASK 0x0008 +#define MADERA_HP2R_ENABLE_DONE_EINT1_SHIFT 3 +#define MADERA_HP2R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP2L_ENABLE_DONE_EINT1 0x0004 +#define MADERA_HP2L_ENABLE_DONE_EINT1_MASK 0x0004 +#define MADERA_HP2L_ENABLE_DONE_EINT1_SHIFT 2 +#define MADERA_HP2L_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP1R_ENABLE_DONE_EINT1 0x0002 +#define MADERA_HP1R_ENABLE_DONE_EINT1_MASK 0x0002 +#define MADERA_HP1R_ENABLE_DONE_EINT1_SHIFT 1 +#define MADERA_HP1R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP1L_ENABLE_DONE_EINT1 0x0001 +#define MADERA_HP1L_ENABLE_DONE_EINT1_MASK 0x0001 +#define MADERA_HP1L_ENABLE_DONE_EINT1_SHIFT 0 +#define MADERA_HP1L_ENABLE_DONE_EINT1_WIDTH 1
+/* (0x180D) IRQ1_Status_14 */ +#define MADERA_SPKOUTR_DISABLE_DONE_EINT1 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT1_MASK 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT1_SHIFT 7 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT1 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT1_MASK 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT1_SHIFT 6 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP3R_DISABLE_DONE_EINT1 0x0020 +#define MADERA_HP3R_DISABLE_DONE_EINT1_MASK 0x0020 +#define MADERA_HP3R_DISABLE_DONE_EINT1_SHIFT 5 +#define MADERA_HP3R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP3L_DISABLE_DONE_EINT1 0x0010 +#define MADERA_HP3L_DISABLE_DONE_EINT1_MASK 0x0010 +#define MADERA_HP3L_DISABLE_DONE_EINT1_SHIFT 4 +#define MADERA_HP3L_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP2R_DISABLE_DONE_EINT1 0x0008 +#define MADERA_HP2R_DISABLE_DONE_EINT1_MASK 0x0008 +#define MADERA_HP2R_DISABLE_DONE_EINT1_SHIFT 3 +#define MADERA_HP2R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP2L_DISABLE_DONE_EINT1 0x0004 +#define MADERA_HP2L_DISABLE_DONE_EINT1_MASK 0x0004 +#define MADERA_HP2L_DISABLE_DONE_EINT1_SHIFT 2 +#define MADERA_HP2L_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP1R_DISABLE_DONE_EINT1 0x0002 +#define MADERA_HP1R_DISABLE_DONE_EINT1_MASK 0x0002 +#define MADERA_HP1R_DISABLE_DONE_EINT1_SHIFT 1 +#define MADERA_HP1R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_HP1L_DISABLE_DONE_EINT1 0x0001 +#define MADERA_HP1L_DISABLE_DONE_EINT1_MASK 0x0001 +#define MADERA_HP1L_DISABLE_DONE_EINT1_SHIFT 0 +#define MADERA_HP1L_DISABLE_DONE_EINT1_WIDTH 1
+/* (0x180E) IRQ1_Status_15 */ +#define MADERA_SPK_OVERHEAT_WARN_EINT1 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_EINT1_MASK 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_EINT1_SHIFT 2 +#define MADERA_SPK_OVERHEAT_WARN_EINT1_WIDTH 1 +#define MADERA_SPK_OVERHEAT_EINT1 0x0002 +#define MADERA_SPK_OVERHEAT_EINT1_MASK 0x0002 +#define MADERA_SPK_OVERHEAT_EINT1_SHIFT 1 +#define MADERA_SPK_OVERHEAT_EINT1_WIDTH 1 +#define MADERA_SPK_SHUTDOWN_EINT1 0x0001 +#define MADERA_SPK_SHUTDOWN_EINT1_MASK 0x0001 +#define MADERA_SPK_SHUTDOWN_EINT1_SHIFT 0 +#define MADERA_SPK_SHUTDOWN_EINT1_WIDTH 1
+/* (0x1820) - IRQ1 Status 33 */ +#define MADERA_ADSP_ERROR_STATUS_DSP7 0x0040 +#define MADERA_ADSP_ERROR_STATUS_DSP7_MASK 0x0040 +#define MADERA_ADSP_ERROR_STATUS_DSP7_SHIFT 6 +#define MADERA_ADSP_ERROR_STATUS_DSP7_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP6 0x0020 +#define MADERA_ADSP_ERROR_STATUS_DSP6_MASK 0x0020 +#define MADERA_ADSP_ERROR_STATUS_DSP6_SHIFT 5 +#define MADERA_ADSP_ERROR_STATUS_DSP6_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP5 0x0010 +#define MADERA_ADSP_ERROR_STATUS_DSP5_MASK 0x0010 +#define MADERA_ADSP_ERROR_STATUS_DSP5_SHIFT 4 +#define MADERA_ADSP_ERROR_STATUS_DSP5_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP4 0x0008 +#define MADERA_ADSP_ERROR_STATUS_DSP4_MASK 0x0008 +#define MADERA_ADSP_ERROR_STATUS_DSP4_SHIFT 3 +#define MADERA_ADSP_ERROR_STATUS_DSP4_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP3 0x0004 +#define MADERA_ADSP_ERROR_STATUS_DSP3_MASK 0x0004 +#define MADERA_ADSP_ERROR_STATUS_DSP3_SHIFT 2 +#define MADERA_ADSP_ERROR_STATUS_DSP3_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP2 0x0002 +#define MADERA_ADSP_ERROR_STATUS_DSP2_MASK 0x0002 +#define MADERA_ADSP_ERROR_STATUS_DSP2_SHIFT 1 +#define MADERA_ADSP_ERROR_STATUS_DSP2_WIDTH 1 +#define MADERA_ADSP_ERROR_STATUS_DSP1 0x0001 +#define MADERA_ADSP_ERROR_STATUS_DSP1_MASK 0x0001 +#define MADERA_ADSP_ERROR_STATUS_DSP1_SHIFT 0 +#define MADERA_ADSP_ERROR_STATUS_DSP1_WIDTH 1
+/* (0x1840) IRQ1_Mask_1 */ +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT1 0x8000 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT1_MASK 0x8000 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT1_SHIFT 15 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT1_WIDTH 1 +#define MADERA_IM_CTRLIF_ERR_EINT1 0x1000 +#define MADERA_IM_CTRLIF_ERR_EINT1_MASK 0x1000 +#define MADERA_IM_CTRLIF_ERR_EINT1_SHIFT 12 +#define MADERA_IM_CTRLIF_ERR_EINT1_WIDTH 1 +#define MADERA_IM_SYSCLK_FAIL_EINT1 0x0200 +#define MADERA_IM_SYSCLK_FAIL_EINT1_MASK 0x0200 +#define MADERA_IM_SYSCLK_FAIL_EINT1_SHIFT 9 +#define MADERA_IM_SYSCLK_FAIL_EINT1_WIDTH 1 +#define MADERA_IM_CLOCK_DETECT_EINT1 0x0100 +#define MADERA_IM_CLOCK_DETECT_EINT1_MASK 0x0100 +#define MADERA_IM_CLOCK_DETECT_EINT1_SHIFT 8 +#define MADERA_IM_CLOCK_DETECT_EINT1_WIDTH 1 +#define MADERA_IM_BOOT_DONE_EINT1 0x0080 +#define MADERA_IM_BOOT_DONE_EINT1_MASK 0x0080 +#define MADERA_IM_BOOT_DONE_EINT1_SHIFT 7 +#define MADERA_IM_BOOT_DONE_EINT1_WIDTH 1
+/* (0x1841) IRQ1_Mask_2 */ +#define MADERA_IM_FLL3_LOCK_EINT1 0x0400 +#define MADERA_IM_FLL3_LOCK_EINT1_MASK 0x0400 +#define MADERA_IM_FLL3_LOCK_EINT1_SHIFT 10 +#define MADERA_IM_FLL3_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_FLL2_LOCK_EINT1 0x0200 +#define MADERA_IM_FLL2_LOCK_EINT1_MASK 0x0200 +#define MADERA_IM_FLL2_LOCK_EINT1_SHIFT 9 +#define MADERA_IM_FLL2_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_FLL1_LOCK_EINT1 0x0100 +#define MADERA_IM_FLL1_LOCK_EINT1_MASK 0x0100 +#define MADERA_IM_FLL1_LOCK_EINT1_SHIFT 8 +#define MADERA_IM_FLL1_LOCK_EINT1_WIDTH 1
+/* (0x1845) IRQ1_Mask_6 */ +#define MADERA_IM_MICDET2_EINT1 0x0200 +#define MADERA_IM_MICDET2_EINT1_MASK 0x0200 +#define MADERA_IM_MICDET2_EINT1_SHIFT 9 +#define MADERA_IM_MICDET2_EINT1_WIDTH 1 +#define MADERA_IM_MICDET1_EINT1 0x0100 +#define MADERA_IM_MICDET1_EINT1_MASK 0x0100 +#define MADERA_IM_MICDET1_EINT1_SHIFT 8 +#define MADERA_IM_MICDET1_EINT1_WIDTH 1 +#define MADERA_IM_HPDET_EINT1 0x0001 +#define MADERA_IM_HPDET_EINT1_MASK 0x0001 +#define MADERA_IM_HPDET_EINT1_SHIFT 0 +#define MADERA_IM_HPDET_EINT1_WIDTH 1
+/* (0x1846) IRQ1_Mask_7 */ +#define MADERA_IM_MICD_CLAMP_FALL_EINT1 0x0020 +#define MADERA_IM_MICD_CLAMP_FALL_EINT1_MASK 0x0020 +#define MADERA_IM_MICD_CLAMP_FALL_EINT1_SHIFT 5 +#define MADERA_IM_MICD_CLAMP_FALL_EINT1_WIDTH 1 +#define MADERA_IM_MICD_CLAMP_RISE_EINT1 0x0010 +#define MADERA_IM_MICD_CLAMP_RISE_EINT1_MASK 0x0010 +#define MADERA_IM_MICD_CLAMP_RISE_EINT1_SHIFT 4 +#define MADERA_IM_MICD_CLAMP_RISE_EINT1_WIDTH 1 +#define MADERA_IM_JD2_FALL_EINT1 0x0008 +#define MADERA_IM_JD2_FALL_EINT1_MASK 0x0008 +#define MADERA_IM_JD2_FALL_EINT1_SHIFT 3 +#define MADERA_IM_JD2_FALL_EINT1_WIDTH 1 +#define MADERA_IM_JD2_RISE_EINT1 0x0004 +#define MADERA_IM_JD2_RISE_EINT1_MASK 0x0004 +#define MADERA_IM_JD2_RISE_EINT1_SHIFT 2 +#define MADERA_IM_JD2_RISE_EINT1_WIDTH 1 +#define MADERA_IM_JD1_FALL_EINT1 0x0002 +#define MADERA_IM_JD1_FALL_EINT1_MASK 0x0002 +#define MADERA_IM_JD1_FALL_EINT1_SHIFT 1 +#define MADERA_IM_JD1_FALL_EINT1_WIDTH 1 +#define MADERA_IM_JD1_RISE_EINT1 0x0001 +#define MADERA_IM_JD1_RISE_EINT1_MASK 0x0001 +#define MADERA_IM_JD1_RISE_EINT1_SHIFT 0 +#define MADERA_IM_JD1_RISE_EINT1_WIDTH 1
+/* (0x1848) IRQ1_Mask_9 */ +#define MADERA_IM_ASRC2_IN2_LOCK_EINT1 0x0800 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT1_MASK 0x0800 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT1_SHIFT 11 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT1 0x0400 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT1_MASK 0x0400 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT1_SHIFT 10 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT1 0x0200 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT1_MASK 0x0200 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT1_SHIFT 9 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT1 0x0100 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT1_MASK 0x0100 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT1_SHIFT 8 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT1_WIDTH 1 +#define MADERA_IM_DRC2_SIG_DET_EINT1 0x0002 +#define MADERA_IM_DRC2_SIG_DET_EINT1_MASK 0x0002 +#define MADERA_IM_DRC2_SIG_DET_EINT1_SHIFT 1 +#define MADERA_IM_DRC2_SIG_DET_EINT1_WIDTH 1 +#define MADERA_IM_DRC1_SIG_DET_EINT1 0x0001 +#define MADERA_IM_DRC1_SIG_DET_EINT1_MASK 0x0001 +#define MADERA_IM_DRC1_SIG_DET_EINT1_SHIFT 0 +#define MADERA_IM_DRC1_SIG_DET_EINT1_WIDTH 1
+/* (0x184A) IRQ1_Mask_11 */ +#define MADERA_IM_DSP_IRQ16_EINT1 0x8000 +#define MADERA_IM_DSP_IRQ16_EINT1_MASK 0x8000 +#define MADERA_IM_DSP_IRQ16_EINT1_SHIFT 15 +#define MADERA_IM_DSP_IRQ16_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ15_EINT1 0x4000 +#define MADERA_IM_DSP_IRQ15_EINT1_MASK 0x4000 +#define MADERA_IM_DSP_IRQ15_EINT1_SHIFT 14 +#define MADERA_IM_DSP_IRQ15_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ14_EINT1 0x2000 +#define MADERA_IM_DSP_IRQ14_EINT1_MASK 0x2000 +#define MADERA_IM_DSP_IRQ14_EINT1_SHIFT 13 +#define MADERA_IM_DSP_IRQ14_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ13_EINT1 0x1000 +#define MADERA_IM_DSP_IRQ13_EINT1_MASK 0x1000 +#define MADERA_IM_DSP_IRQ13_EINT1_SHIFT 12 +#define MADERA_IM_DSP_IRQ13_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ12_EINT1 0x0800 +#define MADERA_IM_DSP_IRQ12_EINT1_MASK 0x0800 +#define MADERA_IM_DSP_IRQ12_EINT1_SHIFT 11 +#define MADERA_IM_DSP_IRQ12_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ11_EINT1 0x0400 +#define MADERA_IM_DSP_IRQ11_EINT1_MASK 0x0400 +#define MADERA_IM_DSP_IRQ11_EINT1_SHIFT 10 +#define MADERA_IM_DSP_IRQ11_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ10_EINT1 0x0200 +#define MADERA_IM_DSP_IRQ10_EINT1_MASK 0x0200 +#define MADERA_IM_DSP_IRQ10_EINT1_SHIFT 9 +#define MADERA_IM_DSP_IRQ10_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ9_EINT1 0x0100 +#define MADERA_IM_DSP_IRQ9_EINT1_MASK 0x0100 +#define MADERA_IM_DSP_IRQ9_EINT1_SHIFT 8 +#define MADERA_IM_DSP_IRQ9_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ8_EINT1 0x0080 +#define MADERA_IM_DSP_IRQ8_EINT1_MASK 0x0080 +#define MADERA_IM_DSP_IRQ8_EINT1_SHIFT 7 +#define MADERA_IM_DSP_IRQ8_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ7_EINT1 0x0040 +#define MADERA_IM_DSP_IRQ7_EINT1_MASK 0x0040 +#define MADERA_IM_DSP_IRQ7_EINT1_SHIFT 6 +#define MADERA_IM_DSP_IRQ7_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ6_EINT1 0x0020 +#define MADERA_IM_DSP_IRQ6_EINT1_MASK 0x0020 +#define MADERA_IM_DSP_IRQ6_EINT1_SHIFT 5 +#define MADERA_IM_DSP_IRQ6_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ5_EINT1 0x0010 +#define MADERA_IM_DSP_IRQ5_EINT1_MASK 0x0010 +#define MADERA_IM_DSP_IRQ5_EINT1_SHIFT 4 +#define MADERA_IM_DSP_IRQ5_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ4_EINT1 0x0008 +#define MADERA_IM_DSP_IRQ4_EINT1_MASK 0x0008 +#define MADERA_IM_DSP_IRQ4_EINT1_SHIFT 3 +#define MADERA_IM_DSP_IRQ4_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ3_EINT1 0x0004 +#define MADERA_IM_DSP_IRQ3_EINT1_MASK 0x0004 +#define MADERA_IM_DSP_IRQ3_EINT1_SHIFT 2 +#define MADERA_IM_DSP_IRQ3_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ2_EINT1 0x0002 +#define MADERA_IM_DSP_IRQ2_EINT1_MASK 0x0002 +#define MADERA_IM_DSP_IRQ2_EINT1_SHIFT 1 +#define MADERA_IM_DSP_IRQ2_EINT1_WIDTH 1 +#define MADERA_IM_DSP_IRQ1_EINT1 0x0001 +#define MADERA_IM_DSP_IRQ1_EINT1_MASK 0x0001 +#define MADERA_IM_DSP_IRQ1_EINT1_SHIFT 0 +#define MADERA_IM_DSP_IRQ1_EINT1_WIDTH 1
+/* (0x184B) IRQ1_Mask_12 */ +#define MADERA_IM_SPKOUTR_SC_EINT1 0x0080 +#define MADERA_IM_SPKOUTR_SC_EINT1_MASK 0x0080 +#define MADERA_IM_SPKOUTR_SC_EINT1_SHIFT 7 +#define MADERA_IM_SPKOUTR_SC_EINT1_WIDTH 1 +#define MADERA_IM_SPKOUTL_SC_EINT1 0x0040 +#define MADERA_IM_SPKOUTL_SC_EINT1_MASK 0x0040 +#define MADERA_IM_SPKOUTL_SC_EINT1_SHIFT 6 +#define MADERA_IM_SPKOUTL_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP3R_SC_EINT1 0x0020 +#define MADERA_IM_HP3R_SC_EINT1_MASK 0x0020 +#define MADERA_IM_HP3R_SC_EINT1_SHIFT 5 +#define MADERA_IM_HP3R_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP3L_SC_EINT1 0x0010 +#define MADERA_IM_HP3L_SC_EINT1_MASK 0x0010 +#define MADERA_IM_HP3L_SC_EINT1_SHIFT 4 +#define MADERA_IM_HP3L_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP2R_SC_EINT1 0x0008 +#define MADERA_IM_HP2R_SC_EINT1_MASK 0x0008 +#define MADERA_IM_HP2R_SC_EINT1_SHIFT 3 +#define MADERA_IM_HP2R_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP2L_SC_EINT1 0x0004 +#define MADERA_IM_HP2L_SC_EINT1_MASK 0x0004 +#define MADERA_IM_HP2L_SC_EINT1_SHIFT 2 +#define MADERA_IM_HP2L_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP1R_SC_EINT1 0x0002 +#define MADERA_IM_HP1R_SC_EINT1_MASK 0x0002 +#define MADERA_IM_HP1R_SC_EINT1_SHIFT 1 +#define MADERA_IM_HP1R_SC_EINT1_WIDTH 1 +#define MADERA_IM_HP1L_SC_EINT1 0x0001 +#define MADERA_IM_HP1L_SC_EINT1_MASK 0x0001 +#define MADERA_IM_HP1L_SC_EINT1_SHIFT 0 +#define MADERA_IM_HP1L_SC_EINT1_WIDTH 1
+/* (0x184C) IRQ1_Mask_13 */ +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT1 0x0080 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT1_MASK 0x0080 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT1_SHIFT 7 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT1 0x0040 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT1_MASK 0x0040 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT1_SHIFT 6 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT1 0x0020 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT1_MASK 0x0020 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT1_SHIFT 5 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT1 0x0010 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT1_MASK 0x0010 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT1_SHIFT 4 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT1 0x0008 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT1_MASK 0x0008 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT1_SHIFT 3 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT1 0x0004 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT1_MASK 0x0004 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT1_SHIFT 2 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT1 0x0002 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT1_MASK 0x0002 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT1_SHIFT 1 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT1 0x0001 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT1_MASK 0x0001 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT1_SHIFT 0 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT1_WIDTH 1
+/* (0x184D) IRQ1_Mask_14 */ +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT1 0x0080 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT1_MASK 0x0080 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT1_SHIFT 7 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT1 0x0040 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT1_MASK 0x0040 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT1_SHIFT 6 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT1 0x0020 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT1_MASK 0x0020 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT1_SHIFT 5 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT1 0x0010 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT1_MASK 0x0010 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT1_SHIFT 4 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT1 0x0008 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT1_MASK 0x0008 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT1_SHIFT 3 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT1 0x0004 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT1_MASK 0x0004 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT1_SHIFT 2 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT1 0x0002 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT1_MASK 0x0002 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT1_SHIFT 1 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT1_WIDTH 1 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT1 0x0001 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT1_MASK 0x0001 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT1_SHIFT 0 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT1_WIDTH 1
+/* (0x184E) IRQ1_Mask_15 */ +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT1 0x0004 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT1_MASK 0x0004 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT1_SHIFT 2 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT1_WIDTH 1 +#define MADERA_IM_SPK_OVERHEAT_EINT1 0x0002 +#define MADERA_IM_SPK_OVERHEAT_EINT1_MASK 0x0002 +#define MADERA_IM_SPK_OVERHEAT_EINT1_SHIFT 1 +#define MADERA_IM_SPK_OVERHEAT_EINT1_WIDTH 1 +#define MADERA_IM_SPK_SHUTDOWN_EINT1 0x0001 +#define MADERA_IM_SPK_SHUTDOWN_EINT1_MASK 0x0001 +#define MADERA_IM_SPK_SHUTDOWN_EINT1_SHIFT 0 +#define MADERA_IM_SPK_SHUTDOWN_EINT1_WIDTH 1
+/* (0x1880) - IRQ1 Raw Status 1 */ +#define MADERA_DSP_SHARED_WR_COLL_STS1 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_STS1_MASK 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_STS1_SHIFT 15 +#define MADERA_DSP_SHARED_WR_COLL_STS1_WIDTH 1 +#define MADERA_CTRLIF_ERR_STS1 0x1000 +#define MADERA_CTRLIF_ERR_STS1_MASK 0x1000 +#define MADERA_CTRLIF_ERR_STS1_SHIFT 12 +#define MADERA_CTRLIF_ERR_STS1_WIDTH 1 +#define MADERA_SYSCLK_FAIL_STS1 0x0200 +#define MADERA_SYSCLK_FAIL_STS1_MASK 0x0200 +#define MADERA_SYSCLK_FAIL_STS1_SHIFT 9 +#define MADERA_SYSCLK_FAIL_STS1_WIDTH 1 +#define MADERA_CLOCK_DETECT_STS1 0x0100 +#define MADERA_CLOCK_DETECT_STS1_MASK 0x0100 +#define MADERA_CLOCK_DETECT_STS1_SHIFT 8 +#define MADERA_CLOCK_DETECT_STS1_WIDTH 1 +#define MADERA_BOOT_DONE_STS1 0x0080 +#define MADERA_BOOT_DONE_STS1_MASK 0x0080 +#define MADERA_BOOT_DONE_STS1_SHIFT 7 +#define MADERA_BOOT_DONE_STS1_WIDTH 1
+/* (0x1881) - IRQ1 Raw Status 2 */ +#define MADERA_FLL3_LOCK_STS1 0x0400 +#define MADERA_FLL3_LOCK_STS1_MASK 0x0400 +#define MADERA_FLL3_LOCK_STS1_SHIFT 10 +#define MADERA_FLL3_LOCK_STS1_WIDTH 1 +#define MADERA_FLL2_LOCK_STS1 0x0200 +#define MADERA_FLL2_LOCK_STS1_MASK 0x0200 +#define MADERA_FLL2_LOCK_STS1_SHIFT 9 +#define MADERA_FLL2_LOCK_STS1_WIDTH 1 +#define MADERA_FLL1_LOCK_STS1 0x0100 +#define MADERA_FLL1_LOCK_STS1_MASK 0x0100 +#define MADERA_FLL1_LOCK_STS1_SHIFT 8 +#define MADERA_FLL1_LOCK_STS1_WIDTH 1
+/* (0x1886) - IRQ1 Raw Status 7 */ +#define MADERA_MICD_CLAMP_FALL_STS1 0x0020 +#define MADERA_MICD_CLAMP_FALL_STS1_MASK 0x0020 +#define MADERA_MICD_CLAMP_FALL_STS1_SHIFT 5 +#define MADERA_MICD_CLAMP_FALL_STS1_WIDTH 1 +#define MADERA_MICD_CLAMP_RISE_STS1 0x0010 +#define MADERA_MICD_CLAMP_RISE_STS1_MASK 0x0010 +#define MADERA_MICD_CLAMP_RISE_STS1_SHIFT 4 +#define MADERA_MICD_CLAMP_RISE_STS1_WIDTH 1 +#define MADERA_JD2_FALL_STS1 0x0008 +#define MADERA_JD2_FALL_STS1_MASK 0x0008 +#define MADERA_JD2_FALL_STS1_SHIFT 3 +#define MADERA_JD2_FALL_STS1_WIDTH 1 +#define MADERA_JD2_RISE_STS1 0x0004 +#define MADERA_JD2_RISE_STS1_MASK 0x0004 +#define MADERA_JD2_RISE_STS1_SHIFT 2 +#define MADERA_JD2_RISE_STS1_WIDTH 1 +#define MADERA_JD1_FALL_STS1 0x0002 +#define MADERA_JD1_FALL_STS1_MASK 0x0002 +#define MADERA_JD1_FALL_STS1_SHIFT 1 +#define MADERA_JD1_FALL_STS1_WIDTH 1 +#define MADERA_JD1_RISE_STS1 0x0001 +#define MADERA_JD1_RISE_STS1_MASK 0x0001 +#define MADERA_JD1_RISE_STS1_SHIFT 0 +#define MADERA_JD1_RISE_STS1_WIDTH 1
+/* (0x1888) - IRQ1 Raw Status 9 */ +#define MADERA_ASRC2_IN2_LOCK_STS1 0x0800 +#define MADERA_ASRC2_IN2_LOCK_STS1_MASK 0x0800 +#define MADERA_ASRC2_IN2_LOCK_STS1_SHIFT 11 +#define MADERA_ASRC2_IN2_LOCK_STS1_WIDTH 1 +#define MADERA_ASRC2_IN1_LOCK_STS1 0x0400 +#define MADERA_ASRC2_IN1_LOCK_STS1_MASK 0x0400 +#define MADERA_ASRC2_IN1_LOCK_STS1_SHIFT 10 +#define MADERA_ASRC2_IN1_LOCK_STS1_WIDTH 1 +#define MADERA_ASRC1_IN2_LOCK_STS1 0x0200 +#define MADERA_ASRC1_IN2_LOCK_STS1_MASK 0x0200 +#define MADERA_ASRC1_IN2_LOCK_STS1_SHIFT 9 +#define MADERA_ASRC1_IN2_LOCK_STS1_WIDTH 1 +#define MADERA_ASRC1_IN1_LOCK_STS1 0x0100 +#define MADERA_ASRC1_IN1_LOCK_STS1_MASK 0x0100 +#define MADERA_ASRC1_IN1_LOCK_STS1_SHIFT 8 +#define MADERA_ASRC1_IN1_LOCK_STS1_WIDTH 1 +#define MADERA_DRC2_SIG_DET_STS1 0x0002 +#define MADERA_DRC2_SIG_DET_STS1_MASK 0x0002 +#define MADERA_DRC2_SIG_DET_STS1_SHIFT 1 +#define MADERA_DRC2_SIG_DET_STS1_WIDTH 1 +#define MADERA_DRC1_SIG_DET_STS1 0x0001 +#define MADERA_DRC1_SIG_DET_STS1_MASK 0x0001 +#define MADERA_DRC1_SIG_DET_STS1_SHIFT 0 +#define MADERA_DRC1_SIG_DET_STS1_WIDTH 1
+/* (0x188A) - IRQ1 Raw Status 11 */ +#define MADERA_DSP_IRQ16_STS1 0x8000 +#define MADERA_DSP_IRQ16_STS1_MASK 0x8000 +#define MADERA_DSP_IRQ16_STS1_SHIFT 15 +#define MADERA_DSP_IRQ16_STS1_WIDTH 1 +#define MADERA_DSP_IRQ15_STS1 0x4000 +#define MADERA_DSP_IRQ15_STS1_MASK 0x4000 +#define MADERA_DSP_IRQ15_STS1_SHIFT 14 +#define MADERA_DSP_IRQ15_STS1_WIDTH 1 +#define MADERA_DSP_IRQ14_STS1 0x2000 +#define MADERA_DSP_IRQ14_STS1_MASK 0x2000 +#define MADERA_DSP_IRQ14_STS1_SHIFT 13 +#define MADERA_DSP_IRQ14_STS1_WIDTH 1 +#define MADERA_DSP_IRQ13_STS1 0x1000 +#define MADERA_DSP_IRQ13_STS1_MASK 0x1000 +#define MADERA_DSP_IRQ13_STS1_SHIFT 12 +#define MADERA_DSP_IRQ13_STS1_WIDTH 1 +#define MADERA_DSP_IRQ12_STS1 0x0800 +#define MADERA_DSP_IRQ12_STS1_MASK 0x0800 +#define MADERA_DSP_IRQ12_STS1_SHIFT 11 +#define MADERA_DSP_IRQ12_STS1_WIDTH 1 +#define MADERA_DSP_IRQ11_STS1 0x0400 +#define MADERA_DSP_IRQ11_STS1_MASK 0x0400 +#define MADERA_DSP_IRQ11_STS1_SHIFT 10 +#define MADERA_DSP_IRQ11_STS1_WIDTH 1 +#define MADERA_DSP_IRQ10_STS1 0x0200 +#define MADERA_DSP_IRQ10_STS1_MASK 0x0200 +#define MADERA_DSP_IRQ10_STS1_SHIFT 9 +#define MADERA_DSP_IRQ10_STS1_WIDTH 1 +#define MADERA_DSP_IRQ9_STS1 0x0100 +#define MADERA_DSP_IRQ9_STS1_MASK 0x0100 +#define MADERA_DSP_IRQ9_STS1_SHIFT 8 +#define MADERA_DSP_IRQ9_STS1_WIDTH 1 +#define MADERA_DSP_IRQ8_STS1 0x0080 +#define MADERA_DSP_IRQ8_STS1_MASK 0x0080 +#define MADERA_DSP_IRQ8_STS1_SHIFT 7 +#define MADERA_DSP_IRQ8_STS1_WIDTH 1 +#define MADERA_DSP_IRQ7_STS1 0x0040 +#define MADERA_DSP_IRQ7_STS1_MASK 0x0040 +#define MADERA_DSP_IRQ7_STS1_SHIFT 6 +#define MADERA_DSP_IRQ7_STS1_WIDTH 1 +#define MADERA_DSP_IRQ6_STS1 0x0020 +#define MADERA_DSP_IRQ6_STS1_MASK 0x0020 +#define MADERA_DSP_IRQ6_STS1_SHIFT 5 +#define MADERA_DSP_IRQ6_STS1_WIDTH 1 +#define MADERA_DSP_IRQ5_STS1 0x0010 +#define MADERA_DSP_IRQ5_STS1_MASK 0x0010 +#define MADERA_DSP_IRQ5_STS1_SHIFT 4 +#define MADERA_DSP_IRQ5_STS1_WIDTH 1 +#define MADERA_DSP_IRQ4_STS1 0x0008 +#define MADERA_DSP_IRQ4_STS1_MASK 0x0008 +#define MADERA_DSP_IRQ4_STS1_SHIFT 3 +#define MADERA_DSP_IRQ4_STS1_WIDTH 1 +#define MADERA_DSP_IRQ3_STS1 0x0004 +#define MADERA_DSP_IRQ3_STS1_MASK 0x0004 +#define MADERA_DSP_IRQ3_STS1_SHIFT 2 +#define MADERA_DSP_IRQ3_STS1_WIDTH 1 +#define MADERA_DSP_IRQ2_STS1 0x0002 +#define MADERA_DSP_IRQ2_STS1_MASK 0x0002 +#define MADERA_DSP_IRQ2_STS1_SHIFT 1 +#define MADERA_DSP_IRQ2_STS1_WIDTH 1 +#define MADERA_DSP_IRQ1_STS1 0x0001 +#define MADERA_DSP_IRQ1_STS1_MASK 0x0001 +#define MADERA_DSP_IRQ1_STS1_SHIFT 0 +#define MADERA_DSP_IRQ1_STS1_WIDTH 1
+/* (0x188B) - IRQ1 Raw Status 12 */ +#define MADERA_SPKOUTR_SC_STS1 0x0080 +#define MADERA_SPKOUTR_SC_STS1_MASK 0x0080 +#define MADERA_SPKOUTR_SC_STS1_SHIFT 7 +#define MADERA_SPKOUTR_SC_STS1_WIDTH 1 +#define MADERA_SPKOUTL_SC_STS1 0x0040 +#define MADERA_SPKOUTL_SC_STS1_MASK 0x0040 +#define MADERA_SPKOUTL_SC_STS1_SHIFT 6 +#define MADERA_SPKOUTL_SC_STS1_WIDTH 1 +#define MADERA_HP3R_SC_STS1 0x0020 +#define MADERA_HP3R_SC_STS1_MASK 0x0020 +#define MADERA_HP3R_SC_STS1_SHIFT 5 +#define MADERA_HP3R_SC_STS1_WIDTH 1 +#define MADERA_HP3L_SC_STS1 0x0010 +#define MADERA_HP3L_SC_STS1_MASK 0x0010 +#define MADERA_HP3L_SC_STS1_SHIFT 4 +#define MADERA_HP3L_SC_STS1_WIDTH 1 +#define MADERA_HP2R_SC_STS1 0x0008 +#define MADERA_HP2R_SC_STS1_MASK 0x0008 +#define MADERA_HP2R_SC_STS1_SHIFT 3 +#define MADERA_HP2R_SC_STS1_WIDTH 1 +#define MADERA_HP2L_SC_STS1 0x0004 +#define MADERA_HP2L_SC_STS1_MASK 0x0004 +#define MADERA_HP2L_SC_STS1_SHIFT 2 +#define MADERA_HP2L_SC_STS1_WIDTH 1 +#define MADERA_HP1R_SC_STS1 0x0002 +#define MADERA_HP1R_SC_STS1_MASK 0x0002 +#define MADERA_HP1R_SC_STS1_SHIFT 1 +#define MADERA_HP1R_SC_STS1_WIDTH 1 +#define MADERA_HP1L_SC_STS1 0x0001 +#define MADERA_HP1L_SC_STS1_MASK 0x0001 +#define MADERA_HP1L_SC_STS1_SHIFT 0 +#define MADERA_HP1L_SC_STS1_WIDTH 1
+/* (0x188C) - IRQ1 Raw Status 13 */ +#define MADERA_SPKOUTR_ENABLE_DONE_STS1 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_STS1_MASK 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_STS1_SHIFT 7 +#define MADERA_SPKOUTR_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_SPKOUTL_ENABLE_DONE_STS1 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_STS1_MASK 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_STS1_SHIFT 6 +#define MADERA_SPKOUTL_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP3R_ENABLE_DONE_STS1 0x0020 +#define MADERA_HP3R_ENABLE_DONE_STS1_MASK 0x0020 +#define MADERA_HP3R_ENABLE_DONE_STS1_SHIFT 5 +#define MADERA_HP3R_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP3L_ENABLE_DONE_STS1 0x0010 +#define MADERA_HP3L_ENABLE_DONE_STS1_MASK 0x0010 +#define MADERA_HP3L_ENABLE_DONE_STS1_SHIFT 4 +#define MADERA_HP3L_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP2R_ENABLE_DONE_STS1 0x0008 +#define MADERA_HP2R_ENABLE_DONE_STS1_MASK 0x0008 +#define MADERA_HP2R_ENABLE_DONE_STS1_SHIFT 3 +#define MADERA_HP2R_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP2L_ENABLE_DONE_STS1 0x0004 +#define MADERA_HP2L_ENABLE_DONE_STS1_MASK 0x0004 +#define MADERA_HP2L_ENABLE_DONE_STS1_SHIFT 2 +#define MADERA_HP2L_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP1R_ENABLE_DONE_STS1 0x0002 +#define MADERA_HP1R_ENABLE_DONE_STS1_MASK 0x0002 +#define MADERA_HP1R_ENABLE_DONE_STS1_SHIFT 1 +#define MADERA_HP1R_ENABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP1L_ENABLE_DONE_STS1 0x0001 +#define MADERA_HP1L_ENABLE_DONE_STS1_MASK 0x0001 +#define MADERA_HP1L_ENABLE_DONE_STS1_SHIFT 0 +#define MADERA_HP1L_ENABLE_DONE_STS1_WIDTH 1
+/* (0x188D) - IRQ1 Raw Status 14 */ +#define MADERA_SPKOUTR_DISABLE_DONE_STS1 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_STS1_MASK 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_STS1_SHIFT 7 +#define MADERA_SPKOUTR_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_SPKOUTL_DISABLE_DONE_STS1 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_STS1_MASK 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_STS1_SHIFT 6 +#define MADERA_SPKOUTL_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP3R_DISABLE_DONE_STS1 0x0020 +#define MADERA_HP3R_DISABLE_DONE_STS1_MASK 0x0020 +#define MADERA_HP3R_DISABLE_DONE_STS1_SHIFT 5 +#define MADERA_HP3R_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP3L_DISABLE_DONE_STS1 0x0010 +#define MADERA_HP3L_DISABLE_DONE_STS1_MASK 0x0010 +#define MADERA_HP3L_DISABLE_DONE_STS1_SHIFT 4 +#define MADERA_HP3L_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP2R_DISABLE_DONE_STS1 0x0008 +#define MADERA_HP2R_DISABLE_DONE_STS1_MASK 0x0008 +#define MADERA_HP2R_DISABLE_DONE_STS1_SHIFT 3 +#define MADERA_HP2R_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP2L_DISABLE_DONE_STS1 0x0004 +#define MADERA_HP2L_DISABLE_DONE_STS1_MASK 0x0004 +#define MADERA_HP2L_DISABLE_DONE_STS1_SHIFT 2 +#define MADERA_HP2L_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP1R_DISABLE_DONE_STS1 0x0002 +#define MADERA_HP1R_DISABLE_DONE_STS1_MASK 0x0002 +#define MADERA_HP1R_DISABLE_DONE_STS1_SHIFT 1 +#define MADERA_HP1R_DISABLE_DONE_STS1_WIDTH 1 +#define MADERA_HP1L_DISABLE_DONE_STS1 0x0001 +#define MADERA_HP1L_DISABLE_DONE_STS1_MASK 0x0001 +#define MADERA_HP1L_DISABLE_DONE_STS1_SHIFT 0 +#define MADERA_HP1L_DISABLE_DONE_STS1_WIDTH 1
+/* (0x188E) - IRQ1 Raw Status 15 */ +#define MADERA_SPK_OVERHEAT_WARN_STS1 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_STS1_MASK 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_STS1_SHIFT 2 +#define MADERA_SPK_OVERHEAT_WARN_STS1_WIDTH 1 +#define MADERA_SPK_OVERHEAT_STS1 0x0002 +#define MADERA_SPK_OVERHEAT_STS1_MASK 0x0002 +#define MADERA_SPK_OVERHEAT_STS1_SHIFT 1 +#define MADERA_SPK_OVERHEAT_STS1_WIDTH 1 +#define MADERA_SPK_SHUTDOWN_STS1 0x0001 +#define MADERA_SPK_SHUTDOWN_STS1_MASK 0x0001 +#define MADERA_SPK_SHUTDOWN_STS1_SHIFT 0 +#define MADERA_SPK_SHUTDOWN_STS1_WIDTH 1
+/* (0x1900) IRQ2_Status_1 */ +#define MADERA_DSP_SHARED_WR_COLL_EINT2 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_EINT2_MASK 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_EINT2_SHIFT 15 +#define MADERA_DSP_SHARED_WR_COLL_EINT2_WIDTH 1 +#define MADERA_CTRLIF_ERR_EINT2 0x1000 +#define MADERA_CTRLIF_ERR_EINT2_MASK 0x1000 +#define MADERA_CTRLIF_ERR_EINT2_SHIFT 12 +#define MADERA_CTRLIF_ERR_EINT2_WIDTH 1 +#define MADERA_SYSCLK_FAIL_EINT2 0x0200 +#define MADERA_SYSCLK_FAIL_EINT2_MASK 0x0200 +#define MADERA_SYSCLK_FAIL_EINT2_SHIFT 9 +#define MADERA_SYSCLK_FAIL_EINT2_WIDTH 1 +#define MADERA_CLOCK_DETECT_EINT2 0x0100 +#define MADERA_CLOCK_DETECT_EINT2_MASK 0x0100 +#define MADERA_CLOCK_DETECT_EINT2_SHIFT 8 +#define MADERA_CLOCK_DETECT_EINT2_WIDTH 1 +#define MADERA_BOOT_DONE_EINT2 0x0080 +#define MADERA_BOOT_DONE_EINT2_MASK 0x0080 +#define MADERA_BOOT_DONE_EINT2_SHIFT 7 +#define MADERA_BOOT_DONE_EINT2_WIDTH 1
+/* (0x1901) IRQ2_Status_2 */ +#define MADERA_FLL3_LOCK_EINT2 0x0400 +#define MADERA_FLL3_LOCK_EINT2_MASK 0x0400 +#define MADERA_FLL3_LOCK_EINT2_SHIFT 10 +#define MADERA_FLL3_LOCK_EINT2_WIDTH 1 +#define MADERA_FLL2_LOCK_EINT2 0x0200 +#define MADERA_FLL2_LOCK_EINT2_MASK 0x0200 +#define MADERA_FLL2_LOCK_EINT2_SHIFT 9 +#define MADERA_FLL2_LOCK_EINT2_WIDTH 1 +#define MADERA_FLL1_LOCK_EINT2 0x0100 +#define MADERA_FLL1_LOCK_EINT2_MASK 0x0100 +#define MADERA_FLL1_LOCK_EINT2_SHIFT 8 +#define MADERA_FLL1_LOCK_EINT2_WIDTH 1
+/* (0x1905) IRQ2_Status_6 */ +#define MADERA_MICDET2_EINT2 0x0200 +#define MADERA_MICDET2_EINT2_MASK 0x0200 +#define MADERA_MICDET2_EINT2_SHIFT 9 +#define MADERA_MICDET2_EINT2_WIDTH 1 +#define MADERA_MICDET1_EINT2 0x0100 +#define MADERA_MICDET1_EINT2_MASK 0x0100 +#define MADERA_MICDET1_EINT2_SHIFT 8 +#define MADERA_MICDET1_EINT2_WIDTH 1 +#define MADERA_HPDET_EINT2 0x0001 +#define MADERA_HPDET_EINT2_MASK 0x0001 +#define MADERA_HPDET_EINT2_SHIFT 0 +#define MADERA_HPDET_EINT2_WIDTH 1
+/* (0x1906) IRQ2_Status_7 */ +#define MADERA_MICD_CLAMP_FALL_EINT2 0x0020 +#define MADERA_MICD_CLAMP_FALL_EINT2_MASK 0x0020 +#define MADERA_MICD_CLAMP_FALL_EINT2_SHIFT 5 +#define MADERA_MICD_CLAMP_FALL_EINT2_WIDTH 1 +#define MADERA_MICD_CLAMP_RISE_EINT2 0x0010 +#define MADERA_MICD_CLAMP_RISE_EINT2_MASK 0x0010 +#define MADERA_MICD_CLAMP_RISE_EINT2_SHIFT 4 +#define MADERA_MICD_CLAMP_RISE_EINT2_WIDTH 1 +#define MADERA_JD2_FALL_EINT2 0x0008 +#define MADERA_JD2_FALL_EINT2_MASK 0x0008 +#define MADERA_JD2_FALL_EINT2_SHIFT 3 +#define MADERA_JD2_FALL_EINT2_WIDTH 1 +#define MADERA_JD2_RISE_EINT2 0x0004 +#define MADERA_JD2_RISE_EINT2_MASK 0x0004 +#define MADERA_JD2_RISE_EINT2_SHIFT 2 +#define MADERA_JD2_RISE_EINT2_WIDTH 1 +#define MADERA_JD1_FALL_EINT2 0x0002 +#define MADERA_JD1_FALL_EINT2_MASK 0x0002 +#define MADERA_JD1_FALL_EINT2_SHIFT 1 +#define MADERA_JD1_FALL_EINT2_WIDTH 1 +#define MADERA_JD1_RISE_EINT2 0x0001 +#define MADERA_JD1_RISE_EINT2_MASK 0x0001 +#define MADERA_JD1_RISE_EINT2_SHIFT 0 +#define MADERA_JD1_RISE_EINT2_WIDTH 1
+/* (0x1908) IRQ2_Status_9 */ +#define MADERA_ASRC2_IN2_LOCK_EINT2 0x0800 +#define MADERA_ASRC2_IN2_LOCK_EINT2_MASK 0x0800 +#define MADERA_ASRC2_IN2_LOCK_EINT2_SHIFT 11 +#define MADERA_ASRC2_IN2_LOCK_EINT2_WIDTH 1 +#define MADERA_ASRC2_IN1_LOCK_EINT2 0x0400 +#define MADERA_ASRC2_IN1_LOCK_EINT2_MASK 0x0400 +#define MADERA_ASRC2_IN1_LOCK_EINT2_SHIFT 10 +#define MADERA_ASRC2_IN1_LOCK_EINT2_WIDTH 1 +#define MADERA_ASRC1_IN2_LOCK_EINT2 0x0200 +#define MADERA_ASRC1_IN2_LOCK_EINT2_MASK 0x0200 +#define MADERA_ASRC1_IN2_LOCK_EINT2_SHIFT 9 +#define MADERA_ASRC1_IN2_LOCK_EINT2_WIDTH 1 +#define MADERA_ASRC1_IN1_LOCK_EINT2 0x0100 +#define MADERA_ASRC1_IN1_LOCK_EINT2_MASK 0x0100 +#define MADERA_ASRC1_IN1_LOCK_EINT2_SHIFT 8 +#define MADERA_ASRC1_IN1_LOCK_EINT2_WIDTH 1 +#define MADERA_DRC2_SIG_DET_EINT2 0x0002 +#define MADERA_DRC2_SIG_DET_EINT2_MASK 0x0002 +#define MADERA_DRC2_SIG_DET_EINT2_SHIFT 1 +#define MADERA_DRC2_SIG_DET_EINT2_WIDTH 1 +#define MADERA_DRC1_SIG_DET_EINT2 0x0001 +#define MADERA_DRC1_SIG_DET_EINT2_MASK 0x0001 +#define MADERA_DRC1_SIG_DET_EINT2_SHIFT 0 +#define MADERA_DRC1_SIG_DET_EINT2_WIDTH 1
+/* (0x190A) IRQ2_Status_11 */ +#define MADERA_DSP_IRQ16_EINT2 0x8000 +#define MADERA_DSP_IRQ16_EINT2_MASK 0x8000 +#define MADERA_DSP_IRQ16_EINT2_SHIFT 15 +#define MADERA_DSP_IRQ16_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ15_EINT2 0x4000 +#define MADERA_DSP_IRQ15_EINT2_MASK 0x4000 +#define MADERA_DSP_IRQ15_EINT2_SHIFT 14 +#define MADERA_DSP_IRQ15_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ14_EINT2 0x2000 +#define MADERA_DSP_IRQ14_EINT2_MASK 0x2000 +#define MADERA_DSP_IRQ14_EINT2_SHIFT 13 +#define MADERA_DSP_IRQ14_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ13_EINT2 0x1000 +#define MADERA_DSP_IRQ13_EINT2_MASK 0x1000 +#define MADERA_DSP_IRQ13_EINT2_SHIFT 12 +#define MADERA_DSP_IRQ13_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ12_EINT2 0x0800 +#define MADERA_DSP_IRQ12_EINT2_MASK 0x0800 +#define MADERA_DSP_IRQ12_EINT2_SHIFT 11 +#define MADERA_DSP_IRQ12_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ11_EINT2 0x0400 +#define MADERA_DSP_IRQ11_EINT2_MASK 0x0400 +#define MADERA_DSP_IRQ11_EINT2_SHIFT 10 +#define MADERA_DSP_IRQ11_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ10_EINT2 0x0200 +#define MADERA_DSP_IRQ10_EINT2_MASK 0x0200 +#define MADERA_DSP_IRQ10_EINT2_SHIFT 9 +#define MADERA_DSP_IRQ10_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ9_EINT2 0x0100 +#define MADERA_DSP_IRQ9_EINT2_MASK 0x0100 +#define MADERA_DSP_IRQ9_EINT2_SHIFT 8 +#define MADERA_DSP_IRQ9_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ8_EINT2 0x0080 +#define MADERA_DSP_IRQ8_EINT2_MASK 0x0080 +#define MADERA_DSP_IRQ8_EINT2_SHIFT 7 +#define MADERA_DSP_IRQ8_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ7_EINT2 0x0040 +#define MADERA_DSP_IRQ7_EINT2_MASK 0x0040 +#define MADERA_DSP_IRQ7_EINT2_SHIFT 6 +#define MADERA_DSP_IRQ7_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ6_EINT2 0x0020 +#define MADERA_DSP_IRQ6_EINT2_MASK 0x0020 +#define MADERA_DSP_IRQ6_EINT2_SHIFT 5 +#define MADERA_DSP_IRQ6_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ5_EINT2 0x0010 +#define MADERA_DSP_IRQ5_EINT2_MASK 0x0010 +#define MADERA_DSP_IRQ5_EINT2_SHIFT 4 +#define MADERA_DSP_IRQ5_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ4_EINT2 0x0008 +#define MADERA_DSP_IRQ4_EINT2_MASK 0x0008 +#define MADERA_DSP_IRQ4_EINT2_SHIFT 3 +#define MADERA_DSP_IRQ4_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ3_EINT2 0x0004 +#define MADERA_DSP_IRQ3_EINT2_MASK 0x0004 +#define MADERA_DSP_IRQ3_EINT2_SHIFT 2 +#define MADERA_DSP_IRQ3_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ2_EINT2 0x0002 +#define MADERA_DSP_IRQ2_EINT2_MASK 0x0002 +#define MADERA_DSP_IRQ2_EINT2_SHIFT 1 +#define MADERA_DSP_IRQ2_EINT2_WIDTH 1 +#define MADERA_DSP_IRQ1_EINT2 0x0001 +#define MADERA_DSP_IRQ1_EINT2_MASK 0x0001 +#define MADERA_DSP_IRQ1_EINT2_SHIFT 0 +#define MADERA_DSP_IRQ1_EINT2_WIDTH 1
+/* (0x190B) IRQ2_Status_12 */ +#define MADERA_SPKOUTR_SC_EINT2 0x0080 +#define MADERA_SPKOUTR_SC_EINT2_MASK 0x0080 +#define MADERA_SPKOUTR_SC_EINT2_SHIFT 7 +#define MADERA_SPKOUTR_SC_EINT2_WIDTH 1 +#define MADERA_SPKOUTL_SC_EINT2 0x0040 +#define MADERA_SPKOUTL_SC_EINT2_MASK 0x0040 +#define MADERA_SPKOUTL_SC_EINT2_SHIFT 6 +#define MADERA_SPKOUTL_SC_EINT2_WIDTH 1 +#define MADERA_HP3R_SC_EINT2 0x0020 +#define MADERA_HP3R_SC_EINT2_MASK 0x0020 +#define MADERA_HP3R_SC_EINT2_SHIFT 5 +#define MADERA_HP3R_SC_EINT2_WIDTH 1 +#define MADERA_HP3L_SC_EINT2 0x0010 +#define MADERA_HP3L_SC_EINT2_MASK 0x0010 +#define MADERA_HP3L_SC_EINT2_SHIFT 4 +#define MADERA_HP3L_SC_EINT2_WIDTH 1 +#define MADERA_HP2R_SC_EINT2 0x0008 +#define MADERA_HP2R_SC_EINT2_MASK 0x0008 +#define MADERA_HP2R_SC_EINT2_SHIFT 3 +#define MADERA_HP2R_SC_EINT2_WIDTH 1 +#define MADERA_HP2L_SC_EINT2 0x0004 +#define MADERA_HP2L_SC_EINT2_MASK 0x0004 +#define MADERA_HP2L_SC_EINT2_SHIFT 2 +#define MADERA_HP2L_SC_EINT2_WIDTH 1 +#define MADERA_HP1R_SC_EINT2 0x0002 +#define MADERA_HP1R_SC_EINT2_MASK 0x0002 +#define MADERA_HP1R_SC_EINT2_SHIFT 1 +#define MADERA_HP1R_SC_EINT2_WIDTH 1 +#define MADERA_HP1L_SC_EINT2 0x0001 +#define MADERA_HP1L_SC_EINT2_MASK 0x0001 +#define MADERA_HP1L_SC_EINT2_SHIFT 0 +#define MADERA_HP1L_SC_EINT2_WIDTH 1
+/* (0x190C) IRQ2_Status_13 */ +#define MADERA_SPKOUTR_ENABLE_DONE_EINT2 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT2_MASK 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT2_SHIFT 7 +#define MADERA_SPKOUTR_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT2 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT2_MASK 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT2_SHIFT 6 +#define MADERA_SPKOUTL_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP3R_ENABLE_DONE_EINT2 0x0020 +#define MADERA_HP3R_ENABLE_DONE_EINT2_MASK 0x0020 +#define MADERA_HP3R_ENABLE_DONE_EINT2_SHIFT 5 +#define MADERA_HP3R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP3L_ENABLE_DONE_EINT2 0x0010 +#define MADERA_HP3L_ENABLE_DONE_EINT2_MASK 0x0010 +#define MADERA_HP3L_ENABLE_DONE_EINT2_SHIFT 4 +#define MADERA_HP3L_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP2R_ENABLE_DONE_EINT2 0x0008 +#define MADERA_HP2R_ENABLE_DONE_EINT2_MASK 0x0008 +#define MADERA_HP2R_ENABLE_DONE_EINT2_SHIFT 3 +#define MADERA_HP2R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP2L_ENABLE_DONE_EINT2 0x0004 +#define MADERA_HP2L_ENABLE_DONE_EINT2_MASK 0x0004 +#define MADERA_HP2L_ENABLE_DONE_EINT2_SHIFT 2 +#define MADERA_HP2L_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP1R_ENABLE_DONE_EINT2 0x0002 +#define MADERA_HP1R_ENABLE_DONE_EINT2_MASK 0x0002 +#define MADERA_HP1R_ENABLE_DONE_EINT2_SHIFT 1 +#define MADERA_HP1R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP1L_ENABLE_DONE_EINT2 0x0001 +#define MADERA_HP1L_ENABLE_DONE_EINT2_MASK 0x0001 +#define MADERA_HP1L_ENABLE_DONE_EINT2_SHIFT 0 +#define MADERA_HP1L_ENABLE_DONE_EINT2_WIDTH 1
+/* (0x190D) IRQ2_Status_14 */ +#define MADERA_SPKOUTR_DISABLE_DONE_EINT2 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT2_MASK 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT2_SHIFT 7 +#define MADERA_SPKOUTR_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT2 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT2_MASK 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT2_SHIFT 6 +#define MADERA_SPKOUTL_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP3R_DISABLE_DONE_EINT2 0x0020 +#define MADERA_HP3R_DISABLE_DONE_EINT2_MASK 0x0020 +#define MADERA_HP3R_DISABLE_DONE_EINT2_SHIFT 5 +#define MADERA_HP3R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP3L_DISABLE_DONE_EINT2 0x0010 +#define MADERA_HP3L_DISABLE_DONE_EINT2_MASK 0x0010 +#define MADERA_HP3L_DISABLE_DONE_EINT2_SHIFT 4 +#define MADERA_HP3L_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP2R_DISABLE_DONE_EINT2 0x0008 +#define MADERA_HP2R_DISABLE_DONE_EINT2_MASK 0x0008 +#define MADERA_HP2R_DISABLE_DONE_EINT2_SHIFT 3 +#define MADERA_HP2R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP2L_DISABLE_DONE_EINT2 0x0004 +#define MADERA_HP2L_DISABLE_DONE_EINT2_MASK 0x0004 +#define MADERA_HP2L_DISABLE_DONE_EINT2_SHIFT 2 +#define MADERA_HP2L_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP1R_DISABLE_DONE_EINT2 0x0002 +#define MADERA_HP1R_DISABLE_DONE_EINT2_MASK 0x0002 +#define MADERA_HP1R_DISABLE_DONE_EINT2_SHIFT 1 +#define MADERA_HP1R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_HP1L_DISABLE_DONE_EINT2 0x0001 +#define MADERA_HP1L_DISABLE_DONE_EINT2_MASK 0x0001 +#define MADERA_HP1L_DISABLE_DONE_EINT2_SHIFT 0 +#define MADERA_HP1L_DISABLE_DONE_EINT2_WIDTH 1
+/* (0x190E) IRQ2_Status_15 */ +#define MADERA_SPK_OVERHEAT_WARN_EINT2 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_EINT2_MASK 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_EINT2_SHIFT 2 +#define MADERA_SPK_OVERHEAT_WARN_EINT2_WIDTH 1 +#define MADERA_SPK_OVERHEAT_EINT2 0x0002 +#define MADERA_SPK_OVERHEAT_EINT2_MASK 0x0002 +#define MADERA_SPK_OVERHEAT_EINT2_SHIFT 1 +#define MADERA_SPK_OVERHEAT_EINT2_WIDTH 1 +#define MADERA_SPK_SHUTDOWN_EINT2 0x0001 +#define MADERA_SPK_SHUTDOWN_EINT2_MASK 0x0001 +#define MADERA_SPK_SHUTDOWN_EINT2_SHIFT 0 +#define MADERA_SPK_SHUTDOWN_EINT2_WIDTH 1
+/* (0x1940) IRQ2_Mask_1 */ +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT2 0x8000 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT2_MASK 0x8000 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT2_SHIFT 15 +#define MADERA_IM_DSP_SHARED_WR_COLL_EINT2_WIDTH 1 +#define MADERA_IM_CTRLIF_ERR_EINT2 0x1000 +#define MADERA_IM_CTRLIF_ERR_EINT2_MASK 0x1000 +#define MADERA_IM_CTRLIF_ERR_EINT2_SHIFT 12 +#define MADERA_IM_CTRLIF_ERR_EINT2_WIDTH 1 +#define MADERA_IM_SYSCLK_FAIL_EINT2 0x0200 +#define MADERA_IM_SYSCLK_FAIL_EINT2_MASK 0x0200 +#define MADERA_IM_SYSCLK_FAIL_EINT2_SHIFT 9 +#define MADERA_IM_SYSCLK_FAIL_EINT2_WIDTH 1 +#define MADERA_IM_CLOCK_DETECT_EINT2 0x0100 +#define MADERA_IM_CLOCK_DETECT_EINT2_MASK 0x0100 +#define MADERA_IM_CLOCK_DETECT_EINT2_SHIFT 8 +#define MADERA_IM_CLOCK_DETECT_EINT2_WIDTH 1 +#define MADERA_IM_BOOT_DONE_EINT2 0x0080 +#define MADERA_IM_BOOT_DONE_EINT2_MASK 0x0080 +#define MADERA_IM_BOOT_DONE_EINT2_SHIFT 7 +#define MADERA_IM_BOOT_DONE_EINT2_WIDTH 1
+/* (0x1941) IRQ2_Mask_2 */ +#define MADERA_IM_FLL3_LOCK_EINT2 0x0400 +#define MADERA_IM_FLL3_LOCK_EINT2_MASK 0x0400 +#define MADERA_IM_FLL3_LOCK_EINT2_SHIFT 10 +#define MADERA_IM_FLL3_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_FLL2_LOCK_EINT2 0x0200 +#define MADERA_IM_FLL2_LOCK_EINT2_MASK 0x0200 +#define MADERA_IM_FLL2_LOCK_EINT2_SHIFT 9 +#define MADERA_IM_FLL2_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_FLL1_LOCK_EINT2 0x0100 +#define MADERA_IM_FLL1_LOCK_EINT2_MASK 0x0100 +#define MADERA_IM_FLL1_LOCK_EINT2_SHIFT 8 +#define MADERA_IM_FLL1_LOCK_EINT2_WIDTH 1
+/* (0x1945) IRQ2_Mask_6 */ +#define MADERA_IM_MICDET2_EINT2 0x0200 +#define MADERA_IM_MICDET2_EINT2_MASK 0x0200 +#define MADERA_IM_MICDET2_EINT2_SHIFT 9 +#define MADERA_IM_MICDET2_EINT2_WIDTH 1 +#define MADERA_IM_MICDET1_EINT2 0x0100 +#define MADERA_IM_MICDET1_EINT2_MASK 0x0100 +#define MADERA_IM_MICDET1_EINT2_SHIFT 8 +#define MADERA_IM_MICDET1_EINT2_WIDTH 1 +#define MADERA_IM_HPDET_EINT2 0x0001 +#define MADERA_IM_HPDET_EINT2_MASK 0x0001 +#define MADERA_IM_HPDET_EINT2_SHIFT 0 +#define MADERA_IM_HPDET_EINT2_WIDTH 1
+/* (0x1946) IRQ2_Mask_7 */ +#define MADERA_IM_MICD_CLAMP_FALL_EINT2 0x0020 +#define MADERA_IM_MICD_CLAMP_FALL_EINT2_MASK 0x0020 +#define MADERA_IM_MICD_CLAMP_FALL_EINT2_SHIFT 5 +#define MADERA_IM_MICD_CLAMP_FALL_EINT2_WIDTH 1 +#define MADERA_IM_MICD_CLAMP_RISE_EINT2 0x0010 +#define MADERA_IM_MICD_CLAMP_RISE_EINT2_MASK 0x0010 +#define MADERA_IM_MICD_CLAMP_RISE_EINT2_SHIFT 4 +#define MADERA_IM_MICD_CLAMP_RISE_EINT2_WIDTH 1 +#define MADERA_IM_JD2_FALL_EINT2 0x0008 +#define MADERA_IM_JD2_FALL_EINT2_MASK 0x0008 +#define MADERA_IM_JD2_FALL_EINT2_SHIFT 3 +#define MADERA_IM_JD2_FALL_EINT2_WIDTH 1 +#define MADERA_IM_JD2_RISE_EINT2 0x0004 +#define MADERA_IM_JD2_RISE_EINT2_MASK 0x0004 +#define MADERA_IM_JD2_RISE_EINT2_SHIFT 2 +#define MADERA_IM_JD2_RISE_EINT2_WIDTH 1 +#define MADERA_IM_JD1_FALL_EINT2 0x0002 +#define MADERA_IM_JD1_FALL_EINT2_MASK 0x0002 +#define MADERA_IM_JD1_FALL_EINT2_SHIFT 1 +#define MADERA_IM_JD1_FALL_EINT2_WIDTH 1 +#define MADERA_IM_JD1_RISE_EINT2 0x0001 +#define MADERA_IM_JD1_RISE_EINT2_MASK 0x0001 +#define MADERA_IM_JD1_RISE_EINT2_SHIFT 0 +#define MADERA_IM_JD1_RISE_EINT2_WIDTH 1
+/* (0x1948) IRQ2_Mask_9 */ +#define MADERA_IM_ASRC2_IN2_LOCK_EINT2 0x0800 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT2_MASK 0x0800 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT2_SHIFT 11 +#define MADERA_IM_ASRC2_IN2_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT2 0x0400 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT2_MASK 0x0400 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT2_SHIFT 10 +#define MADERA_IM_ASRC2_IN1_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT2 0x0200 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT2_MASK 0x0200 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT2_SHIFT 9 +#define MADERA_IM_ASRC1_IN2_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT2 0x0100 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT2_MASK 0x0100 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT2_SHIFT 8 +#define MADERA_IM_ASRC1_IN1_LOCK_EINT2_WIDTH 1 +#define MADERA_IM_DRC2_SIG_DET_EINT2 0x0002 +#define MADERA_IM_DRC2_SIG_DET_EINT2_MASK 0x0002 +#define MADERA_IM_DRC2_SIG_DET_EINT2_SHIFT 1 +#define MADERA_IM_DRC2_SIG_DET_EINT2_WIDTH 1 +#define MADERA_IM_DRC1_SIG_DET_EINT2 0x0001 +#define MADERA_IM_DRC1_SIG_DET_EINT2_MASK 0x0001 +#define MADERA_IM_DRC1_SIG_DET_EINT2_SHIFT 0 +#define MADERA_IM_DRC1_SIG_DET_EINT2_WIDTH 1
+/* (0x194A) IRQ2_Mask_11 */ +#define MADERA_IM_DSP_IRQ16_EINT2 0x8000 +#define MADERA_IM_DSP_IRQ16_EINT2_MASK 0x8000 +#define MADERA_IM_DSP_IRQ16_EINT2_SHIFT 15 +#define MADERA_IM_DSP_IRQ16_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ15_EINT2 0x4000 +#define MADERA_IM_DSP_IRQ15_EINT2_MASK 0x4000 +#define MADERA_IM_DSP_IRQ15_EINT2_SHIFT 14 +#define MADERA_IM_DSP_IRQ15_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ14_EINT2 0x2000 +#define MADERA_IM_DSP_IRQ14_EINT2_MASK 0x2000 +#define MADERA_IM_DSP_IRQ14_EINT2_SHIFT 13 +#define MADERA_IM_DSP_IRQ14_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ13_EINT2 0x1000 +#define MADERA_IM_DSP_IRQ13_EINT2_MASK 0x1000 +#define MADERA_IM_DSP_IRQ13_EINT2_SHIFT 12 +#define MADERA_IM_DSP_IRQ13_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ12_EINT2 0x0800 +#define MADERA_IM_DSP_IRQ12_EINT2_MASK 0x0800 +#define MADERA_IM_DSP_IRQ12_EINT2_SHIFT 11 +#define MADERA_IM_DSP_IRQ12_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ11_EINT2 0x0400 +#define MADERA_IM_DSP_IRQ11_EINT2_MASK 0x0400 +#define MADERA_IM_DSP_IRQ11_EINT2_SHIFT 10 +#define MADERA_IM_DSP_IRQ11_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ10_EINT2 0x0200 +#define MADERA_IM_DSP_IRQ10_EINT2_MASK 0x0200 +#define MADERA_IM_DSP_IRQ10_EINT2_SHIFT 9 +#define MADERA_IM_DSP_IRQ10_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ9_EINT2 0x0100 +#define MADERA_IM_DSP_IRQ9_EINT2_MASK 0x0100 +#define MADERA_IM_DSP_IRQ9_EINT2_SHIFT 8 +#define MADERA_IM_DSP_IRQ9_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ8_EINT2 0x0080 +#define MADERA_IM_DSP_IRQ8_EINT2_MASK 0x0080 +#define MADERA_IM_DSP_IRQ8_EINT2_SHIFT 7 +#define MADERA_IM_DSP_IRQ8_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ7_EINT2 0x0040 +#define MADERA_IM_DSP_IRQ7_EINT2_MASK 0x0040 +#define MADERA_IM_DSP_IRQ7_EINT2_SHIFT 6 +#define MADERA_IM_DSP_IRQ7_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ6_EINT2 0x0020 +#define MADERA_IM_DSP_IRQ6_EINT2_MASK 0x0020 +#define MADERA_IM_DSP_IRQ6_EINT2_SHIFT 5 +#define MADERA_IM_DSP_IRQ6_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ5_EINT2 0x0010 +#define MADERA_IM_DSP_IRQ5_EINT2_MASK 0x0010 +#define MADERA_IM_DSP_IRQ5_EINT2_SHIFT 4 +#define MADERA_IM_DSP_IRQ5_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ4_EINT2 0x0008 +#define MADERA_IM_DSP_IRQ4_EINT2_MASK 0x0008 +#define MADERA_IM_DSP_IRQ4_EINT2_SHIFT 3 +#define MADERA_IM_DSP_IRQ4_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ3_EINT2 0x0004 +#define MADERA_IM_DSP_IRQ3_EINT2_MASK 0x0004 +#define MADERA_IM_DSP_IRQ3_EINT2_SHIFT 2 +#define MADERA_IM_DSP_IRQ3_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ2_EINT2 0x0002 +#define MADERA_IM_DSP_IRQ2_EINT2_MASK 0x0002 +#define MADERA_IM_DSP_IRQ2_EINT2_SHIFT 1 +#define MADERA_IM_DSP_IRQ2_EINT2_WIDTH 1 +#define MADERA_IM_DSP_IRQ1_EINT2 0x0001 +#define MADERA_IM_DSP_IRQ1_EINT2_MASK 0x0001 +#define MADERA_IM_DSP_IRQ1_EINT2_SHIFT 0 +#define MADERA_IM_DSP_IRQ1_EINT2_WIDTH 1
+/* (0x194B) IRQ2_Mask_12 */ +#define MADERA_IM_SPKOUTR_SC_EINT2 0x0080 +#define MADERA_IM_SPKOUTR_SC_EINT2_MASK 0x0080 +#define MADERA_IM_SPKOUTR_SC_EINT2_SHIFT 7 +#define MADERA_IM_SPKOUTR_SC_EINT2_WIDTH 1 +#define MADERA_IM_SPKOUTL_SC_EINT2 0x0040 +#define MADERA_IM_SPKOUTL_SC_EINT2_MASK 0x0040 +#define MADERA_IM_SPKOUTL_SC_EINT2_SHIFT 6 +#define MADERA_IM_SPKOUTL_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP3R_SC_EINT2 0x0020 +#define MADERA_IM_HP3R_SC_EINT2_MASK 0x0020 +#define MADERA_IM_HP3R_SC_EINT2_SHIFT 5 +#define MADERA_IM_HP3R_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP3L_SC_EINT2 0x0010 +#define MADERA_IM_HP3L_SC_EINT2_MASK 0x0010 +#define MADERA_IM_HP3L_SC_EINT2_SHIFT 4 +#define MADERA_IM_HP3L_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP2R_SC_EINT2 0x0008 +#define MADERA_IM_HP2R_SC_EINT2_MASK 0x0008 +#define MADERA_IM_HP2R_SC_EINT2_SHIFT 3 +#define MADERA_IM_HP2R_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP2L_SC_EINT2 0x0004 +#define MADERA_IM_HP2L_SC_EINT2_MASK 0x0004 +#define MADERA_IM_HP2L_SC_EINT2_SHIFT 2 +#define MADERA_IM_HP2L_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP1R_SC_EINT2 0x0002 +#define MADERA_IM_HP1R_SC_EINT2_MASK 0x0002 +#define MADERA_IM_HP1R_SC_EINT2_SHIFT 1 +#define MADERA_IM_HP1R_SC_EINT2_WIDTH 1 +#define MADERA_IM_HP1L_SC_EINT2 0x0001 +#define MADERA_IM_HP1L_SC_EINT2_MASK 0x0001 +#define MADERA_IM_HP1L_SC_EINT2_SHIFT 0 +#define MADERA_IM_HP1L_SC_EINT2_WIDTH 1
+/* (0x194C) IRQ2_Mask_13 */ +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT2 0x0080 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT2_MASK 0x0080 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT2_SHIFT 7 +#define MADERA_IM_SPKOUTR_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT2 0x0040 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT2_MASK 0x0040 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT2_SHIFT 6 +#define MADERA_IM_SPKOUTL_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT2 0x0020 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT2_MASK 0x0020 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT2_SHIFT 5 +#define MADERA_IM_HP3R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT2 0x0010 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT2_MASK 0x0010 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT2_SHIFT 4 +#define MADERA_IM_HP3L_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT2 0x0008 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT2_MASK 0x0008 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT2_SHIFT 3 +#define MADERA_IM_HP2R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT2 0x0004 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT2_MASK 0x0004 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT2_SHIFT 2 +#define MADERA_IM_HP2L_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT2 0x0002 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT2_MASK 0x0002 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT2_SHIFT 1 +#define MADERA_IM_HP1R_ENABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT2 0x0001 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT2_MASK 0x0001 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT2_SHIFT 0 +#define MADERA_IM_HP1L_ENABLE_DONE_EINT2_WIDTH 1
+/* (0x194D) IRQ2_Mask_14 */ +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT2 0x0080 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT2_MASK 0x0080 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT2_SHIFT 7 +#define MADERA_IM_SPKOUTR_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT2 0x0040 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT2_MASK 0x0040 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT2_SHIFT 6 +#define MADERA_IM_SPKOUTL_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT2 0x0020 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT2_MASK 0x0020 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT2_SHIFT 5 +#define MADERA_IM_HP3R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT2 0x0010 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT2_MASK 0x0010 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT2_SHIFT 4 +#define MADERA_IM_HP3L_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT2 0x0008 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT2_MASK 0x0008 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT2_SHIFT 3 +#define MADERA_IM_HP2R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT2 0x0004 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT2_MASK 0x0004 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT2_SHIFT 2 +#define MADERA_IM_HP2L_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT2 0x0002 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT2_MASK 0x0002 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT2_SHIFT 1 +#define MADERA_IM_HP1R_DISABLE_DONE_EINT2_WIDTH 1 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT2 0x0001 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT2_MASK 0x0001 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT2_SHIFT 0 +#define MADERA_IM_HP1L_DISABLE_DONE_EINT2_WIDTH 1
+/* (0x194E) IRQ2_Mask_15 */ +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT2 0x0004 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT2_MASK 0x0004 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT2_SHIFT 2 +#define MADERA_IM_SPK_OVERHEAT_WARN_EINT2_WIDTH 1 +#define MADERA_IM_SPK_OVERHEAT_EINT2 0x0002 +#define MADERA_IM_SPK_OVERHEAT_EINT2_MASK 0x0002 +#define MADERA_IM_SPK_OVERHEAT_EINT2_SHIFT 1 +#define MADERA_IM_SPK_OVERHEAT_EINT2_WIDTH 1 +#define MADERA_IM_SPK_SHUTDOWN_EINT2 0x0001 +#define MADERA_IM_SPK_SHUTDOWN_EINT2_MASK 0x0001 +#define MADERA_IM_SPK_SHUTDOWN_EINT2_SHIFT 0 +#define MADERA_IM_SPK_SHUTDOWN_EINT2_WIDTH 1
+/* (0x1980) IRQ2_Raw_Status_1 */ +#define MADERA_DSP_SHARED_WR_COLL_STS2 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_STS2_MASK 0x8000 +#define MADERA_DSP_SHARED_WR_COLL_STS2_SHIFT 15 +#define MADERA_DSP_SHARED_WR_COLL_STS2_WIDTH 1 +#define MADERA_CTRLIF_ERR_STS2 0x1000 +#define MADERA_CTRLIF_ERR_STS2_MASK 0x1000 +#define MADERA_CTRLIF_ERR_STS2_SHIFT 12 +#define MADERA_CTRLIF_ERR_STS2_WIDTH 1 +#define MADERA_SYSCLK_FAIL_STS2 0x0200 +#define MADERA_SYSCLK_FAIL_STS2_MASK 0x0200 +#define MADERA_SYSCLK_FAIL_STS2_SHIFT 9 +#define MADERA_SYSCLK_FAIL_STS2_WIDTH 1 +#define MADERA_CLOCK_DETECT_STS2 0x0100 +#define MADERA_CLOCK_DETECT_STS2_MASK 0x0100 +#define MADERA_CLOCK_DETECT_STS2_SHIFT 8 +#define MADERA_CLOCK_DETECT_STS2_WIDTH 1 +#define MADERA_BOOT_DONE_STS2 0x0080 +#define MADERA_BOOT_DONE_STS2_MASK 0x0080 +#define MADERA_BOOT_DONE_STS2_SHIFT 7 +#define MADERA_BOOT_DONE_STS2_WIDTH 1
+/* (0x1981) IRQ2_Raw_Status_2 */ +#define MADERA_FLL3_LOCK_STS2 0x0400 +#define MADERA_FLL3_LOCK_STS2_MASK 0x0400 +#define MADERA_FLL3_LOCK_STS2_SHIFT 10 +#define MADERA_FLL3_LOCK_STS2_WIDTH 1 +#define MADERA_FLL2_LOCK_STS2 0x0200 +#define MADERA_FLL2_LOCK_STS2_MASK 0x0200 +#define MADERA_FLL2_LOCK_STS2_SHIFT 9 +#define MADERA_FLL2_LOCK_STS2_WIDTH 1 +#define MADERA_FLL1_LOCK_STS2 0x0100 +#define MADERA_FLL1_LOCK_STS2_MASK 0x0100 +#define MADERA_FLL1_LOCK_STS2_SHIFT 8 +#define MADERA_FLL1_LOCK_STS2_WIDTH 1
+/* (0x1986) IRQ2_Raw_Status_7 */ +#define MADERA_MICD_CLAMP_FALL_STS2 0x0020 +#define MADERA_MICD_CLAMP_FALL_STS2_MASK 0x0020 +#define MADERA_MICD_CLAMP_FALL_STS2_SHIFT 5 +#define MADERA_MICD_CLAMP_FALL_STS2_WIDTH 1 +#define MADERA_MICD_CLAMP_RISE_STS2 0x0010 +#define MADERA_MICD_CLAMP_RISE_STS2_MASK 0x0010 +#define MADERA_MICD_CLAMP_RISE_STS2_SHIFT 4 +#define MADERA_MICD_CLAMP_RISE_STS2_WIDTH 1 +#define MADERA_JD2_FALL_STS2 0x0008 +#define MADERA_JD2_FALL_STS2_MASK 0x0008 +#define MADERA_JD2_FALL_STS2_SHIFT 3 +#define MADERA_JD2_FALL_STS2_WIDTH 1 +#define MADERA_JD2_RISE_STS2 0x0004 +#define MADERA_JD2_RISE_STS2_MASK 0x0004 +#define MADERA_JD2_RISE_STS2_SHIFT 2 +#define MADERA_JD2_RISE_STS2_WIDTH 1 +#define MADERA_JD1_FALL_STS2 0x0002 +#define MADERA_JD1_FALL_STS2_MASK 0x0002 +#define MADERA_JD1_FALL_STS2_SHIFT 1 +#define MADERA_JD1_FALL_STS2_WIDTH 1 +#define MADERA_JD1_RISE_STS2 0x0001 +#define MADERA_JD1_RISE_STS2_MASK 0x0001 +#define MADERA_JD1_RISE_STS2_SHIFT 0 +#define MADERA_JD1_RISE_STS2_WIDTH 1
+/* (0x1988) IRQ2_Raw_Status_9 */ +#define MADERA_ASRC2_IN2_LOCK_STS2 0x0800 +#define MADERA_ASRC2_IN2_LOCK_STS2_MASK 0x0800 +#define MADERA_ASRC2_IN2_LOCK_STS2_SHIFT 11 +#define MADERA_ASRC2_IN2_LOCK_STS2_WIDTH 1 +#define MADERA_ASRC2_IN1_LOCK_STS2 0x0400 +#define MADERA_ASRC2_IN1_LOCK_STS2_MASK 0x0400 +#define MADERA_ASRC2_IN1_LOCK_STS2_SHIFT 10 +#define MADERA_ASRC2_IN1_LOCK_STS2_WIDTH 1 +#define MADERA_ASRC1_IN2_LOCK_STS2 0x0200 +#define MADERA_ASRC1_IN2_LOCK_STS2_MASK 0x0200 +#define MADERA_ASRC1_IN2_LOCK_STS2_SHIFT 9 +#define MADERA_ASRC1_IN2_LOCK_STS2_WIDTH 1 +#define MADERA_ASRC1_IN1_LOCK_STS2 0x0100 +#define MADERA_ASRC1_IN1_LOCK_STS2_MASK 0x0100 +#define MADERA_ASRC1_IN1_LOCK_STS2_SHIFT 8 +#define MADERA_ASRC1_IN1_LOCK_STS2_WIDTH 1 +#define MADERA_DRC2_SIG_DET_STS2 0x0002 +#define MADERA_DRC2_SIG_DET_STS2_MASK 0x0002 +#define MADERA_DRC2_SIG_DET_STS2_SHIFT 1 +#define MADERA_DRC2_SIG_DET_STS2_WIDTH 1 +#define MADERA_DRC1_SIG_DET_STS2 0x0001 +#define MADERA_DRC1_SIG_DET_STS2_MASK 0x0001 +#define MADERA_DRC1_SIG_DET_STS2_SHIFT 0 +#define MADERA_DRC1_SIG_DET_STS2_WIDTH 1
+/* (0x198A) - IRQ2 Raw Status 11 */ +#define MADERA_DSP_IRQ26_STS2 0x8000 +#define MADERA_DSP_IRQ26_STS2_MASK 0x8000 +#define MADERA_DSP_IRQ26_STS2_SHIFT 15 +#define MADERA_DSP_IRQ26_STS2_WIDTH 1 +#define MADERA_DSP_IRQ25_STS2 0x4000 +#define MADERA_DSP_IRQ25_STS2_MASK 0x4000 +#define MADERA_DSP_IRQ25_STS2_SHIFT 14 +#define MADERA_DSP_IRQ25_STS2_WIDTH 1 +#define MADERA_DSP_IRQ24_STS2 0x2000 +#define MADERA_DSP_IRQ24_STS2_MASK 0x2000 +#define MADERA_DSP_IRQ24_STS2_SHIFT 13 +#define MADERA_DSP_IRQ24_STS2_WIDTH 1 +#define MADERA_DSP_IRQ23_STS2 0x1000 +#define MADERA_DSP_IRQ23_STS2_MASK 0x1000 +#define MADERA_DSP_IRQ23_STS2_SHIFT 12 +#define MADERA_DSP_IRQ23_STS2_WIDTH 1 +#define MADERA_DSP_IRQ22_STS2 0x0800 +#define MADERA_DSP_IRQ22_STS2_MASK 0x0800 +#define MADERA_DSP_IRQ22_STS2_SHIFT 11 +#define MADERA_DSP_IRQ22_STS2_WIDTH 1 +#define MADERA_DSP_IRQ21_STS2 0x0400 +#define MADERA_DSP_IRQ21_STS2_MASK 0x0400 +#define MADERA_DSP_IRQ21_STS2_SHIFT 10 +#define MADERA_DSP_IRQ21_STS2_WIDTH 1 +#define MADERA_DSP_IRQ20_STS2 0x0200 +#define MADERA_DSP_IRQ20_STS2_MASK 0x0200 +#define MADERA_DSP_IRQ20_STS2_SHIFT 9 +#define MADERA_DSP_IRQ20_STS2_WIDTH 1 +#define MADERA_DSP_IRQ9_STS2 0x0100 +#define MADERA_DSP_IRQ9_STS2_MASK 0x0100 +#define MADERA_DSP_IRQ9_STS2_SHIFT 8 +#define MADERA_DSP_IRQ9_STS2_WIDTH 1 +#define MADERA_DSP_IRQ8_STS2 0x0080 +#define MADERA_DSP_IRQ8_STS2_MASK 0x0080 +#define MADERA_DSP_IRQ8_STS2_SHIFT 7 +#define MADERA_DSP_IRQ8_STS2_WIDTH 1 +#define MADERA_DSP_IRQ7_STS2 0x0040 +#define MADERA_DSP_IRQ7_STS2_MASK 0x0040 +#define MADERA_DSP_IRQ7_STS2_SHIFT 6 +#define MADERA_DSP_IRQ7_STS2_WIDTH 1 +#define MADERA_DSP_IRQ6_STS2 0x0020 +#define MADERA_DSP_IRQ6_STS2_MASK 0x0020 +#define MADERA_DSP_IRQ6_STS2_SHIFT 5 +#define MADERA_DSP_IRQ6_STS2_WIDTH 1 +#define MADERA_DSP_IRQ5_STS2 0x0010 +#define MADERA_DSP_IRQ5_STS2_MASK 0x0010 +#define MADERA_DSP_IRQ5_STS2_SHIFT 4 +#define MADERA_DSP_IRQ5_STS2_WIDTH 1 +#define MADERA_DSP_IRQ4_STS2 0x0008 +#define MADERA_DSP_IRQ4_STS2_MASK 0x0008 +#define MADERA_DSP_IRQ4_STS2_SHIFT 3 +#define MADERA_DSP_IRQ4_STS2_WIDTH 1 +#define MADERA_DSP_IRQ3_STS2 0x0004 +#define MADERA_DSP_IRQ3_STS2_MASK 0x0004 +#define MADERA_DSP_IRQ3_STS2_SHIFT 2 +#define MADERA_DSP_IRQ3_STS2_WIDTH 1 +#define MADERA_DSP_IRQ2_STS2 0x0002 +#define MADERA_DSP_IRQ2_STS2_MASK 0x0002 +#define MADERA_DSP_IRQ2_STS2_SHIFT 1 +#define MADERA_DSP_IRQ2_STS2_WIDTH 1 +#define MADERA_DSP_IRQ1_STS2 0x0001 +#define MADERA_DSP_IRQ1_STS2_MASK 0x0001 +#define MADERA_DSP_IRQ1_STS2_SHIFT 0 +#define MADERA_DSP_IRQ1_STS2_WIDTH 1
+/* (0x198B) IRQ2_Raw_Status_12 */ +#define MADERA_SPKOUTR_SC_STS2 0x0080 +#define MADERA_SPKOUTR_SC_STS2_MASK 0x0080 +#define MADERA_SPKOUTR_SC_STS2_SHIFT 7 +#define MADERA_SPKOUTR_SC_STS2_WIDTH 1 +#define MADERA_SPKOUTL_SC_STS2 0x0040 +#define MADERA_SPKOUTL_SC_STS2_MASK 0x0040 +#define MADERA_SPKOUTL_SC_STS2_SHIFT 6 +#define MADERA_SPKOUTL_SC_STS2_WIDTH 1 +#define MADERA_HP3R_SC_STS2 0x0020 +#define MADERA_HP3R_SC_STS2_MASK 0x0020 +#define MADERA_HP3R_SC_STS2_SHIFT 5 +#define MADERA_HP3R_SC_STS2_WIDTH 1 +#define MADERA_HP3L_SC_STS2 0x0010 +#define MADERA_HP3L_SC_STS2_MASK 0x0010 +#define MADERA_HP3L_SC_STS2_SHIFT 4 +#define MADERA_HP3L_SC_STS2_WIDTH 1 +#define MADERA_HP2R_SC_STS2 0x0008 +#define MADERA_HP2R_SC_STS2_MASK 0x0008 +#define MADERA_HP2R_SC_STS2_SHIFT 3 +#define MADERA_HP2R_SC_STS2_WIDTH 1 +#define MADERA_HP2L_SC_STS2 0x0004 +#define MADERA_HP2L_SC_STS2_MASK 0x0004 +#define MADERA_HP2L_SC_STS2_SHIFT 2 +#define MADERA_HP2L_SC_STS2_WIDTH 1 +#define MADERA_HP1R_SC_STS2 0x0002 +#define MADERA_HP1R_SC_STS2_MASK 0x0002 +#define MADERA_HP1R_SC_STS2_SHIFT 1 +#define MADERA_HP1R_SC_STS2_WIDTH 1 +#define MADERA_HP1L_SC_STS2 0x0001 +#define MADERA_HP1L_SC_STS2_MASK 0x0001 +#define MADERA_HP1L_SC_STS2_SHIFT 0 +#define MADERA_HP1L_SC_STS2_WIDTH 1
+/* (0x198C) IRQ2_Raw_Status_13 */ +#define MADERA_SPKOUTR_ENABLE_DONE_STS2 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_STS2_MASK 0x0080 +#define MADERA_SPKOUTR_ENABLE_DONE_STS2_SHIFT 7 +#define MADERA_SPKOUTR_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_SPKOUTL_ENABLE_DONE_STS2 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_STS2_MASK 0x0040 +#define MADERA_SPKOUTL_ENABLE_DONE_STS2_SHIFT 6 +#define MADERA_SPKOUTL_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP3R_ENABLE_DONE_STS2 0x0020 +#define MADERA_HP3R_ENABLE_DONE_STS2_MASK 0x0020 +#define MADERA_HP3R_ENABLE_DONE_STS2_SHIFT 5 +#define MADERA_HP3R_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP3L_ENABLE_DONE_STS2 0x0010 +#define MADERA_HP3L_ENABLE_DONE_STS2_MASK 0x0010 +#define MADERA_HP3L_ENABLE_DONE_STS2_SHIFT 4 +#define MADERA_HP3L_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP2R_ENABLE_DONE_STS2 0x0008 +#define MADERA_HP2R_ENABLE_DONE_STS2_MASK 0x0008 +#define MADERA_HP2R_ENABLE_DONE_STS2_SHIFT 3 +#define MADERA_HP2R_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP2L_ENABLE_DONE_STS2 0x0004 +#define MADERA_HP2L_ENABLE_DONE_STS2_MASK 0x0004 +#define MADERA_HP2L_ENABLE_DONE_STS2_SHIFT 2 +#define MADERA_HP2L_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP1R_ENABLE_DONE_STS2 0x0002 +#define MADERA_HP1R_ENABLE_DONE_STS2_MASK 0x0002 +#define MADERA_HP1R_ENABLE_DONE_STS2_SHIFT 1 +#define MADERA_HP1R_ENABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP1L_ENABLE_DONE_STS2 0x0001 +#define MADERA_HP1L_ENABLE_DONE_STS2_MASK 0x0001 +#define MADERA_HP1L_ENABLE_DONE_STS2_SHIFT 0 +#define MADERA_HP1L_ENABLE_DONE_STS2_WIDTH 1
+/* (0x198D) IRQ2_Raw_Status_14 */ +#define MADERA_SPKOUTR_DISABLE_DONE_STS2 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_STS2_MASK 0x0080 +#define MADERA_SPKOUTR_DISABLE_DONE_STS2_SHIFT 7 +#define MADERA_SPKOUTR_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_SPKOUTL_DISABLE_DONE_STS2 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_STS2_MASK 0x0040 +#define MADERA_SPKOUTL_DISABLE_DONE_STS2_SHIFT 6 +#define MADERA_SPKOUTL_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP3R_DISABLE_DONE_STS2 0x0020 +#define MADERA_HP3R_DISABLE_DONE_STS2_MASK 0x0020 +#define MADERA_HP3R_DISABLE_DONE_STS2_SHIFT 5 +#define MADERA_HP3R_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP3L_DISABLE_DONE_STS2 0x0010 +#define MADERA_HP3L_DISABLE_DONE_STS2_MASK 0x0010 +#define MADERA_HP3L_DISABLE_DONE_STS2_SHIFT 4 +#define MADERA_HP3L_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP2R_DISABLE_DONE_STS2 0x0008 +#define MADERA_HP2R_DISABLE_DONE_STS2_MASK 0x0008 +#define MADERA_HP2R_DISABLE_DONE_STS2_SHIFT 3 +#define MADERA_HP2R_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP2L_DISABLE_DONE_STS2 0x0004 +#define MADERA_HP2L_DISABLE_DONE_STS2_MASK 0x0004 +#define MADERA_HP2L_DISABLE_DONE_STS2_SHIFT 2 +#define MADERA_HP2L_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP1R_DISABLE_DONE_STS2 0x0002 +#define MADERA_HP1R_DISABLE_DONE_STS2_MASK 0x0002 +#define MADERA_HP1R_DISABLE_DONE_STS2_SHIFT 1 +#define MADERA_HP1R_DISABLE_DONE_STS2_WIDTH 1 +#define MADERA_HP1L_DISABLE_DONE_STS2 0x0001 +#define MADERA_HP1L_DISABLE_DONE_STS2_MASK 0x0001 +#define MADERA_HP1L_DISABLE_DONE_STS2_SHIFT 0 +#define MADERA_HP1L_DISABLE_DONE_STS2_WIDTH 1
+/* (0x198E) IRQ2_Raw_Status_15 */ +#define MADERA_SPK_OVERHEAT_WARN_STS2 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_STS2_MASK 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_STS2_SHIFT 2 +#define MADERA_SPK_OVERHEAT_WARN_STS2_WIDTH 1 +#define MADERA_SPK_OVERHEAT_STS2 0x0002 +#define MADERA_SPK_OVERHEAT_STS2_MASK 0x0002 +#define MADERA_SPK_OVERHEAT_STS2_SHIFT 1 +#define MADERA_SPK_OVERHEAT_STS2_WIDTH 1 +#define MADERA_SPK_SHUTDOWN_STS2 0x0001 +#define MADERA_SPK_SHUTDOWN_STS2_MASK 0x0001 +#define MADERA_SPK_SHUTDOWN_STS2_SHIFT 0 +#define MADERA_SPK_SHUTDOWN_STS2_WIDTH 1
+/* (0x1A06) Interrupt_Debounce_7 */ +#define MADERA_MICD_CLAMP_DB 0x0010 +#define MADERA_MICD_CLAMP_DB_MASK 0x0010 +#define MADERA_MICD_CLAMP_DB_SHIFT 4 +#define MADERA_MICD_CLAMP_DB_WIDTH 1 +#define MADERA_JD2_DB 0x0004 +#define MADERA_JD2_DB_MASK 0x0004 +#define MADERA_JD2_DB_SHIFT 2 +#define MADERA_JD2_DB_WIDTH 1 +#define MADERA_JD1_DB 0x0001 +#define MADERA_JD1_DB_MASK 0x0001 +#define MADERA_JD1_DB_SHIFT 0 +#define MADERA_JD1_DB_WIDTH 1
+/* (0x1A0E) Interrupt_Debounce_15 */ +#define MADERA_SPK_OVERHEAT_WARN_DB 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_DB_MASK 0x0004 +#define MADERA_SPK_OVERHEAT_WARN_DB_SHIFT 2 +#define MADERA_SPK_OVERHEAT_WARN_DB_WIDTH 1 +#define MADERA_SPK_OVERHEAT_DB 0x0002 +#define MADERA_SPK_OVERHEAT_DB_MASK 0x0002 +#define MADERA_SPK_OVERHEAT_DB_SHIFT 1 +#define MADERA_SPK_OVERHEAT_DB_WIDTH 1
+/* (0x1A80) IRQ1_CTRL */ +#define MADERA_IM_IRQ1 0x0800 +#define MADERA_IM_IRQ1_MASK 0x0800 +#define MADERA_IM_IRQ1_SHIFT 11 +#define MADERA_IM_IRQ1_WIDTH 1 +#define MADERA_IRQ_POL 0x0400 +#define MADERA_IRQ_POL_MASK 0x0400 +#define MADERA_IRQ_POL_SHIFT 10 +#define MADERA_IRQ_POL_WIDTH 1
+/* (0x20004) OTP_HPDET_Cal_1 */ +#define MADERA_OTP_HPDET_CALIB_OFFSET_11 0xFF000000 +#define MADERA_OTP_HPDET_CALIB_OFFSET_11_MASK 0xFF000000 +#define MADERA_OTP_HPDET_CALIB_OFFSET_11_SHIFT 24 +#define MADERA_OTP_HPDET_CALIB_OFFSET_11_WIDTH 8 +#define MADERA_OTP_HPDET_CALIB_OFFSET_10 0x00FF0000 +#define MADERA_OTP_HPDET_CALIB_OFFSET_10_MASK 0x00FF0000 +#define MADERA_OTP_HPDET_CALIB_OFFSET_10_SHIFT 16 +#define MADERA_OTP_HPDET_CALIB_OFFSET_10_WIDTH 8 +#define MADERA_OTP_HPDET_CALIB_OFFSET_01 0x0000FF00 +#define MADERA_OTP_HPDET_CALIB_OFFSET_01_MASK 0x0000FF00 +#define MADERA_OTP_HPDET_CALIB_OFFSET_01_SHIFT 8 +#define MADERA_OTP_HPDET_CALIB_OFFSET_01_WIDTH 8 +#define MADERA_OTP_HPDET_CALIB_OFFSET_00 0x000000FF +#define MADERA_OTP_HPDET_CALIB_OFFSET_00_MASK 0x000000FF +#define MADERA_OTP_HPDET_CALIB_OFFSET_00_SHIFT 0 +#define MADERA_OTP_HPDET_CALIB_OFFSET_00_WIDTH 8
+/* (0x20006) OTP_HPDET_Cal_2 */ +#define MADERA_OTP_HPDET_GRADIENT_1X 0x0000FF00 +#define MADERA_OTP_HPDET_GRADIENT_1X_MASK 0x0000FF00 +#define MADERA_OTP_HPDET_GRADIENT_1X_SHIFT 8 +#define MADERA_OTP_HPDET_GRADIENT_1X_WIDTH 8 +#define MADERA_OTP_HPDET_GRADIENT_0X 0x000000FF +#define MADERA_OTP_HPDET_GRADIENT_0X_MASK 0x000000FF +#define MADERA_OTP_HPDET_GRADIENT_0X_SHIFT 0 +#define MADERA_OTP_HPDET_GRADIENT_0X_WIDTH 8
+#endif
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.wolfsonmicro.com Signed-off-by: Nikesh Oswal Nikesh.Oswal@wolfsonmicro.com Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com --- Documentation/devicetree/bindings/mfd/madera.txt | 79 +++ MAINTAINERS | 3 + drivers/mfd/Kconfig | 23 + drivers/mfd/Makefile | 4 + drivers/mfd/madera-core.c | 689 +++++++++++++++++++++++ drivers/mfd/madera-i2c.c | 130 +++++ drivers/mfd/madera-spi.c | 131 +++++ drivers/mfd/madera.h | 52 ++ include/linux/mfd/madera/core.h | 175 ++++++ include/linux/mfd/madera/pdata.h | 88 +++ 10 files changed, 1374 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/madera.txt create mode 100644 drivers/mfd/madera-core.c create mode 100644 drivers/mfd/madera-i2c.c create mode 100644 drivers/mfd/madera-spi.c create mode 100644 drivers/mfd/madera.h create mode 100644 include/linux/mfd/madera/core.h create mode 100644 include/linux/mfd/madera/pdata.h
diff --git a/Documentation/devicetree/bindings/mfd/madera.txt b/Documentation/devicetree/bindings/mfd/madera.txt new file mode 100644 index 0000000..a6c3260 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/madera.txt @@ -0,0 +1,79 @@ +Cirrus Logic Madera class audio codecs multi-function device + +These devices are audio SoCs with extensive digital capabilities and a range +of analogue I/O. + +See also the child driver bindings in: +bindings/extcon/extcon-madera.txt +bindings/gpio/gpio-madera.txt +bindings/interrupt-controller/cirrus,madera.txt +bindings/pinctrl/cirrus,madera-pinctrl.txt +bindings/regulator/madera-ldo1.txt +bindings/regulator/madera-micsupp.txt +bindings/sound/madera.txt + +Required properties: + + - compatible : One of the following chip-specific strings: + "cirrus,cs47l35" + "cirrus,cs47l85" + "cirrus,cs47l90" + "cirrus,cs47l91" + "cirrus,wm1840" + + - reg : I2C slave address when connected using I2C, chip select number when + using SPI. + + - DCVDD-supply : Power supply for the device as defined in + bindings/regulator/regulator.txt + Mandatory on CS47L35, CS47L90, CS47L91 + Optional on CS47L85, WM1840 + + - AVDD-supply, DBVDD1-supply, DBVDD2-supply, CPVDD1-supply, CPVDD2-supply : + Power supplies for the device + + - DBVDD3-supply, DBVDD4-supply : Power supplies for the device + (CS47L85, CS47L90, CS47L91, WM1840) + + - SPKVDDL-supply, SPKVDDR-supply : Power supplies for the device + (CS47L85, WM1840) + + - SPKVDD-supply : Power supply for the device + (CS47L35) + +Optional properties: + + - MICVDD-supply : Power supply, only need to be specified if + powered externally + + - reset-gpios : One entry specifying the GPIO controlling /RESET. + As defined in bindings/gpio.txt. + Although optional, it is strongly recommended to use a hardware reset + + - MICBIASx : Initial data for the MICBIAS regulators, as covered in + Documentation/devicetree/bindings/regulator/regulator.txt. + One for each MICBIAS generator (MICBIAS1, MICBIAS2, ...) + (all codecs) + + One for each output pin (MICBIAS1A, MIBCIAS1B, MICBIAS2A, ...) + (all except CS47L85, WM1840) + + The following following additional property is supported for the generator + nodes: + - cirrus,ext-cap : Set to 1 if the MICBIAS has external decoupling + capacitors attached. + +Example: + +codec: cs47l85@0 { + compatible = "cirrus,cs47l85"; + reg = <0>; + + reset-gpios = <&gpio 0>; + + MICBIAS1 { + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <3300000>; + cirrus,ext-cap = <1>; + }; +}; diff --git a/MAINTAINERS b/MAINTAINERS index 02995c9..d28e53f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3266,7 +3266,10 @@ L: patches@opensource.wolfsonmicro.com T: git https://github.com/CirrusLogic/linux-drivers.git W: https://github.com/CirrusLogic/linux-drivers/wiki S: Supported +F: Documentation/devicetree/bindings/mfd/madera.txt F: include/linux/mfd/madera/* +F: drivers/mfd/madera* +F: drivers/mfd/cs47l*
CLEANCACHE API M: Konrad Rzeszutek Wilk konrad.wilk@oracle.com diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index ce3a918..f0f9979 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -203,6 +203,29 @@ config MFD_CROS_EC_SPI response time cannot be guaranteed, we support ignoring 'pre-amble' bytes before the response actually starts.
+config MFD_MADERA + bool + select REGMAP + select MFD_CORE + +config MFD_MADERA_I2C + tristate "Cirrus Logic Madera codecs with I2C" + select MFD_MADERA + select REGMAP_I2C + depends on I2C + help + Support for the Cirrus Logic Madera platform audio SoC + core functionality controlled via I2C. + +config MFD_MADERA_SPI + tristate "Cirrus Logic Madera codecs with SPI" + select MFD_MADERA + select REGMAP_SPI + depends on SPI_MASTER + help + Support for the Cirrus Logic Madera platform audio SoC + core functionality controlled via SPI. + config MFD_ASIC3 bool "Compaq ASIC3" depends on GPIOLIB && ARM diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index fa86dbe..c41f6c9 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile @@ -72,6 +72,10 @@ obj-$(CONFIG_MFD_WM8350_I2C) += wm8350-i2c.o wm8994-objs := wm8994-core.o wm8994-irq.o wm8994-regmap.o obj-$(CONFIG_MFD_WM8994) += wm8994.o
+obj-$(CONFIG_MFD_MADERA) += madera-core.o +obj-$(CONFIG_MFD_MADERA_I2C) += madera-i2c.o +obj-$(CONFIG_MFD_MADERA_SPI) += madera-spi.o + obj-$(CONFIG_TPS6105X) += tps6105x.o obj-$(CONFIG_TPS65010) += tps65010.o obj-$(CONFIG_TPS6507X) += tps6507x.o diff --git a/drivers/mfd/madera-core.c b/drivers/mfd/madera-core.c new file mode 100644 index 0000000..ab5fe9b --- /dev/null +++ b/drivers/mfd/madera-core.c @@ -0,0 +1,689 @@ +/* + * Core MFD support for Cirrus Logic Madera codecs + * + * Copyright 2015-2017 Cirrus Logic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/device.h> +#include <linux/delay.h> +#include <linux/err.h> +#include <linux/gpio.h> +#include <linux/mfd/core.h> +#include <linux/module.h> +#include <linux/notifier.h> +#include <linux/of.h> +#include <linux/of_device.h> +#include <linux/of_gpio.h> +#include <linux/platform_device.h> +#include <linux/pm_runtime.h> +#include <linux/regmap.h> +#include <linux/regulator/consumer.h> +#include <linux/regulator/machine.h> +#include <linux/regulator/of_regulator.h> + +#include <linux/mfd/madera/core.h> +#include <linux/mfd/madera/registers.h> + +#include "madera.h" + +#define CS47L35_SILICON_ID 0x6360 +#define CS47L85_SILICON_ID 0x6338 +#define CS47L90_SILICON_ID 0x6364 + +#define MADERA_32KZ_MCLK2 1 + +static const char * const madera_core_supplies[] = { + "AVDD", + "DBVDD1", +}; + +static const struct mfd_cell madera_ldo1_devs[] = { + { .name = "madera-ldo1", .of_compatible = "cirrus,madera-ldo1" }, +}; + +static const struct mfd_cell cs47l35_devs[] = { + { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" }, + { .name = "madera-irq", }, + { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" }, + { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" }, + { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" }, + { .name = "cs47l35-codec", .of_compatible = "cirrus,cs47l35-codec" }, + { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" }, +}; + +static const struct mfd_cell cs47l85_devs[] = { + { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" }, + { .name = "madera-irq", }, + { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" }, + { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" }, + { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" }, + { .name = "cs47l85-codec", .of_compatible = "cirrus,cs47l85-codec" }, + { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" }, +}; + +static const struct mfd_cell cs47l90_devs[] = { + { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" }, + { .name = "madera-irq", }, + { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" }, + { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" }, + { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" }, + { .name = "cs47l90-codec", .of_compatible = "cirrus,cs47l90-codec" }, + { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" }, +}; + +const char *madera_name_from_type(enum madera_type type) +{ + switch (type) { + case CS47L35: + return "CS47L35"; + case CS47L85: + return "CS47L85"; + case CS47L90: + return "CS47L90"; + case CS47L91: + return "CS47L91"; + case WM1840: + return "WM1840"; + default: + return "Unknown"; + } +} +EXPORT_SYMBOL_GPL(madera_name_from_type); + +#define MADERA_BOOT_POLL_MAX_INTERVAL_US 5000 +#define MADERA_BOOT_POLL_TIMEOUT_US 25000 + +static int madera_wait_for_boot(struct madera *madera) +{ + unsigned int val; + int ret; + + /* + * We can't use an interrupt as we need to runtime resume to do so, + * so we poll the status bit. This won't race with the interrupt + * handler because it will be blocked on runtime resume. + */ + ret = regmap_read_poll_timeout(madera->regmap, + MADERA_IRQ1_RAW_STATUS_1, + val, + (val & MADERA_BOOT_DONE_STS1), + MADERA_BOOT_POLL_MAX_INTERVAL_US, + MADERA_BOOT_POLL_TIMEOUT_US); + /* + * BOOT_DONE defaults to unmasked on boot so we must ack it. + * Do this unconditionally to avoid interrupt storms + */ + regmap_write(madera->regmap, MADERA_IRQ1_STATUS_1, + MADERA_BOOT_DONE_EINT1); + + if (ret) + dev_err(madera->dev, "Polling BOOT_DONE_STS failed: %d\n", ret); + + pm_runtime_mark_last_busy(madera->dev); + + return ret; +} + +static int madera_soft_reset(struct madera *madera) +{ + int ret; + + ret = regmap_write(madera->regmap, MADERA_SOFTWARE_RESET, 0); + if (ret != 0) { + dev_err(madera->dev, "Failed to soft reset device: %d\n", ret); + return ret; + } + usleep_range(1000, 2000); + + return 0; +} + +static void madera_enable_hard_reset(struct madera *madera) +{ + if (madera->reset_gpio) + gpiod_set_value_cansleep(madera->reset_gpio, 0); +} + +static void madera_disable_hard_reset(struct madera *madera) +{ + if (madera->reset_gpio) { + gpiod_set_value_cansleep(madera->reset_gpio, 1); + usleep_range(1000, 2000); + } +} + +#ifdef CONFIG_PM +static int madera_runtime_resume(struct device *dev) +{ + struct madera *madera = dev_get_drvdata(dev); + int ret; + + dev_dbg(madera->dev, "Leaving sleep mode\n"); + + ret = regulator_enable(madera->dcvdd); + if (ret) { + dev_err(madera->dev, "Failed to enable DCVDD: %d\n", ret); + return ret; + } + + regcache_cache_only(madera->regmap, false); + regcache_cache_only(madera->regmap_32bit, false); + + ret = madera_wait_for_boot(madera); + if (ret) + goto err; + + ret = regcache_sync(madera->regmap); + if (ret) { + dev_err(madera->dev, + "Failed to restore 16-bit register cache\n"); + goto err; + } + + ret = regcache_sync(madera->regmap_32bit); + if (ret) { + dev_err(madera->dev, + "Failed to restore 32-bit register cache\n"); + goto err; + } + + return 0; + +err: + regcache_cache_only(madera->regmap_32bit, true); + regcache_cache_only(madera->regmap, true); + regulator_disable(madera->dcvdd); + + return ret; +} + +static int madera_runtime_suspend(struct device *dev) +{ + struct madera *madera = dev_get_drvdata(dev); + + dev_dbg(madera->dev, "Entering sleep mode\n"); + + regcache_cache_only(madera->regmap, true); + regcache_mark_dirty(madera->regmap); + regcache_cache_only(madera->regmap_32bit, true); + regcache_mark_dirty(madera->regmap_32bit); + + regulator_disable(madera->dcvdd); + + return 0; +} +#endif + +const struct dev_pm_ops madera_pm_ops = { + SET_RUNTIME_PM_OPS(madera_runtime_suspend, + madera_runtime_resume, + NULL) +}; +EXPORT_SYMBOL_GPL(madera_pm_ops); + +unsigned int madera_get_num_micbias(struct madera *madera) +{ + + switch (madera->type) { + case CS47L35: + return 2; + case CS47L85: + case WM1840: + return 4; + case CS47L90: + case CS47L91: + return 2; + default: + dev_warn(madera->dev, "No micbias known for codec %s\n", + madera_name_from_type(madera->type)); + return 0; + } +} +EXPORT_SYMBOL_GPL(madera_get_num_micbias); + +unsigned int madera_get_num_childbias(struct madera *madera, + unsigned int micbias) +{ + /* + * micbias argument reserved for future codecs that don't + * have the same number of children on each micbias + */ + + switch (madera->type) { + case CS47L35: + return 2; + case CS47L85: + case WM1840: + return 0; + case CS47L90: + case CS47L91: + return 4; + default: + dev_warn(madera->dev, "No child micbias known for codec %s\n", + madera_name_from_type(madera->type)); + return 0; + } +} +EXPORT_SYMBOL_GPL(madera_get_num_childbias); + +#ifdef CONFIG_OF +const struct of_device_id madera_of_match[] = { + { .compatible = "cirrus,cs47l35", .data = (void *)CS47L35 }, + { .compatible = "cirrus,cs47l85", .data = (void *)CS47L85 }, + { .compatible = "cirrus,cs47l90", .data = (void *)CS47L90 }, + { .compatible = "cirrus,cs47l91", .data = (void *)CS47L91 }, + { .compatible = "cirrus,wm1840", .data = (void *)WM1840 }, + {}, +}; +EXPORT_SYMBOL_GPL(madera_of_match); + +unsigned long madera_of_get_type(struct device *dev) +{ + const struct of_device_id *id = of_match_device(madera_of_match, dev); + + if (id) + return (unsigned long)id->data; + else + return 0; +} +EXPORT_SYMBOL_GPL(madera_of_get_type); +#endif + +static int madera_prop_get_core_pdata(struct madera *madera) +{ + int ret; + + madera->reset_gpio = devm_gpiod_get_optional(madera->dev, + "reset", + GPIOD_OUT_LOW); + if (IS_ERR(madera->reset_gpio)) { + ret = PTR_ERR(madera->reset_gpio); + + if (ret == -EPROBE_DEFER) + return ret; + else if ((ret < 0) && (ret != -EINVAL)) + dev_warn(madera->dev, + "DT property reset-gpio is malformed: %d\n", + ret); + } + + return 0; +} + +static void madera_configure_micbias(struct madera *madera) +{ + unsigned int num_micbias = madera_get_num_micbias(madera); + struct madera_micbias_pdata *pdata; + struct regulator_init_data *init_data; + unsigned int num_child_micbias; + unsigned int val, mask, reg; + int i, j, ret; + + for (i = 0; i < num_micbias; i++) { + pdata = &madera->pdata.micbias[i]; + init_data = &pdata->init_data; + + if (!init_data->constraints.max_uV && + !init_data->constraints.valid_ops_mask) + continue; /* pdata not set */ + + /* Apply default for bypass mode */ + if (!init_data->constraints.max_uV) + init_data->constraints.max_uV = 2800; + + val = (init_data->constraints.max_uV - 1500000) / 100000; + val <<= MADERA_MICB1_LVL_SHIFT; + + mask = MADERA_MICB1_LVL_MASK | MADERA_MICB1_EXT_CAP | + MADERA_MICB1_BYPASS | MADERA_MICB1_RATE; + + if (pdata->ext_cap) + val |= MADERA_MICB1_EXT_CAP; + + /* if no child biases the discharge is set in the parent */ + num_child_micbias = madera_get_num_childbias(madera, i + 1); + if (num_child_micbias == 0) { + mask |= MADERA_MICB1_DISCH; + + switch (init_data->constraints.active_discharge) { + case REGULATOR_ACTIVE_DISCHARGE_ENABLE: + val |= MADERA_MICB1_DISCH; + break; + default: + break; + } + } + + if (init_data->constraints.soft_start) + val |= MADERA_MICB1_RATE; + + if (init_data->constraints.valid_ops_mask & + REGULATOR_CHANGE_BYPASS) + val |= MADERA_MICB1_BYPASS; + + reg = MADERA_MIC_BIAS_CTRL_1 + i; + ret = regmap_update_bits(madera->regmap, reg, mask, val); + if (ret) + dev_warn(madera->dev, "Failed to write 0x%x (%d)\n", + reg, ret); + + dev_dbg(madera->dev, "Set MICBIAS_CTRL_%d mask=0x%x val=0x%x\n", + i + 1, mask, val); + + /* Configure the child micbias pins */ + val = 0; + mask = 0; + for (j = 0; j < num_child_micbias; j++) { + mask |= (MADERA_MICB1A_DISCH << (j * 4)); + + init_data = &pdata->pin[j].init_data; + switch (init_data->constraints.active_discharge) { + case REGULATOR_ACTIVE_DISCHARGE_ENABLE: + val |= (MADERA_MICB1A_DISCH << (j * 4)); + break; + default: + break; + } + } + + if (mask) { + reg = MADERA_MIC_BIAS_CTRL_5 + (i * 2); + ret = regmap_update_bits(madera->regmap, reg, mask, val); + if (ret) + dev_warn(madera->dev, + "Failed to write 0x%x (%d)\n", + reg, ret); + + dev_dbg(madera->dev, + "Set MICBIAS_CTRL_%d mask=0x%x val=0x%x\n", + i + 5, mask, val); + } + } +} + +int madera_dev_init(struct madera *madera) +{ + struct device *dev = madera->dev; + const char *name; + unsigned int hwid; + int (*patch_fn)(struct madera *) = NULL; + const struct mfd_cell *mfd_devs; + int n_devs = 0; + int i, ret; + + dev_set_drvdata(madera->dev, madera); + BLOCKING_INIT_NOTIFIER_HEAD(&madera->notifier); + + if (dev_get_platdata(madera->dev)) { + memcpy(&madera->pdata, dev_get_platdata(madera->dev), + sizeof(madera->pdata)); + + /* We use 0 in pdata to indicate a GPIO has not been set */ + if (madera->pdata.reset > 0) { + /* Start out with /RESET asserted */ + ret = devm_gpio_request_one(madera->dev, + madera->pdata.reset, + GPIOF_DIR_OUT | GPIOF_INIT_LOW, + "madera reset"); + if (ret) { + dev_err(dev, "Failed to request /RESET: %d\n", + ret); + return ret; + } + + madera->reset_gpio = gpio_to_desc(madera->pdata.reset); + } + } else { + ret = madera_prop_get_core_pdata(madera); + if (ret) + return ret; + } + + if (!madera->reset_gpio) + dev_warn(madera->dev, + "Running without reset GPIO is not recommended\n"); + + regcache_cache_only(madera->regmap, true); + regcache_cache_only(madera->regmap_32bit, true); + + for (i = 0; i < ARRAY_SIZE(madera_core_supplies); i++) + madera->core_supplies[i].supply = madera_core_supplies[i]; + + madera->num_core_supplies = ARRAY_SIZE(madera_core_supplies); + + switch (madera->type) { + case CS47L35: + case CS47L90: + case CS47L91: + break; + case CS47L85: + case WM1840: + ret = mfd_add_devices(madera->dev, PLATFORM_DEVID_NONE, + madera_ldo1_devs, + ARRAY_SIZE(madera_ldo1_devs), + NULL, 0, NULL); + if (ret != 0) { + dev_err(dev, "Failed to add LDO1 child: %d\n", ret); + return ret; + } + break; + default: + dev_err(madera->dev, "Unknown device type %d\n", madera->type); + return -ENODEV; + } + + ret = devm_regulator_bulk_get(dev, madera->num_core_supplies, + madera->core_supplies); + if (ret) { + dev_err(dev, "Failed to request core supplies: %d\n", ret); + goto err_devs; + } + + /* + * Don't use devres here because the only device we have to get + * against is the MFD device and DCVDD will likely be supplied by + * one of its children. Meaning that the regulator will be + * destroyed by the time devres calls regulator put. + */ + madera->dcvdd = regulator_get_exclusive(madera->dev, "DCVDD"); + if (IS_ERR(madera->dcvdd)) { + ret = PTR_ERR(madera->dcvdd); + dev_err(dev, "Failed to request DCVDD: %d\n", ret); + goto err_devs; + } + + ret = regulator_bulk_enable(madera->num_core_supplies, + madera->core_supplies); + if (ret) { + dev_err(dev, "Failed to enable core supplies: %d\n", ret); + goto err_dcvdd; + } + + ret = regulator_enable(madera->dcvdd); + if (ret) { + dev_err(dev, "Failed to enable DCVDD: %d\n", ret); + goto err_enable; + } + + madera_disable_hard_reset(madera); + + regcache_cache_only(madera->regmap, false); + regcache_cache_only(madera->regmap_32bit, false); + + /* + * Verify that this is a chip we know about before we + * starting doing any writes to its registers + */ + ret = regmap_read(madera->regmap, MADERA_SOFTWARE_RESET, &hwid); + if (ret) { + dev_err(dev, "Failed to read ID register: %d\n", ret); + goto err_reset; + } + + switch (hwid) { + case CS47L35_SILICON_ID: + case CS47L85_SILICON_ID: + case CS47L90_SILICON_ID: + break; + default: + dev_err(madera->dev, "Unknown device ID: %x\n", hwid); + ret = -EINVAL; + goto err_reset; + } + + /* If we don't have a reset GPIO use a soft reset */ + if (!madera->reset_gpio) { + ret = madera_soft_reset(madera); + if (ret) + goto err_reset; + } + + ret = madera_wait_for_boot(madera); + if (ret) { + dev_err(madera->dev, "Device failed initial boot: %d\n", ret); + goto err_reset; + } + + ret = regmap_read(madera->regmap, MADERA_HARDWARE_REVISION, + &madera->rev); + if (ret) { + dev_err(dev, "Failed to read revision register: %d\n", ret); + goto err_reset; + } + madera->rev &= MADERA_HW_REVISION_MASK; + + name = madera_name_from_type(madera->type); + + switch (hwid) { + case CS47L35_SILICON_ID: + if (IS_ENABLED(CONFIG_MFD_CS47L35)) { + switch (madera->type) { + case CS47L35: + patch_fn = cs47l35_patch; + mfd_devs = cs47l35_devs; + n_devs = ARRAY_SIZE(cs47l35_devs); + break; + default: + break; + } + } + break; + case CS47L85_SILICON_ID: + if (IS_ENABLED(CONFIG_MFD_CS47L85)) { + switch (madera->type) { + case CS47L85: + case WM1840: + patch_fn = cs47l85_patch; + mfd_devs = cs47l85_devs; + n_devs = ARRAY_SIZE(cs47l85_devs); + break; + default: + break; + } + } + break; + case CS47L90_SILICON_ID: + if (IS_ENABLED(CONFIG_MFD_CS47L90)) { + switch (madera->type) { + case CS47L90: + case CS47L91: + patch_fn = cs47l90_patch; + mfd_devs = cs47l90_devs; + n_devs = ARRAY_SIZE(cs47l90_devs); + break; + default: + break; + } + } + break; + default: + break; + } + + if (!n_devs) { + dev_err(madera->dev, "Device ID 0x%x not a %s\n", hwid, name); + ret = -ENODEV; + goto err_reset; + } + + dev_info(dev, "%s silicon revision %d\n", name, madera->rev); + + /* Apply hardware patch */ + if (patch_fn) { + ret = patch_fn(madera); + if (ret) { + dev_err(madera->dev, "Failed to apply patch %d\n", ret); + goto err_reset; + } + } + + /* Init 32k clock sourced from MCLK2 */ + ret = regmap_update_bits(madera->regmap, + MADERA_CLOCK_32K_1, + MADERA_CLK_32K_ENA_MASK | MADERA_CLK_32K_SRC_MASK, + MADERA_CLK_32K_ENA | MADERA_32KZ_MCLK2); + if (ret) { + dev_err(madera->dev, "Failed to init 32k clock: %d\n", ret); + goto err_reset; + } + + madera_configure_micbias(madera); + + pm_runtime_set_active(madera->dev); + pm_runtime_enable(madera->dev); + pm_runtime_set_autosuspend_delay(madera->dev, 100); + pm_runtime_use_autosuspend(madera->dev); + + ret = mfd_add_devices(madera->dev, PLATFORM_DEVID_NONE, + mfd_devs, n_devs, + NULL, 0, NULL); + if (ret) { + dev_err(madera->dev, "Failed to add subdevices: %d\n", ret); + goto err_pm_runtime; + } + + return 0; + +err_pm_runtime: + pm_runtime_disable(madera->dev); +err_reset: + madera_enable_hard_reset(madera); + regulator_disable(madera->dcvdd); +err_enable: + regulator_bulk_disable(madera->num_core_supplies, + madera->core_supplies); +err_dcvdd: + regulator_put(madera->dcvdd); +err_devs: + mfd_remove_devices(dev); + + return ret; +} +EXPORT_SYMBOL_GPL(madera_dev_init); + +int madera_dev_exit(struct madera *madera) +{ + /* Prevent any IRQs being serviced while we clean up */ + disable_irq(madera->irq); + + /* + * DCVDD could be supplied by a child node, we must disable it before + * removing the children, and prevent PM runtime from turning it back on + */ + pm_runtime_disable(madera->dev); + + regulator_disable(madera->dcvdd); + regulator_put(madera->dcvdd); + + mfd_remove_devices(madera->dev); + madera_enable_hard_reset(madera); + + regulator_bulk_disable(madera->num_core_supplies, + madera->core_supplies); + return 0; +} +EXPORT_SYMBOL_GPL(madera_dev_exit); diff --git a/drivers/mfd/madera-i2c.c b/drivers/mfd/madera-i2c.c new file mode 100644 index 0000000..8c90780 --- /dev/null +++ b/drivers/mfd/madera-i2c.c @@ -0,0 +1,130 @@ +/* + * I2C bus interface to Cirrus Logic Madera codecs + * + * Copyright 2015-2017 Cirrus Logic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/device.h> +#include <linux/err.h> +#include <linux/i2c.h> +#include <linux/module.h> +#include <linux/regmap.h> +#include <linux/of.h> + +#include <linux/mfd/madera/core.h> + +#include "madera.h" + +static int madera_i2c_probe(struct i2c_client *i2c, + const struct i2c_device_id *id) +{ + struct madera *madera; + const struct regmap_config *regmap_16bit_config = NULL; + const struct regmap_config *regmap_32bit_config = NULL; + unsigned long type; + int ret; + + if (i2c->dev.of_node) + type = madera_of_get_type(&i2c->dev); + else + type = id->driver_data; + + switch (type) { + case CS47L35: + if (IS_ENABLED(CONFIG_MFD_CS47L35)) { + regmap_16bit_config = &cs47l35_16bit_i2c_regmap; + regmap_32bit_config = &cs47l35_32bit_i2c_regmap; + } + break; + case CS47L85: + case WM1840: + if (IS_ENABLED(CONFIG_MFD_CS47L85)) { + regmap_16bit_config = &cs47l85_16bit_i2c_regmap; + regmap_32bit_config = &cs47l85_32bit_i2c_regmap; + } + break; + case CS47L90: + case CS47L91: + if (IS_ENABLED(CONFIG_MFD_CS47L90)) { + regmap_16bit_config = &cs47l90_16bit_i2c_regmap; + regmap_32bit_config = &cs47l90_32bit_i2c_regmap; + } + break; + default: + dev_err(&i2c->dev, + "Unknown Madera I2C device type %ld\n", type); + return -EINVAL; + } + + if (!regmap_16bit_config) { + dev_err(&i2c->dev, + "Kernel does not include support for %s\n", + madera_name_from_type(type)); + return -EINVAL; + } + + madera = devm_kzalloc(&i2c->dev, sizeof(*madera), GFP_KERNEL); + if (!madera) + return -ENOMEM; + + madera->regmap = devm_regmap_init_i2c(i2c, regmap_16bit_config); + if (IS_ERR(madera->regmap)) { + ret = PTR_ERR(madera->regmap); + dev_err(&i2c->dev, + "Failed to allocate 16-bit register map: %d\n", ret); + return ret; + } + + madera->regmap_32bit = devm_regmap_init_i2c(i2c, regmap_32bit_config); + if (IS_ERR(madera->regmap_32bit)) { + ret = PTR_ERR(madera->regmap_32bit); + dev_err(&i2c->dev, + "Failed to allocate 32-bit register map: %d\n", ret); + return ret; + } + + madera->type = type; + madera->dev = &i2c->dev; + madera->irq = i2c->irq; + + return madera_dev_init(madera); +} + +static int madera_i2c_remove(struct i2c_client *i2c) +{ + struct madera *madera = dev_get_drvdata(&i2c->dev); + + madera_dev_exit(madera); + return 0; +} + +static const struct i2c_device_id madera_i2c_id[] = { + { "cs47l35", CS47L35 }, + { "cs47l85", CS47L85 }, + { "cs47l90", CS47L90 }, + { "cs47l91", CS47L91 }, + { "wm1840", WM1840 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, madera_i2c_id); + +static struct i2c_driver madera_i2c_driver = { + .driver = { + .name = "madera", + .pm = &madera_pm_ops, + .of_match_table = of_match_ptr(madera_of_match), + }, + .probe = madera_i2c_probe, + .remove = madera_i2c_remove, + .id_table = madera_i2c_id, +}; + +module_i2c_driver(madera_i2c_driver); + +MODULE_DESCRIPTION("Madera I2C bus interface"); +MODULE_AUTHOR("Richard Fitzgerald rf@opensource.wolfsonmicro.com"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/mfd/madera-spi.c b/drivers/mfd/madera-spi.c new file mode 100644 index 0000000..e7e13f0 --- /dev/null +++ b/drivers/mfd/madera-spi.c @@ -0,0 +1,131 @@ +/* + * SPI bus interface to Cirrus Logic Madera codecs + * + * Copyright 2015-2017 Cirrus Logic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/device.h> +#include <linux/err.h> +#include <linux/module.h> +#include <linux/regmap.h> +#include <linux/of.h> +#include <linux/spi/spi.h> + +#include <linux/mfd/madera/core.h> + +#include "madera.h" + +static int madera_spi_probe(struct spi_device *spi) +{ + const struct spi_device_id *id = spi_get_device_id(spi); + struct madera *madera; + const struct regmap_config *regmap_16bit_config = NULL; + const struct regmap_config *regmap_32bit_config = NULL; + unsigned long type; + int ret; + + if (spi->dev.of_node) + type = madera_of_get_type(&spi->dev); + else + type = id->driver_data; + + switch (type) { + case CS47L35: + if (IS_ENABLED(CONFIG_MFD_CS47L35)) { + regmap_16bit_config = &cs47l35_16bit_spi_regmap; + regmap_32bit_config = &cs47l35_32bit_spi_regmap; + } + break; + case CS47L85: + case WM1840: + if (IS_ENABLED(CONFIG_MFD_CS47L85)) { + regmap_16bit_config = &cs47l85_16bit_spi_regmap; + regmap_32bit_config = &cs47l85_32bit_spi_regmap; + } + break; + case CS47L90: + case CS47L91: + if (IS_ENABLED(CONFIG_MFD_CS47L90)) { + regmap_16bit_config = &cs47l90_16bit_spi_regmap; + regmap_32bit_config = &cs47l90_32bit_spi_regmap; + } + break; + default: + dev_err(&spi->dev, + "Unknown Madera SPI device type %ld\n", type); + return -EINVAL; + } + + if (!regmap_16bit_config) { + dev_err(&spi->dev, + "Kernel does not include support for %s\n", + madera_name_from_type(type)); + return -EINVAL; + } + + madera = devm_kzalloc(&spi->dev, sizeof(*madera), GFP_KERNEL); + if (!madera) + return -ENOMEM; + + madera->regmap = devm_regmap_init_spi(spi, regmap_16bit_config); + if (IS_ERR(madera->regmap)) { + ret = PTR_ERR(madera->regmap); + dev_err(&spi->dev, + "Failed to allocate 16-bit register map: %d\n", ret); + return ret; + } + + madera->regmap_32bit = devm_regmap_init_spi(spi, regmap_32bit_config); + if (IS_ERR(madera->regmap_32bit)) { + ret = PTR_ERR(madera->regmap_32bit); + dev_err(&spi->dev, + "Failed to allocate 32-bit register map: %d\n", ret); + return ret; + } + + madera->type = type; + madera->dev = &spi->dev; + madera->irq = spi->irq; + + return madera_dev_init(madera); +} + +static int madera_spi_remove(struct spi_device *spi) +{ + struct madera *madera = spi_get_drvdata(spi); + + madera_dev_exit(madera); + return 0; +} + +static const struct spi_device_id madera_spi_ids[] = { + { "cs47l35", CS47L35 }, + { "cs47l85", CS47L85 }, + { "cs47l90", CS47L90 }, + { "cs47l91", CS47L91 }, + { "wm1840", WM1840 }, + { }, +}; +MODULE_DEVICE_TABLE(spi, madera_spi_ids); + +static struct spi_driver madera_spi_driver = { + .driver = { + .name = "madera", + .owner = THIS_MODULE, + .pm = &madera_pm_ops, + .of_match_table = of_match_ptr(madera_of_match), + }, + .probe = madera_spi_probe, + .remove = madera_spi_remove, + .id_table = madera_spi_ids, +}; + +module_spi_driver(madera_spi_driver); + +MODULE_DESCRIPTION("Madera SPI bus interface"); +MODULE_AUTHOR("Richard Fitzgerald rf@opensource.wolfsonmicro.com"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/mfd/madera.h b/drivers/mfd/madera.h new file mode 100644 index 0000000..57f6add --- /dev/null +++ b/drivers/mfd/madera.h @@ -0,0 +1,52 @@ +/* + * madera.h -- MFD internals for Cirrus Logic Madera codecs + * + * Copyright 2015-2016 Cirrus Logic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef MADERA_MFD_H +#define MADERA_MFD_H + +#include <linux/pm.h> +#include <linux/of.h> + +struct madera; + +extern const struct dev_pm_ops madera_pm_ops; +extern const struct of_device_id madera_of_match[]; + +int madera_dev_init(struct madera *madera); +int madera_dev_exit(struct madera *madera); + +#ifdef CONFIG_OF +unsigned long madera_of_get_type(struct device *dev); +#else +static inline unsigned long madera_of_get_type(struct device *dev) +{ + return 0; +} +#endif + +extern const struct regmap_config cs47l35_16bit_spi_regmap; +extern const struct regmap_config cs47l35_32bit_spi_regmap; +extern const struct regmap_config cs47l35_16bit_i2c_regmap; +extern const struct regmap_config cs47l35_32bit_i2c_regmap; +int cs47l35_patch(struct madera *madera); + +extern const struct regmap_config cs47l85_16bit_spi_regmap; +extern const struct regmap_config cs47l85_32bit_spi_regmap; +extern const struct regmap_config cs47l85_16bit_i2c_regmap; +extern const struct regmap_config cs47l85_32bit_i2c_regmap; +int cs47l85_patch(struct madera *madera); + +extern const struct regmap_config cs47l90_16bit_spi_regmap; +extern const struct regmap_config cs47l90_32bit_spi_regmap; +extern const struct regmap_config cs47l90_16bit_i2c_regmap; +extern const struct regmap_config cs47l90_32bit_i2c_regmap; +int cs47l90_patch(struct madera *madera); + +#endif diff --git a/include/linux/mfd/madera/core.h b/include/linux/mfd/madera/core.h new file mode 100644 index 0000000..59b05f8 --- /dev/null +++ b/include/linux/mfd/madera/core.h @@ -0,0 +1,175 @@ +/* + * MFD internals for Cirrus Logic Madera codecs + * + * Copyright 2015-2017 Cirrus Logic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef MADERA_CORE_H +#define MADERA_CORE_H + +#include <linux/interrupt.h> +#include <linux/regmap.h> +#include <linux/notifier.h> +#include <linux/gpio/consumer.h> +#include <linux/regulator/consumer.h> +#include <linux/mfd/madera/pdata.h> +#include <linux/irqchip/irq-madera.h> +#include <sound/madera-pdata.h> + +enum madera_type { + CS47L35 = 1, + CS47L85 = 2, + CS47L90 = 3, + CS47L91 = 4, + WM1840 = 7, +}; + +#define MADERA_MAX_CORE_SUPPLIES 2 +#define MADERA_MAX_GPIOS 40 + +#define CS47L35_NUM_GPIOS 16 +#define CS47L85_NUM_GPIOS 40 +#define CS47L90_NUM_GPIOS 38 + + +/* Notifier events */ +#define MADERA_NOTIFY_VOICE_TRIGGER 0x1 +#define MADERA_NOTIFY_HPDET 0x2 +#define MADERA_NOTIFY_MICDET 0x4 + +/* GPIO Function Definitions */ +#define MADERA_GP_FN_ALTERNATE 0x00 +#define MADERA_GP_FN_GPIO 0x01 +#define MADERA_GP_FN_DSP_GPIO 0x02 +#define MADERA_GP_FN_IRQ1 0x03 +#define MADERA_GP_FN_IRQ2 0x04 +#define MADERA_GP_FN_FLL1_CLOCK 0x10 +#define MADERA_GP_FN_FLL2_CLOCK 0x11 +#define MADERA_GP_FN_FLL3_CLOCK 0x12 +#define MADERA_GP_FN_FLLAO_CLOCK 0x13 +#define MADERA_GP_FN_FLL1_LOCK 0x18 +#define MADERA_GP_FN_FLL2_LOCK 0x19 +#define MADERA_GP_FN_FLL3_LOCK 0x1A +#define MADERA_GP_FN_FLLAO_LOCK 0x1B +#define MADERA_GP_FN_OPCLK_OUT 0x40 +#define MADERA_GP_FN_OPCLK_ASYNC_OUT 0x41 +#define MADERA_GP_FN_PWM1 0x48 +#define MADERA_GP_FN_PWM2 0x49 +#define MADERA_GP_FN_SPDIF_OUT 0x4C +#define MADERA_GP_FN_HEADPHONE_DET 0x50 +#define MADERA_GP_FN_MIC_DET 0x58 +#define MADERA_GP_FN_DRC1_SIGNAL_DETECT 0x80 +#define MADERA_GP_FN_DRC2_SIGNAL_DETECT 0x81 +#define MADERA_GP_FN_ASRC1_IN1_LOCK 0x88 +#define MADERA_GP_FN_ASRC1_IN2_LOCK 0x89 +#define MADERA_GP_FN_ASRC2_IN1_LOCK 0x8A +#define MADERA_GP_FN_ASRC2_IN2_LOCK 0x8B +#define MADERA_GP_FN_DSP_IRQ1 0xA0 +#define MADERA_GP_FN_DSP_IRQ2 0xA1 +#define MADERA_GP_FN_DSP_IRQ3 0xA2 +#define MADERA_GP_FN_DSP_IRQ4 0xA3 +#define MADERA_GP_FN_DSP_IRQ5 0xA4 +#define MADERA_GP_FN_DSP_IRQ6 0xA5 +#define MADERA_GP_FN_DSP_IRQ7 0xA6 +#define MADERA_GP_FN_DSP_IRQ8 0xA7 +#define MADERA_GP_FN_DSP_IRQ9 0xA8 +#define MADERA_GP_FN_DSP_IRQ10 0xA9 +#define MADERA_GP_FN_DSP_IRQ11 0xAA +#define MADERA_GP_FN_DSP_IRQ12 0xAB +#define MADERA_GP_FN_DSP_IRQ13 0xAC +#define MADERA_GP_FN_DSP_IRQ14 0xAD +#define MADERA_GP_FN_DSP_IRQ15 0xAE +#define MADERA_GP_FN_DSP_IRQ16 0xAF +#define MADERA_GP_FN_HPOUT1L_SC 0xB0 +#define MADERA_GP_FN_HPOUT1R_SC 0xB1 +#define MADERA_GP_FN_HPOUT2L_SC 0xB2 +#define MADERA_GP_FN_HPOUT2R_SC 0xB3 +#define MADERA_GP_FN_HPOUT3L_SC 0xB4 +#define MADERA_GP_FN_HPOUT4R_SC 0xB5 +#define MADERA_GP_FN_SPKOUTL_SC 0xB6 +#define MADERA_GP_FN_SPKOUTR_SC 0xB7 +#define MADERA_GP_FN_HPOUT1L_ENA 0xC0 +#define MADERA_GP_FN_HPOUT1R_ENA 0xC1 +#define MADERA_GP_FN_HPOUT2L_ENA 0xC2 +#define MADERA_GP_FN_HPOUT2R_ENA 0xC3 +#define MADERA_GP_FN_HPOUT3L_ENA 0xC4 +#define MADERA_GP_FN_HPOUT4R_ENA 0xC5 +#define MADERA_GP_FN_SPKOUTL_ENA 0xC6 +#define MADERA_GP_FN_SPKOUTR_ENA 0xC7 +#define MADERA_GP_FN_HPOUT1L_DIS 0xD0 +#define MADERA_GP_FN_HPOUT1R_DIS 0xD1 +#define MADERA_GP_FN_HPOUT2L_DIS 0xD2 +#define MADERA_GP_FN_HPOUT2R_DIS 0xD3 +#define MADERA_GP_FN_HPOUT3L_DIS 0xD4 +#define MADERA_GP_FN_HPOUT4R_DIS 0xD5 +#define MADERA_GP_FN_SPKOUTL_DIS 0xD6 +#define MADERA_GP_FN_SPKOUTR_DIS 0xD7 +#define MADERA_GP_FN_SPK_SHUTDOWN 0xE0 +#define MADERA_GP_FN_SPK_OVH_SHUTDOWN 0xE1 +#define MADERA_GP_FN_SPK_OVH_WARN 0xE2 +#define MADERA_GP_FN_TIMER1_STATUS 0x140 +#define MADERA_GP_FN_TIMER2_STATUS 0x141 +#define MADERA_GP_FN_TIMER3_STATUS 0x142 +#define MADERA_GP_FN_TIMER4_STATUS 0x143 +#define MADERA_GP_FN_TIMER5_STATUS 0x144 +#define MADERA_GP_FN_TIMER6_STATUS 0x145 +#define MADERA_GP_FN_TIMER7_STATUS 0x146 +#define MADERA_GP_FN_TIMER8_STATUS 0x147 +#define MADERA_GP_FN_EVENTLOG1_FIFO_STS 0x150 +#define MADERA_GP_FN_EVENTLOG2_FIFO_STS 0x151 +#define MADERA_GP_FN_EVENTLOG3_FIFO_STS 0x152 +#define MADERA_GP_FN_EVENTLOG4_FIFO_STS 0x153 +#define MADERA_GP_FN_EVENTLOG5_FIFO_STS 0x154 +#define MADERA_GP_FN_EVENTLOG6_FIFO_STS 0x155 +#define MADERA_GP_FN_EVENTLOG7_FIFO_STS 0x156 +#define MADERA_GP_FN_EVENTLOG8_FIFO_STS 0x157 + +struct snd_soc_dapm_context; + +struct madera { + struct regmap *regmap; + struct regmap *regmap_32bit; + + struct device *dev; + + enum madera_type type; + unsigned int rev; + + struct gpio_desc *reset_gpio; + + int num_core_supplies; + struct regulator_bulk_data core_supplies[MADERA_MAX_CORE_SUPPLIES]; + struct regulator *dcvdd; + bool internal_dcvdd; + + struct madera_pdata pdata; + + struct device *irq_dev; + int irq; + + unsigned int out_clamp[MADERA_MAX_OUTPUT]; + unsigned int out_shorted[MADERA_MAX_OUTPUT]; + unsigned int hp_ena; + + struct snd_soc_dapm_context *dapm; + + struct blocking_notifier_head notifier; +}; + +unsigned int madera_get_num_micbias(struct madera *madera); +unsigned int madera_get_num_childbias(struct madera *madera, + unsigned int micbias); + +const char *madera_name_from_type(enum madera_type type); + +static inline int madera_call_notifiers(struct madera *madera, + unsigned long event, + void *data) +{ + return blocking_notifier_call_chain(&madera->notifier, event, data); +} +#endif diff --git a/include/linux/mfd/madera/pdata.h b/include/linux/mfd/madera/pdata.h new file mode 100644 index 0000000..6d930aa --- /dev/null +++ b/include/linux/mfd/madera/pdata.h @@ -0,0 +1,88 @@ +/* + * Platform data for Cirrus Logic Madera codecs + * + * Copyright 2015-2017 Cirrus Logic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef MADERA_PDATA_H +#define MADERA_PDATA_H + +#include <linux/kernel.h> +#include <linux/regulator/machine.h> + +#include <linux/regulator/madera-ldo1.h> +#include <linux/regulator/madera-micsupp.h> +#include <linux/irqchip/irq-madera-pdata.h> +#include <sound/madera-pdata.h> + +#define MADERA_MAX_MICBIAS 4 +#define MADERA_MAX_CHILD_MICBIAS 4 + +#define MADERA_MAX_GPSW 2 + +struct pinctrl_map; + +/** MICBIAS pin configuration */ +struct madera_micbias_pin_pdata { + /** Regulator configuration for pin switch */ + struct regulator_init_data init_data; +}; + +/** Regulator configuration for an on-chip MICBIAS */ +struct madera_micbias_pdata { + /** Configuration of the MICBIAS generator */ + struct regulator_init_data init_data; + + bool ext_cap; /** External capacitor fitted */ + + /** + * Configuration for each output pin from this MICBIAS + * (Not used on CS47L85 and WM1840) + */ + struct madera_micbias_pin_pdata pin[MADERA_MAX_CHILD_MICBIAS]; +}; + +struct madera_pdata { + /** GPIO controlling /RESET, if any */ + int reset; + + /** Substruct of pdata for the LDO1 regulator */ + struct madera_ldo1_pdata ldo1; + + /** Substruct of pdata for the MICSUPP regulator */ + struct madera_micsupp_pdata micsupp; + + /** Substruct of pdata for the irqchip driver */ + struct madera_irqchip_pdata irqchip; + + /** Base GPIO */ + int gpio_base; + + /** + * Array of GPIO configurations + * See Documentation/pinctrl.txt + */ + const struct pinctrl_map *gpio_configs; + int n_gpio_configs; + + /** MICBIAS configurations */ + struct madera_micbias_pdata micbias[MADERA_MAX_MICBIAS]; + + /** + * Substructure of pdata for the ASoC codec driver + * See include/sound/madera-pdata.h + */ + struct madera_codec_pdata codec; + + /** + * General purpose switch mode setting + * See the SW1_MODE field in the datasheet for the available values + */ + u32 gpsw[MADERA_MAX_GPSW]; +}; + +#endif
On Wed, 05 Apr 2017, Richard Fitzgerald wrote:
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.wolfsonmicro.com Signed-off-by: Nikesh Oswal Nikesh.Oswal@wolfsonmicro.com Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com
Documentation/devicetree/bindings/mfd/madera.txt | 79 +++ MAINTAINERS | 3 + drivers/mfd/Kconfig | 23 + drivers/mfd/Makefile | 4 + drivers/mfd/madera-core.c | 689 +++++++++++++++++++++++ drivers/mfd/madera-i2c.c | 130 +++++ drivers/mfd/madera-spi.c | 131 +++++ drivers/mfd/madera.h | 52 ++ include/linux/mfd/madera/core.h | 175 ++++++ include/linux/mfd/madera/pdata.h | 88 +++ 10 files changed, 1374 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/madera.txt create mode 100644 drivers/mfd/madera-core.c create mode 100644 drivers/mfd/madera-i2c.c create mode 100644 drivers/mfd/madera-spi.c create mode 100644 drivers/mfd/madera.h create mode 100644 include/linux/mfd/madera/core.h create mode 100644 include/linux/mfd/madera/pdata.h
diff --git a/Documentation/devicetree/bindings/mfd/madera.txt b/Documentation/devicetree/bindings/mfd/madera.txt new file mode 100644 index 0000000..a6c3260 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/madera.txt @@ -0,0 +1,79 @@ +Cirrus Logic Madera class audio codecs multi-function device
+These devices are audio SoCs with extensive digital capabilities and a range +of analogue I/O.
+See also the child driver bindings in: +bindings/extcon/extcon-madera.txt +bindings/gpio/gpio-madera.txt +bindings/interrupt-controller/cirrus,madera.txt +bindings/pinctrl/cirrus,madera-pinctrl.txt +bindings/regulator/madera-ldo1.txt +bindings/regulator/madera-micsupp.txt +bindings/sound/madera.txt
+Required properties:
- compatible : One of the following chip-specific strings:
"cirrus,cs47l35"
"cirrus,cs47l85"
"cirrus,cs47l90"
"cirrus,cs47l91"
"cirrus,wm1840"
- reg : I2C slave address when connected using I2C, chip select number when
- using SPI.
- DCVDD-supply : Power supply for the device as defined in
- bindings/regulator/regulator.txt
- Mandatory on CS47L35, CS47L90, CS47L91
- Optional on CS47L85, WM1840
- AVDD-supply, DBVDD1-supply, DBVDD2-supply, CPVDD1-supply, CPVDD2-supply :
- Power supplies for the device
- DBVDD3-supply, DBVDD4-supply : Power supplies for the device
- (CS47L85, CS47L90, CS47L91, WM1840)
- SPKVDDL-supply, SPKVDDR-supply : Power supplies for the device
- (CS47L85, WM1840)
- SPKVDD-supply : Power supply for the device
- (CS47L35)
+Optional properties:
- MICVDD-supply : Power supply, only need to be specified if
- powered externally
- reset-gpios : One entry specifying the GPIO controlling /RESET.
- As defined in bindings/gpio.txt.
- Although optional, it is strongly recommended to use a hardware reset
- MICBIASx : Initial data for the MICBIAS regulators, as covered in
- Documentation/devicetree/bindings/regulator/regulator.txt.
- One for each MICBIAS generator (MICBIAS1, MICBIAS2, ...)
- (all codecs)
- One for each output pin (MICBIAS1A, MIBCIAS1B, MICBIAS2A, ...)
- (all except CS47L85, WM1840)
- The following following additional property is supported for the generator
- nodes:
- cirrus,ext-cap : Set to 1 if the MICBIAS has external decoupling
capacitors attached.
+Example:
+codec: cs47l85@0 {
Node names should be generic.
You can swap these round if you want, so:
cs47l85: codec@0 {
... is valid.
- compatible = "cirrus,cs47l85";
- reg = <0>;
- reset-gpios = <&gpio 0>;
- MICBIAS1 {
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <3300000>;
cirrus,ext-cap = <1>;
- };
+}; diff --git a/MAINTAINERS b/MAINTAINERS index 02995c9..d28e53f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3266,7 +3266,10 @@ L: patches@opensource.wolfsonmicro.com T: git https://github.com/CirrusLogic/linux-drivers.git W: https://github.com/CirrusLogic/linux-drivers/wiki S: Supported +F: Documentation/devicetree/bindings/mfd/madera.txt F: include/linux/mfd/madera/* +F: drivers/mfd/madera* +F: drivers/mfd/cs47l*
CLEANCACHE API M: Konrad Rzeszutek Wilk konrad.wilk@oracle.com diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index ce3a918..f0f9979 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -203,6 +203,29 @@ config MFD_CROS_EC_SPI response time cannot be guaranteed, we support ignoring 'pre-amble' bytes before the response actually starts.
+config MFD_MADERA
- bool
- select REGMAP
- select MFD_CORE
+config MFD_MADERA_I2C
- tristate "Cirrus Logic Madera codecs with I2C"
- select MFD_MADERA
- select REGMAP_I2C
- depends on I2C
- help
Support for the Cirrus Logic Madera platform audio SoC
core functionality controlled via I2C.
+config MFD_MADERA_SPI
- tristate "Cirrus Logic Madera codecs with SPI"
- select MFD_MADERA
- select REGMAP_SPI
- depends on SPI_MASTER
- help
Support for the Cirrus Logic Madera platform audio SoC
core functionality controlled via SPI.
config MFD_ASIC3 bool "Compaq ASIC3" depends on GPIOLIB && ARM diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index fa86dbe..c41f6c9 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile @@ -72,6 +72,10 @@ obj-$(CONFIG_MFD_WM8350_I2C) += wm8350-i2c.o wm8994-objs := wm8994-core.o wm8994-irq.o wm8994-regmap.o obj-$(CONFIG_MFD_WM8994) += wm8994.o
+obj-$(CONFIG_MFD_MADERA) += madera-core.o +obj-$(CONFIG_MFD_MADERA_I2C) += madera-i2c.o +obj-$(CONFIG_MFD_MADERA_SPI) += madera-spi.o
obj-$(CONFIG_TPS6105X) += tps6105x.o obj-$(CONFIG_TPS65010) += tps65010.o obj-$(CONFIG_TPS6507X) += tps6507x.o diff --git a/drivers/mfd/madera-core.c b/drivers/mfd/madera-core.c new file mode 100644 index 0000000..ab5fe9b --- /dev/null +++ b/drivers/mfd/madera-core.c @@ -0,0 +1,689 @@ +/*
- Core MFD support for Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#include <linux/device.h> +#include <linux/delay.h> +#include <linux/err.h> +#include <linux/gpio.h> +#include <linux/mfd/core.h> +#include <linux/module.h> +#include <linux/notifier.h> +#include <linux/of.h> +#include <linux/of_device.h> +#include <linux/of_gpio.h> +#include <linux/platform_device.h> +#include <linux/pm_runtime.h> +#include <linux/regmap.h> +#include <linux/regulator/consumer.h> +#include <linux/regulator/machine.h> +#include <linux/regulator/of_regulator.h>
+#include <linux/mfd/madera/core.h> +#include <linux/mfd/madera/registers.h>
+#include "madera.h"
+#define CS47L35_SILICON_ID 0x6360 +#define CS47L85_SILICON_ID 0x6338 +#define CS47L90_SILICON_ID 0x6364
+#define MADERA_32KZ_MCLK2 1
+static const char * const madera_core_supplies[] = {
- "AVDD",
- "DBVDD1",
+};
+static const struct mfd_cell madera_ldo1_devs[] = {
- { .name = "madera-ldo1", .of_compatible = "cirrus,madera-ldo1" },
+};
+static const struct mfd_cell cs47l35_devs[] = {
- { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" },
- { .name = "madera-irq", },
I believe this should be "interrupt-controller".
irq is ambiguous.
Same goes for the ones below.
- { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" },
- { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" },
- { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" },
- { .name = "cs47l35-codec", .of_compatible = "cirrus,cs47l35-codec" },
- { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" },
+};
+static const struct mfd_cell cs47l85_devs[] = {
- { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" },
- { .name = "madera-irq", },
- { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" },
- { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" },
- { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" },
- { .name = "cs47l85-codec", .of_compatible = "cirrus,cs47l85-codec" },
- { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" },
+};
+static const struct mfd_cell cs47l90_devs[] = {
- { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" },
- { .name = "madera-irq", },
- { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" },
- { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" },
- { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" },
- { .name = "cs47l90-codec", .of_compatible = "cirrus,cs47l90-codec" },
- { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" },
+};
+const char *madera_name_from_type(enum madera_type type) +{
- switch (type) {
- case CS47L35:
return "CS47L35";
- case CS47L85:
return "CS47L85";
- case CS47L90:
return "CS47L90";
- case CS47L91:
return "CS47L91";
- case WM1840:
return "WM1840";
- default:
return "Unknown";
- }
+} +EXPORT_SYMBOL_GPL(madera_name_from_type);
+#define MADERA_BOOT_POLL_MAX_INTERVAL_US 5000 +#define MADERA_BOOT_POLL_TIMEOUT_US 25000
+static int madera_wait_for_boot(struct madera *madera) +{
- unsigned int val;
- int ret;
- /*
* We can't use an interrupt as we need to runtime resume to do so,
* so we poll the status bit. This won't race with the interrupt
* handler because it will be blocked on runtime resume.
*/
- ret = regmap_read_poll_timeout(madera->regmap,
MADERA_IRQ1_RAW_STATUS_1,
val,
(val & MADERA_BOOT_DONE_STS1),
MADERA_BOOT_POLL_MAX_INTERVAL_US,
MADERA_BOOT_POLL_TIMEOUT_US);
- /*
* BOOT_DONE defaults to unmasked on boot so we must ack it.
* Do this unconditionally to avoid interrupt storms
*/
- regmap_write(madera->regmap, MADERA_IRQ1_STATUS_1,
MADERA_BOOT_DONE_EINT1);
- if (ret)
dev_err(madera->dev, "Polling BOOT_DONE_STS failed: %d\n", ret);
Why isn't this under the call to regmap_read_poll_timeout()?
- pm_runtime_mark_last_busy(madera->dev);
- return ret;
+}
+static int madera_soft_reset(struct madera *madera) +{
- int ret;
- ret = regmap_write(madera->regmap, MADERA_SOFTWARE_RESET, 0);
- if (ret != 0) {
dev_err(madera->dev, "Failed to soft reset device: %d\n", ret);
return ret;
- }
- usleep_range(1000, 2000);
Why have you chosen 1000 => 2000?
If you obtained specific information from the datasheet, please quote it in the comment here.
- return 0;
+}
+static void madera_enable_hard_reset(struct madera *madera) +{
- if (madera->reset_gpio)
gpiod_set_value_cansleep(madera->reset_gpio, 0);
+}
+static void madera_disable_hard_reset(struct madera *madera) +{
- if (madera->reset_gpio) {
gpiod_set_value_cansleep(madera->reset_gpio, 1);
usleep_range(1000, 2000);
- }
+}
+#ifdef CONFIG_PM +static int madera_runtime_resume(struct device *dev) +{
- struct madera *madera = dev_get_drvdata(dev);
- int ret;
- dev_dbg(madera->dev, "Leaving sleep mode\n");
Nit: Less code to just use 'dev', no?
- ret = regulator_enable(madera->dcvdd);
- if (ret) {
dev_err(madera->dev, "Failed to enable DCVDD: %d\n", ret);
return ret;
- }
- regcache_cache_only(madera->regmap, false);
- regcache_cache_only(madera->regmap_32bit, false);
- ret = madera_wait_for_boot(madera);
- if (ret)
goto err;
- ret = regcache_sync(madera->regmap);
- if (ret) {
dev_err(madera->dev,
"Failed to restore 16-bit register cache\n");
goto err;
- }
- ret = regcache_sync(madera->regmap_32bit);
- if (ret) {
dev_err(madera->dev,
"Failed to restore 32-bit register cache\n");
goto err;
- }
- return 0;
+err:
- regcache_cache_only(madera->regmap_32bit, true);
- regcache_cache_only(madera->regmap, true);
- regulator_disable(madera->dcvdd);
- return ret;
+}
+static int madera_runtime_suspend(struct device *dev) +{
- struct madera *madera = dev_get_drvdata(dev);
- dev_dbg(madera->dev, "Entering sleep mode\n");
- regcache_cache_only(madera->regmap, true);
- regcache_mark_dirty(madera->regmap);
- regcache_cache_only(madera->regmap_32bit, true);
- regcache_mark_dirty(madera->regmap_32bit);
- regulator_disable(madera->dcvdd);
- return 0;
+} +#endif
+const struct dev_pm_ops madera_pm_ops = {
- SET_RUNTIME_PM_OPS(madera_runtime_suspend,
madera_runtime_resume,
NULL)
+}; +EXPORT_SYMBOL_GPL(madera_pm_ops);
+unsigned int madera_get_num_micbias(struct madera *madera) +{
- switch (madera->type) {
- case CS47L35:
return 2;
- case CS47L85:
- case WM1840:
return 4;
- case CS47L90:
- case CS47L91:
return 2;
- default:
dev_warn(madera->dev, "No micbias known for codec %s\n",
madera_name_from_type(madera->type));
return 0;
- }
+} +EXPORT_SYMBOL_GPL(madera_get_num_micbias);
Looks very subsystem specific. Where is this called from?
+unsigned int madera_get_num_childbias(struct madera *madera,
unsigned int micbias)
+{
- /*
* micbias argument reserved for future codecs that don't
* have the same number of children on each micbias
*/
- switch (madera->type) {
- case CS47L35:
return 2;
- case CS47L85:
- case WM1840:
return 0;
- case CS47L90:
- case CS47L91:
return 4;
- default:
dev_warn(madera->dev, "No child micbias known for codec %s\n",
madera_name_from_type(madera->type));
return 0;
- }
+} +EXPORT_SYMBOL_GPL(madera_get_num_childbias);
As above.
+#ifdef CONFIG_OF +const struct of_device_id madera_of_match[] = {
- { .compatible = "cirrus,cs47l35", .data = (void *)CS47L35 },
- { .compatible = "cirrus,cs47l85", .data = (void *)CS47L85 },
- { .compatible = "cirrus,cs47l90", .data = (void *)CS47L90 },
- { .compatible = "cirrus,cs47l91", .data = (void *)CS47L91 },
- { .compatible = "cirrus,wm1840", .data = (void *)WM1840 },
- {},
+}; +EXPORT_SYMBOL_GPL(madera_of_match);
+unsigned long madera_of_get_type(struct device *dev) +{
- const struct of_device_id *id = of_match_device(madera_of_match, dev);
- if (id)
return (unsigned long)id->data;
- else
return 0;
+} +EXPORT_SYMBOL_GPL(madera_of_get_type); +#endif
+static int madera_prop_get_core_pdata(struct madera *madera)
Will this ever do more than obtain a GPIO?
If not, please consider renaming the function.
+{
- int ret;
- madera->reset_gpio = devm_gpiod_get_optional(madera->dev,
"reset",
GPIOD_OUT_LOW);
- if (IS_ERR(madera->reset_gpio)) {
ret = PTR_ERR(madera->reset_gpio);
if (ret == -EPROBE_DEFER)
return ret;
else if ((ret < 0) && (ret != -EINVAL))
dev_warn(madera->dev,
"DT property reset-gpio is malformed: %d\n",
ret);
- }
This hunk looks like it could be simplified.
- return 0;
+}
+static void madera_configure_micbias(struct madera *madera) +{
- unsigned int num_micbias = madera_get_num_micbias(madera);
- struct madera_micbias_pdata *pdata;
- struct regulator_init_data *init_data;
- unsigned int num_child_micbias;
- unsigned int val, mask, reg;
- int i, j, ret;
- for (i = 0; i < num_micbias; i++) {
pdata = &madera->pdata.micbias[i];
init_data = &pdata->init_data;
if (!init_data->constraints.max_uV &&
!init_data->constraints.valid_ops_mask)
continue; /* pdata not set */
/* Apply default for bypass mode */
if (!init_data->constraints.max_uV)
init_data->constraints.max_uV = 2800;
val = (init_data->constraints.max_uV - 1500000) / 100000;
val <<= MADERA_MICB1_LVL_SHIFT;
mask = MADERA_MICB1_LVL_MASK | MADERA_MICB1_EXT_CAP |
MADERA_MICB1_BYPASS | MADERA_MICB1_RATE;
if (pdata->ext_cap)
val |= MADERA_MICB1_EXT_CAP;
/* if no child biases the discharge is set in the parent */
num_child_micbias = madera_get_num_childbias(madera, i + 1);
if (num_child_micbias == 0) {
mask |= MADERA_MICB1_DISCH;
switch (init_data->constraints.active_discharge) {
case REGULATOR_ACTIVE_DISCHARGE_ENABLE:
val |= MADERA_MICB1_DISCH;
break;
default:
break;
}
}
if (init_data->constraints.soft_start)
val |= MADERA_MICB1_RATE;
if (init_data->constraints.valid_ops_mask &
REGULATOR_CHANGE_BYPASS)
val |= MADERA_MICB1_BYPASS;
reg = MADERA_MIC_BIAS_CTRL_1 + i;
ret = regmap_update_bits(madera->regmap, reg, mask, val);
if (ret)
dev_warn(madera->dev, "Failed to write 0x%x (%d)\n",
reg, ret);
dev_dbg(madera->dev, "Set MICBIAS_CTRL_%d mask=0x%x val=0x%x\n",
i + 1, mask, val);
/* Configure the child micbias pins */
val = 0;
mask = 0;
for (j = 0; j < num_child_micbias; j++) {
mask |= (MADERA_MICB1A_DISCH << (j * 4));
init_data = &pdata->pin[j].init_data;
switch (init_data->constraints.active_discharge) {
case REGULATOR_ACTIVE_DISCHARGE_ENABLE:
val |= (MADERA_MICB1A_DISCH << (j * 4));
break;
default:
break;
}
}
if (mask) {
reg = MADERA_MIC_BIAS_CTRL_5 + (i * 2);
ret = regmap_update_bits(madera->regmap, reg, mask, val);
if (ret)
dev_warn(madera->dev,
"Failed to write 0x%x (%d)\n",
reg, ret);
dev_dbg(madera->dev,
"Set MICBIAS_CTRL_%d mask=0x%x val=0x%x\n",
i + 5, mask, val);
}
- }
+}
This 'stuff' looks like it should be moved out to the sub-device drivers.
+int madera_dev_init(struct madera *madera) +{
- struct device *dev = madera->dev;
- const char *name;
- unsigned int hwid;
- int (*patch_fn)(struct madera *) = NULL;
- const struct mfd_cell *mfd_devs;
- int n_devs = 0;
- int i, ret;
- dev_set_drvdata(madera->dev, madera);
- BLOCKING_INIT_NOTIFIER_HEAD(&madera->notifier);
- if (dev_get_platdata(madera->dev)) {
memcpy(&madera->pdata, dev_get_platdata(madera->dev),
sizeof(madera->pdata));
/* We use 0 in pdata to indicate a GPIO has not been set */
if (madera->pdata.reset > 0) {
/* Start out with /RESET asserted */
ret = devm_gpio_request_one(madera->dev,
madera->pdata.reset,
GPIOF_DIR_OUT | GPIOF_INIT_LOW,
"madera reset");
if (ret) {
dev_err(dev, "Failed to request /RESET: %d\n",
ret);
return ret;
}
madera->reset_gpio = gpio_to_desc(madera->pdata.reset);
}
- } else {
ret = madera_prop_get_core_pdata(madera);
if (ret)
return ret;
- }
- if (!madera->reset_gpio)
dev_warn(madera->dev,
"Running without reset GPIO is not recommended\n");
I suggest moving all of the above into madera_prop_get_core_pdata() and renaming it to madera_get_gpio().
It also looks like it could be simplified to reduce indentation.
- regcache_cache_only(madera->regmap, true);
- regcache_cache_only(madera->regmap_32bit, true);
- for (i = 0; i < ARRAY_SIZE(madera_core_supplies); i++)
madera->core_supplies[i].supply = madera_core_supplies[i];
- madera->num_core_supplies = ARRAY_SIZE(madera_core_supplies);
- switch (madera->type) {
- case CS47L35:
- case CS47L90:
- case CS47L91:
Perhaps a comment here to say why these devices do not require LDO1 devices.
break;
- case CS47L85:
- case WM1840:
ret = mfd_add_devices(madera->dev, PLATFORM_DEVID_NONE,
madera_ldo1_devs,
ARRAY_SIZE(madera_ldo1_devs),
NULL, 0, NULL);
if (ret != 0) {
Please use these checks in order of preference:
if (ret) if (ret < 0) if (ret != 0)
... depending on the situation.
Here the former will do.
dev_err(dev, "Failed to add LDO1 child: %d\n", ret);
return ret;
}
break;
- default:
dev_err(madera->dev, "Unknown device type %d\n", madera->type);
return -ENODEV;
- }
- ret = devm_regulator_bulk_get(dev, madera->num_core_supplies,
madera->core_supplies);
- if (ret) {
dev_err(dev, "Failed to request core supplies: %d\n", ret);
goto err_devs;
- }
- /*
* Don't use devres here because the only device we have to get
* against is the MFD device and DCVDD will likely be supplied by
* one of its children. Meaning that the regulator will be
* destroyed by the time devres calls regulator put.
*/
- madera->dcvdd = regulator_get_exclusive(madera->dev, "DCVDD");
- if (IS_ERR(madera->dcvdd)) {
ret = PTR_ERR(madera->dcvdd);
dev_err(dev, "Failed to request DCVDD: %d\n", ret);
goto err_devs;
- }
- ret = regulator_bulk_enable(madera->num_core_supplies,
madera->core_supplies);
- if (ret) {
dev_err(dev, "Failed to enable core supplies: %d\n", ret);
goto err_dcvdd;
- }
- ret = regulator_enable(madera->dcvdd);
- if (ret) {
dev_err(dev, "Failed to enable DCVDD: %d\n", ret);
goto err_enable;
- }
- madera_disable_hard_reset(madera);
- regcache_cache_only(madera->regmap, false);
- regcache_cache_only(madera->regmap_32bit, false);
- /*
* Verify that this is a chip we know about before we
* starting doing any writes to its registers
*/
- ret = regmap_read(madera->regmap, MADERA_SOFTWARE_RESET, &hwid);
- if (ret) {
dev_err(dev, "Failed to read ID register: %d\n", ret);
goto err_reset;
- }
- switch (hwid) {
- case CS47L35_SILICON_ID:
- case CS47L85_SILICON_ID:
- case CS47L90_SILICON_ID:
break;
- default:
dev_err(madera->dev, "Unknown device ID: %x\n", hwid);
ret = -EINVAL;
goto err_reset;
- }
- /* If we don't have a reset GPIO use a soft reset */
- if (!madera->reset_gpio) {
ret = madera_soft_reset(madera);
if (ret)
goto err_reset;
- }
- ret = madera_wait_for_boot(madera);
- if (ret) {
dev_err(madera->dev, "Device failed initial boot: %d\n", ret);
goto err_reset;
- }
- ret = regmap_read(madera->regmap, MADERA_HARDWARE_REVISION,
&madera->rev);
- if (ret) {
dev_err(dev, "Failed to read revision register: %d\n", ret);
goto err_reset;
- }
- madera->rev &= MADERA_HW_REVISION_MASK;
- name = madera_name_from_type(madera->type);
- switch (hwid) {
- case CS47L35_SILICON_ID:
if (IS_ENABLED(CONFIG_MFD_CS47L35)) {
switch (madera->type) {
case CS47L35:
patch_fn = cs47l35_patch;
mfd_devs = cs47l35_devs;
n_devs = ARRAY_SIZE(cs47l35_devs);
break;
default:
break;
}
}
break;
- case CS47L85_SILICON_ID:
if (IS_ENABLED(CONFIG_MFD_CS47L85)) {
switch (madera->type) {
case CS47L85:
case WM1840:
patch_fn = cs47l85_patch;
mfd_devs = cs47l85_devs;
n_devs = ARRAY_SIZE(cs47l85_devs);
break;
default:
break;
}
}
break;
- case CS47L90_SILICON_ID:
if (IS_ENABLED(CONFIG_MFD_CS47L90)) {
switch (madera->type) {
case CS47L90:
case CS47L91:
patch_fn = cs47l90_patch;
mfd_devs = cs47l90_devs;
n_devs = ARRAY_SIZE(cs47l90_devs);
break;
default:
break;
}
}
break;
- default:
break;
- }
- if (!n_devs) {
dev_err(madera->dev, "Device ID 0x%x not a %s\n", hwid, name);
ret = -ENODEV;
goto err_reset;
- }
- dev_info(dev, "%s silicon revision %d\n", name, madera->rev);
- /* Apply hardware patch */
- if (patch_fn) {
ret = patch_fn(madera);
if (ret) {
dev_err(madera->dev, "Failed to apply patch %d\n", ret);
goto err_reset;
}
- }
- /* Init 32k clock sourced from MCLK2 */
- ret = regmap_update_bits(madera->regmap,
MADERA_CLOCK_32K_1,
MADERA_CLK_32K_ENA_MASK | MADERA_CLK_32K_SRC_MASK,
MADERA_CLK_32K_ENA | MADERA_32KZ_MCLK2);
- if (ret) {
dev_err(madera->dev, "Failed to init 32k clock: %d\n", ret);
goto err_reset;
- }
- madera_configure_micbias(madera);
- pm_runtime_set_active(madera->dev);
- pm_runtime_enable(madera->dev);
- pm_runtime_set_autosuspend_delay(madera->dev, 100);
- pm_runtime_use_autosuspend(madera->dev);
- ret = mfd_add_devices(madera->dev, PLATFORM_DEVID_NONE,
mfd_devs, n_devs,
NULL, 0, NULL);
- if (ret) {
dev_err(madera->dev, "Failed to add subdevices: %d\n", ret);
goto err_pm_runtime;
- }
- return 0;
+err_pm_runtime:
- pm_runtime_disable(madera->dev);
+err_reset:
- madera_enable_hard_reset(madera);
- regulator_disable(madera->dcvdd);
+err_enable:
- regulator_bulk_disable(madera->num_core_supplies,
madera->core_supplies);
+err_dcvdd:
- regulator_put(madera->dcvdd);
+err_devs:
- mfd_remove_devices(dev);
- return ret;
+} +EXPORT_SYMBOL_GPL(madera_dev_init);
+int madera_dev_exit(struct madera *madera) +{
- /* Prevent any IRQs being serviced while we clean up */
- disable_irq(madera->irq);
- /*
* DCVDD could be supplied by a child node, we must disable it before
* removing the children, and prevent PM runtime from turning it back on
*/
- pm_runtime_disable(madera->dev);
- regulator_disable(madera->dcvdd);
- regulator_put(madera->dcvdd);
- mfd_remove_devices(madera->dev);
- madera_enable_hard_reset(madera);
- regulator_bulk_disable(madera->num_core_supplies,
madera->core_supplies);
- return 0;
+} +EXPORT_SYMBOL_GPL(madera_dev_exit); diff --git a/drivers/mfd/madera-i2c.c b/drivers/mfd/madera-i2c.c new file mode 100644 index 0000000..8c90780 --- /dev/null +++ b/drivers/mfd/madera-i2c.c @@ -0,0 +1,130 @@ +/*
- I2C bus interface to Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#include <linux/device.h> +#include <linux/err.h> +#include <linux/i2c.h> +#include <linux/module.h> +#include <linux/regmap.h> +#include <linux/of.h>
+#include <linux/mfd/madera/core.h>
+#include "madera.h"
+static int madera_i2c_probe(struct i2c_client *i2c,
const struct i2c_device_id *id)
+{
- struct madera *madera;
- const struct regmap_config *regmap_16bit_config = NULL;
- const struct regmap_config *regmap_32bit_config = NULL;
- unsigned long type;
- int ret;
- if (i2c->dev.of_node)
type = madera_of_get_type(&i2c->dev);
Just call this madera_get_type() and do the OF || !OF checking in there.
- else
type = id->driver_data;
- switch (type) {
- case CS47L35:
if (IS_ENABLED(CONFIG_MFD_CS47L35)) {
regmap_16bit_config = &cs47l35_16bit_i2c_regmap;
regmap_32bit_config = &cs47l35_32bit_i2c_regmap;
}
break;
- case CS47L85:
- case WM1840:
if (IS_ENABLED(CONFIG_MFD_CS47L85)) {
regmap_16bit_config = &cs47l85_16bit_i2c_regmap;
regmap_32bit_config = &cs47l85_32bit_i2c_regmap;
}
break;
- case CS47L90:
- case CS47L91:
if (IS_ENABLED(CONFIG_MFD_CS47L90)) {
regmap_16bit_config = &cs47l90_16bit_i2c_regmap;
regmap_32bit_config = &cs47l90_32bit_i2c_regmap;
}
break;
- default:
dev_err(&i2c->dev,
"Unknown Madera I2C device type %ld\n", type);
return -EINVAL;
- }
- if (!regmap_16bit_config) {
dev_err(&i2c->dev,
"Kernel does not include support for %s\n",
madera_name_from_type(type));
return -EINVAL;
- }
- madera = devm_kzalloc(&i2c->dev, sizeof(*madera), GFP_KERNEL);
- if (!madera)
return -ENOMEM;
- madera->regmap = devm_regmap_init_i2c(i2c, regmap_16bit_config);
- if (IS_ERR(madera->regmap)) {
ret = PTR_ERR(madera->regmap);
dev_err(&i2c->dev,
"Failed to allocate 16-bit register map: %d\n", ret);
return ret;
- }
- madera->regmap_32bit = devm_regmap_init_i2c(i2c, regmap_32bit_config);
- if (IS_ERR(madera->regmap_32bit)) {
ret = PTR_ERR(madera->regmap_32bit);
dev_err(&i2c->dev,
"Failed to allocate 32-bit register map: %d\n", ret);
return ret;
- }
- madera->type = type;
- madera->dev = &i2c->dev;
- madera->irq = i2c->irq;
- return madera_dev_init(madera);
+}
+static int madera_i2c_remove(struct i2c_client *i2c) +{
- struct madera *madera = dev_get_drvdata(&i2c->dev);
- madera_dev_exit(madera);
Nit: \n here please.
- return 0;
+}
+static const struct i2c_device_id madera_i2c_id[] = {
- { "cs47l35", CS47L35 },
- { "cs47l85", CS47L85 },
- { "cs47l90", CS47L90 },
- { "cs47l91", CS47L91 },
- { "wm1840", WM1840 },
- { }
+}; +MODULE_DEVICE_TABLE(i2c, madera_i2c_id);
+static struct i2c_driver madera_i2c_driver = {
- .driver = {
.name = "madera",
.pm = &madera_pm_ops,
.of_match_table = of_match_ptr(madera_of_match),
- },
- .probe = madera_i2c_probe,
- .remove = madera_i2c_remove,
- .id_table = madera_i2c_id,
+};
+module_i2c_driver(madera_i2c_driver);
+MODULE_DESCRIPTION("Madera I2C bus interface"); +MODULE_AUTHOR("Richard Fitzgerald rf@opensource.wolfsonmicro.com"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/mfd/madera-spi.c b/drivers/mfd/madera-spi.c new file mode 100644 index 0000000..e7e13f0 --- /dev/null +++ b/drivers/mfd/madera-spi.c @@ -0,0 +1,131 @@ +/*
- SPI bus interface to Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#include <linux/device.h> +#include <linux/err.h> +#include <linux/module.h> +#include <linux/regmap.h> +#include <linux/of.h> +#include <linux/spi/spi.h>
+#include <linux/mfd/madera/core.h>
+#include "madera.h"
+static int madera_spi_probe(struct spi_device *spi) +{
- const struct spi_device_id *id = spi_get_device_id(spi);
- struct madera *madera;
- const struct regmap_config *regmap_16bit_config = NULL;
- const struct regmap_config *regmap_32bit_config = NULL;
- unsigned long type;
- int ret;
- if (spi->dev.of_node)
type = madera_of_get_type(&spi->dev);
- else
type = id->driver_data;
As above.
- switch (type) {
- case CS47L35:
if (IS_ENABLED(CONFIG_MFD_CS47L35)) {
regmap_16bit_config = &cs47l35_16bit_spi_regmap;
regmap_32bit_config = &cs47l35_32bit_spi_regmap;
}
break;
- case CS47L85:
- case WM1840:
if (IS_ENABLED(CONFIG_MFD_CS47L85)) {
regmap_16bit_config = &cs47l85_16bit_spi_regmap;
regmap_32bit_config = &cs47l85_32bit_spi_regmap;
}
break;
- case CS47L90:
- case CS47L91:
if (IS_ENABLED(CONFIG_MFD_CS47L90)) {
regmap_16bit_config = &cs47l90_16bit_spi_regmap;
regmap_32bit_config = &cs47l90_32bit_spi_regmap;
}
break;
- default:
dev_err(&spi->dev,
"Unknown Madera SPI device type %ld\n", type);
return -EINVAL;
- }
- if (!regmap_16bit_config) {
dev_err(&spi->dev,
"Kernel does not include support for %s\n",
madera_name_from_type(type));
return -EINVAL;
- }
- madera = devm_kzalloc(&spi->dev, sizeof(*madera), GFP_KERNEL);
- if (!madera)
return -ENOMEM;
- madera->regmap = devm_regmap_init_spi(spi, regmap_16bit_config);
- if (IS_ERR(madera->regmap)) {
ret = PTR_ERR(madera->regmap);
dev_err(&spi->dev,
"Failed to allocate 16-bit register map: %d\n", ret);
return ret;
- }
- madera->regmap_32bit = devm_regmap_init_spi(spi, regmap_32bit_config);
- if (IS_ERR(madera->regmap_32bit)) {
ret = PTR_ERR(madera->regmap_32bit);
dev_err(&spi->dev,
"Failed to allocate 32-bit register map: %d\n", ret);
return ret;
- }
- madera->type = type;
- madera->dev = &spi->dev;
- madera->irq = spi->irq;
- return madera_dev_init(madera);
+}
+static int madera_spi_remove(struct spi_device *spi) +{
- struct madera *madera = spi_get_drvdata(spi);
- madera_dev_exit(madera);
As above.
- return 0;
+}
+static const struct spi_device_id madera_spi_ids[] = {
- { "cs47l35", CS47L35 },
- { "cs47l85", CS47L85 },
- { "cs47l90", CS47L90 },
- { "cs47l91", CS47L91 },
- { "wm1840", WM1840 },
- { },
+}; +MODULE_DEVICE_TABLE(spi, madera_spi_ids);
+static struct spi_driver madera_spi_driver = {
- .driver = {
.name = "madera",
.owner = THIS_MODULE,
.pm = &madera_pm_ops,
.of_match_table = of_match_ptr(madera_of_match),
- },
- .probe = madera_spi_probe,
- .remove = madera_spi_remove,
- .id_table = madera_spi_ids,
+};
+module_spi_driver(madera_spi_driver);
+MODULE_DESCRIPTION("Madera SPI bus interface"); +MODULE_AUTHOR("Richard Fitzgerald rf@opensource.wolfsonmicro.com"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/mfd/madera.h b/drivers/mfd/madera.h new file mode 100644 index 0000000..57f6add --- /dev/null +++ b/drivers/mfd/madera.h @@ -0,0 +1,52 @@ +/*
- madera.h -- MFD internals for Cirrus Logic Madera codecs
Please remove the file name from this header.
- Copyright 2015-2016 Cirrus Logic
This needs updating.
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#ifndef MADERA_MFD_H +#define MADERA_MFD_H
+#include <linux/pm.h> +#include <linux/of.h>
Alphabetical.
+struct madera;
+extern const struct dev_pm_ops madera_pm_ops; +extern const struct of_device_id madera_of_match[];
+int madera_dev_init(struct madera *madera); +int madera_dev_exit(struct madera *madera);
+#ifdef CONFIG_OF +unsigned long madera_of_get_type(struct device *dev); +#else +static inline unsigned long madera_of_get_type(struct device *dev) +{
- return 0;
+} +#endif
If you move to a generic get_type approach you can remove these lines.
+extern const struct regmap_config cs47l35_16bit_spi_regmap; +extern const struct regmap_config cs47l35_32bit_spi_regmap; +extern const struct regmap_config cs47l35_16bit_i2c_regmap; +extern const struct regmap_config cs47l35_32bit_i2c_regmap; +int cs47l35_patch(struct madera *madera);
+extern const struct regmap_config cs47l85_16bit_spi_regmap; +extern const struct regmap_config cs47l85_32bit_spi_regmap; +extern const struct regmap_config cs47l85_16bit_i2c_regmap; +extern const struct regmap_config cs47l85_32bit_i2c_regmap; +int cs47l85_patch(struct madera *madera);
+extern const struct regmap_config cs47l90_16bit_spi_regmap; +extern const struct regmap_config cs47l90_32bit_spi_regmap; +extern const struct regmap_config cs47l90_16bit_i2c_regmap; +extern const struct regmap_config cs47l90_32bit_i2c_regmap; +int cs47l90_patch(struct madera *madera);
Where do these live?
+#endif diff --git a/include/linux/mfd/madera/core.h b/include/linux/mfd/madera/core.h new file mode 100644 index 0000000..59b05f8 --- /dev/null +++ b/include/linux/mfd/madera/core.h @@ -0,0 +1,175 @@ +/*
- MFD internals for Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#ifndef MADERA_CORE_H +#define MADERA_CORE_H
+#include <linux/interrupt.h> +#include <linux/regmap.h> +#include <linux/notifier.h> +#include <linux/gpio/consumer.h> +#include <linux/regulator/consumer.h> +#include <linux/mfd/madera/pdata.h> +#include <linux/irqchip/irq-madera.h> +#include <sound/madera-pdata.h>
Alphabetical.
+enum madera_type {
- CS47L35 = 1,
- CS47L85 = 2,
- CS47L90 = 3,
- CS47L91 = 4,
- WM1840 = 7,
+};
+#define MADERA_MAX_CORE_SUPPLIES 2 +#define MADERA_MAX_GPIOS 40
+#define CS47L35_NUM_GPIOS 16 +#define CS47L85_NUM_GPIOS 40 +#define CS47L90_NUM_GPIOS 38
+/* Notifier events */ +#define MADERA_NOTIFY_VOICE_TRIGGER 0x1 +#define MADERA_NOTIFY_HPDET 0x2 +#define MADERA_NOTIFY_MICDET 0x4
+/* GPIO Function Definitions */ +#define MADERA_GP_FN_ALTERNATE 0x00 +#define MADERA_GP_FN_GPIO 0x01 +#define MADERA_GP_FN_DSP_GPIO 0x02 +#define MADERA_GP_FN_IRQ1 0x03 +#define MADERA_GP_FN_IRQ2 0x04 +#define MADERA_GP_FN_FLL1_CLOCK 0x10 +#define MADERA_GP_FN_FLL2_CLOCK 0x11 +#define MADERA_GP_FN_FLL3_CLOCK 0x12 +#define MADERA_GP_FN_FLLAO_CLOCK 0x13 +#define MADERA_GP_FN_FLL1_LOCK 0x18 +#define MADERA_GP_FN_FLL2_LOCK 0x19 +#define MADERA_GP_FN_FLL3_LOCK 0x1A +#define MADERA_GP_FN_FLLAO_LOCK 0x1B +#define MADERA_GP_FN_OPCLK_OUT 0x40 +#define MADERA_GP_FN_OPCLK_ASYNC_OUT 0x41 +#define MADERA_GP_FN_PWM1 0x48 +#define MADERA_GP_FN_PWM2 0x49 +#define MADERA_GP_FN_SPDIF_OUT 0x4C +#define MADERA_GP_FN_HEADPHONE_DET 0x50 +#define MADERA_GP_FN_MIC_DET 0x58 +#define MADERA_GP_FN_DRC1_SIGNAL_DETECT 0x80 +#define MADERA_GP_FN_DRC2_SIGNAL_DETECT 0x81 +#define MADERA_GP_FN_ASRC1_IN1_LOCK 0x88 +#define MADERA_GP_FN_ASRC1_IN2_LOCK 0x89 +#define MADERA_GP_FN_ASRC2_IN1_LOCK 0x8A +#define MADERA_GP_FN_ASRC2_IN2_LOCK 0x8B +#define MADERA_GP_FN_DSP_IRQ1 0xA0 +#define MADERA_GP_FN_DSP_IRQ2 0xA1 +#define MADERA_GP_FN_DSP_IRQ3 0xA2 +#define MADERA_GP_FN_DSP_IRQ4 0xA3 +#define MADERA_GP_FN_DSP_IRQ5 0xA4 +#define MADERA_GP_FN_DSP_IRQ6 0xA5 +#define MADERA_GP_FN_DSP_IRQ7 0xA6 +#define MADERA_GP_FN_DSP_IRQ8 0xA7 +#define MADERA_GP_FN_DSP_IRQ9 0xA8 +#define MADERA_GP_FN_DSP_IRQ10 0xA9 +#define MADERA_GP_FN_DSP_IRQ11 0xAA +#define MADERA_GP_FN_DSP_IRQ12 0xAB +#define MADERA_GP_FN_DSP_IRQ13 0xAC +#define MADERA_GP_FN_DSP_IRQ14 0xAD +#define MADERA_GP_FN_DSP_IRQ15 0xAE +#define MADERA_GP_FN_DSP_IRQ16 0xAF +#define MADERA_GP_FN_HPOUT1L_SC 0xB0 +#define MADERA_GP_FN_HPOUT1R_SC 0xB1 +#define MADERA_GP_FN_HPOUT2L_SC 0xB2 +#define MADERA_GP_FN_HPOUT2R_SC 0xB3 +#define MADERA_GP_FN_HPOUT3L_SC 0xB4 +#define MADERA_GP_FN_HPOUT4R_SC 0xB5 +#define MADERA_GP_FN_SPKOUTL_SC 0xB6 +#define MADERA_GP_FN_SPKOUTR_SC 0xB7 +#define MADERA_GP_FN_HPOUT1L_ENA 0xC0 +#define MADERA_GP_FN_HPOUT1R_ENA 0xC1 +#define MADERA_GP_FN_HPOUT2L_ENA 0xC2 +#define MADERA_GP_FN_HPOUT2R_ENA 0xC3 +#define MADERA_GP_FN_HPOUT3L_ENA 0xC4 +#define MADERA_GP_FN_HPOUT4R_ENA 0xC5 +#define MADERA_GP_FN_SPKOUTL_ENA 0xC6 +#define MADERA_GP_FN_SPKOUTR_ENA 0xC7 +#define MADERA_GP_FN_HPOUT1L_DIS 0xD0 +#define MADERA_GP_FN_HPOUT1R_DIS 0xD1 +#define MADERA_GP_FN_HPOUT2L_DIS 0xD2 +#define MADERA_GP_FN_HPOUT2R_DIS 0xD3 +#define MADERA_GP_FN_HPOUT3L_DIS 0xD4 +#define MADERA_GP_FN_HPOUT4R_DIS 0xD5 +#define MADERA_GP_FN_SPKOUTL_DIS 0xD6 +#define MADERA_GP_FN_SPKOUTR_DIS 0xD7 +#define MADERA_GP_FN_SPK_SHUTDOWN 0xE0 +#define MADERA_GP_FN_SPK_OVH_SHUTDOWN 0xE1 +#define MADERA_GP_FN_SPK_OVH_WARN 0xE2 +#define MADERA_GP_FN_TIMER1_STATUS 0x140 +#define MADERA_GP_FN_TIMER2_STATUS 0x141 +#define MADERA_GP_FN_TIMER3_STATUS 0x142 +#define MADERA_GP_FN_TIMER4_STATUS 0x143 +#define MADERA_GP_FN_TIMER5_STATUS 0x144 +#define MADERA_GP_FN_TIMER6_STATUS 0x145 +#define MADERA_GP_FN_TIMER7_STATUS 0x146 +#define MADERA_GP_FN_TIMER8_STATUS 0x147 +#define MADERA_GP_FN_EVENTLOG1_FIFO_STS 0x150 +#define MADERA_GP_FN_EVENTLOG2_FIFO_STS 0x151 +#define MADERA_GP_FN_EVENTLOG3_FIFO_STS 0x152 +#define MADERA_GP_FN_EVENTLOG4_FIFO_STS 0x153 +#define MADERA_GP_FN_EVENTLOG5_FIFO_STS 0x154 +#define MADERA_GP_FN_EVENTLOG6_FIFO_STS 0x155 +#define MADERA_GP_FN_EVENTLOG7_FIFO_STS 0x156 +#define MADERA_GP_FN_EVENTLOG8_FIFO_STS 0x157
+struct snd_soc_dapm_context;
+struct madera {
- struct regmap *regmap;
- struct regmap *regmap_32bit;
- struct device *dev;
- enum madera_type type;
- unsigned int rev;
- struct gpio_desc *reset_gpio;
- int num_core_supplies;
- struct regulator_bulk_data core_supplies[MADERA_MAX_CORE_SUPPLIES];
- struct regulator *dcvdd;
- bool internal_dcvdd;
- struct madera_pdata pdata;
- struct device *irq_dev;
- int irq;
- unsigned int out_clamp[MADERA_MAX_OUTPUT];
- unsigned int out_shorted[MADERA_MAX_OUTPUT];
- unsigned int hp_ena;
- struct snd_soc_dapm_context *dapm;
- struct blocking_notifier_head notifier;
+};
Please supply a kerneldoc header for this struct.
+unsigned int madera_get_num_micbias(struct madera *madera); +unsigned int madera_get_num_childbias(struct madera *madera,
unsigned int micbias);
+const char *madera_name_from_type(enum madera_type type);
+static inline int madera_call_notifiers(struct madera *madera,
unsigned long event,
void *data)
+{
- return blocking_notifier_call_chain(&madera->notifier, event, data);
+} +#endif diff --git a/include/linux/mfd/madera/pdata.h b/include/linux/mfd/madera/pdata.h new file mode 100644 index 0000000..6d930aa --- /dev/null +++ b/include/linux/mfd/madera/pdata.h @@ -0,0 +1,88 @@ +/*
- Platform data for Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#ifndef MADERA_PDATA_H +#define MADERA_PDATA_H
+#include <linux/kernel.h> +#include <linux/regulator/machine.h>
Why the '\n'?
+#include <linux/regulator/madera-ldo1.h> +#include <linux/regulator/madera-micsupp.h> +#include <linux/irqchip/irq-madera-pdata.h> +#include <sound/madera-pdata.h>
Alphabetical
+#define MADERA_MAX_MICBIAS 4 +#define MADERA_MAX_CHILD_MICBIAS 4
+#define MADERA_MAX_GPSW 2
+struct pinctrl_map;
+/** MICBIAS pin configuration */
Kerneldoc comment with no kerneldoc ??
Same as below.
+struct madera_micbias_pin_pdata {
- /** Regulator configuration for pin switch */
Just use Kerneldoc instead.
Same for all of these structs.
- struct regulator_init_data init_data;
+};
+/** Regulator configuration for an on-chip MICBIAS */ +struct madera_micbias_pdata {
- /** Configuration of the MICBIAS generator */
- struct regulator_init_data init_data;
- bool ext_cap; /** External capacitor fitted */
- /**
* Configuration for each output pin from this MICBIAS
* (Not used on CS47L85 and WM1840)
*/
- struct madera_micbias_pin_pdata pin[MADERA_MAX_CHILD_MICBIAS];
+};
+struct madera_pdata {
- /** GPIO controlling /RESET, if any */
- int reset;
- /** Substruct of pdata for the LDO1 regulator */
- struct madera_ldo1_pdata ldo1;
- /** Substruct of pdata for the MICSUPP regulator */
- struct madera_micsupp_pdata micsupp;
- /** Substruct of pdata for the irqchip driver */
- struct madera_irqchip_pdata irqchip;
- /** Base GPIO */
- int gpio_base;
- /**
* Array of GPIO configurations
* See Documentation/pinctrl.txt
*/
- const struct pinctrl_map *gpio_configs;
- int n_gpio_configs;
- /** MICBIAS configurations */
- struct madera_micbias_pdata micbias[MADERA_MAX_MICBIAS];
- /**
* Substructure of pdata for the ASoC codec driver
* See include/sound/madera-pdata.h
*/
- struct madera_codec_pdata codec;
- /**
* General purpose switch mode setting
* See the SW1_MODE field in the datasheet for the available values
*/
- u32 gpsw[MADERA_MAX_GPSW];
+};
+#endif
On Wed, 2017-04-12 at 13:54 +0100, Lee Jones wrote:
On Wed, 05 Apr 2017, Richard Fitzgerald wrote:
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.wolfsonmicro.com Signed-off-by: Nikesh Oswal Nikesh.Oswal@wolfsonmicro.com Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com
Documentation/devicetree/bindings/mfd/madera.txt | 79 +++ MAINTAINERS | 3 + drivers/mfd/Kconfig | 23 + drivers/mfd/Makefile | 4 + drivers/mfd/madera-core.c | 689 +++++++++++++++++++++++ drivers/mfd/madera-i2c.c | 130 +++++ drivers/mfd/madera-spi.c | 131 +++++ drivers/mfd/madera.h | 52 ++ include/linux/mfd/madera/core.h | 175 ++++++ include/linux/mfd/madera/pdata.h | 88 +++ 10 files changed, 1374 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/madera.txt create mode 100644 drivers/mfd/madera-core.c create mode 100644 drivers/mfd/madera-i2c.c create mode 100644 drivers/mfd/madera-spi.c create mode 100644 drivers/mfd/madera.h create mode 100644 include/linux/mfd/madera/core.h create mode 100644 include/linux/mfd/madera/pdata.h
diff --git a/Documentation/devicetree/bindings/mfd/madera.txt b/Documentation/devicetree/bindings/mfd/madera.txt new file mode 100644 index 0000000..a6c3260 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/madera.txt @@ -0,0 +1,79 @@ +Cirrus Logic Madera class audio codecs multi-function device
+These devices are audio SoCs with extensive digital capabilities and a range +of analogue I/O.
+See also the child driver bindings in: +bindings/extcon/extcon-madera.txt +bindings/gpio/gpio-madera.txt +bindings/interrupt-controller/cirrus,madera.txt +bindings/pinctrl/cirrus,madera-pinctrl.txt +bindings/regulator/madera-ldo1.txt +bindings/regulator/madera-micsupp.txt +bindings/sound/madera.txt
+Required properties:
- compatible : One of the following chip-specific strings:
"cirrus,cs47l35"
"cirrus,cs47l85"
"cirrus,cs47l90"
"cirrus,cs47l91"
"cirrus,wm1840"
- reg : I2C slave address when connected using I2C, chip select number when
- using SPI.
- DCVDD-supply : Power supply for the device as defined in
- bindings/regulator/regulator.txt
- Mandatory on CS47L35, CS47L90, CS47L91
- Optional on CS47L85, WM1840
- AVDD-supply, DBVDD1-supply, DBVDD2-supply, CPVDD1-supply, CPVDD2-supply :
- Power supplies for the device
- DBVDD3-supply, DBVDD4-supply : Power supplies for the device
- (CS47L85, CS47L90, CS47L91, WM1840)
- SPKVDDL-supply, SPKVDDR-supply : Power supplies for the device
- (CS47L85, WM1840)
- SPKVDD-supply : Power supply for the device
- (CS47L35)
+Optional properties:
- MICVDD-supply : Power supply, only need to be specified if
- powered externally
- reset-gpios : One entry specifying the GPIO controlling /RESET.
- As defined in bindings/gpio.txt.
- Although optional, it is strongly recommended to use a hardware reset
- MICBIASx : Initial data for the MICBIAS regulators, as covered in
- Documentation/devicetree/bindings/regulator/regulator.txt.
- One for each MICBIAS generator (MICBIAS1, MICBIAS2, ...)
- (all codecs)
- One for each output pin (MICBIAS1A, MIBCIAS1B, MICBIAS2A, ...)
- (all except CS47L85, WM1840)
- The following following additional property is supported for the generator
- nodes:
- cirrus,ext-cap : Set to 1 if the MICBIAS has external decoupling
capacitors attached.
+Example:
+codec: cs47l85@0 {
Node names should be generic.
You can swap these round if you want, so:
cs47l85: codec@0 {
... is valid.
- compatible = "cirrus,cs47l85";
- reg = <0>;
- reset-gpios = <&gpio 0>;
- MICBIAS1 {
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <3300000>;
cirrus,ext-cap = <1>;
- };
+}; diff --git a/MAINTAINERS b/MAINTAINERS index 02995c9..d28e53f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3266,7 +3266,10 @@ L: patches@opensource.wolfsonmicro.com T: git https://github.com/CirrusLogic/linux-drivers.git W: https://github.com/CirrusLogic/linux-drivers/wiki S: Supported +F: Documentation/devicetree/bindings/mfd/madera.txt F: include/linux/mfd/madera/* +F: drivers/mfd/madera* +F: drivers/mfd/cs47l*
CLEANCACHE API M: Konrad Rzeszutek Wilk konrad.wilk@oracle.com diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index ce3a918..f0f9979 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -203,6 +203,29 @@ config MFD_CROS_EC_SPI response time cannot be guaranteed, we support ignoring 'pre-amble' bytes before the response actually starts.
+config MFD_MADERA
- bool
- select REGMAP
- select MFD_CORE
+config MFD_MADERA_I2C
- tristate "Cirrus Logic Madera codecs with I2C"
- select MFD_MADERA
- select REGMAP_I2C
- depends on I2C
- help
Support for the Cirrus Logic Madera platform audio SoC
core functionality controlled via I2C.
+config MFD_MADERA_SPI
- tristate "Cirrus Logic Madera codecs with SPI"
- select MFD_MADERA
- select REGMAP_SPI
- depends on SPI_MASTER
- help
Support for the Cirrus Logic Madera platform audio SoC
core functionality controlled via SPI.
config MFD_ASIC3 bool "Compaq ASIC3" depends on GPIOLIB && ARM diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index fa86dbe..c41f6c9 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile @@ -72,6 +72,10 @@ obj-$(CONFIG_MFD_WM8350_I2C) += wm8350-i2c.o wm8994-objs := wm8994-core.o wm8994-irq.o wm8994-regmap.o obj-$(CONFIG_MFD_WM8994) += wm8994.o
+obj-$(CONFIG_MFD_MADERA) += madera-core.o +obj-$(CONFIG_MFD_MADERA_I2C) += madera-i2c.o +obj-$(CONFIG_MFD_MADERA_SPI) += madera-spi.o
obj-$(CONFIG_TPS6105X) += tps6105x.o obj-$(CONFIG_TPS65010) += tps65010.o obj-$(CONFIG_TPS6507X) += tps6507x.o diff --git a/drivers/mfd/madera-core.c b/drivers/mfd/madera-core.c new file mode 100644 index 0000000..ab5fe9b --- /dev/null +++ b/drivers/mfd/madera-core.c @@ -0,0 +1,689 @@ +/*
- Core MFD support for Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#include <linux/device.h> +#include <linux/delay.h> +#include <linux/err.h> +#include <linux/gpio.h> +#include <linux/mfd/core.h> +#include <linux/module.h> +#include <linux/notifier.h> +#include <linux/of.h> +#include <linux/of_device.h> +#include <linux/of_gpio.h> +#include <linux/platform_device.h> +#include <linux/pm_runtime.h> +#include <linux/regmap.h> +#include <linux/regulator/consumer.h> +#include <linux/regulator/machine.h> +#include <linux/regulator/of_regulator.h>
+#include <linux/mfd/madera/core.h> +#include <linux/mfd/madera/registers.h>
+#include "madera.h"
+#define CS47L35_SILICON_ID 0x6360 +#define CS47L85_SILICON_ID 0x6338 +#define CS47L90_SILICON_ID 0x6364
+#define MADERA_32KZ_MCLK2 1
+static const char * const madera_core_supplies[] = {
- "AVDD",
- "DBVDD1",
+};
+static const struct mfd_cell madera_ldo1_devs[] = {
- { .name = "madera-ldo1", .of_compatible = "cirrus,madera-ldo1" },
+};
+static const struct mfd_cell cs47l35_devs[] = {
- { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" },
- { .name = "madera-irq", },
I believe this should be "interrupt-controller".
I don't think that's the case. I checked other irchip drivers and they have no particular standard naming. At least one is called "something-irq", none are called "something-interrupt-controller"
irq is ambiguous.
I can't really see what other driver this could be confused with, especially as it's specified as madera-* so the alternative drivers are limited. Given the limited set of drivers I think it's clear enough it's the driver for the IRQ and a longer name doesn't add information.
Same goes for the ones below.
Ditto. madera-micsupp will be replaced by the existing arizona-micsupp. Most gpio drivers are called "something-gpio". Extcon is the name of a driver subsystem so should be sufficiently clear. Likewise madera-codec.
- { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" },
- { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" },
- { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" },
- { .name = "cs47l35-codec", .of_compatible = "cirrus,cs47l35-codec" },
- { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" },
+};
+static const struct mfd_cell cs47l85_devs[] = {
- { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" },
- { .name = "madera-irq", },
- { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" },
- { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" },
- { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" },
- { .name = "cs47l85-codec", .of_compatible = "cirrus,cs47l85-codec" },
- { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" },
+};
+static const struct mfd_cell cs47l90_devs[] = {
- { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" },
- { .name = "madera-irq", },
- { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" },
- { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" },
- { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" },
- { .name = "cs47l90-codec", .of_compatible = "cirrus,cs47l90-codec" },
- { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" },
+};
+const char *madera_name_from_type(enum madera_type type) +{
- switch (type) {
- case CS47L35:
return "CS47L35";
- case CS47L85:
return "CS47L85";
- case CS47L90:
return "CS47L90";
- case CS47L91:
return "CS47L91";
- case WM1840:
return "WM1840";
- default:
return "Unknown";
- }
+} +EXPORT_SYMBOL_GPL(madera_name_from_type);
+#define MADERA_BOOT_POLL_MAX_INTERVAL_US 5000 +#define MADERA_BOOT_POLL_TIMEOUT_US 25000
+static int madera_wait_for_boot(struct madera *madera) +{
- unsigned int val;
- int ret;
- /*
* We can't use an interrupt as we need to runtime resume to do so,
* so we poll the status bit. This won't race with the interrupt
* handler because it will be blocked on runtime resume.
*/
- ret = regmap_read_poll_timeout(madera->regmap,
MADERA_IRQ1_RAW_STATUS_1,
val,
(val & MADERA_BOOT_DONE_STS1),
MADERA_BOOT_POLL_MAX_INTERVAL_US,
MADERA_BOOT_POLL_TIMEOUT_US);
- /*
* BOOT_DONE defaults to unmasked on boot so we must ack it.
* Do this unconditionally to avoid interrupt storms
*/
- regmap_write(madera->regmap, MADERA_IRQ1_STATUS_1,
MADERA_BOOT_DONE_EINT1);
- if (ret)
dev_err(madera->dev, "Polling BOOT_DONE_STS failed: %d\n", ret);
Why isn't this under the call to regmap_read_poll_timeout()?
It was intended to make it clear that we must ack the BOOT_DONE now no matter what and to avoid the potential with them the other way around of someone adding more code in the if (or just a ret) and so accidentally failing to do the ack. I could swap them but I think I prefer keeping them this way and changing the comment to say this.
- pm_runtime_mark_last_busy(madera->dev);
- return ret;
+}
+static int madera_soft_reset(struct madera *madera) +{
- int ret;
- ret = regmap_write(madera->regmap, MADERA_SOFTWARE_RESET, 0);
- if (ret != 0) {
dev_err(madera->dev, "Failed to soft reset device: %d\n", ret);
return ret;
- }
- usleep_range(1000, 2000);
Why have you chosen 1000 => 2000?
If you obtained specific information from the datasheet, please quote it in the comment here.
- return 0;
+}
+static void madera_enable_hard_reset(struct madera *madera) +{
- if (madera->reset_gpio)
gpiod_set_value_cansleep(madera->reset_gpio, 0);
+}
+static void madera_disable_hard_reset(struct madera *madera) +{
- if (madera->reset_gpio) {
gpiod_set_value_cansleep(madera->reset_gpio, 1);
usleep_range(1000, 2000);
- }
+}
+#ifdef CONFIG_PM +static int madera_runtime_resume(struct device *dev) +{
- struct madera *madera = dev_get_drvdata(dev);
- int ret;
- dev_dbg(madera->dev, "Leaving sleep mode\n");
Nit: Less code to just use 'dev', no?
- ret = regulator_enable(madera->dcvdd);
- if (ret) {
dev_err(madera->dev, "Failed to enable DCVDD: %d\n", ret);
return ret;
- }
- regcache_cache_only(madera->regmap, false);
- regcache_cache_only(madera->regmap_32bit, false);
- ret = madera_wait_for_boot(madera);
- if (ret)
goto err;
- ret = regcache_sync(madera->regmap);
- if (ret) {
dev_err(madera->dev,
"Failed to restore 16-bit register cache\n");
goto err;
- }
- ret = regcache_sync(madera->regmap_32bit);
- if (ret) {
dev_err(madera->dev,
"Failed to restore 32-bit register cache\n");
goto err;
- }
- return 0;
+err:
- regcache_cache_only(madera->regmap_32bit, true);
- regcache_cache_only(madera->regmap, true);
- regulator_disable(madera->dcvdd);
- return ret;
+}
+static int madera_runtime_suspend(struct device *dev) +{
- struct madera *madera = dev_get_drvdata(dev);
- dev_dbg(madera->dev, "Entering sleep mode\n");
- regcache_cache_only(madera->regmap, true);
- regcache_mark_dirty(madera->regmap);
- regcache_cache_only(madera->regmap_32bit, true);
- regcache_mark_dirty(madera->regmap_32bit);
- regulator_disable(madera->dcvdd);
- return 0;
+} +#endif
+const struct dev_pm_ops madera_pm_ops = {
- SET_RUNTIME_PM_OPS(madera_runtime_suspend,
madera_runtime_resume,
NULL)
+}; +EXPORT_SYMBOL_GPL(madera_pm_ops);
+unsigned int madera_get_num_micbias(struct madera *madera) +{
- switch (madera->type) {
- case CS47L35:
return 2;
- case CS47L85:
- case WM1840:
return 4;
- case CS47L90:
- case CS47L91:
return 2;
- default:
dev_warn(madera->dev, "No micbias known for codec %s\n",
madera_name_from_type(madera->type));
return 0;
- }
+} +EXPORT_SYMBOL_GPL(madera_get_num_micbias);
Looks very subsystem specific. Where is this called from?
Child drivers will use this. It's a global property of the chip, not specific to one particular subsystem, so I don't see a better place than the parent MFD.
+unsigned int madera_get_num_childbias(struct madera *madera,
unsigned int micbias)
+{
- /*
* micbias argument reserved for future codecs that don't
* have the same number of children on each micbias
*/
- switch (madera->type) {
- case CS47L35:
return 2;
- case CS47L85:
- case WM1840:
return 0;
- case CS47L90:
- case CS47L91:
return 4;
- default:
dev_warn(madera->dev, "No child micbias known for codec %s\n",
madera_name_from_type(madera->type));
return 0;
- }
+} +EXPORT_SYMBOL_GPL(madera_get_num_childbias);
As above.
Reason as above
+#ifdef CONFIG_OF +const struct of_device_id madera_of_match[] = {
- { .compatible = "cirrus,cs47l35", .data = (void *)CS47L35 },
- { .compatible = "cirrus,cs47l85", .data = (void *)CS47L85 },
- { .compatible = "cirrus,cs47l90", .data = (void *)CS47L90 },
- { .compatible = "cirrus,cs47l91", .data = (void *)CS47L91 },
- { .compatible = "cirrus,wm1840", .data = (void *)WM1840 },
- {},
+}; +EXPORT_SYMBOL_GPL(madera_of_match);
+unsigned long madera_of_get_type(struct device *dev) +{
- const struct of_device_id *id = of_match_device(madera_of_match, dev);
- if (id)
return (unsigned long)id->data;
- else
return 0;
+} +EXPORT_SYMBOL_GPL(madera_of_get_type); +#endif
+static int madera_prop_get_core_pdata(struct madera *madera)
Will this ever do more than obtain a GPIO?
If not, please consider renaming the function.
+{
- int ret;
- madera->reset_gpio = devm_gpiod_get_optional(madera->dev,
"reset",
GPIOD_OUT_LOW);
- if (IS_ERR(madera->reset_gpio)) {
ret = PTR_ERR(madera->reset_gpio);
if (ret == -EPROBE_DEFER)
return ret;
else if ((ret < 0) && (ret != -EINVAL))
dev_warn(madera->dev,
"DT property reset-gpio is malformed: %d\n",
ret);
- }
This hunk looks like it could be simplified.
- return 0;
+}
+static void madera_configure_micbias(struct madera *madera) +{
- unsigned int num_micbias = madera_get_num_micbias(madera);
- struct madera_micbias_pdata *pdata;
- struct regulator_init_data *init_data;
- unsigned int num_child_micbias;
- unsigned int val, mask, reg;
- int i, j, ret;
- for (i = 0; i < num_micbias; i++) {
pdata = &madera->pdata.micbias[i];
init_data = &pdata->init_data;
if (!init_data->constraints.max_uV &&
!init_data->constraints.valid_ops_mask)
continue; /* pdata not set */
/* Apply default for bypass mode */
if (!init_data->constraints.max_uV)
init_data->constraints.max_uV = 2800;
val = (init_data->constraints.max_uV - 1500000) / 100000;
val <<= MADERA_MICB1_LVL_SHIFT;
mask = MADERA_MICB1_LVL_MASK | MADERA_MICB1_EXT_CAP |
MADERA_MICB1_BYPASS | MADERA_MICB1_RATE;
if (pdata->ext_cap)
val |= MADERA_MICB1_EXT_CAP;
/* if no child biases the discharge is set in the parent */
num_child_micbias = madera_get_num_childbias(madera, i + 1);
if (num_child_micbias == 0) {
mask |= MADERA_MICB1_DISCH;
switch (init_data->constraints.active_discharge) {
case REGULATOR_ACTIVE_DISCHARGE_ENABLE:
val |= MADERA_MICB1_DISCH;
break;
default:
break;
}
}
if (init_data->constraints.soft_start)
val |= MADERA_MICB1_RATE;
if (init_data->constraints.valid_ops_mask &
REGULATOR_CHANGE_BYPASS)
val |= MADERA_MICB1_BYPASS;
reg = MADERA_MIC_BIAS_CTRL_1 + i;
ret = regmap_update_bits(madera->regmap, reg, mask, val);
if (ret)
dev_warn(madera->dev, "Failed to write 0x%x (%d)\n",
reg, ret);
dev_dbg(madera->dev, "Set MICBIAS_CTRL_%d mask=0x%x val=0x%x\n",
i + 1, mask, val);
/* Configure the child micbias pins */
val = 0;
mask = 0;
for (j = 0; j < num_child_micbias; j++) {
mask |= (MADERA_MICB1A_DISCH << (j * 4));
init_data = &pdata->pin[j].init_data;
switch (init_data->constraints.active_discharge) {
case REGULATOR_ACTIVE_DISCHARGE_ENABLE:
val |= (MADERA_MICB1A_DISCH << (j * 4));
break;
default:
break;
}
}
if (mask) {
reg = MADERA_MIC_BIAS_CTRL_5 + (i * 2);
ret = regmap_update_bits(madera->regmap, reg, mask, val);
if (ret)
dev_warn(madera->dev,
"Failed to write 0x%x (%d)\n",
reg, ret);
dev_dbg(madera->dev,
"Set MICBIAS_CTRL_%d mask=0x%x val=0x%x\n",
i + 5, mask, val);
}
- }
+}
This 'stuff' looks like it should be moved out to the sub-device drivers.
+int madera_dev_init(struct madera *madera) +{
- struct device *dev = madera->dev;
- const char *name;
- unsigned int hwid;
- int (*patch_fn)(struct madera *) = NULL;
- const struct mfd_cell *mfd_devs;
- int n_devs = 0;
- int i, ret;
- dev_set_drvdata(madera->dev, madera);
- BLOCKING_INIT_NOTIFIER_HEAD(&madera->notifier);
- if (dev_get_platdata(madera->dev)) {
memcpy(&madera->pdata, dev_get_platdata(madera->dev),
sizeof(madera->pdata));
/* We use 0 in pdata to indicate a GPIO has not been set */
if (madera->pdata.reset > 0) {
/* Start out with /RESET asserted */
ret = devm_gpio_request_one(madera->dev,
madera->pdata.reset,
GPIOF_DIR_OUT | GPIOF_INIT_LOW,
"madera reset");
if (ret) {
dev_err(dev, "Failed to request /RESET: %d\n",
ret);
return ret;
}
madera->reset_gpio = gpio_to_desc(madera->pdata.reset);
}
- } else {
ret = madera_prop_get_core_pdata(madera);
if (ret)
return ret;
- }
- if (!madera->reset_gpio)
dev_warn(madera->dev,
"Running without reset GPIO is not recommended\n");
I suggest moving all of the above into madera_prop_get_core_pdata() and renaming it to madera_get_gpio().
It also looks like it could be simplified to reduce indentation.
- regcache_cache_only(madera->regmap, true);
- regcache_cache_only(madera->regmap_32bit, true);
- for (i = 0; i < ARRAY_SIZE(madera_core_supplies); i++)
madera->core_supplies[i].supply = madera_core_supplies[i];
- madera->num_core_supplies = ARRAY_SIZE(madera_core_supplies);
- switch (madera->type) {
- case CS47L35:
- case CS47L90:
- case CS47L91:
Perhaps a comment here to say why these devices do not require LDO1 devices.
break;
- case CS47L85:
- case WM1840:
ret = mfd_add_devices(madera->dev, PLATFORM_DEVID_NONE,
madera_ldo1_devs,
ARRAY_SIZE(madera_ldo1_devs),
NULL, 0, NULL);
if (ret != 0) {
Please use these checks in order of preference:
if (ret) if (ret < 0) if (ret != 0)
... depending on the situation.
Here the former will do.
dev_err(dev, "Failed to add LDO1 child: %d\n", ret);
return ret;
}
break;
- default:
dev_err(madera->dev, "Unknown device type %d\n", madera->type);
return -ENODEV;
- }
- ret = devm_regulator_bulk_get(dev, madera->num_core_supplies,
madera->core_supplies);
- if (ret) {
dev_err(dev, "Failed to request core supplies: %d\n", ret);
goto err_devs;
- }
- /*
* Don't use devres here because the only device we have to get
* against is the MFD device and DCVDD will likely be supplied by
* one of its children. Meaning that the regulator will be
* destroyed by the time devres calls regulator put.
*/
- madera->dcvdd = regulator_get_exclusive(madera->dev, "DCVDD");
- if (IS_ERR(madera->dcvdd)) {
ret = PTR_ERR(madera->dcvdd);
dev_err(dev, "Failed to request DCVDD: %d\n", ret);
goto err_devs;
- }
- ret = regulator_bulk_enable(madera->num_core_supplies,
madera->core_supplies);
- if (ret) {
dev_err(dev, "Failed to enable core supplies: %d\n", ret);
goto err_dcvdd;
- }
- ret = regulator_enable(madera->dcvdd);
- if (ret) {
dev_err(dev, "Failed to enable DCVDD: %d\n", ret);
goto err_enable;
- }
- madera_disable_hard_reset(madera);
- regcache_cache_only(madera->regmap, false);
- regcache_cache_only(madera->regmap_32bit, false);
- /*
* Verify that this is a chip we know about before we
* starting doing any writes to its registers
*/
- ret = regmap_read(madera->regmap, MADERA_SOFTWARE_RESET, &hwid);
- if (ret) {
dev_err(dev, "Failed to read ID register: %d\n", ret);
goto err_reset;
- }
- switch (hwid) {
- case CS47L35_SILICON_ID:
- case CS47L85_SILICON_ID:
- case CS47L90_SILICON_ID:
break;
- default:
dev_err(madera->dev, "Unknown device ID: %x\n", hwid);
ret = -EINVAL;
goto err_reset;
- }
- /* If we don't have a reset GPIO use a soft reset */
- if (!madera->reset_gpio) {
ret = madera_soft_reset(madera);
if (ret)
goto err_reset;
- }
- ret = madera_wait_for_boot(madera);
- if (ret) {
dev_err(madera->dev, "Device failed initial boot: %d\n", ret);
goto err_reset;
- }
- ret = regmap_read(madera->regmap, MADERA_HARDWARE_REVISION,
&madera->rev);
- if (ret) {
dev_err(dev, "Failed to read revision register: %d\n", ret);
goto err_reset;
- }
- madera->rev &= MADERA_HW_REVISION_MASK;
- name = madera_name_from_type(madera->type);
- switch (hwid) {
- case CS47L35_SILICON_ID:
if (IS_ENABLED(CONFIG_MFD_CS47L35)) {
switch (madera->type) {
case CS47L35:
patch_fn = cs47l35_patch;
mfd_devs = cs47l35_devs;
n_devs = ARRAY_SIZE(cs47l35_devs);
break;
default:
break;
}
}
break;
- case CS47L85_SILICON_ID:
if (IS_ENABLED(CONFIG_MFD_CS47L85)) {
switch (madera->type) {
case CS47L85:
case WM1840:
patch_fn = cs47l85_patch;
mfd_devs = cs47l85_devs;
n_devs = ARRAY_SIZE(cs47l85_devs);
break;
default:
break;
}
}
break;
- case CS47L90_SILICON_ID:
if (IS_ENABLED(CONFIG_MFD_CS47L90)) {
switch (madera->type) {
case CS47L90:
case CS47L91:
patch_fn = cs47l90_patch;
mfd_devs = cs47l90_devs;
n_devs = ARRAY_SIZE(cs47l90_devs);
break;
default:
break;
}
}
break;
- default:
break;
- }
- if (!n_devs) {
dev_err(madera->dev, "Device ID 0x%x not a %s\n", hwid, name);
ret = -ENODEV;
goto err_reset;
- }
- dev_info(dev, "%s silicon revision %d\n", name, madera->rev);
- /* Apply hardware patch */
- if (patch_fn) {
ret = patch_fn(madera);
if (ret) {
dev_err(madera->dev, "Failed to apply patch %d\n", ret);
goto err_reset;
}
- }
- /* Init 32k clock sourced from MCLK2 */
- ret = regmap_update_bits(madera->regmap,
MADERA_CLOCK_32K_1,
MADERA_CLK_32K_ENA_MASK | MADERA_CLK_32K_SRC_MASK,
MADERA_CLK_32K_ENA | MADERA_32KZ_MCLK2);
- if (ret) {
dev_err(madera->dev, "Failed to init 32k clock: %d\n", ret);
goto err_reset;
- }
- madera_configure_micbias(madera);
- pm_runtime_set_active(madera->dev);
- pm_runtime_enable(madera->dev);
- pm_runtime_set_autosuspend_delay(madera->dev, 100);
- pm_runtime_use_autosuspend(madera->dev);
- ret = mfd_add_devices(madera->dev, PLATFORM_DEVID_NONE,
mfd_devs, n_devs,
NULL, 0, NULL);
- if (ret) {
dev_err(madera->dev, "Failed to add subdevices: %d\n", ret);
goto err_pm_runtime;
- }
- return 0;
+err_pm_runtime:
- pm_runtime_disable(madera->dev);
+err_reset:
- madera_enable_hard_reset(madera);
- regulator_disable(madera->dcvdd);
+err_enable:
- regulator_bulk_disable(madera->num_core_supplies,
madera->core_supplies);
+err_dcvdd:
- regulator_put(madera->dcvdd);
+err_devs:
- mfd_remove_devices(dev);
- return ret;
+} +EXPORT_SYMBOL_GPL(madera_dev_init);
+int madera_dev_exit(struct madera *madera) +{
- /* Prevent any IRQs being serviced while we clean up */
- disable_irq(madera->irq);
- /*
* DCVDD could be supplied by a child node, we must disable it before
* removing the children, and prevent PM runtime from turning it back on
*/
- pm_runtime_disable(madera->dev);
- regulator_disable(madera->dcvdd);
- regulator_put(madera->dcvdd);
- mfd_remove_devices(madera->dev);
- madera_enable_hard_reset(madera);
- regulator_bulk_disable(madera->num_core_supplies,
madera->core_supplies);
- return 0;
+} +EXPORT_SYMBOL_GPL(madera_dev_exit); diff --git a/drivers/mfd/madera-i2c.c b/drivers/mfd/madera-i2c.c new file mode 100644 index 0000000..8c90780 --- /dev/null +++ b/drivers/mfd/madera-i2c.c @@ -0,0 +1,130 @@ +/*
- I2C bus interface to Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#include <linux/device.h> +#include <linux/err.h> +#include <linux/i2c.h> +#include <linux/module.h> +#include <linux/regmap.h> +#include <linux/of.h>
+#include <linux/mfd/madera/core.h>
+#include "madera.h"
+static int madera_i2c_probe(struct i2c_client *i2c,
const struct i2c_device_id *id)
+{
- struct madera *madera;
- const struct regmap_config *regmap_16bit_config = NULL;
- const struct regmap_config *regmap_32bit_config = NULL;
- unsigned long type;
- int ret;
- if (i2c->dev.of_node)
type = madera_of_get_type(&i2c->dev);
Just call this madera_get_type()
That would be ambiguous about what type information we are getting. As the codecs have an ID it's possible we may in the future want to use auto-detection to override or refine the "compatible" info, the madera->type is the ID we're going to run with so we need to make it clear that this is the OF type info.
and do the OF || !OF checking in there.
I tried rearranging the code like that but it just made it more complex and less clear. I like the original way. Bear in mind that that the alternative ID (if there's no DT) is in different structs depending whether it's I2C or SPI so that can't be fetched by a generic function and passing it in as an arg just obscures what's going on at this point in the code. I think I like this original version for clarity of what's happening, though I've renamed the function to madera_get_type_from_of.
- else
type = id->driver_data;
- switch (type) {
- case CS47L35:
if (IS_ENABLED(CONFIG_MFD_CS47L35)) {
regmap_16bit_config = &cs47l35_16bit_i2c_regmap;
regmap_32bit_config = &cs47l35_32bit_i2c_regmap;
}
break;
- case CS47L85:
- case WM1840:
if (IS_ENABLED(CONFIG_MFD_CS47L85)) {
regmap_16bit_config = &cs47l85_16bit_i2c_regmap;
regmap_32bit_config = &cs47l85_32bit_i2c_regmap;
}
break;
- case CS47L90:
- case CS47L91:
if (IS_ENABLED(CONFIG_MFD_CS47L90)) {
regmap_16bit_config = &cs47l90_16bit_i2c_regmap;
regmap_32bit_config = &cs47l90_32bit_i2c_regmap;
}
break;
- default:
dev_err(&i2c->dev,
"Unknown Madera I2C device type %ld\n", type);
return -EINVAL;
- }
- if (!regmap_16bit_config) {
dev_err(&i2c->dev,
"Kernel does not include support for %s\n",
madera_name_from_type(type));
return -EINVAL;
- }
- madera = devm_kzalloc(&i2c->dev, sizeof(*madera), GFP_KERNEL);
- if (!madera)
return -ENOMEM;
- madera->regmap = devm_regmap_init_i2c(i2c, regmap_16bit_config);
- if (IS_ERR(madera->regmap)) {
ret = PTR_ERR(madera->regmap);
dev_err(&i2c->dev,
"Failed to allocate 16-bit register map: %d\n", ret);
return ret;
- }
- madera->regmap_32bit = devm_regmap_init_i2c(i2c, regmap_32bit_config);
- if (IS_ERR(madera->regmap_32bit)) {
ret = PTR_ERR(madera->regmap_32bit);
dev_err(&i2c->dev,
"Failed to allocate 32-bit register map: %d\n", ret);
return ret;
- }
- madera->type = type;
- madera->dev = &i2c->dev;
- madera->irq = i2c->irq;
- return madera_dev_init(madera);
+}
+static int madera_i2c_remove(struct i2c_client *i2c) +{
- struct madera *madera = dev_get_drvdata(&i2c->dev);
- madera_dev_exit(madera);
Nit: \n here please.
- return 0;
+}
+static const struct i2c_device_id madera_i2c_id[] = {
- { "cs47l35", CS47L35 },
- { "cs47l85", CS47L85 },
- { "cs47l90", CS47L90 },
- { "cs47l91", CS47L91 },
- { "wm1840", WM1840 },
- { }
+}; +MODULE_DEVICE_TABLE(i2c, madera_i2c_id);
+static struct i2c_driver madera_i2c_driver = {
- .driver = {
.name = "madera",
.pm = &madera_pm_ops,
.of_match_table = of_match_ptr(madera_of_match),
- },
- .probe = madera_i2c_probe,
- .remove = madera_i2c_remove,
- .id_table = madera_i2c_id,
+};
+module_i2c_driver(madera_i2c_driver);
+MODULE_DESCRIPTION("Madera I2C bus interface"); +MODULE_AUTHOR("Richard Fitzgerald rf@opensource.wolfsonmicro.com"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/mfd/madera-spi.c b/drivers/mfd/madera-spi.c new file mode 100644 index 0000000..e7e13f0 --- /dev/null +++ b/drivers/mfd/madera-spi.c @@ -0,0 +1,131 @@ +/*
- SPI bus interface to Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#include <linux/device.h> +#include <linux/err.h> +#include <linux/module.h> +#include <linux/regmap.h> +#include <linux/of.h> +#include <linux/spi/spi.h>
+#include <linux/mfd/madera/core.h>
+#include "madera.h"
+static int madera_spi_probe(struct spi_device *spi) +{
- const struct spi_device_id *id = spi_get_device_id(spi);
- struct madera *madera;
- const struct regmap_config *regmap_16bit_config = NULL;
- const struct regmap_config *regmap_32bit_config = NULL;
- unsigned long type;
- int ret;
- if (spi->dev.of_node)
type = madera_of_get_type(&spi->dev);
- else
type = id->driver_data;
As above.
- switch (type) {
- case CS47L35:
if (IS_ENABLED(CONFIG_MFD_CS47L35)) {
regmap_16bit_config = &cs47l35_16bit_spi_regmap;
regmap_32bit_config = &cs47l35_32bit_spi_regmap;
}
break;
- case CS47L85:
- case WM1840:
if (IS_ENABLED(CONFIG_MFD_CS47L85)) {
regmap_16bit_config = &cs47l85_16bit_spi_regmap;
regmap_32bit_config = &cs47l85_32bit_spi_regmap;
}
break;
- case CS47L90:
- case CS47L91:
if (IS_ENABLED(CONFIG_MFD_CS47L90)) {
regmap_16bit_config = &cs47l90_16bit_spi_regmap;
regmap_32bit_config = &cs47l90_32bit_spi_regmap;
}
break;
- default:
dev_err(&spi->dev,
"Unknown Madera SPI device type %ld\n", type);
return -EINVAL;
- }
- if (!regmap_16bit_config) {
dev_err(&spi->dev,
"Kernel does not include support for %s\n",
madera_name_from_type(type));
return -EINVAL;
- }
- madera = devm_kzalloc(&spi->dev, sizeof(*madera), GFP_KERNEL);
- if (!madera)
return -ENOMEM;
- madera->regmap = devm_regmap_init_spi(spi, regmap_16bit_config);
- if (IS_ERR(madera->regmap)) {
ret = PTR_ERR(madera->regmap);
dev_err(&spi->dev,
"Failed to allocate 16-bit register map: %d\n", ret);
return ret;
- }
- madera->regmap_32bit = devm_regmap_init_spi(spi, regmap_32bit_config);
- if (IS_ERR(madera->regmap_32bit)) {
ret = PTR_ERR(madera->regmap_32bit);
dev_err(&spi->dev,
"Failed to allocate 32-bit register map: %d\n", ret);
return ret;
- }
- madera->type = type;
- madera->dev = &spi->dev;
- madera->irq = spi->irq;
- return madera_dev_init(madera);
+}
+static int madera_spi_remove(struct spi_device *spi) +{
- struct madera *madera = spi_get_drvdata(spi);
- madera_dev_exit(madera);
As above.
- return 0;
+}
+static const struct spi_device_id madera_spi_ids[] = {
- { "cs47l35", CS47L35 },
- { "cs47l85", CS47L85 },
- { "cs47l90", CS47L90 },
- { "cs47l91", CS47L91 },
- { "wm1840", WM1840 },
- { },
+}; +MODULE_DEVICE_TABLE(spi, madera_spi_ids);
+static struct spi_driver madera_spi_driver = {
- .driver = {
.name = "madera",
.owner = THIS_MODULE,
.pm = &madera_pm_ops,
.of_match_table = of_match_ptr(madera_of_match),
- },
- .probe = madera_spi_probe,
- .remove = madera_spi_remove,
- .id_table = madera_spi_ids,
+};
+module_spi_driver(madera_spi_driver);
+MODULE_DESCRIPTION("Madera SPI bus interface"); +MODULE_AUTHOR("Richard Fitzgerald rf@opensource.wolfsonmicro.com"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/mfd/madera.h b/drivers/mfd/madera.h new file mode 100644 index 0000000..57f6add --- /dev/null +++ b/drivers/mfd/madera.h @@ -0,0 +1,52 @@ +/*
- madera.h -- MFD internals for Cirrus Logic Madera codecs
Please remove the file name from this header.
- Copyright 2015-2016 Cirrus Logic
This needs updating.
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#ifndef MADERA_MFD_H +#define MADERA_MFD_H
+#include <linux/pm.h> +#include <linux/of.h>
Alphabetical.
+struct madera;
+extern const struct dev_pm_ops madera_pm_ops; +extern const struct of_device_id madera_of_match[];
+int madera_dev_init(struct madera *madera); +int madera_dev_exit(struct madera *madera);
+#ifdef CONFIG_OF +unsigned long madera_of_get_type(struct device *dev); +#else +static inline unsigned long madera_of_get_type(struct device *dev) +{
- return 0;
+} +#endif
If you move to a generic get_type approach you can remove these lines.
+extern const struct regmap_config cs47l35_16bit_spi_regmap; +extern const struct regmap_config cs47l35_32bit_spi_regmap; +extern const struct regmap_config cs47l35_16bit_i2c_regmap; +extern const struct regmap_config cs47l35_32bit_i2c_regmap; +int cs47l35_patch(struct madera *madera);
+extern const struct regmap_config cs47l85_16bit_spi_regmap; +extern const struct regmap_config cs47l85_32bit_spi_regmap; +extern const struct regmap_config cs47l85_16bit_i2c_regmap; +extern const struct regmap_config cs47l85_32bit_i2c_regmap; +int cs47l85_patch(struct madera *madera);
+extern const struct regmap_config cs47l90_16bit_spi_regmap; +extern const struct regmap_config cs47l90_32bit_spi_regmap; +extern const struct regmap_config cs47l90_16bit_i2c_regmap; +extern const struct regmap_config cs47l90_32bit_i2c_regmap; +int cs47l90_patch(struct madera *madera);
Where do these live?
In the other files added by the following 3 patches.
+#endif diff --git a/include/linux/mfd/madera/core.h b/include/linux/mfd/madera/core.h new file mode 100644 index 0000000..59b05f8 --- /dev/null +++ b/include/linux/mfd/madera/core.h @@ -0,0 +1,175 @@ +/*
- MFD internals for Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#ifndef MADERA_CORE_H +#define MADERA_CORE_H
+#include <linux/interrupt.h> +#include <linux/regmap.h> +#include <linux/notifier.h> +#include <linux/gpio/consumer.h> +#include <linux/regulator/consumer.h> +#include <linux/mfd/madera/pdata.h> +#include <linux/irqchip/irq-madera.h> +#include <sound/madera-pdata.h>
Alphabetical.
+enum madera_type {
- CS47L35 = 1,
- CS47L85 = 2,
- CS47L90 = 3,
- CS47L91 = 4,
- WM1840 = 7,
+};
+#define MADERA_MAX_CORE_SUPPLIES 2 +#define MADERA_MAX_GPIOS 40
+#define CS47L35_NUM_GPIOS 16 +#define CS47L85_NUM_GPIOS 40 +#define CS47L90_NUM_GPIOS 38
+/* Notifier events */ +#define MADERA_NOTIFY_VOICE_TRIGGER 0x1 +#define MADERA_NOTIFY_HPDET 0x2 +#define MADERA_NOTIFY_MICDET 0x4
+/* GPIO Function Definitions */ +#define MADERA_GP_FN_ALTERNATE 0x00 +#define MADERA_GP_FN_GPIO 0x01 +#define MADERA_GP_FN_DSP_GPIO 0x02 +#define MADERA_GP_FN_IRQ1 0x03 +#define MADERA_GP_FN_IRQ2 0x04 +#define MADERA_GP_FN_FLL1_CLOCK 0x10 +#define MADERA_GP_FN_FLL2_CLOCK 0x11 +#define MADERA_GP_FN_FLL3_CLOCK 0x12 +#define MADERA_GP_FN_FLLAO_CLOCK 0x13 +#define MADERA_GP_FN_FLL1_LOCK 0x18 +#define MADERA_GP_FN_FLL2_LOCK 0x19 +#define MADERA_GP_FN_FLL3_LOCK 0x1A +#define MADERA_GP_FN_FLLAO_LOCK 0x1B +#define MADERA_GP_FN_OPCLK_OUT 0x40 +#define MADERA_GP_FN_OPCLK_ASYNC_OUT 0x41 +#define MADERA_GP_FN_PWM1 0x48 +#define MADERA_GP_FN_PWM2 0x49 +#define MADERA_GP_FN_SPDIF_OUT 0x4C +#define MADERA_GP_FN_HEADPHONE_DET 0x50 +#define MADERA_GP_FN_MIC_DET 0x58 +#define MADERA_GP_FN_DRC1_SIGNAL_DETECT 0x80 +#define MADERA_GP_FN_DRC2_SIGNAL_DETECT 0x81 +#define MADERA_GP_FN_ASRC1_IN1_LOCK 0x88 +#define MADERA_GP_FN_ASRC1_IN2_LOCK 0x89 +#define MADERA_GP_FN_ASRC2_IN1_LOCK 0x8A +#define MADERA_GP_FN_ASRC2_IN2_LOCK 0x8B +#define MADERA_GP_FN_DSP_IRQ1 0xA0 +#define MADERA_GP_FN_DSP_IRQ2 0xA1 +#define MADERA_GP_FN_DSP_IRQ3 0xA2 +#define MADERA_GP_FN_DSP_IRQ4 0xA3 +#define MADERA_GP_FN_DSP_IRQ5 0xA4 +#define MADERA_GP_FN_DSP_IRQ6 0xA5 +#define MADERA_GP_FN_DSP_IRQ7 0xA6 +#define MADERA_GP_FN_DSP_IRQ8 0xA7 +#define MADERA_GP_FN_DSP_IRQ9 0xA8 +#define MADERA_GP_FN_DSP_IRQ10 0xA9 +#define MADERA_GP_FN_DSP_IRQ11 0xAA +#define MADERA_GP_FN_DSP_IRQ12 0xAB +#define MADERA_GP_FN_DSP_IRQ13 0xAC +#define MADERA_GP_FN_DSP_IRQ14 0xAD +#define MADERA_GP_FN_DSP_IRQ15 0xAE +#define MADERA_GP_FN_DSP_IRQ16 0xAF +#define MADERA_GP_FN_HPOUT1L_SC 0xB0 +#define MADERA_GP_FN_HPOUT1R_SC 0xB1 +#define MADERA_GP_FN_HPOUT2L_SC 0xB2 +#define MADERA_GP_FN_HPOUT2R_SC 0xB3 +#define MADERA_GP_FN_HPOUT3L_SC 0xB4 +#define MADERA_GP_FN_HPOUT4R_SC 0xB5 +#define MADERA_GP_FN_SPKOUTL_SC 0xB6 +#define MADERA_GP_FN_SPKOUTR_SC 0xB7 +#define MADERA_GP_FN_HPOUT1L_ENA 0xC0 +#define MADERA_GP_FN_HPOUT1R_ENA 0xC1 +#define MADERA_GP_FN_HPOUT2L_ENA 0xC2 +#define MADERA_GP_FN_HPOUT2R_ENA 0xC3 +#define MADERA_GP_FN_HPOUT3L_ENA 0xC4 +#define MADERA_GP_FN_HPOUT4R_ENA 0xC5 +#define MADERA_GP_FN_SPKOUTL_ENA 0xC6 +#define MADERA_GP_FN_SPKOUTR_ENA 0xC7 +#define MADERA_GP_FN_HPOUT1L_DIS 0xD0 +#define MADERA_GP_FN_HPOUT1R_DIS 0xD1 +#define MADERA_GP_FN_HPOUT2L_DIS 0xD2 +#define MADERA_GP_FN_HPOUT2R_DIS 0xD3 +#define MADERA_GP_FN_HPOUT3L_DIS 0xD4 +#define MADERA_GP_FN_HPOUT4R_DIS 0xD5 +#define MADERA_GP_FN_SPKOUTL_DIS 0xD6 +#define MADERA_GP_FN_SPKOUTR_DIS 0xD7 +#define MADERA_GP_FN_SPK_SHUTDOWN 0xE0 +#define MADERA_GP_FN_SPK_OVH_SHUTDOWN 0xE1 +#define MADERA_GP_FN_SPK_OVH_WARN 0xE2 +#define MADERA_GP_FN_TIMER1_STATUS 0x140 +#define MADERA_GP_FN_TIMER2_STATUS 0x141 +#define MADERA_GP_FN_TIMER3_STATUS 0x142 +#define MADERA_GP_FN_TIMER4_STATUS 0x143 +#define MADERA_GP_FN_TIMER5_STATUS 0x144 +#define MADERA_GP_FN_TIMER6_STATUS 0x145 +#define MADERA_GP_FN_TIMER7_STATUS 0x146 +#define MADERA_GP_FN_TIMER8_STATUS 0x147 +#define MADERA_GP_FN_EVENTLOG1_FIFO_STS 0x150 +#define MADERA_GP_FN_EVENTLOG2_FIFO_STS 0x151 +#define MADERA_GP_FN_EVENTLOG3_FIFO_STS 0x152 +#define MADERA_GP_FN_EVENTLOG4_FIFO_STS 0x153 +#define MADERA_GP_FN_EVENTLOG5_FIFO_STS 0x154 +#define MADERA_GP_FN_EVENTLOG6_FIFO_STS 0x155 +#define MADERA_GP_FN_EVENTLOG7_FIFO_STS 0x156 +#define MADERA_GP_FN_EVENTLOG8_FIFO_STS 0x157
+struct snd_soc_dapm_context;
+struct madera {
- struct regmap *regmap;
- struct regmap *regmap_32bit;
- struct device *dev;
- enum madera_type type;
- unsigned int rev;
- struct gpio_desc *reset_gpio;
- int num_core_supplies;
- struct regulator_bulk_data core_supplies[MADERA_MAX_CORE_SUPPLIES];
- struct regulator *dcvdd;
- bool internal_dcvdd;
- struct madera_pdata pdata;
- struct device *irq_dev;
- int irq;
- unsigned int out_clamp[MADERA_MAX_OUTPUT];
- unsigned int out_shorted[MADERA_MAX_OUTPUT];
- unsigned int hp_ena;
- struct snd_soc_dapm_context *dapm;
- struct blocking_notifier_head notifier;
+};
Please supply a kerneldoc header for this struct.
It's internal to the madera drivers, only for use by the child drivers so I don't think a kerneldoc makes sense but I can add a comment to state that it's internal
+unsigned int madera_get_num_micbias(struct madera *madera); +unsigned int madera_get_num_childbias(struct madera *madera,
unsigned int micbias);
+const char *madera_name_from_type(enum madera_type type);
+static inline int madera_call_notifiers(struct madera *madera,
unsigned long event,
void *data)
+{
- return blocking_notifier_call_chain(&madera->notifier, event, data);
+} +#endif diff --git a/include/linux/mfd/madera/pdata.h b/include/linux/mfd/madera/pdata.h new file mode 100644 index 0000000..6d930aa --- /dev/null +++ b/include/linux/mfd/madera/pdata.h @@ -0,0 +1,88 @@ +/*
- Platform data for Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#ifndef MADERA_PDATA_H +#define MADERA_PDATA_H
+#include <linux/kernel.h> +#include <linux/regulator/machine.h>
Why the '\n'?
+#include <linux/regulator/madera-ldo1.h> +#include <linux/regulator/madera-micsupp.h> +#include <linux/irqchip/irq-madera-pdata.h> +#include <sound/madera-pdata.h>
Alphabetical
+#define MADERA_MAX_MICBIAS 4 +#define MADERA_MAX_CHILD_MICBIAS 4
+#define MADERA_MAX_GPSW 2
+struct pinctrl_map;
+/** MICBIAS pin configuration */
Kerneldoc comment with no kerneldoc ??
Same as below.
+struct madera_micbias_pin_pdata {
- /** Regulator configuration for pin switch */
Just use Kerneldoc instead.
Same for all of these structs.
- struct regulator_init_data init_data;
+};
+/** Regulator configuration for an on-chip MICBIAS */ +struct madera_micbias_pdata {
- /** Configuration of the MICBIAS generator */
- struct regulator_init_data init_data;
- bool ext_cap; /** External capacitor fitted */
- /**
* Configuration for each output pin from this MICBIAS
* (Not used on CS47L85 and WM1840)
*/
- struct madera_micbias_pin_pdata pin[MADERA_MAX_CHILD_MICBIAS];
+};
+struct madera_pdata {
- /** GPIO controlling /RESET, if any */
- int reset;
- /** Substruct of pdata for the LDO1 regulator */
- struct madera_ldo1_pdata ldo1;
- /** Substruct of pdata for the MICSUPP regulator */
- struct madera_micsupp_pdata micsupp;
- /** Substruct of pdata for the irqchip driver */
- struct madera_irqchip_pdata irqchip;
- /** Base GPIO */
- int gpio_base;
- /**
* Array of GPIO configurations
* See Documentation/pinctrl.txt
*/
- const struct pinctrl_map *gpio_configs;
- int n_gpio_configs;
- /** MICBIAS configurations */
- struct madera_micbias_pdata micbias[MADERA_MAX_MICBIAS];
- /**
* Substructure of pdata for the ASoC codec driver
* See include/sound/madera-pdata.h
*/
- struct madera_codec_pdata codec;
- /**
* General purpose switch mode setting
* See the SW1_MODE field in the datasheet for the available values
*/
- u32 gpsw[MADERA_MAX_GPSW];
+};
+#endif
On Wed, 19 Apr 2017, Richard Fitzgerald wrote:
On Wed, 2017-04-12 at 13:54 +0100, Lee Jones wrote:
On Wed, 05 Apr 2017, Richard Fitzgerald wrote:
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.wolfsonmicro.com Signed-off-by: Nikesh Oswal Nikesh.Oswal@wolfsonmicro.com Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com
Documentation/devicetree/bindings/mfd/madera.txt | 79 +++ MAINTAINERS | 3 + drivers/mfd/Kconfig | 23 + drivers/mfd/Makefile | 4 + drivers/mfd/madera-core.c | 689 +++++++++++++++++++++++ drivers/mfd/madera-i2c.c | 130 +++++ drivers/mfd/madera-spi.c | 131 +++++ drivers/mfd/madera.h | 52 ++ include/linux/mfd/madera/core.h | 175 ++++++ include/linux/mfd/madera/pdata.h | 88 +++ 10 files changed, 1374 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/madera.txt create mode 100644 drivers/mfd/madera-core.c create mode 100644 drivers/mfd/madera-i2c.c create mode 100644 drivers/mfd/madera-spi.c create mode 100644 drivers/mfd/madera.h create mode 100644 include/linux/mfd/madera/core.h create mode 100644 include/linux/mfd/madera/pdata.h
diff --git a/Documentation/devicetree/bindings/mfd/madera.txt b/Documentation/devicetree/bindings/mfd/madera.txt new file mode 100644 index 0000000..a6c3260 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/madera.txt @@ -0,0 +1,79 @@ +Cirrus Logic Madera class audio codecs multi-function device
+These devices are audio SoCs with extensive digital capabilities and a range +of analogue I/O.
+See also the child driver bindings in: +bindings/extcon/extcon-madera.txt +bindings/gpio/gpio-madera.txt +bindings/interrupt-controller/cirrus,madera.txt +bindings/pinctrl/cirrus,madera-pinctrl.txt +bindings/regulator/madera-ldo1.txt +bindings/regulator/madera-micsupp.txt +bindings/sound/madera.txt
+Required properties:
- compatible : One of the following chip-specific strings:
"cirrus,cs47l35"
"cirrus,cs47l85"
"cirrus,cs47l90"
"cirrus,cs47l91"
"cirrus,wm1840"
- reg : I2C slave address when connected using I2C, chip select number when
- using SPI.
- DCVDD-supply : Power supply for the device as defined in
- bindings/regulator/regulator.txt
- Mandatory on CS47L35, CS47L90, CS47L91
- Optional on CS47L85, WM1840
- AVDD-supply, DBVDD1-supply, DBVDD2-supply, CPVDD1-supply, CPVDD2-supply :
- Power supplies for the device
- DBVDD3-supply, DBVDD4-supply : Power supplies for the device
- (CS47L85, CS47L90, CS47L91, WM1840)
- SPKVDDL-supply, SPKVDDR-supply : Power supplies for the device
- (CS47L85, WM1840)
- SPKVDD-supply : Power supply for the device
- (CS47L35)
+Optional properties:
- MICVDD-supply : Power supply, only need to be specified if
- powered externally
- reset-gpios : One entry specifying the GPIO controlling /RESET.
- As defined in bindings/gpio.txt.
- Although optional, it is strongly recommended to use a hardware reset
- MICBIASx : Initial data for the MICBIAS regulators, as covered in
- Documentation/devicetree/bindings/regulator/regulator.txt.
- One for each MICBIAS generator (MICBIAS1, MICBIAS2, ...)
- (all codecs)
- One for each output pin (MICBIAS1A, MIBCIAS1B, MICBIAS2A, ...)
- (all except CS47L85, WM1840)
- The following following additional property is supported for the generator
- nodes:
- cirrus,ext-cap : Set to 1 if the MICBIAS has external decoupling
capacitors attached.
+Example:
+codec: cs47l85@0 {
Node names should be generic.
You can swap these round if you want, so:
cs47l85: codec@0 {
... is valid.
- compatible = "cirrus,cs47l85";
- reg = <0>;
- reset-gpios = <&gpio 0>;
- MICBIAS1 {
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <3300000>;
cirrus,ext-cap = <1>;
- };
+}; diff --git a/MAINTAINERS b/MAINTAINERS index 02995c9..d28e53f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3266,7 +3266,10 @@ L: patches@opensource.wolfsonmicro.com T: git https://github.com/CirrusLogic/linux-drivers.git W: https://github.com/CirrusLogic/linux-drivers/wiki S: Supported +F: Documentation/devicetree/bindings/mfd/madera.txt F: include/linux/mfd/madera/* +F: drivers/mfd/madera* +F: drivers/mfd/cs47l*
CLEANCACHE API M: Konrad Rzeszutek Wilk konrad.wilk@oracle.com diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index ce3a918..f0f9979 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -203,6 +203,29 @@ config MFD_CROS_EC_SPI response time cannot be guaranteed, we support ignoring 'pre-amble' bytes before the response actually starts.
+config MFD_MADERA
- bool
- select REGMAP
- select MFD_CORE
+config MFD_MADERA_I2C
- tristate "Cirrus Logic Madera codecs with I2C"
- select MFD_MADERA
- select REGMAP_I2C
- depends on I2C
- help
Support for the Cirrus Logic Madera platform audio SoC
core functionality controlled via I2C.
+config MFD_MADERA_SPI
- tristate "Cirrus Logic Madera codecs with SPI"
- select MFD_MADERA
- select REGMAP_SPI
- depends on SPI_MASTER
- help
Support for the Cirrus Logic Madera platform audio SoC
core functionality controlled via SPI.
config MFD_ASIC3 bool "Compaq ASIC3" depends on GPIOLIB && ARM diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index fa86dbe..c41f6c9 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile @@ -72,6 +72,10 @@ obj-$(CONFIG_MFD_WM8350_I2C) += wm8350-i2c.o wm8994-objs := wm8994-core.o wm8994-irq.o wm8994-regmap.o obj-$(CONFIG_MFD_WM8994) += wm8994.o
+obj-$(CONFIG_MFD_MADERA) += madera-core.o +obj-$(CONFIG_MFD_MADERA_I2C) += madera-i2c.o +obj-$(CONFIG_MFD_MADERA_SPI) += madera-spi.o
obj-$(CONFIG_TPS6105X) += tps6105x.o obj-$(CONFIG_TPS65010) += tps65010.o obj-$(CONFIG_TPS6507X) += tps6507x.o diff --git a/drivers/mfd/madera-core.c b/drivers/mfd/madera-core.c new file mode 100644 index 0000000..ab5fe9b --- /dev/null +++ b/drivers/mfd/madera-core.c @@ -0,0 +1,689 @@ +/*
- Core MFD support for Cirrus Logic Madera codecs
- Copyright 2015-2017 Cirrus Logic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
- */
+#include <linux/device.h> +#include <linux/delay.h> +#include <linux/err.h> +#include <linux/gpio.h> +#include <linux/mfd/core.h> +#include <linux/module.h> +#include <linux/notifier.h> +#include <linux/of.h> +#include <linux/of_device.h> +#include <linux/of_gpio.h> +#include <linux/platform_device.h> +#include <linux/pm_runtime.h> +#include <linux/regmap.h> +#include <linux/regulator/consumer.h> +#include <linux/regulator/machine.h> +#include <linux/regulator/of_regulator.h>
+#include <linux/mfd/madera/core.h> +#include <linux/mfd/madera/registers.h>
+#include "madera.h"
+#define CS47L35_SILICON_ID 0x6360 +#define CS47L85_SILICON_ID 0x6338 +#define CS47L90_SILICON_ID 0x6364
+#define MADERA_32KZ_MCLK2 1
+static const char * const madera_core_supplies[] = {
- "AVDD",
- "DBVDD1",
+};
+static const struct mfd_cell madera_ldo1_devs[] = {
- { .name = "madera-ldo1", .of_compatible = "cirrus,madera-ldo1" },
+};
+static const struct mfd_cell cs47l35_devs[] = {
- { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" },
- { .name = "madera-irq", },
I believe this should be "interrupt-controller".
I don't think that's the case. I checked other irchip drivers and they have no particular standard naming. At least one is called "something-irq", none are called "something-interrupt-controller"
irq is ambiguous.
I can't really see what other driver this could be confused with, especially as it's specified as madera-* so the alternative drivers are limited. Given the limited set of drivers I think it's clear enough it's the driver for the IRQ and a longer name doesn't add information.
Same goes for the ones below.
Ditto. madera-micsupp will be replaced by the existing arizona-micsupp. Most gpio drivers are called "something-gpio". Extcon is the name of a driver subsystem so should be sufficiently clear. Likewise madera-codec.
I meant just the "-irq" entries.
... but I'm not 100% convinced that calling it "-irq" a terrible idea, just that "irq-controller" or "interrupt-controller" would be better.
Either way, it's not a blocking point.
- { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" },
- { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" },
- { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" },
- { .name = "cs47l35-codec", .of_compatible = "cirrus,cs47l35-codec" },
- { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" },
+};
+static const struct mfd_cell cs47l85_devs[] = {
- { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" },
- { .name = "madera-irq", },
- { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" },
- { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" },
- { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" },
- { .name = "cs47l85-codec", .of_compatible = "cirrus,cs47l85-codec" },
- { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" },
+};
+static const struct mfd_cell cs47l90_devs[] = {
- { .name = "madera-pinctrl", .of_compatible = "cirrus,madera-pinctrl" },
- { .name = "madera-irq", },
- { .name = "madera-micsupp", .of_compatible = "cirrus,madera-micsupp" },
- { .name = "madera-gpio", .of_compatible = "cirrus,madera-gpio" },
- { .name = "madera-extcon", .of_compatible = "cirrus,madera-extcon" },
- { .name = "cs47l90-codec", .of_compatible = "cirrus,cs47l90-codec" },
- { .name = "madera-haptics", .of_compatible = "cirrus,madera-haptics" },
+};
+const char *madera_name_from_type(enum madera_type type) +{
- switch (type) {
- case CS47L35:
return "CS47L35";
- case CS47L85:
return "CS47L85";
- case CS47L90:
return "CS47L90";
- case CS47L91:
return "CS47L91";
- case WM1840:
return "WM1840";
- default:
return "Unknown";
- }
+} +EXPORT_SYMBOL_GPL(madera_name_from_type);
+#define MADERA_BOOT_POLL_MAX_INTERVAL_US 5000 +#define MADERA_BOOT_POLL_TIMEOUT_US 25000
+static int madera_wait_for_boot(struct madera *madera) +{
- unsigned int val;
- int ret;
- /*
* We can't use an interrupt as we need to runtime resume to do so,
* so we poll the status bit. This won't race with the interrupt
* handler because it will be blocked on runtime resume.
*/
- ret = regmap_read_poll_timeout(madera->regmap,
MADERA_IRQ1_RAW_STATUS_1,
val,
(val & MADERA_BOOT_DONE_STS1),
MADERA_BOOT_POLL_MAX_INTERVAL_US,
MADERA_BOOT_POLL_TIMEOUT_US);
- /*
* BOOT_DONE defaults to unmasked on boot so we must ack it.
* Do this unconditionally to avoid interrupt storms
*/
- regmap_write(madera->regmap, MADERA_IRQ1_STATUS_1,
MADERA_BOOT_DONE_EINT1);
- if (ret)
dev_err(madera->dev, "Polling BOOT_DONE_STS failed: %d\n", ret);
Why isn't this under the call to regmap_read_poll_timeout()?
It was intended to make it clear that we must ack the BOOT_DONE now no matter what and to avoid the potential with them the other way around of someone adding more code in the if (or just a ret) and so accidentally failing to do the ack. I could swap them but I think I prefer keeping them this way and changing the comment to say this.
Okay.
I'm going to assume that we are in agreement for all points that you did not answer (which is good). I look forward to the next version.
Regmap configuration tables for Cirrus Logic CS47L35 codecs.
Signed-off-by: Piotr Stankiewicz piotrs@opensource.wolfsonmicro.com Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com Signed-off-by: Charles Keepax ckeepax@opensource.wolfsonmicro.com --- drivers/mfd/Kconfig | 6 + drivers/mfd/Makefile | 3 + drivers/mfd/cs47l35-tables.c | 1688 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1697 insertions(+) create mode 100644 drivers/mfd/cs47l35-tables.c
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index f0f9979..5aa62f4 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -226,6 +226,12 @@ config MFD_MADERA_SPI Support for the Cirrus Logic Madera platform audio SoC core functionality controlled via SPI.
+config MFD_CS47L35 + bool "Cirrus Logic CS47L35" + depends on MFD_MADERA + help + Support for Cirrus Logic CS47L35 Smart Codec + config MFD_ASIC3 bool "Compaq ASIC3" depends on GPIOLIB && ARM diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index c41f6c9..c14a86d 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile @@ -73,6 +73,9 @@ wm8994-objs := wm8994-core.o wm8994-irq.o wm8994-regmap.o obj-$(CONFIG_MFD_WM8994) += wm8994.o
obj-$(CONFIG_MFD_MADERA) += madera-core.o +ifeq ($(CONFIG_MFD_CS47L35),y) +obj-$(CONFIG_MFD_MADERA) += cs47l35-tables.o +endif obj-$(CONFIG_MFD_MADERA_I2C) += madera-i2c.o obj-$(CONFIG_MFD_MADERA_SPI) += madera-spi.o
diff --git a/drivers/mfd/cs47l35-tables.c b/drivers/mfd/cs47l35-tables.c new file mode 100644 index 0000000..1336c60 --- /dev/null +++ b/drivers/mfd/cs47l35-tables.c @@ -0,0 +1,1688 @@ +/* + * Regmap tables for CS47L35 codec + * + * Copyright 2015-2016 Cirrus Logic + * + * Author: Piotr Stankiewicz piotrs@opensource.wolfsonmicro.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/device.h> +#include <linux/module.h> +#include <linux/regmap.h> + +#include <linux/mfd/madera/core.h> +#include <linux/mfd/madera/registers.h> + +#include "madera.h" + +static const struct reg_sequence cs47l35_reva_16_patch[] = { + { 0x460, 0x0c40 }, + { 0x461, 0xcd1a }, + { 0x462, 0x0c40 }, + { 0x463, 0xb53b }, + { 0x464, 0x0c40 }, + { 0x465, 0x7503 }, + { 0x466, 0x0c40 }, + { 0x467, 0x4a41 }, + { 0x468, 0x0041 }, + { 0x469, 0x3491 }, + { 0x46a, 0x0841 }, + { 0x46b, 0x1f50 }, + { 0x46c, 0x0446 }, + { 0x46d, 0x14ed }, + { 0x46e, 0x0446 }, + { 0x46f, 0x1455 }, + { 0x470, 0x04c6 }, + { 0x471, 0x1220 }, + { 0x472, 0x04c6 }, + { 0x473, 0x040f }, + { 0x474, 0x04ce }, + { 0x475, 0x0339 }, + { 0x476, 0x05df }, + { 0x477, 0x028f }, + { 0x478, 0x05df }, + { 0x479, 0x0209 }, + { 0x47a, 0x05df }, + { 0x47b, 0x00cf }, + { 0x47c, 0x05df }, + { 0x47d, 0x0001 }, + { 0x47e, 0x07ff }, +}; + +int cs47l35_patch(struct madera *madera) +{ + int ret; + + ret = regmap_register_patch(madera->regmap, cs47l35_reva_16_patch, + ARRAY_SIZE(cs47l35_reva_16_patch)); + if (ret < 0) + dev_err(madera->dev, "Error applying patch: %d\n", ret); + + return ret; +} +EXPORT_SYMBOL_GPL(cs47l35_patch); + +static const struct reg_default cs47l35_reg_default[] = { + { 0x00000020, 0x0000 }, /* R32 (0x20) - Tone Generator 1 */ + { 0x00000021, 0x1000 }, /* R33 (0x21) - Tone Generator 2 */ + { 0x00000022, 0x0000 }, /* R34 (0x22) - Tone Generator 3 */ + { 0x00000023, 0x1000 }, /* R35 (0x23) - Tone Generator 4 */ + { 0x00000024, 0x0000 }, /* R36 (0x24) - Tone Generator 5 */ + { 0x00000030, 0x0000 }, /* R48 (0x30) - PWM Drive 1 */ + { 0x00000031, 0x0100 }, /* R49 (0x31) - PWM Drive 2 */ + { 0x00000032, 0x0100 }, /* R50 (0x32) - PWM Drive 3 */ + { 0x00000061, 0x01ff }, /* R97 (0x61) - Sample Rate Sequence Select 1 */ + { 0x00000062, 0x01ff }, /* R98 (0x62) - Sample Rate Sequence Select 2 */ + { 0x00000063, 0x01ff }, /* R99 (0x63) - Sample Rate Sequence Select 3 */ + { 0x00000064, 0x01ff }, /* R100 (0x64) - Sample Rate Sequence Select 4*/ + { 0x00000066, 0x01ff }, /* R102 (0x66) - Always On Triggers Sequence Select 1*/ + { 0x00000067, 0x01ff }, /* R103 (0x67) - Always On Triggers Sequence Select 2*/ + { 0x00000090, 0x0000 }, /* R144 (0x90) - Haptics Control 1 */ + { 0x00000091, 0x7fff }, /* R145 (0x91) - Haptics Control 2 */ + { 0x00000092, 0x0000 }, /* R146 (0x92) - Haptics phase 1 intensity */ + { 0x00000093, 0x0000 }, /* R147 (0x93) - Haptics phase 1 duration */ + { 0x00000094, 0x0000 }, /* R148 (0x94) - Haptics phase 2 intensity */ + { 0x00000095, 0x0000 }, /* R149 (0x95) - Haptics phase 2 duration */ + { 0x00000096, 0x0000 }, /* R150 (0x96) - Haptics phase 3 intensity */ + { 0x00000097, 0x0000 }, /* R151 (0x97) - Haptics phase 3 duration */ + { 0x000000A0, 0x0000 }, /* R160 (0xa0) - Comfort Noise Generator */ + { 0x00000100, 0x0002 }, /* R256 (0x100) - Clock 32k 1 */ + { 0x00000101, 0x0404 }, /* R257 (0x101) - System Clock 1 */ + { 0x00000102, 0x0011 }, /* R258 (0x102) - Sample rate 1 */ + { 0x00000103, 0x0011 }, /* R259 (0x103) - Sample rate 2 */ + { 0x00000104, 0x0011 }, /* R260 (0x104) - Sample rate 3 */ + { 0x00000120, 0x0305 }, /* R288 (0x120) - DSP Clock 1 */ + { 0x00000122, 0x0000 }, /* R290 (0x122) - DSP Clock 2 */ + { 0x00000149, 0x0000 }, /* R329 (0x149) - Output system clock */ + { 0x0000014a, 0x0000 }, /* R330 (0x14a) - Output async clock */ + { 0x00000152, 0x0000 }, /* R338 (0x152) - Rate Estimator 1 */ + { 0x00000153, 0x0000 }, /* R339 (0x153) - Rate Estimator 2 */ + { 0x00000154, 0x0000 }, /* R340 (0x154) - Rate Estimator 3 */ + { 0x00000155, 0x0000 }, /* R341 (0x155) - Rate Estimator 4 */ + { 0x00000156, 0x0000 }, /* R342 (0x156) - Rate Estimator 5 */ + { 0x00000171, 0x0002 }, /* R369 (0x171) - FLL1 Control 1 */ + { 0x00000172, 0x0008 }, /* R370 (0x172) - FLL1 Control 2 */ + { 0x00000173, 0x0018 }, /* R371 (0x173) - FLL1 Control 3 */ + { 0x00000174, 0x007d }, /* R372 (0x174) - FLL1 Control 4 */ + { 0x00000175, 0x0000 }, /* R373 (0x175) - FLL1 Control 5 */ + { 0x00000176, 0x0000 }, /* R374 (0x176) - FLL1 Control 6 */ + { 0x00000177, 0x0281 }, /* R375 (0x177) - FLL1 Loop Filter Test 1 */ + { 0x00000179, 0x0000 }, /* R377 (0x179) - FLL1 Control 7 */ + { 0x0000017f, 0x0000 }, /* R383 (0x17f) - FLL1 Synchroniser 1 */ + { 0x00000180, 0x0000 }, /* R384 (0x180) - FLL1 Synchroniser 2 */ + { 0x00000181, 0x0000 }, /* R385 (0x181) - FLL1 Synchroniser 3 */ + { 0x00000182, 0x0000 }, /* R386 (0x182) - FLL1 Synchroniser 4 */ + { 0x00000183, 0x0000 }, /* R387 (0x183) - FLL1 Synchroniser 5 */ + { 0x00000184, 0x0000 }, /* R388 (0x184) - FLL1 Synchroniser 6 */ + { 0x00000185, 0x0001 }, /* R389 (0x185) - FLL1 Synchroniser 7 */ + { 0x00000187, 0x0000 }, /* R391 (0x187) - FLL1 Spread Spectrum */ + { 0x00000188, 0x000c }, /* R392 (0x188) - FLL1 GPIO Clock */ + { 0x00000200, 0x0006 }, /* R512 (0x200) - Mic Charge Pump 1 */ + { 0x0000020b, 0x0400 }, /* R523 (0x20b) - HP Charge Pump 8 */ + { 0x00000213, 0x03e4 }, /* R531 (0x213) - LDO2 Control 1 */ + { 0x00000218, 0x00e6 }, /* R536 (0x218) - Mic Bias Ctrl 1 */ + { 0x00000219, 0x00e6 }, /* R537 (0x219) - Mic Bias Ctrl 2 */ + { 0x0000021c, 0x0022 }, /* R540 (0x21c) - Mic Bias Ctrl 5 */ + { 0x0000021e, 0x0022 }, /* R542 (0x21e) - Mic Bias Ctrl 6 */ + { 0x0000027e, 0x0000 }, /* R638 (0x27e) - EDRE HP stereo control */ + { 0x00000293, 0x0080 }, /* R659 (0x293) - Accessory Detect Mode 1 */ + { 0x0000029b, 0x0000 }, /* R667 (0x29b) - Headphone Detect 1 */ + { 0x000002a3, 0x1102 }, /* R675 (0x2a3) - Mic Detect Control 1 */ + { 0x000002a4, 0x009f }, /* R676 (0x2a4) - Mic Detect Control 2 */ + { 0x000002a6, 0x3d3d }, /* R678 (0x2a6) - Mic Detect Level 1 */ + { 0x000002a7, 0x3d3d }, /* R679 (0x2a7) - Mic Detect Level 2 */ + { 0x000002a8, 0x333d }, /* R680 (0x2a8) - Mic Detect Level 3 */ + { 0x000002a9, 0x202d }, /* R681 (0x2a9) - Mic Detect Level 4 */ + { 0x000002c6, 0x0010 }, /* R710 (0x2c5) - Mic Clamp control */ + { 0x000002c8, 0x0000 }, /* R712 (0x2c8) - GP switch 1 */ + { 0x000002d3, 0x0000 }, /* R723 (0x2d3) - Jack detect analogue */ + { 0x00000300, 0x0000 }, /* R768 (0x300) - Input Enables */ + { 0x00000308, 0x0000 }, /* R776 (0x308) - Input Rate */ + { 0x00000309, 0x0022 }, /* R777 (0x309) - Input Volume Ramp */ + { 0x0000030c, 0x0002 }, /* R780 (0x30c) - HPF Control */ + { 0x00000310, 0x0080 }, /* R784 (0x310) - IN1L Control */ + { 0x00000311, 0x0180 }, /* R785 (0x311) - ADC Digital Volume 1L */ + { 0x00000312, 0x0500 }, /* R786 (0x312) - DMIC1L Control */ + { 0x00000314, 0x0080 }, /* R788 (0x314) - IN1R Control */ + { 0x00000315, 0x0180 }, /* R789 (0x315) - ADC Digital Volume 1R */ + { 0x00000316, 0x0000 }, /* R790 (0x316) - DMIC1R Control */ + { 0x00000318, 0x0080 }, /* R792 (0x318) - IN2L Control */ + { 0x00000319, 0x0180 }, /* R793 (0x319) - ADC Digital Volume 2L */ + { 0x0000031a, 0x0500 }, /* R794 (0x31a) - DMIC2L Control */ + { 0x0000031c, 0x0080 }, /* R796 (0x31c) - IN2R Control */ + { 0x0000031d, 0x0180 }, /* R797 (0x31d) - ADC Digital Volume 2R */ + { 0x0000031e, 0x0000 }, /* R798 (0x31e) - DMIC2R Control */ + { 0x00000400, 0x0000 }, /* R1024 (0x400) - Output Enables 1 */ + { 0x00000408, 0x0000 }, /* R1032 (0x408) - Output Rate 1 */ + { 0x00000409, 0x0022 }, /* R1033 (0x409) - Output Volume Ramp */ + { 0x00000410, 0x0080 }, /* R1040 (0x410) - Output Path Config 1L */ + { 0x00000411, 0x0180 }, /* R1041 (0x411) - DAC Digital Volume 1L */ + { 0x00000413, 0x0001 }, /* R1043 (0x413) - Noise Gate Select 1L */ + { 0x00000414, 0x0080 }, /* R1044 (0x414) - Output Path Config 1R */ + { 0x00000415, 0x0180 }, /* R1045 (0x415) - DAC Digital Volume 1R */ + { 0x00000417, 0x0002 }, /* R1047 (0x417) - Noise Gate Select 1R */ + { 0x00000428, 0x0000 }, /* R1064 (0x428) - Output Path Config 4L */ + { 0x00000429, 0x0180 }, /* R1065 (0x429) - DAC Digital Volume 4L */ + { 0x0000042b, 0x0040 }, /* R1067 (0x42b) - Noise Gate Select 4L */ + { 0x00000430, 0x0000 }, /* R1072 (0x430) - Output Path Config 5L */ + { 0x00000431, 0x0180 }, /* R1073 (0x431) - DAC Digital Volume 5L */ + { 0x00000433, 0x0100 }, /* R1075 (0x433) - Noise Gate Select 5L */ + { 0x00000434, 0x0000 }, /* R1076 (0x434) - Output Path Config 5R */ + { 0x00000435, 0x0180 }, /* R1077 (0x435) - DAC Digital Volume 5R */ + { 0x00000437, 0x0200 }, /* R1079 (0x437) - Noise Gate Select 5R */ + { 0x00000440, 0x0003 }, /* R1088 (0x440) - DRE Enable */ + { 0x00000448, 0x0a83 }, /* R1096 (0x448) - eDRE Enable */ + { 0x0000044a, 0x0000 }, /* R1098 (0x44a) - eDRE Manual */ + { 0x00000450, 0x0000 }, /* R1104 (0x450) - DAC AEC Control 1 */ + { 0x00000458, 0x0000 }, /* R1112 (0x458) - Noise Gate Control */ + { 0x00000490, 0x0069 }, /* R1168 (0x490) - PDM SPK1 CTRL 1 */ + { 0x00000491, 0x0000 }, /* R1169 (0x491) - PDM SPK1 CTRL 2 */ + { 0x000004a0, 0x3080 }, /* R1184 (0x4a0) - HP1 Short Circuit Ctrl */ + { 0x000004a8, 0x7120 }, /* R1192 (0x4a8) - HP Test Ctrl 5 */ + { 0x000004a9, 0x7120 }, /* R1193 (0x4a9) - HP Test Ctrl 6 */ + { 0x00000500, 0x000c }, /* R1280 (0x500) - AIF1 BCLK Ctrl */ + { 0x00000501, 0x0000 }, /* R1281 (0x501) - AIF1 Tx Pin Ctrl */ + { 0x00000502, 0x0000 }, /* R1282 (0x502) - AIF1 Rx Pin Ctrl */ + { 0x00000503, 0x0000 }, /* R1283 (0x503) - AIF1 Rate Ctrl */ + { 0x00000504, 0x0000 }, /* R1284 (0x504) - AIF1 Format */ + { 0x00000506, 0x0040 }, /* R1286 (0x506) - AIF1 Rx BCLK Rate */ + { 0x00000507, 0x1818 }, /* R1287 (0x507) - AIF1 Frame Ctrl 1 */ + { 0x00000508, 0x1818 }, /* R1288 (0x508) - AIF1 Frame Ctrl 2 */ + { 0x00000509, 0x0000 }, /* R1289 (0x509) - AIF1 Frame Ctrl 3 */ + { 0x0000050a, 0x0001 }, /* R1290 (0x50a) - AIF1 Frame Ctrl 4 */ + { 0x0000050b, 0x0002 }, /* R1291 (0x50b) - AIF1 Frame Ctrl 5 */ + { 0x0000050c, 0x0003 }, /* R1292 (0x50c) - AIF1 Frame Ctrl 6 */ + { 0x0000050d, 0x0004 }, /* R1293 (0x50d) - AIF1 Frame Ctrl 7 */ + { 0x0000050e, 0x0005 }, /* R1294 (0x50e) - AIF1 Frame Ctrl 8 */ + { 0x00000511, 0x0000 }, /* R1297 (0x511) - AIF1 Frame Ctrl 11 */ + { 0x00000512, 0x0001 }, /* R1298 (0x512) - AIF1 Frame Ctrl 12 */ + { 0x00000513, 0x0002 }, /* R1299 (0x513) - AIF1 Frame Ctrl 13 */ + { 0x00000514, 0x0003 }, /* R1300 (0x514) - AIF1 Frame Ctrl 14 */ + { 0x00000515, 0x0004 }, /* R1301 (0x515) - AIF1 Frame Ctrl 15 */ + { 0x00000516, 0x0005 }, /* R1302 (0x516) - AIF1 Frame Ctrl 16 */ + { 0x00000519, 0x0000 }, /* R1305 (0x519) - AIF1 Tx Enables */ + { 0x0000051a, 0x0000 }, /* R1306 (0x51a) - AIF1 Rx Enables */ + { 0x00000540, 0x000c }, /* R1344 (0x540) - AIF2 BCLK Ctrl */ + { 0x00000541, 0x0000 }, /* R1345 (0x541) - AIF2 Tx Pin Ctrl */ + { 0x00000542, 0x0000 }, /* R1346 (0x542) - AIF2 Rx Pin Ctrl */ + { 0x00000543, 0x0000 }, /* R1347 (0x543) - AIF2 Rate Ctrl */ + { 0x00000544, 0x0000 }, /* R1348 (0x544) - AIF2 Format */ + { 0x00000546, 0x0040 }, /* R1350 (0x546) - AIF2 Rx BCLK Rate */ + { 0x00000547, 0x1818 }, /* R1351 (0x547) - AIF2 Frame Ctrl 1 */ + { 0x00000548, 0x1818 }, /* R1352 (0x548) - AIF2 Frame Ctrl 2 */ + { 0x00000549, 0x0000 }, /* R1353 (0x549) - AIF2 Frame Ctrl 3 */ + { 0x0000054a, 0x0001 }, /* R1354 (0x54a) - AIF2 Frame Ctrl 4 */ + { 0x00000551, 0x0000 }, /* R1361 (0x551) - AIF2 Frame Ctrl 11 */ + { 0x00000552, 0x0001 }, /* R1362 (0x552) - AIF2 Frame Ctrl 12 */ + { 0x00000559, 0x0000 }, /* R1369 (0x559) - AIF2 Tx Enables */ + { 0x0000055a, 0x0000 }, /* R1370 (0x55a) - AIF2 Rx Enables */ + { 0x00000580, 0x000c }, /* R1408 (0x580) - AIF3 BCLK Ctrl */ + { 0x00000581, 0x0000 }, /* R1409 (0x581) - AIF3 Tx Pin Ctrl */ + { 0x00000582, 0x0000 }, /* R1410 (0x582) - AIF3 Rx Pin Ctrl */ + { 0x00000583, 0x0000 }, /* R1411 (0x583) - AIF3 Rate Ctrl */ + { 0x00000584, 0x0000 }, /* R1412 (0x584) - AIF3 Format */ + { 0x00000586, 0x0040 }, /* R1414 (0x586) - AIF3 Rx BCLK Rate */ + { 0x00000587, 0x1818 }, /* R1415 (0x587) - AIF3 Frame Ctrl 1 */ + { 0x00000588, 0x1818 }, /* R1416 (0x588) - AIF3 Frame Ctrl 2 */ + { 0x00000589, 0x0000 }, /* R1417 (0x589) - AIF3 Frame Ctrl 3 */ + { 0x0000058a, 0x0001 }, /* R1418 (0x58a) - AIF3 Frame Ctrl 4 */ + { 0x00000591, 0x0000 }, /* R1425 (0x591) - AIF3 Frame Ctrl 11 */ + { 0x00000592, 0x0001 }, /* R1426 (0x592) - AIF3 Frame Ctrl 12 */ + { 0x00000599, 0x0000 }, /* R1433 (0x599) - AIF3 Tx Enables */ + { 0x0000059a, 0x0000 }, /* R1434 (0x59a) - AIF3 Rx Enables */ + { 0x000005c2, 0x0000 }, /* R1474 (0x5c2) - SPD1 TX Control */ + { 0x000005e3, 0x0000 }, /* R1507 (0x5e3) - SLIMbus Framer Ref Gear */ + { 0x000005e5, 0x0000 }, /* R1509 (0x5e5) - SLIMbus Rates 1 */ + { 0x000005e6, 0x0000 }, /* R1510 (0x5e6) - SLIMbus Rates 2 */ + { 0x000005e7, 0x0000 }, /* R1511 (0x5e7) - SLIMbus Rates 3 */ + { 0x000005e9, 0x0000 }, /* R1513 (0x5e9) - SLIMbus Rates 5 */ + { 0x000005ea, 0x0000 }, /* R1514 (0x5ea) - SLIMbus Rates 6 */ + { 0x000005eb, 0x0000 }, /* R1515 (0x5eb) - SLIMbus Rates 7 */ + { 0x000005f5, 0x0000 }, /* R1525 (0x5f5) - SLIMbus RX Channel Enable */ + { 0x000005f6, 0x0000 }, /* R1526 (0x5f6) - SLIMbus TX Channel Enable */ + { 0x00000640, 0x0000 }, /* R1600 (0x640) - PWM1MIX Input 1 Source */ + { 0x00000641, 0x0080 }, /* R1601 (0x641) - PWM1MIX Input 1 Volume */ + { 0x00000642, 0x0000 }, /* R1602 (0x642) - PWM1MIX Input 2 Source */ + { 0x00000643, 0x0080 }, /* R1603 (0x643) - PWM1MIX Input 2 Volume */ + { 0x00000644, 0x0000 }, /* R1604 (0x644) - PWM1MIX Input 3 Source */ + { 0x00000645, 0x0080 }, /* R1605 (0x645) - PWM1MIX Input 3 Volume */ + { 0x00000646, 0x0000 }, /* R1606 (0x646) - PWM1MIX Input 4 Source */ + { 0x00000647, 0x0080 }, /* R1607 (0x647) - PWM1MIX Input 4 Volume */ + { 0x00000648, 0x0000 }, /* R1608 (0x648) - PWM2MIX Input 1 Source */ + { 0x00000649, 0x0080 }, /* R1609 (0x649) - PWM2MIX Input 1 Volume */ + { 0x0000064a, 0x0000 }, /* R1610 (0x64a) - PWM2MIX Input 2 Source */ + { 0x0000064b, 0x0080 }, /* R1611 (0x64b) - PWM2MIX Input 2 Volume */ + { 0x0000064c, 0x0000 }, /* R1612 (0x64c) - PWM2MIX Input 3 Source */ + { 0x0000064d, 0x0080 }, /* R1613 (0x64d) - PWM2MIX Input 3 Volume */ + { 0x0000064e, 0x0000 }, /* R1614 (0x64e) - PWM2MIX Input 4 Source */ + { 0x0000064f, 0x0080 }, /* R1615 (0x64f) - PWM2MIX Input 4 Volume */ + { 0x00000680, 0x0000 }, /* R1664 (0x680) - OUT1LMIX Input 1 Source */ + { 0x00000681, 0x0080 }, /* R1665 (0x681) - OUT1LMIX Input 1 Volume */ + { 0x00000682, 0x0000 }, /* R1666 (0x682) - OUT1LMIX Input 2 Source */ + { 0x00000683, 0x0080 }, /* R1667 (0x683) - OUT1LMIX Input 2 Volume */ + { 0x00000684, 0x0000 }, /* R1668 (0x684) - OUT1LMIX Input 3 Source */ + { 0x00000685, 0x0080 }, /* R1669 (0x685) - OUT1LMIX Input 3 Volume */ + { 0x00000686, 0x0000 }, /* R1670 (0x686) - OUT1LMIX Input 4 Source */ + { 0x00000687, 0x0080 }, /* R1671 (0x687) - OUT1LMIX Input 4 Volume */ + { 0x00000688, 0x0000 }, /* R1672 (0x688) - OUT1RMIX Input 1 Source */ + { 0x00000689, 0x0080 }, /* R1673 (0x689) - OUT1RMIX Input 1 Volume */ + { 0x0000068a, 0x0000 }, /* R1674 (0x68a) - OUT1RMIX Input 2 Source */ + { 0x0000068b, 0x0080 }, /* R1675 (0x68b) - OUT1RMIX Input 2 Volume */ + { 0x0000068c, 0x0000 }, /* R1672 (0x68c) - OUT1RMIX Input 3 Source */ + { 0x0000068d, 0x0080 }, /* R1673 (0x68d) - OUT1RMIX Input 3 Volume */ + { 0x0000068e, 0x0000 }, /* R1674 (0x68e) - OUT1RMIX Input 4 Source */ + { 0x0000068f, 0x0080 }, /* R1675 (0x68f) - OUT1RMIX Input 4 Volume */ + { 0x000006b0, 0x0000 }, /* R1712 (0x6b0) - OUT4LMIX Input 1 Source */ + { 0x000006b1, 0x0080 }, /* R1713 (0x6b1) - OUT4LMIX Input 1 Volume */ + { 0x000006b2, 0x0000 }, /* R1714 (0x6b2) - OUT4LMIX Input 2 Source */ + { 0x000006b3, 0x0080 }, /* R1715 (0x6b3) - OUT4LMIX Input 2 Volume */ + { 0x000006b4, 0x0000 }, /* R1716 (0x6b4) - OUT4LMIX Input 3 Source */ + { 0x000006b5, 0x0080 }, /* R1717 (0x6b5) - OUT4LMIX Input 3 Volume */ + { 0x000006b6, 0x0000 }, /* R1718 (0x6b6) - OUT4LMIX Input 4 Source */ + { 0x000006b7, 0x0080 }, /* R1719 (0x6b7) - OUT4LMIX Input 4 Volume */ + { 0x000006c0, 0x0000 }, /* R1728 (0x6c0) - OUT5LMIX Input 1 Source */ + { 0x000006c1, 0x0080 }, /* R1729 (0x6c1) - OUT5LMIX Input 1 Volume */ + { 0x000006c2, 0x0000 }, /* R1730 (0x6c2) - OUT5LMIX Input 2 Source */ + { 0x000006c3, 0x0080 }, /* R1731 (0x6c3) - OUT5LMIX Input 2 Volume */ + { 0x000006c4, 0x0000 }, /* R1732 (0x6c4) - OUT5LMIX Input 3 Source */ + { 0x000006c5, 0x0080 }, /* R1733 (0x6c5) - OUT5LMIX Input 3 Volume */ + { 0x000006c6, 0x0000 }, /* R1734 (0x6c6) - OUT5LMIX Input 4 Source */ + { 0x000006c7, 0x0080 }, /* R1735 (0x6c7) - OUT5LMIX Input 4 Volume */ + { 0x000006c8, 0x0000 }, /* R1736 (0x6c8) - OUT5RMIX Input 1 Source */ + { 0x000006c9, 0x0080 }, /* R1737 (0x6c9) - OUT5RMIX Input 1 Volume */ + { 0x000006ca, 0x0000 }, /* R1738 (0x6ca) - OUT5RMIX Input 2 Source */ + { 0x000006cb, 0x0080 }, /* R1739 (0x6cb) - OUT5RMIX Input 2 Volume */ + { 0x000006cc, 0x0000 }, /* R1740 (0x6cc) - OUT5RMIX Input 3 Source */ + { 0x000006cd, 0x0080 }, /* R1741 (0x6cd) - OUT5RMIX Input 3 Volume */ + { 0x000006ce, 0x0000 }, /* R1742 (0x6ce) - OUT5RMIX Input 4 Source */ + { 0x000006cf, 0x0080 }, /* R1743 (0x6cf) - OUT5RMIX Input 4 Volume */ + { 0x00000700, 0x0000 }, /* R1792 (0x700) - AIF1TX1MIX Input 1 Source */ + { 0x00000701, 0x0080 }, /* R1793 (0x701) - AIF1TX1MIX Input 1 Volume */ + { 0x00000702, 0x0000 }, /* R1794 (0x702) - AIF1TX1MIX Input 2 Source */ + { 0x00000703, 0x0080 }, /* R1795 (0x703) - AIF1TX1MIX Input 2 Volume */ + { 0x00000704, 0x0000 }, /* R1796 (0x704) - AIF1TX1MIX Input 3 Source */ + { 0x00000705, 0x0080 }, /* R1797 (0x705) - AIF1TX1MIX Input 3 Volume */ + { 0x00000706, 0x0000 }, /* R1798 (0x706) - AIF1TX1MIX Input 4 Source */ + { 0x00000707, 0x0080 }, /* R1799 (0x707) - AIF1TX1MIX Input 4 Volume */ + { 0x00000708, 0x0000 }, /* R1800 (0x708) - AIF1TX2MIX Input 1 Source */ + { 0x00000709, 0x0080 }, /* R1801 (0x709) - AIF1TX2MIX Input 1 Volume */ + { 0x0000070a, 0x0000 }, /* R1802 (0x70a) - AIF1TX2MIX Input 2 Source */ + { 0x0000070b, 0x0080 }, /* R1803 (0x70b) - AIF1TX2MIX Input 2 Volume */ + { 0x0000070c, 0x0000 }, /* R1804 (0x70c) - AIF1TX2MIX Input 3 Source */ + { 0x0000070d, 0x0080 }, /* R1805 (0x70d) - AIF1TX2MIX Input 3 Volume */ + { 0x0000070e, 0x0000 }, /* R1806 (0x70e) - AIF1TX2MIX Input 4 Source */ + { 0x0000070f, 0x0080 }, /* R1807 (0x70f) - AIF1TX2MIX Input 4 Volume */ + { 0x00000710, 0x0000 }, /* R1808 (0x710) - AIF1TX3MIX Input 1 Source */ + { 0x00000711, 0x0080 }, /* R1809 (0x711) - AIF1TX3MIX Input 1 Volume */ + { 0x00000712, 0x0000 }, /* R1810 (0x712) - AIF1TX3MIX Input 2 Source */ + { 0x00000713, 0x0080 }, /* R1811 (0x713) - AIF1TX3MIX Input 2 Volume */ + { 0x00000714, 0x0000 }, /* R1812 (0x714) - AIF1TX3MIX Input 3 Source */ + { 0x00000715, 0x0080 }, /* R1813 (0x715) - AIF1TX3MIX Input 3 Volume */ + { 0x00000716, 0x0000 }, /* R1814 (0x716) - AIF1TX3MIX Input 4 Source */ + { 0x00000717, 0x0080 }, /* R1815 (0x717) - AIF1TX3MIX Input 4 Volume */ + { 0x00000718, 0x0000 }, /* R1816 (0x718) - AIF1TX4MIX Input 1 Source */ + { 0x00000719, 0x0080 }, /* R1817 (0x719) - AIF1TX4MIX Input 1 Volume */ + { 0x0000071a, 0x0000 }, /* R1818 (0x71a) - AIF1TX4MIX Input 2 Source */ + { 0x0000071b, 0x0080 }, /* R1819 (0x71b) - AIF1TX4MIX Input 2 Volume */ + { 0x0000071c, 0x0000 }, /* R1820 (0x71c) - AIF1TX4MIX Input 3 Source */ + { 0x0000071d, 0x0080 }, /* R1821 (0x71d) - AIF1TX4MIX Input 3 Volume */ + { 0x0000071e, 0x0000 }, /* R1822 (0x71e) - AIF1TX4MIX Input 4 Source */ + { 0x0000071f, 0x0080 }, /* R1823 (0x71f) - AIF1TX4MIX Input 4 Volume */ + { 0x00000720, 0x0000 }, /* R1824 (0x720) - AIF1TX5MIX Input 1 Source */ + { 0x00000721, 0x0080 }, /* R1825 (0x721) - AIF1TX5MIX Input 1 Volume */ + { 0x00000722, 0x0000 }, /* R1826 (0x722) - AIF1TX5MIX Input 2 Source */ + { 0x00000723, 0x0080 }, /* R1827 (0x723) - AIF1TX5MIX Input 2 Volume */ + { 0x00000724, 0x0000 }, /* R1828 (0x724) - AIF1TX5MIX Input 3 Source */ + { 0x00000725, 0x0080 }, /* R1829 (0x725) - AIF1TX5MIX Input 3 Volume */ + { 0x00000726, 0x0000 }, /* R1830 (0x726) - AIF1TX5MIX Input 4 Source */ + { 0x00000727, 0x0080 }, /* R1831 (0x727) - AIF1TX5MIX Input 4 Volume */ + { 0x00000728, 0x0000 }, /* R1832 (0x728) - AIF1TX6MIX Input 1 Source */ + { 0x00000729, 0x0080 }, /* R1833 (0x729) - AIF1TX6MIX Input 1 Volume */ + { 0x0000072a, 0x0000 }, /* R1834 (0x72a) - AIF1TX6MIX Input 2 Source */ + { 0x0000072b, 0x0080 }, /* R1835 (0x72b) - AIF1TX6MIX Input 2 Volume */ + { 0x0000072c, 0x0000 }, /* R1836 (0x72c) - AIF1TX6MIX Input 3 Source */ + { 0x0000072d, 0x0080 }, /* R1837 (0x72d) - AIF1TX6MIX Input 3 Volume */ + { 0x0000072e, 0x0000 }, /* R1838 (0x72e) - AIF1TX6MIX Input 4 Source */ + { 0x0000072f, 0x0080 }, /* R1839 (0x72f) - AIF1TX6MIX Input 4 Volume */ + { 0x00000740, 0x0000 }, /* R1856 (0x740) - AIF2TX1MIX Input 1 Source */ + { 0x00000741, 0x0080 }, /* R1857 (0x741) - AIF2TX1MIX Input 1 Volume */ + { 0x00000742, 0x0000 }, /* R1858 (0x742) - AIF2TX1MIX Input 2 Source */ + { 0x00000743, 0x0080 }, /* R1859 (0x743) - AIF2TX1MIX Input 2 Volume */ + { 0x00000744, 0x0000 }, /* R1860 (0x744) - AIF2TX1MIX Input 3 Source */ + { 0x00000745, 0x0080 }, /* R1861 (0x745) - AIF2TX1MIX Input 3 Volume */ + { 0x00000746, 0x0000 }, /* R1862 (0x746) - AIF2TX1MIX Input 4 Source */ + { 0x00000747, 0x0080 }, /* R1863 (0x747) - AIF2TX1MIX Input 4 Volume */ + { 0x00000748, 0x0000 }, /* R1864 (0x748) - AIF2TX2MIX Input 1 Source */ + { 0x00000749, 0x0080 }, /* R1865 (0x749) - AIF2TX2MIX Input 1 Volume */ + { 0x0000074a, 0x0000 }, /* R1866 (0x74a) - AIF2TX2MIX Input 2 Source */ + { 0x0000074b, 0x0080 }, /* R1867 (0x74b) - AIF2TX2MIX Input 2 Volume */ + { 0x0000074c, 0x0000 }, /* R1868 (0x74c) - AIF2TX2MIX Input 3 Source */ + { 0x0000074d, 0x0080 }, /* R1869 (0x74d) - AIF2TX2MIX Input 3 Volume */ + { 0x0000074e, 0x0000 }, /* R1870 (0x74e) - AIF2TX2MIX Input 4 Source */ + { 0x0000074f, 0x0080 }, /* R1871 (0x74f) - AIF2TX2MIX Input 4 Volume */ + { 0x00000780, 0x0000 }, /* R1920 (0x780) - AIF3TX1MIX Input 1 Source */ + { 0x00000781, 0x0080 }, /* R1921 (0x781) - AIF3TX1MIX Input 1 Volume */ + { 0x00000782, 0x0000 }, /* R1922 (0x782) - AIF3TX1MIX Input 2 Source */ + { 0x00000783, 0x0080 }, /* R1923 (0x783) - AIF3TX1MIX Input 2 Volume */ + { 0x00000784, 0x0000 }, /* R1924 (0x784) - AIF3TX1MIX Input 3 Source */ + { 0x00000785, 0x0080 }, /* R1925 (0x785) - AIF3TX1MIX Input 3 Volume */ + { 0x00000786, 0x0000 }, /* R1926 (0x786) - AIF3TX1MIX Input 4 Source */ + { 0x00000787, 0x0080 }, /* R1927 (0x787) - AIF3TX1MIX Input 4 Volume */ + { 0x00000788, 0x0000 }, /* R1928 (0x788) - AIF3TX2MIX Input 1 Source */ + { 0x00000789, 0x0080 }, /* R1929 (0x789) - AIF3TX2MIX Input 1 Volume */ + { 0x0000078a, 0x0000 }, /* R1930 (0x78a) - AIF3TX2MIX Input 2 Source */ + { 0x0000078b, 0x0080 }, /* R1931 (0x78b) - AIF3TX2MIX Input 2 Volume */ + { 0x0000078c, 0x0000 }, /* R1932 (0x78c) - AIF3TX2MIX Input 3 Source */ + { 0x0000078d, 0x0080 }, /* R1933 (0x78d) - AIF3TX2MIX Input 3 Volume */ + { 0x0000078e, 0x0000 }, /* R1934 (0x78e) - AIF3TX2MIX Input 4 Source */ + { 0x0000078f, 0x0080 }, /* R1935 (0x78f) - AIF3TX2MIX Input 4 Volume */ + { 0x000007c0, 0x0000 }, /* R1984 (0x7c0) - SLIMTX1MIX Input 1 Source */ + { 0x000007c1, 0x0080 }, /* R1985 (0x7c1) - SLIMTX1MIX Input 1 Volume */ + { 0x000007c2, 0x0000 }, /* R1986 (0x7c2) - SLIMTX1MIX Input 2 Source */ + { 0x000007c3, 0x0080 }, /* R1987 (0x7c3) - SLIMTX1MIX Input 2 Volume */ + { 0x000007c4, 0x0000 }, /* R1988 (0x7c4) - SLIMTX1MIX Input 3 Source */ + { 0x000007c5, 0x0080 }, /* R1989 (0x7c5) - SLIMTX1MIX Input 3 Volume */ + { 0x000007c6, 0x0000 }, /* R1990 (0x7c6) - SLIMTX1MIX Input 4 Source */ + { 0x000007c7, 0x0080 }, /* R1991 (0x7c7) - SLIMTX1MIX Input 4 Volume */ + { 0x000007c8, 0x0000 }, /* R1992 (0x7c8) - SLIMTX2MIX Input 1 Source */ + { 0x000007c9, 0x0080 }, /* R1993 (0x7c9) - SLIMTX2MIX Input 1 Volume */ + { 0x000007ca, 0x0000 }, /* R1994 (0x7ca) - SLIMTX2MIX Input 2 Source */ + { 0x000007cb, 0x0080 }, /* R1995 (0x7cb) - SLIMTX2MIX Input 2 Volume */ + { 0x000007cc, 0x0000 }, /* R1996 (0x7cc) - SLIMTX2MIX Input 3 Source */ + { 0x000007cd, 0x0080 }, /* R1997 (0x7cd) - SLIMTX2MIX Input 3 Volume */ + { 0x000007ce, 0x0000 }, /* R1998 (0x7ce) - SLIMTX2MIX Input 4 Source */ + { 0x000007cf, 0x0080 }, /* R1999 (0x7cf) - SLIMTX2MIX Input 4 Volume */ + { 0x000007d0, 0x0000 }, /* R2000 (0x7d0) - SLIMTX3MIX Input 1 Source */ + { 0x000007d1, 0x0080 }, /* R2001 (0x7d1) - SLIMTX3MIX Input 1 Volume */ + { 0x000007d2, 0x0000 }, /* R2002 (0x7d2) - SLIMTX3MIX Input 2 Source */ + { 0x000007d3, 0x0080 }, /* R2003 (0x7d3) - SLIMTX3MIX Input 2 Volume */ + { 0x000007d4, 0x0000 }, /* R2004 (0x7d4) - SLIMTX3MIX Input 3 Source */ + { 0x000007d5, 0x0080 }, /* R2005 (0x7d5) - SLIMTX3MIX Input 3 Volume */ + { 0x000007d6, 0x0000 }, /* R2006 (0x7d6) - SLIMTX3MIX Input 4 Source */ + { 0x000007d7, 0x0080 }, /* R2007 (0x7d7) - SLIMTX3MIX Input 4 Volume */ + { 0x000007d8, 0x0000 }, /* R2008 (0x7d8) - SLIMTX4MIX Input 1 Source */ + { 0x000007d9, 0x0080 }, /* R2009 (0x7d9) - SLIMTX4MIX Input 1 Volume */ + { 0x000007da, 0x0000 }, /* R2010 (0x7da) - SLIMTX4MIX Input 2 Source */ + { 0x000007db, 0x0080 }, /* R2011 (0x7db) - SLIMTX4MIX Input 2 Volume */ + { 0x000007dc, 0x0000 }, /* R2012 (0x7dc) - SLIMTX4MIX Input 3 Source */ + { 0x000007dd, 0x0080 }, /* R2013 (0x7dd) - SLIMTX4MIX Input 3 Volume */ + { 0x000007de, 0x0000 }, /* R2014 (0x7de) - SLIMTX4MIX Input 4 Source */ + { 0x000007df, 0x0080 }, /* R2015 (0x7df) - SLIMTX4MIX Input 4 Volume */ + { 0x000007e0, 0x0000 }, /* R2016 (0x7e0) - SLIMTX5MIX Input 1 Source */ + { 0x000007e1, 0x0080 }, /* R2017 (0x7e1) - SLIMTX5MIX Input 1 Volume */ + { 0x000007e2, 0x0000 }, /* R2018 (0x7e2) - SLIMTX5MIX Input 2 Source */ + { 0x000007e3, 0x0080 }, /* R2019 (0x7e3) - SLIMTX5MIX Input 2 Volume */ + { 0x000007e4, 0x0000 }, /* R2020 (0x7e4) - SLIMTX5MIX Input 3 Source */ + { 0x000007e5, 0x0080 }, /* R2021 (0x7e5) - SLIMTX5MIX Input 3 Volume */ + { 0x000007e6, 0x0000 }, /* R2022 (0x7e6) - SLIMTX5MIX Input 4 Source */ + { 0x000007e7, 0x0080 }, /* R2023 (0x7e7) - SLIMTX5MIX Input 4 Volume */ + { 0x000007e8, 0x0000 }, /* R2024 (0x7e8) - SLIMTX6MIX Input 1 Source */ + { 0x000007e9, 0x0080 }, /* R2025 (0x7e9) - SLIMTX6MIX Input 1 Volume */ + { 0x000007ea, 0x0000 }, /* R2026 (0x7ea) - SLIMTX6MIX Input 2 Source */ + { 0x000007eb, 0x0080 }, /* R2027 (0x7eb) - SLIMTX6MIX Input 2 Volume */ + { 0x000007ec, 0x0000 }, /* R2028 (0x7ec) - SLIMTX6MIX Input 3 Source */ + { 0x000007ed, 0x0080 }, /* R2029 (0x7ed) - SLIMTX6MIX Input 3 Volume */ + { 0x000007ee, 0x0000 }, /* R2030 (0x7ee) - SLIMTX6MIX Input 4 Source */ + { 0x000007ef, 0x0080 }, /* R2031 (0x7ef) - SLIMTX6MIX Input 4 Volume */ + { 0x00000800, 0x0000 }, /* R2048 (0x800) - SPDIF1TX1MIX Input 1 Source*/ + { 0x00000801, 0x0080 }, /* R2049 (0x801) - SPDIF1TX1MIX Input 1 Volume*/ + { 0x00000808, 0x0000 }, /* R2056 (0x808) - SPDIF1TX2MIX Input 1 Source*/ + { 0x00000809, 0x0080 }, /* R2057 (0x809) - SPDIF1TX2MIX Input 1 Volume*/ + { 0x00000880, 0x0000 }, /* R2176 (0x880) - EQ1MIX Input 1 Source */ + { 0x00000881, 0x0080 }, /* R2177 (0x881) - EQ1MIX Input 1 Volume */ + { 0x00000882, 0x0000 }, /* R2178 (0x882) - EQ1MIX Input 2 Source */ + { 0x00000883, 0x0080 }, /* R2179 (0x883) - EQ1MIX Input 2 Volume */ + { 0x00000884, 0x0000 }, /* R2180 (0x884) - EQ1MIX Input 3 Source */ + { 0x00000885, 0x0080 }, /* R2181 (0x885) - EQ1MIX Input 3 Volume */ + { 0x00000886, 0x0000 }, /* R2182 (0x886) - EQ1MIX Input 4 Source */ + { 0x00000887, 0x0080 }, /* R2183 (0x887) - EQ1MIX Input 4 Volume */ + { 0x00000888, 0x0000 }, /* R2184 (0x888) - EQ2MIX Input 1 Source */ + { 0x00000889, 0x0080 }, /* R2185 (0x889) - EQ2MIX Input 1 Volume */ + { 0x0000088a, 0x0000 }, /* R2186 (0x88a) - EQ2MIX Input 2 Source */ + { 0x0000088b, 0x0080 }, /* R2187 (0x88b) - EQ2MIX Input 2 Volume */ + { 0x0000088c, 0x0000 }, /* R2188 (0x88c) - EQ2MIX Input 3 Source */ + { 0x0000088d, 0x0080 }, /* R2189 (0x88d) - EQ2MIX Input 3 Volume */ + { 0x0000088e, 0x0000 }, /* R2190 (0x88e) - EQ2MIX Input 4 Source */ + { 0x0000088f, 0x0080 }, /* R2191 (0x88f) - EQ2MIX Input 4 Volume */ + { 0x00000890, 0x0000 }, /* R2192 (0x890) - EQ3MIX Input 1 Source */ + { 0x00000891, 0x0080 }, /* R2193 (0x891) - EQ3MIX Input 1 Volume */ + { 0x00000892, 0x0000 }, /* R2194 (0x892) - EQ3MIX Input 2 Source */ + { 0x00000893, 0x0080 }, /* R2195 (0x893) - EQ3MIX Input 2 Volume */ + { 0x00000894, 0x0000 }, /* R2196 (0x894) - EQ3MIX Input 3 Source */ + { 0x00000895, 0x0080 }, /* R2197 (0x895) - EQ3MIX Input 3 Volume */ + { 0x00000896, 0x0000 }, /* R2198 (0x896) - EQ3MIX Input 4 Source */ + { 0x00000897, 0x0080 }, /* R2199 (0x897) - EQ3MIX Input 4 Volume */ + { 0x00000898, 0x0000 }, /* R2200 (0x898) - EQ4MIX Input 1 Source */ + { 0x00000899, 0x0080 }, /* R2201 (0x899) - EQ4MIX Input 1 Volume */ + { 0x0000089a, 0x0000 }, /* R2202 (0x89a) - EQ4MIX Input 2 Source */ + { 0x0000089b, 0x0080 }, /* R2203 (0x89b) - EQ4MIX Input 2 Volume */ + { 0x0000089c, 0x0000 }, /* R2204 (0x89c) - EQ4MIX Input 3 Source */ + { 0x0000089d, 0x0080 }, /* R2205 (0x89d) - EQ4MIX Input 3 Volume */ + { 0x0000089e, 0x0000 }, /* R2206 (0x89e) - EQ4MIX Input 4 Source */ + { 0x0000089f, 0x0080 }, /* R2207 (0x89f) - EQ4MIX Input 4 Volume */ + { 0x000008c0, 0x0000 }, /* R2240 (0x8c0) - DRC1LMIX Input 1 Source */ + { 0x000008c1, 0x0080 }, /* R2241 (0x8c1) - DRC1LMIX Input 1 Volume */ + { 0x000008c2, 0x0000 }, /* R2242 (0x8c2) - DRC1LMIX Input 2 Source */ + { 0x000008c3, 0x0080 }, /* R2243 (0x8c3) - DRC1LMIX Input 2 Volume */ + { 0x000008c4, 0x0000 }, /* R2244 (0x8c4) - DRC1LMIX Input 3 Source */ + { 0x000008c5, 0x0080 }, /* R2245 (0x8c5) - DRC1LMIX Input 3 Volume */ + { 0x000008c6, 0x0000 }, /* R2246 (0x8c6) - DRC1LMIX Input 4 Source */ + { 0x000008c7, 0x0080 }, /* R2247 (0x8c7) - DRC1LMIX Input