Loading Documentation/devicetree/bindings/sound/da7219.txt 0 → 100644 +106 −0 Original line number Diff line number Diff line Dialog Semiconductor DA7219 Audio Codec bindings DA7219 is an audio codec with advanced accessory detect features. ====== Required properties: - compatible : Should be "dlg,da7219" - reg: Specifies the I2C slave address - interrupt-parent : Specifies the phandle of the interrupt controller to which the IRQs from DA7219 are delivered to. - interrupts : IRQ line info for DA7219. (See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for further information relating to interrupt properties) - VDD-supply: VDD power supply for the device - VDDMIC-supply: VDDMIC power supply for the device - VDDIO-supply: VDDIO power supply for the device (See Documentation/devicetree/bindings/regulator/regulator.txt for further information relating to regulators) Optional properties: - interrupt-names : Name associated with interrupt line. Should be "wakeup" if interrupt is to be used to wake system, otherwise "irq" should be used. - wakeup-source: Flag to indicate this device can wake system (suspend/resume). - clocks : phandle and clock specifier for codec MCLK. - clock-names : Clock name string for 'clocks' attribute, should be "mclk". - dlg,ldo-lvl : Required internal LDO voltage (mV) level for digital engine [<1050>, <1100>, <1200>, <1400>] - dlg,micbias-lvl : Voltage (mV) for Mic Bias [<1800>, <2000>, <2200>, <2400>, <2600>] - dlg,mic-amp-in-sel : Mic input source type ["diff", "se_p", "se_n"] ====== Child node - 'da7219_aad': Optional properties: - dlg,micbias-pulse-lvl : Mic bias higher voltage pulse level (mV). [<2800>, <2900>] - dlg,micbias-pulse-time : Mic bias higher voltage pulse duration (ms) - dlg,btn-cfg : Periodic button press measurements for 4-pole jack (ms) [<2>, <5>, <10>, <50>, <100>, <200>, <500>] - dlg,mic-det-thr : Impedance threshold for mic detection measurement (Ohms) [<200>, <500>, <750>, <1000>] - dlg,jack-ins-deb : Debounce time for jack insertion (ms) [<5>, <10>, <20>, <50>, <100>, <200>, <500>, <1000>] - dlg,jack-det-rate: Jack type detection latency (3/4 pole) ["32ms_64ms", "64ms_128ms", "128ms_256ms", "256ms_512ms"] - dlg,jack-rem-deb : Debounce time for jack removal (ms) [<1>, <5>, <10>, <20>] - dlg,a-d-btn-thr : Impedance threshold between buttons A and D [0x0 - 0xFF] - dlg,d-b-btn-thr : Impedance threshold between buttons D and B [0x0 - 0xFF] - dlg,b-c-btn-thr : Impedance threshold between buttons B and C [0x0 - 0xFF] - dlg,c-mic-btn-thr : Impedance threshold between button C and Mic [0x0 - 0xFF] - dlg,btn-avg : Number of 8-bit readings for averaged button measurement [<1>, <2>, <4>, <8>] - dlg,adc-1bit-rpt : Repeat count for 1-bit button measurement [<1>, <2>, <4>, <8>] ====== Example: codec: da7219@1a { compatible = "dlg,da7219"; reg = <0x1a>; interrupt-parent = <&gpio6>; interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; VDD-supply = <®_audio>; VDDMIC-supply = <®_audio>; VDDIO-supply = <®_audio>; clocks = <&clks 201>; clock-names = "mclk"; dlg,ldo-lvl = <1200>; dlg,micbias-lvl = <2600>; dlg,mic-amp-in-sel = "diff"; da7219_aad { dlg,btn-cfg = <50>; dlg,mic-det-thr = <500>; dlg,jack-ins-deb = <20>; dlg,jack-det-rate = "32ms_64ms"; dlg,jack-rem-deb = <1>; dlg,a-d-btn-thr = <0xa>; dlg,d-b-btn-thr = <0x16>; dlg,b-c-btn-thr = <0x21>; dlg,c-mic-btn-thr = <0x3E>; dlg,btn-avg = <4>; dlg,adc-1bit-rpt = <1>; }; }; MAINTAINERS +1 −0 Original line number Diff line number Diff line Loading @@ -3368,6 +3368,7 @@ M: Support Opensource <support.opensource@diasemi.com> W: http://www.dialog-semiconductor.com/products S: Supported F: Documentation/hwmon/da90?? F: Documentation/devicetree/bindings/sound/da[79]*.txt F: drivers/gpio/gpio-da90??.c F: drivers/hwmon/da90??-hwmon.c F: drivers/iio/adc/da91??-*.c Loading include/sound/da7219-aad.h 0 → 100644 +99 −0 Original line number Diff line number Diff line /* * da7219-aad.h - DA7322 ASoC Codec AAD Driver Platform Data * * Copyright (c) 2015 Dialog Semiconductor Ltd. * * Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */ #ifndef __DA7219_AAD_PDATA_H #define __DA7219_AAD_PDATA_H enum da7219_aad_micbias_pulse_lvl { DA7219_AAD_MICBIAS_PULSE_LVL_OFF = 0, DA7219_AAD_MICBIAS_PULSE_LVL_2_8V = 6, DA7219_AAD_MICBIAS_PULSE_LVL_2_9V, }; enum da7219_aad_btn_cfg { DA7219_AAD_BTN_CFG_2MS = 1, DA7219_AAD_BTN_CFG_5MS, DA7219_AAD_BTN_CFG_10MS, DA7219_AAD_BTN_CFG_50MS, DA7219_AAD_BTN_CFG_100MS, DA7219_AAD_BTN_CFG_200MS, DA7219_AAD_BTN_CFG_500MS, }; enum da7219_aad_mic_det_thr { DA7219_AAD_MIC_DET_THR_200_OHMS = 0, DA7219_AAD_MIC_DET_THR_500_OHMS, DA7219_AAD_MIC_DET_THR_750_OHMS, DA7219_AAD_MIC_DET_THR_1000_OHMS, }; enum da7219_aad_jack_ins_deb { DA7219_AAD_JACK_INS_DEB_5MS = 0, DA7219_AAD_JACK_INS_DEB_10MS, DA7219_AAD_JACK_INS_DEB_20MS, DA7219_AAD_JACK_INS_DEB_50MS, DA7219_AAD_JACK_INS_DEB_100MS, DA7219_AAD_JACK_INS_DEB_200MS, DA7219_AAD_JACK_INS_DEB_500MS, DA7219_AAD_JACK_INS_DEB_1S, }; enum da7219_aad_jack_det_rate { DA7219_AAD_JACK_DET_RATE_32_64MS = 0, DA7219_AAD_JACK_DET_RATE_64_128MS, DA7219_AAD_JACK_DET_RATE_128_256MS, DA7219_AAD_JACK_DET_RATE_256_512MS, }; enum da7219_aad_jack_rem_deb { DA7219_AAD_JACK_REM_DEB_1MS = 0, DA7219_AAD_JACK_REM_DEB_5MS, DA7219_AAD_JACK_REM_DEB_10MS, DA7219_AAD_JACK_REM_DEB_20MS, }; enum da7219_aad_btn_avg { DA7219_AAD_BTN_AVG_1 = 0, DA7219_AAD_BTN_AVG_2, DA7219_AAD_BTN_AVG_4, DA7219_AAD_BTN_AVG_8, }; enum da7219_aad_adc_1bit_rpt { DA7219_AAD_ADC_1BIT_RPT_1 = 0, DA7219_AAD_ADC_1BIT_RPT_2, DA7219_AAD_ADC_1BIT_RPT_4, DA7219_AAD_ADC_1BIT_RPT_8, }; struct da7219_aad_pdata { int irq; enum da7219_aad_micbias_pulse_lvl micbias_pulse_lvl; u32 micbias_pulse_time; enum da7219_aad_btn_cfg btn_cfg; enum da7219_aad_mic_det_thr mic_det_thr; enum da7219_aad_jack_ins_deb jack_ins_deb; enum da7219_aad_jack_det_rate jack_det_rate; enum da7219_aad_jack_rem_deb jack_rem_deb; u8 a_d_btn_thr; u8 d_b_btn_thr; u8 b_c_btn_thr; u8 c_mic_btn_thr; enum da7219_aad_btn_avg btn_avg; enum da7219_aad_adc_1bit_rpt adc_1bit_rpt; }; #endif /* __DA7219_AAD_PDATA_H */ include/sound/da7219.h 0 → 100644 +55 −0 Original line number Diff line number Diff line /* * da7219.h - DA7219 ASoC Codec Driver Platform Data * * Copyright (c) 2015 Dialog Semiconductor * * Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */ #ifndef __DA7219_PDATA_H #define __DA7219_PDATA_H /* LDO */ enum da7219_ldo_lvl_sel { DA7219_LDO_LVL_SEL_1_05V = 0, DA7219_LDO_LVL_SEL_1_10V, DA7219_LDO_LVL_SEL_1_20V, DA7219_LDO_LVL_SEL_1_40V, }; /* Mic Bias */ enum da7219_micbias_voltage { DA7219_MICBIAS_1_8V = 1, DA7219_MICBIAS_2_0V, DA7219_MICBIAS_2_2V, DA7219_MICBIAS_2_4V, DA7219_MICBIAS_2_6V, }; /* Mic input type */ enum da7219_mic_amp_in_sel { DA7219_MIC_AMP_IN_SEL_DIFF = 0, DA7219_MIC_AMP_IN_SEL_SE_P, DA7219_MIC_AMP_IN_SEL_SE_N, }; struct da7219_aad_pdata; struct da7219_pdata { /* Internal LDO */ enum da7219_ldo_lvl_sel ldo_lvl_sel; /* Mic */ enum da7219_micbias_voltage micbias_lvl; enum da7219_mic_amp_in_sel mic_amp_in_sel; /* AAD */ struct da7219_aad_pdata *aad_pdata; }; #endif /* __DA7219_PDATA_H */ include/sound/soc.h +7 −0 Original line number Diff line number Diff line Loading @@ -217,6 +217,13 @@ .get = xhandler_get, .put = xhandler_put, \ .private_value = \ SOC_DOUBLE_VALUE(reg, shift_left, shift_right, max, invert, 0) } #define SOC_DOUBLE_R_EXT(xname, reg_left, reg_right, xshift, xmax, xinvert,\ xhandler_get, xhandler_put) \ { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \ .info = snd_soc_info_volsw, \ .get = xhandler_get, .put = xhandler_put, \ .private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \ xmax, xinvert) } #define SOC_SINGLE_EXT_TLV(xname, xreg, xshift, xmax, xinvert,\ xhandler_get, xhandler_put, tlv_array) \ { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \ Loading Loading
Documentation/devicetree/bindings/sound/da7219.txt 0 → 100644 +106 −0 Original line number Diff line number Diff line Dialog Semiconductor DA7219 Audio Codec bindings DA7219 is an audio codec with advanced accessory detect features. ====== Required properties: - compatible : Should be "dlg,da7219" - reg: Specifies the I2C slave address - interrupt-parent : Specifies the phandle of the interrupt controller to which the IRQs from DA7219 are delivered to. - interrupts : IRQ line info for DA7219. (See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for further information relating to interrupt properties) - VDD-supply: VDD power supply for the device - VDDMIC-supply: VDDMIC power supply for the device - VDDIO-supply: VDDIO power supply for the device (See Documentation/devicetree/bindings/regulator/regulator.txt for further information relating to regulators) Optional properties: - interrupt-names : Name associated with interrupt line. Should be "wakeup" if interrupt is to be used to wake system, otherwise "irq" should be used. - wakeup-source: Flag to indicate this device can wake system (suspend/resume). - clocks : phandle and clock specifier for codec MCLK. - clock-names : Clock name string for 'clocks' attribute, should be "mclk". - dlg,ldo-lvl : Required internal LDO voltage (mV) level for digital engine [<1050>, <1100>, <1200>, <1400>] - dlg,micbias-lvl : Voltage (mV) for Mic Bias [<1800>, <2000>, <2200>, <2400>, <2600>] - dlg,mic-amp-in-sel : Mic input source type ["diff", "se_p", "se_n"] ====== Child node - 'da7219_aad': Optional properties: - dlg,micbias-pulse-lvl : Mic bias higher voltage pulse level (mV). [<2800>, <2900>] - dlg,micbias-pulse-time : Mic bias higher voltage pulse duration (ms) - dlg,btn-cfg : Periodic button press measurements for 4-pole jack (ms) [<2>, <5>, <10>, <50>, <100>, <200>, <500>] - dlg,mic-det-thr : Impedance threshold for mic detection measurement (Ohms) [<200>, <500>, <750>, <1000>] - dlg,jack-ins-deb : Debounce time for jack insertion (ms) [<5>, <10>, <20>, <50>, <100>, <200>, <500>, <1000>] - dlg,jack-det-rate: Jack type detection latency (3/4 pole) ["32ms_64ms", "64ms_128ms", "128ms_256ms", "256ms_512ms"] - dlg,jack-rem-deb : Debounce time for jack removal (ms) [<1>, <5>, <10>, <20>] - dlg,a-d-btn-thr : Impedance threshold between buttons A and D [0x0 - 0xFF] - dlg,d-b-btn-thr : Impedance threshold between buttons D and B [0x0 - 0xFF] - dlg,b-c-btn-thr : Impedance threshold between buttons B and C [0x0 - 0xFF] - dlg,c-mic-btn-thr : Impedance threshold between button C and Mic [0x0 - 0xFF] - dlg,btn-avg : Number of 8-bit readings for averaged button measurement [<1>, <2>, <4>, <8>] - dlg,adc-1bit-rpt : Repeat count for 1-bit button measurement [<1>, <2>, <4>, <8>] ====== Example: codec: da7219@1a { compatible = "dlg,da7219"; reg = <0x1a>; interrupt-parent = <&gpio6>; interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; VDD-supply = <®_audio>; VDDMIC-supply = <®_audio>; VDDIO-supply = <®_audio>; clocks = <&clks 201>; clock-names = "mclk"; dlg,ldo-lvl = <1200>; dlg,micbias-lvl = <2600>; dlg,mic-amp-in-sel = "diff"; da7219_aad { dlg,btn-cfg = <50>; dlg,mic-det-thr = <500>; dlg,jack-ins-deb = <20>; dlg,jack-det-rate = "32ms_64ms"; dlg,jack-rem-deb = <1>; dlg,a-d-btn-thr = <0xa>; dlg,d-b-btn-thr = <0x16>; dlg,b-c-btn-thr = <0x21>; dlg,c-mic-btn-thr = <0x3E>; dlg,btn-avg = <4>; dlg,adc-1bit-rpt = <1>; }; };
MAINTAINERS +1 −0 Original line number Diff line number Diff line Loading @@ -3368,6 +3368,7 @@ M: Support Opensource <support.opensource@diasemi.com> W: http://www.dialog-semiconductor.com/products S: Supported F: Documentation/hwmon/da90?? F: Documentation/devicetree/bindings/sound/da[79]*.txt F: drivers/gpio/gpio-da90??.c F: drivers/hwmon/da90??-hwmon.c F: drivers/iio/adc/da91??-*.c Loading
include/sound/da7219-aad.h 0 → 100644 +99 −0 Original line number Diff line number Diff line /* * da7219-aad.h - DA7322 ASoC Codec AAD Driver Platform Data * * Copyright (c) 2015 Dialog Semiconductor Ltd. * * Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */ #ifndef __DA7219_AAD_PDATA_H #define __DA7219_AAD_PDATA_H enum da7219_aad_micbias_pulse_lvl { DA7219_AAD_MICBIAS_PULSE_LVL_OFF = 0, DA7219_AAD_MICBIAS_PULSE_LVL_2_8V = 6, DA7219_AAD_MICBIAS_PULSE_LVL_2_9V, }; enum da7219_aad_btn_cfg { DA7219_AAD_BTN_CFG_2MS = 1, DA7219_AAD_BTN_CFG_5MS, DA7219_AAD_BTN_CFG_10MS, DA7219_AAD_BTN_CFG_50MS, DA7219_AAD_BTN_CFG_100MS, DA7219_AAD_BTN_CFG_200MS, DA7219_AAD_BTN_CFG_500MS, }; enum da7219_aad_mic_det_thr { DA7219_AAD_MIC_DET_THR_200_OHMS = 0, DA7219_AAD_MIC_DET_THR_500_OHMS, DA7219_AAD_MIC_DET_THR_750_OHMS, DA7219_AAD_MIC_DET_THR_1000_OHMS, }; enum da7219_aad_jack_ins_deb { DA7219_AAD_JACK_INS_DEB_5MS = 0, DA7219_AAD_JACK_INS_DEB_10MS, DA7219_AAD_JACK_INS_DEB_20MS, DA7219_AAD_JACK_INS_DEB_50MS, DA7219_AAD_JACK_INS_DEB_100MS, DA7219_AAD_JACK_INS_DEB_200MS, DA7219_AAD_JACK_INS_DEB_500MS, DA7219_AAD_JACK_INS_DEB_1S, }; enum da7219_aad_jack_det_rate { DA7219_AAD_JACK_DET_RATE_32_64MS = 0, DA7219_AAD_JACK_DET_RATE_64_128MS, DA7219_AAD_JACK_DET_RATE_128_256MS, DA7219_AAD_JACK_DET_RATE_256_512MS, }; enum da7219_aad_jack_rem_deb { DA7219_AAD_JACK_REM_DEB_1MS = 0, DA7219_AAD_JACK_REM_DEB_5MS, DA7219_AAD_JACK_REM_DEB_10MS, DA7219_AAD_JACK_REM_DEB_20MS, }; enum da7219_aad_btn_avg { DA7219_AAD_BTN_AVG_1 = 0, DA7219_AAD_BTN_AVG_2, DA7219_AAD_BTN_AVG_4, DA7219_AAD_BTN_AVG_8, }; enum da7219_aad_adc_1bit_rpt { DA7219_AAD_ADC_1BIT_RPT_1 = 0, DA7219_AAD_ADC_1BIT_RPT_2, DA7219_AAD_ADC_1BIT_RPT_4, DA7219_AAD_ADC_1BIT_RPT_8, }; struct da7219_aad_pdata { int irq; enum da7219_aad_micbias_pulse_lvl micbias_pulse_lvl; u32 micbias_pulse_time; enum da7219_aad_btn_cfg btn_cfg; enum da7219_aad_mic_det_thr mic_det_thr; enum da7219_aad_jack_ins_deb jack_ins_deb; enum da7219_aad_jack_det_rate jack_det_rate; enum da7219_aad_jack_rem_deb jack_rem_deb; u8 a_d_btn_thr; u8 d_b_btn_thr; u8 b_c_btn_thr; u8 c_mic_btn_thr; enum da7219_aad_btn_avg btn_avg; enum da7219_aad_adc_1bit_rpt adc_1bit_rpt; }; #endif /* __DA7219_AAD_PDATA_H */
include/sound/da7219.h 0 → 100644 +55 −0 Original line number Diff line number Diff line /* * da7219.h - DA7219 ASoC Codec Driver Platform Data * * Copyright (c) 2015 Dialog Semiconductor * * Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */ #ifndef __DA7219_PDATA_H #define __DA7219_PDATA_H /* LDO */ enum da7219_ldo_lvl_sel { DA7219_LDO_LVL_SEL_1_05V = 0, DA7219_LDO_LVL_SEL_1_10V, DA7219_LDO_LVL_SEL_1_20V, DA7219_LDO_LVL_SEL_1_40V, }; /* Mic Bias */ enum da7219_micbias_voltage { DA7219_MICBIAS_1_8V = 1, DA7219_MICBIAS_2_0V, DA7219_MICBIAS_2_2V, DA7219_MICBIAS_2_4V, DA7219_MICBIAS_2_6V, }; /* Mic input type */ enum da7219_mic_amp_in_sel { DA7219_MIC_AMP_IN_SEL_DIFF = 0, DA7219_MIC_AMP_IN_SEL_SE_P, DA7219_MIC_AMP_IN_SEL_SE_N, }; struct da7219_aad_pdata; struct da7219_pdata { /* Internal LDO */ enum da7219_ldo_lvl_sel ldo_lvl_sel; /* Mic */ enum da7219_micbias_voltage micbias_lvl; enum da7219_mic_amp_in_sel mic_amp_in_sel; /* AAD */ struct da7219_aad_pdata *aad_pdata; }; #endif /* __DA7219_PDATA_H */
include/sound/soc.h +7 −0 Original line number Diff line number Diff line Loading @@ -217,6 +217,13 @@ .get = xhandler_get, .put = xhandler_put, \ .private_value = \ SOC_DOUBLE_VALUE(reg, shift_left, shift_right, max, invert, 0) } #define SOC_DOUBLE_R_EXT(xname, reg_left, reg_right, xshift, xmax, xinvert,\ xhandler_get, xhandler_put) \ { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \ .info = snd_soc_info_volsw, \ .get = xhandler_get, .put = xhandler_put, \ .private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \ xmax, xinvert) } #define SOC_SINGLE_EXT_TLV(xname, xreg, xshift, xmax, xinvert,\ xhandler_get, xhandler_put, tlv_array) \ { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \ Loading