From patchwork Tue Nov 13 18:49:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Schulman X-Patchwork-Id: 10681379 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 59C8E109C for ; Tue, 13 Nov 2018 18:57:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B3042B373 for ; Tue, 13 Nov 2018 18:57:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3E2AF2B39A; Tue, 13 Nov 2018 18:57:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CC9AA2B373 for ; Tue, 13 Nov 2018 18:57:21 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 88F2F267A61; Tue, 13 Nov 2018 19:47:42 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 26E5A267AB1; Tue, 13 Nov 2018 19:47:39 +0100 (CET) Received: from mx0b-001ae601.pphosted.com (mx0a-001ae601.pphosted.com [67.231.149.25]) by alsa0.perex.cz (Postfix) with ESMTP id 21C4B267A61 for ; Tue, 13 Nov 2018 19:47:35 +0100 (CET) Received: from pps.filterd (m0077473.ppops.net [127.0.0.1]) by mx0a-001ae601.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id wADIlYE5007736; Tue, 13 Nov 2018 12:47:34 -0600 Authentication-Results: ppops.net; spf=permerror smtp.mailfrom=James.Schulman@cirrus.com Received: from mail4.cirrus.com ([87.246.98.35]) by mx0a-001ae601.pphosted.com with ESMTP id 2nnwm9wrwr-1; Tue, 13 Nov 2018 12:47:33 -0600 Received: from ex3.ad.cirrus.com (ex3.ad.cirrus.com [141.131.36.34]) by mail4.cirrus.com (Postfix) with ESMTP id 4F9BC611C8BD; Tue, 13 Nov 2018 12:50:49 -0600 (CST) Received: from localhost (141.131.38.212) by InternalRelay (141.131.36.34) with Microsoft SMTP Server id 14.3.408.0; Tue, 13 Nov 2018 12:47:31 -0600 From: James Schulman To: Date: Tue, 13 Nov 2018 12:49:17 -0600 Message-ID: <1542134957-2395-2-git-send-email-james.schulman@cirrus.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1542134957-2395-1-git-send-email-james.schulman@cirrus.com> References: <1542134957-2395-1-git-send-email-james.schulman@cirrus.com> MIME-Version: 1.0 X-Proofpoint-SPF-Result: permerror X-Proofpoint-SPF-Record: v=spf1 include:spf-001ae601.pphosted.com ip4:141.131.128.20 ip4:141.131.3.20 ip4:213.128.236.230 ip4:87.246.98.25 ip4:87.246.78.26 ip4:87.246.76.56 ip4:87.246.98.35 207.46.163.83 -all X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1811130170 Cc: mark.rutland@arm.com, lgirdwood@gmail.com, paul.handrigan@cirrus.com, robh+dt@kernel.org, broonie@kernel.org, charles.keepax@cirrus.com Subject: [alsa-devel] [PATCH 2/2] ASoC: cs35l36: Add device tree documentation for CS35L36 X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP Add device tree documentation for Cirrus Logic CS35L36 speaker amplifier Signed-off-by: James Schulman --- .../devicetree/bindings/sound/cs35l36.txt | 192 +++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/cs35l36.txt diff --git a/Documentation/devicetree/bindings/sound/cs35l36.txt b/Documentation/devicetree/bindings/sound/cs35l36.txt new file mode 100644 index 0000000..f3c2088 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/cs35l36.txt @@ -0,0 +1,192 @@ +CS35L36 Speaker Amplifier + +Required properties: + + - compatible : "cirrus,cs35l36" + + - reg : the I2C address of the device for I2C + + - VA-supply, VP-supply : power supplies for the device, + as covered in + Documentation/devicetree/bindings/regulator/regulator.txt. + +Optional properties: + - cirrus,sclk-force-output : Audio serial port SCLK force + output control. Forces the SCLK to continue to drive even + if no ASP_TXn channels are enabled. + + - cirrus,lrclk-force-output : Audio serial port LRCLK force + output control. Forces the LRCLK to continue to drive even + if no ASP_TXn channels are enabled. + + - cirrus,multi-amp-mode : Boolean to determine if there are more than + one amplifier in the system. If more than one it is best to Hi-Z the ASP + port to prevent bus contention on the output signal + + - cirrus,boost-ctl-millivolt : Boost Voltage Value. Configures the boost + converter's output voltage in mV. The range is from 2550mV to 12000mV with + increments of 50mV. + (Default) VP + + - cirrus,boost-ctl-select : Boost conerter control source selection. + Selects the source of the BST_CTL target VBST voltage for the boost + converter to generate. + 0x00 - Control Port Value + 0x01 - Class H Tracking (Default) + 0x10 - MultiDevice Sync Value + + - cirrus,boost-peak-milliamp : Boost-converter peak current limit in mA. + Configures the peak current by monitoring the current through the boost FET. + Range starts at 1600mA and goes to a maximum of 4500mA with increments of + 50mA. + (Default) 4.50 Amps + + - cirrus,amp-gain-zc : Boolean to determine if to use Amplifier gain-change + zero-cross + + - cirrus,amp-pcm-inv : Boolean to determine Amplifier will invert incoming + PCM data + + - cirrus,ldm-mode-select : Amplifier level-dependent muting enable mode selection. + Configures whether the amplifier level-dependent muting is enabled for the various + blocks when the selected audio source has been below the AMP_LDM_THLD for a period + of time configured by AMP_LDM_DELAY. Any and all bits can be set. + + 00000 - All level-dependent muting functionality disabled (Default) + xxxx1 - Amplifier level-dependent muting detection enabled (OUT+/-; switching) + xxx1x - Boost converter DCM detection enabled + xx1xx - VMON low power mode detection enabled + x1xxx - IMON low power mode detection enabled + 1xxxx - VP brownout prevention detection enabled + + - cirrus,pdm-ldm-exit : Boolean : Amplifier PDM mode digital volume ramp enable. + When AMP_PDM_MODE = 1 controls whether the digital volume soft ramp is enabled + or disabled when exiting a level-dependent muted condition. The AMP_RAMP_PDM_DN + control is used to control desired ramp rate. + + - cirrus,pdm-ldm-enter : Boolean: Amplifier PDM mode digital volume ramp enable. + When AMP_PDM_MODE = 1 controls whether the digital volume soft ramp is enabled + or disabled when entering a level-dependent muted condition. The AMP_RAMP_PDM_UP + control is used to control desired ramp rate. + + - cirrus,imon-pol-inv : Boolean to determine Amplifier will invert the + polarity of outbound IMON feedback data + + - cirrus,vmon-pol-inv : Boolean to determine Amplifier will invert the + polarity of outbound VMON feedback data + + - cirrus,pdm-channel-select : PDM Channel select. + 0x00 (Default) : Selects Channel A data when the PDM audio input is selected. + 0x01 : Selects Channel B data when the PDM audio input is selected + + - cirrus,weak-fet-disable : Boolean : The strength of the output drivers is + reduced when operating in a Weak-FET Drive Mode and must not be used to drive + a large load. + + - cirrus,classh-wk-fet-delay : Weak-FET entry delay. Controls the delay + (in ms) before the Class H algorithm switches to the weak-FET voltage + (after the audio falls and remains below the value specified in WKFET_AMP_THLD). + + 0 = 0ms + 1 = 5ms + 2 = 10ms + 3 = 50ms + 4 = 100ms (Default) + 5 = 200ms + 6 = 500ms + 7 = 1000ms + + - cirrus,classh-weak-fet-thld-millivolt : Weak-FET amplifier drive threshold. + Configures the signal threshold at which the PWM output stage enters + weak-FET operation. The range is 50mV to 700mV in 50mV increments. + + - cirrus,temp-warn-threshold : Amplifier overtemperature warning threshold. + Configures the threshold at which the overtemperature warning condition occurs. + When the threshold is met, the overtemperature warning attenuation is applied + and the TEMP_WARN_EINT interrupt status bit is set. + If TEMP_WARN_MASK = 0, INTb is asserted. + + 0 = 105C + 1 = 115C + 2 = 125C (Default) + 3 = 135C + +Optional properties for the "cirrus,vpbr-config" Sub-node + + - cirrus,vpbr-en : VBST brownout prevention enable. Configures whether the + VBST brownout prevention algorithm is enabled or disabled. + + 0 = VBST brownout prevention disabled (default) + 1 = VBST brownout prevention enabled + + See Section 7.31.1 VPBR Config for configuration options & further details + + - cirrus,vpbr-thld : Initial VPBR threshold. Configures the VP brownout + threshold voltage + + - cirrus,cirrus,vpbr-atk-rate : Attenuation attack step rate. Configures the + amount delay between consecutive volume attenuation steps when a brownout + condition is present and the VP brownout condition is in an attacking state. + + - cirrus,vpbr-atk-vol : VP brownout prevention step size. Configures the VP + brownout prevention attacking attenuation step size when operating in either + digital volume or analog gain modes. + + - cirrus,vpbr-max-attn : Maximum attenuation that the VP brownout prevention + can apply to the audio signal. + + - cirrus,vpbr-wait : Configures the delay time between a brownout condition + no longer being present and the VP brownout prevention entering an attenuation + release state. + + - cirrus,vpbr-rel-rate : Attenuation release step rate. Configures the delay + between consecutive volume attenuation release steps when a brownout condition + is not longer present and the VP brownout is in an attenuation release state. + + - cirrus,vpbr-mute-en : During the attack state, if the vpbr-max-attn value + is reached, the error condition still remains, and this bit is set, the audio + is muted. + +Example: + +cs35l36: cs35l36@40 { + compatible = "cirrus,cs35l36"; + reg = <0x40>; + VA-supply = <&dummy_vreg>; + VP-supply = <&dummy_vreg>; + reset-gpios = <&gpio0 54 0>; + interrupt-parent = <&gpio8>; + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; + + cirrus,boost-ind-nanohenry = <1000>; + cirrus,boost-ctl-millivolt = <10000>; + cirrus,boost-ctl-select = <0x00>; + cirrus,boost-peak-milliamp = <4500>; + cirrus,amp-gain-zc; + cirrus,ldm-mode-select = <0x01>; + cirrus,pdm-ldm-exit; + cirrus,pdm-ldm-enter; + cirrus,weak-fet-delay = <0x04>; + cirrus,weak-fet-thld = <0x01>; + cirrus,temp-warn-threshold = <0x01>; + cirrus,multi-amp-mode; + + cirrus,vpbr-config { + cirrus,vpbr-en = <0x00>; + cirrus,vpbr-thld = <0x05>; + cirrus,vpbr-atk-rate = <0x02>; + cirrus,vpbr-atk-vol = <0x01>; + cirrus,vpbr-max-attn = <0x09>; + cirrus,vpbr-wait = <0x01>; + cirrus,vpbr-rel-rate = <0x05>; + cirrus,vpbr-mute-en = <0x00>; + }; + + cirrus,irq-config { + cirrus,irq-drive-select = <0x01>; + cirrus,irq-polarity = <0x00>; + cirrus,irq-gpio-select = <0x01>; + cirrus,irq-output-enable = <0x01>; + cirrus,irq-src-select = <0x01>; + }; +};