From nobody Sun Feb 8 10:04:34 2026 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B3F72DE6E6 for ; Tue, 9 Dec 2025 09:31:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272702; cv=none; b=uT2YojKptEd92IL1ptf3qdX8arBQw21zzdMIqIj3bLokTFAAnQ0I0dA9Br2vMGtLLF0lTK4azvYeW6HDc9kgab6j6msVZAQENnNCBnLgYcGafcLt0ZCrtYndh/kQTjRyk4FV5Cn8duXbCM1bqpu4UNeTO2PeJx59mefcXVDu814= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272702; c=relaxed/simple; bh=jnORVtQ7uwoxce9j3Ho2s0Rrsem8arYyTUJQLMiHu/E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=P/HPmExXdH3P+0hZFJinfa9ms9mkE5q/SRFhyxjddDiXdShDa16/jkA0G2d/E5nVcGWMxZJmOchawM0LmVwM/F9gZE66+9hRSn9k0fEI4GiEvsDVrxqfAXe2E2c/MK/fZui83skUWQSiU9tWqL21bRPzsqgT/tfPEw6tEJv15ac= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GL3JV9nC; arc=none smtp.client-ip=209.85.216.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GL3JV9nC" Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-341988c720aso4212348a91.3 for ; Tue, 09 Dec 2025 01:31:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765272699; x=1765877499; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=B/uimxPOVZnzKfBrHV18SDw/9y+UsMeBXkZvH5M2DDo=; b=GL3JV9nCNpsTvCJhSOA6FaA8i13WFfUXcit4wHxzrIrecaGiECi0lZzyqtobEIpCrS QRwWFyxpk8DJKAnS/73tNu5H42MlNCM9jrfcX/VJVzbsqQLueFiRcNw8cMB6r06gyPRr F2Kzv9Mj5wfaxIN2rp19IYJNPwAs9V/ntZ6i9puBQf3nqYW18CUhoceAUMJFK6hh0HFZ yyNeQ670tA3SoVNi0VTx4mDILRIAU68eggRdC1Ae54ftlsOWNvUBa2NPdHP4vTOmeFeN J/0+WSmOeZqA0DYlhT/eBbOTHAO4Vvox/DYckZiH0t0MjSqtV4x/G3MU91fLNjXac2tR 8WAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765272699; x=1765877499; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=B/uimxPOVZnzKfBrHV18SDw/9y+UsMeBXkZvH5M2DDo=; b=RnLH9A5KHkwBFF20PGaCO+8en6GpQMt2kEIYsfjsNYZLup5SCQq4nL8WHxcDCIYsrS FC+uDKhvS8fohOqCyJfWxXixhUpD48Vv8Kc7LTId3h7cYDwWbMjBUtdUtNFALGnuDKkt B+91OBkqDfiYnYK7nqqCkN/0uoSLMG11jHdyOJn3H260bb1jEtBrLpWO7skzA4X4a1ql QnspNy9o5CEdlbNOgUqbyCYt6GC/9EFIi4YxyBE5kKMUFBk9zNnie9CyWwGxUEI5lbLx FUXBYe2hU4keRydEg0XU9MNn1PxisVb7Pn8l3wWHsRdr3s+BghrnKo4UNh3aIXdJPOkv 6O0g== X-Forwarded-Encrypted: i=1; AJvYcCUPJt1QeRZuxaS8vjiVuoWMXMQvKD/BF75PUwLFJ5ugEf4xpOip+9V0jbnUGlBp+u8ayrGaNlrQ0yVnvVA=@vger.kernel.org X-Gm-Message-State: AOJu0Yw1GdXkNtvK687jbMs8dMxm0F8Kxci0ak0s9/pKA2BH0uWAItZX H/fwmyxmeC1LUqYFvjinU0yYo2wCPlLSX3OCfPUoOY/x9o9rpMcCwt8e X-Gm-Gg: ASbGncu5hWSWkJJtt28iGfryK763TGut954OEj2+uqlXtONxyQyw8K9Gtg6yj24x135 CwQVvWIewB/FeDws5uITPWplcrw/6bUgyt3fegROLnHogIasqfPnOV3cCbSnh5jYs6TsJNCidsP 1Vj9m7Qyt2yMgeWLTvYl+LCRLi1Kit3iYqF/0Kxy3Dj42l50xZCW/FNcJvboxAJtIX0ujtoFrIn MFPMAZ06akjiFI7mGws4r6syK4EKQ1HUve5KYCqb9fIwiqOxokWR3wpHAWlVXXE/++CY2JO8Z1b MkD/zBS/W7Z1NIxR5HHSyjmmdUox+yvqMUWOrbe3yPHMmmVnAVFKxsK6b/z9bIxZvhgDUnP+RUA DpHhrGvKvovPOVVO/4nl8pvtpp34O6IrM5Sgp1wU5vYTWX0ocSQ5o7E1B74W+1Mp1Qp0afz+uFk BTNcGjpfo8a//fJu81O3HWnH77kqRdbACbhUfMYHaIO3OpSnVNzvzmJxl6DxyJTLVVJpUMbZIHK Y22wr+GybJOIYlLG7guVB07/PGMygsLtlI55KOftQ+M6jtFE/qKmqh0k6UlcompPavXQxSlxzPu A+6CtttAe4X/7+MMVr4wvt2qS26JYTl/dL9kLRRdfBA2/2wJxPsoUCBeNeUh5g== X-Google-Smtp-Source: AGHT+IHEi2mCBtg0iCmcmf1gH4uYiFRGoKIeFa7PXJa21FQTMXXvhgplPXzOltuWl1u4iFR2Sxk4JA== X-Received: by 2002:a17:90b:554b:b0:32d:dc3e:5575 with SMTP id 98e67ed59e1d1-349a24cb7f3mr7136131a91.5.1765272698893; Tue, 09 Dec 2025 01:31:38 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34a49658704sm1800408a91.6.2025.12.09.01.31.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 01:31:38 -0800 (PST) From: James Calligeros Date: Tue, 09 Dec 2025 19:31:14 +1000 Subject: [PATCH 1/7] ASoC: dt-bindings: convert tdm-slot to YAML Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251209-tdm-idle-slots-v1-1-38dabf6bc01e@gmail.com> References: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> In-Reply-To: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kuninori Morimoto , Shengjiu Wang , Jaroslav Kysela , Takashi Iwai , Shenghao Ding , Kevin Lu , Baojun Xu Cc: linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, James Calligeros X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3318; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=jnORVtQ7uwoxce9j3Ho2s0Rrsem8arYyTUJQLMiHu/E=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJnmb7LYrpxfsZcrSnJ+7Q6bp+oLO14/uMazNz1yzc370 77GbUmN7ZjIwiDGxWAppsiyoUnIY7YR281+kcq9MHNYmUCGSIs0MAABCwNfbmJeqZGOkZ6ptqGe oaGOsY4RAxenAEx1whpGhndnbxZPurXd8IHCzimiC5Y+WdvpG2i34hrX7NZu/+B4cS6GvyJca+L KH6gmqgcn75+y/fuBnXNuqSw9F1fS7j3x7C12R0YA X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 This schema was still in plaintext form. Convert to YAML format. Signed-off-by: James Calligeros --- .../bindings/sound/tdm-slot.txt | 29 --------------------- .../bindings/sound/tdm-slot.yaml | 34 +++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 29 deletions(-) diff --git a/Documentation/devicetree/bindings/sound/tdm-slot.txt b/Documen= tation/devicetree/bindings/sound/tdm-slot.txt deleted file mode 100644 index 4bb513ae62fc..000000000000 --- a/Documentation/devicetree/bindings/sound/tdm-slot.txt +++ /dev/null @@ -1,29 +0,0 @@ -TDM slot: - -This specifies audio DAI's TDM slot. - -TDM slot properties: -dai-tdm-slot-num : Number of slots in use. -dai-tdm-slot-width : Width in bits for each slot. -dai-tdm-slot-tx-mask : Transmit direction slot mask, optional -dai-tdm-slot-rx-mask : Receive direction slot mask, optional - -For instance: - dai-tdm-slot-num =3D <2>; - dai-tdm-slot-width =3D <8>; - dai-tdm-slot-tx-mask =3D <0 1>; - dai-tdm-slot-rx-mask =3D <1 0>; - -And for each specified driver, there could be one .of_xlate_tdm_slot_mask() -to specify an explicit mapping of the channels and the slots. If it's abse= nt -the default snd_soc_of_xlate_tdm_slot_mask() will be used to generating the -tx and rx masks. - -For snd_soc_of_xlate_tdm_slot_mask(), the tx and rx masks will use a 1 bit -for an active slot as default, and the default active bits are at the LSB = of -the masks. - -The explicit masks are given as array of integers, where the first -number presents bit-0 (LSB), second presents bit-1, etc. Any non zero -number is considered 1 and 0 is 0. snd_soc_of_xlate_tdm_slot_mask() -does not do anything, if either mask is set non zero value. diff --git a/Documentation/devicetree/bindings/sound/tdm-slot.yaml b/Docume= ntation/devicetree/bindings/sound/tdm-slot.yaml new file mode 100644 index 000000000000..b67844e1dfd5 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/tdm-slot.yaml @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/tdm-slot.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Time Division Multiplexing (TDM) Slot Parameters + +maintainers: + - Liam Girdwood + +select: false + +definitions: + dai-tdm-slot-num: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Number of slots in use + + dai-tdm-slot-width: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Width, in bits, of each slot + + dai-tdm-slot-tx-mask: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Transmit direction slot mask. Optional. Drivers may speci= fy an + .xlate_tdm_slot_mask() to generate a slot mask dynamically. If neith= er + this property nor a driver-specific function are specified, the defa= ult + snd_soc_xlate_tdm_slot_mask() function will be used to generate a ma= sk. + The first element of the array is slot 0 (LSB). Any nonzero value wi= ll be + treated as 1. + + dai-tdm-slot-rx-mask: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Receive direction slot mask. Optional. Identical to TX ma= sk. --=20 2.52.0 From nobody Sun Feb 8 10:04:34 2026 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 29BED3B8D59 for ; Tue, 9 Dec 2025 09:31:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272709; cv=none; b=Gh5LAQjPiT/jOi0RwEBHzXxCCQCgKTqlFVx04BbSRcz+yIDAbWFKnY6Ow6hcQBsrM7V0LGr/SsrZGCBKJfA+3r4x3rIsIfGeeLCSvqJI5agcOwldFPqPSRtL+jG+viGdhV4R6LcMmVaanGTJajHnkHRy1JC4heC+lgKIppmRm3s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272709; c=relaxed/simple; bh=T8nQRaJTMEOE7oGRiZt2UVDQ6WuLodWd+RVxZirYEM4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Yr8z0Rq8bOt8l+QoYCbN8Lo8VEwL9PaSSyOjyepGYKjIjCcf5Wbmr7ABsyfTyuO8yKXOdRYg8ESuOosXVY+hbk6WibHoThs+8gaotyNw1EssdOp8JAOXOPu2omFgpls/EgXeOjGRhmggRwsREtuZxV+gw+fqxlnJk/YjtO4LaHQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FaX8B4WX; arc=none smtp.client-ip=209.85.216.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FaX8B4WX" Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-34372216275so5470710a91.2 for ; Tue, 09 Dec 2025 01:31:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765272706; x=1765877506; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=loXzTpy4uaY53uDDt2VMesUwjrO1zUQ0ph7MJ5jGnW0=; b=FaX8B4WX+HHTShwudqnE4f5MPe9UHgupLmcOyFkdlrexWk/fbr+nkL2SnlGud1JKch vAyprFofZBAMXw3hFPB0vT9JrIB28LPRo+zGgyAfeJ4SthkAXj6gJYcPE26nV3TfA/A4 gdqfT+4Uv/00vlwYobRNHIoeAhvBhX5KDnMyoKLEjPk29XbBaV+YqikBKqIaTD1VxdpM H5JuVH6BdfjbUXCLr3AbE1I7l6OemUq6XpMapV72UElGvMTcS2hBa6zHgn/u5I3TGpme 33tI2iz3tmOK4FatnK0UEM0KdnFk1p9HgIJQEbzO8JaDKHodp0Z757CuH7+aspg6Wsg/ y+FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765272706; x=1765877506; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=loXzTpy4uaY53uDDt2VMesUwjrO1zUQ0ph7MJ5jGnW0=; b=sVLbpO+sbfpjNExYxo8dUfxafqdy9haeuzEcPmB24CanSdp5Eyxv1gS/WbMh7ycyG7 j5pHjo7bLmfOpaQlF1ya//IwkB+MMKLHvEi60k4PBUBtg4Xpe6pHXnXxdV/Q80jbKsKN caLnpM0fuvKvgMATlEMzKXKA5SnhMJAXtL6/dRVgImBsxupv87s74gy6eurzYQF/ngj9 UJY+WwlqWaWUMx8Wt0N5RU/fQgXy/d0f0LQltkuCKI5z5mrEj47JojIneBdsIxJthxzR U0Dxpb2Eghx7NlbTfr+T/jj9J8TghdlypVsEKZI/a+xWhR5txWauMOMFFTI+9vBg4oNJ EidA== X-Forwarded-Encrypted: i=1; AJvYcCXXFxYEWaFZ5IGpaPKKtAv96JRpuAyeTKPweChoEVINOODo3tVc9oXgXbKejJaISz6KG4XNyA5G2FVwnuU=@vger.kernel.org X-Gm-Message-State: AOJu0Yxv4GWnzf1fhEP/rPqN1F8DLlylvHIobOhsR9ZTbl4awP5dKJIZ mgnzdfWDMh/4Jd9y9eBiqyVpJfezjjQIeN6UVJTu9Xk3AZPpvFqsZp3TIAxDp7JY X-Gm-Gg: ASbGncsj/weqxRh6RssPdgErVyVXGBj+D6A+V5ochLeX55MwYOIXUMs+KpToPC6NY6u uk/ygFTqHUFQwfI0SRPB87TKWL62JwdzJKifJ5m3t52mHbNF/4mVyyi1h+u14jp3H6JMDMur6nO B5wzKATNSuslYmMYNiVD5sNMHB/DOr1ARfalf60ckjugKesrAXhDbb9JtKusFmkCyKgEAuuocgZ cs7XZO8L8ajzw8waOTMwow7ANGvaFI6t5MT3KemniIckx/ZnwI4zgcw21Ea480G8GoFtRd0CsER AthnQ1XOSO1462ilZsRoTLhUk6d2MeoPbNQo6M0ibCtWjPqJN046EjAXPrD/69YDy7zfDggiLSw N0VMCUF6AdCJN+X/n2hXxfvVlS2aU5awtXUm1yPsarqGzIuFfKuz3eCZnAXHKf/GPuzbB0XswXg qUlD0SkbDDnKfPJlIpmGxQ2tzeyuz6vJwUcYTcphJ8otxsIdN6tSGBM4cvvN/NQnKcenugW233c hDLYB20b4b4MoqPPsRSpA/eZA2sKPtcnnsfMR8skzO54vy55S194SNbjxLcs0whTUN/O2Dz3yHS nS9NIjMg7zf3VBdggsZnYAf3Pq7P6/mTZUy/1vHGq7rNHl8agxI= X-Google-Smtp-Source: AGHT+IG5TjEW4C4GY4b2FxVYjWX8+gLJQmB4u4hl40+y/p7T7camtMTaOvWcdzyFLSuameifxgFCOA== X-Received: by 2002:a17:90b:388b:b0:349:30b4:6367 with SMTP id 98e67ed59e1d1-349a25e5544mr9400724a91.30.1765272706467; Tue, 09 Dec 2025 01:31:46 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34a49658704sm1800408a91.6.2025.12.09.01.31.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 01:31:46 -0800 (PST) From: James Calligeros Date: Tue, 09 Dec 2025 19:31:15 +1000 Subject: [PATCH 2/7] ASoC: dt-bindings: update tdm-slot.txt references to tdm-slot.yaml Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251209-tdm-idle-slots-v1-2-38dabf6bc01e@gmail.com> References: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> In-Reply-To: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kuninori Morimoto , Shengjiu Wang , Jaroslav Kysela , Takashi Iwai , Shenghao Ding , Kevin Lu , Baojun Xu Cc: linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, James Calligeros X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1929; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=T8nQRaJTMEOE7oGRiZt2UVDQ6WuLodWd+RVxZirYEM4=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJnmb7KkF/kxcld/Mi+rkN61eYvaC++1gp6Kd3f2PDkmc 6ji2/yEjoksDGJcDJZiiiwbmoQ8Zhux3ewXqdwLM4eVCWyISAMDELAw8OUm5pUa6RjpmWob6hka 6hjrGDFwcQrAVG+9xPA/+vQ6/Zbm4286L67/xNKmU71vGRvHo9mqE/+6CX5UYWVawvDPuH3N2nN P3PacjbolrHEocOXlE+EuDzMXHzh9YKHFp9kz2AE= X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 Ensure that all references to tdm-slot.txt have been updated to tdm-slot.yaml. Achieved by running "sed -i 's/tdm-slot.txt/tdm-slot.yaml/g' *" against the bindings/sound. No other references to the file were found in the tree. Signed-off-by: James Calligeros --- .../bindings/sound/imx-audio-card.yaml | 4 ++-- .../bindings/sound/simple-card.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/sound/imx-audio-card.yaml b/= Documentation/devicetree/bindings/sound/imx-audio-card.yaml index 3c75c8c78987..1df29a556120 100644 --- a/Documentation/devicetree/bindings/sound/imx-audio-card.yaml +++ b/Documentation/devicetree/bindings/sound/imx-audio-card.yaml @@ -39,11 +39,11 @@ patternProperties: - dsp_b =20 dai-tdm-slot-num: - description: see tdm-slot.txt. + description: see tdm-slot.yaml. $ref: /schemas/types.yaml#/definitions/uint32 =20 dai-tdm-slot-width: - description: see tdm-slot.txt. + description: see tdm-slot.yaml. $ref: /schemas/types.yaml#/definitions/uint32 =20 playback-only: diff --git a/Documentation/devicetree/bindings/sound/simple-card.yaml b/Doc= umentation/devicetree/bindings/sound/simple-card.yaml index 533d0a1da56e..2e1a5b3216c5 100644 --- a/Documentation/devicetree/bindings/sound/simple-card.yaml +++ b/Documentation/devicetree/bindings/sound/simple-card.yaml @@ -28,11 +28,11 @@ definitions: $ref: /schemas/types.yaml#/definitions/flag =20 dai-tdm-slot-num: - description: see tdm-slot.txt. + description: see tdm-slot.yaml. $ref: /schemas/types.yaml#/definitions/uint32 =20 dai-tdm-slot-width: - description: see tdm-slot.txt. + description: see tdm-slot.yaml. $ref: /schemas/types.yaml#/definitions/uint32 =20 system-clock-frequency: --=20 2.52.0 From nobody Sun Feb 8 10:04:34 2026 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CBD0B2DE703 for ; Tue, 9 Dec 2025 09:31:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272717; cv=none; b=mi7+gAriW/oFDlsJ7FPe55WVLvzF6iyeToCNeD7BfdcmSdQSTdXj1rcVaKvBVSbKdLMt8M4g6SjPD+eDg1OOUHE09OSHjBEQEc1/lDYViaxK2rhlMf7Wfw7ZVa7+z4JV/DIrNKf+Mddas1i/7fGpnkc++2RWrQyfzt3E+IxENzY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272717; c=relaxed/simple; bh=7Jl02U1GOnxsVCRYbpxJ0xeuR6SSn1DPWvASGvNoLSk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AZy898hKq10kZK1XYfj+HA2T/B2/xL7iQT4KR0MYufKhgyJliIH8fKljGMsDvMiQQ/QYWH24ihDubWp7/LQWKZbI2YlwtOZORpinIL6npRRufssuIrQ8h+m8iAqmd486EsvJFBkfQ7hHjw88pkMSxRKSsiradfIhbi3jhPgmMO0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=A2XoRjvy; arc=none smtp.client-ip=209.85.216.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="A2XoRjvy" Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-34381ec9197so4664690a91.1 for ; Tue, 09 Dec 2025 01:31:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765272714; x=1765877514; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=S6Kh/S4AuBYubzHpa9fGV98tRXc6USzdHeQlW2hl8J8=; b=A2XoRjvyrI+HLZ/zxL/gWuWX6DZtpkC2XRspvPXZNwU4j2mwxSow/flRW6nBGyEOul 8q1L6WFm1rvWtBTGRUFvXcMK7lRoOaxamQp8lM+002scixBF2hgaKbTJqGdOKzLt9oM5 Uv15L98lWZRESsDz3gZParHduV556H+bkzLPuwmeo6sfm5d9fAegBTS6Z4UkWa82w9K3 q4HqSWV7pM2h6M0SOslQo9gxT8WltP2eRA5by4/b+qjAMMMrkRXDodvamQrJKeJ6HfE9 4YA3Qtn1KPAfTCfpMC+06ltmkkDZR8cufnhibQLJ91qXhUvnYTEKQDaFHW9q21teCBEW ExkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765272714; x=1765877514; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=S6Kh/S4AuBYubzHpa9fGV98tRXc6USzdHeQlW2hl8J8=; b=GKHKAfZN3gMTftKhDklHNLvlim+m6Y0m6elX9v1Jhz1X52ulmXHP3LyI15ZUFFb8BF 72yuSC/qUt+abfHl+Sre6ZlyJx0cIPWY+mSPNZ7rqigGI0G1ExVCJFDQcYOR+2LANryg voKMxwPvZdxuVzl7iftcknUkBPjY0tIWzCtUCKV98EDCQdRqeXVGR6vkBuWESQa/Hg+K tM3TJf+KTNM91pc3IoOWnVdwpcg1jvaUuIjUaA1YCcKGZh13UJ/mdpSLKTS7Cnq8vxV8 puALIOrEoaLevexAlaLsb6sIoOvCwyp6DDG5TXP/mom+kvUka/7JGmBGxsJK5mb4e4RD T+FQ== X-Forwarded-Encrypted: i=1; AJvYcCW2FRFWYxACiz46KGBtZt+/Zj45T89CeQkL6awvUmTHVGSeSDqcSDkQNOF/Ox0y/Hx2g1LA1pq9uL8af2A=@vger.kernel.org X-Gm-Message-State: AOJu0YwS5kjgpI/89gFWCswafMuL1R6vauUVyAFL3fenT90ajOmzLjlO 7UHxo53er3ZRo0+7Ootf44y+FcJc5p2f/ohCYycujECH4HsM/kA0lgtV X-Gm-Gg: ASbGncuGBLYVkpMH5UsktviScCmDvz9RHG1+T7Fin/TIg0H+V0FOrw7I5dSRaDu3XY6 HVEVq9PmHibqpnCQyNut1bzYMG4xguq6u8MsxlnChPECpfFOksoaKh8I1MQR8BZzjdlFcCUNLcn YLS05pJNUee7yf0Xi6dY/+tSOBQxUPsIXbUwbPVWpQ+l/kjbZBTIXC6ovIZW6A+7ld2i+G7hoUF chgpQk5KL/t/sS6e2YsMQAp2kPbZOXMOOCs2W6D6lwpbR03rJRYUmN/CsDi+h6QMOvIxnWoUuh1 4aSx9MOARxYlBoi4kLeTVhm/qJts9H9nAtLGMNayTr4FMlkSDDTQ+mqkwA1hE5DZSBk5JNoS1P+ ceFbcQd6LcXDBbYpXZ9vH3rEdXMn0BO2aQ9yPoEO/ht/WgKopB1Xe/PcN9E8jv8lSxGwPT6kOvQ b3Y83r6UlzPWbePohVHP/C6agvx8HoTtXMLkfrB4BMRlUhU6bFQ2nnfhv37iEuhJ18Odc/8ghwE F9AXYmac+PkEltgdAxGMkwUsW/8RFDN4dKlc/9Q0WH4PgAvwMeGlhvCKuMjrUqspJeg1096u4DW jeWYzhA03WvcoEJtzgbxkeukgIiH316chF4qV8uXV1xnYlD1/7Q= X-Google-Smtp-Source: AGHT+IHjkhG5ILuMnz9u+P9xFQUrtxtM7YAmHub3kulzNeg1dJ/92cTnLqbWYakB7BqZN9JLGA4WKQ== X-Received: by 2002:a17:90b:38d0:b0:349:8116:a2e1 with SMTP id 98e67ed59e1d1-349a25fe29fmr9166033a91.20.1765272714091; Tue, 09 Dec 2025 01:31:54 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34a49658704sm1800408a91.6.2025.12.09.01.31.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 01:31:53 -0800 (PST) From: James Calligeros Date: Tue, 09 Dec 2025 19:31:16 +1000 Subject: [PATCH 3/7] ASoC: dt-bindings: add TDM slot idle mode properties Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251209-tdm-idle-slots-v1-3-38dabf6bc01e@gmail.com> References: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> In-Reply-To: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kuninori Morimoto , Shengjiu Wang , Jaroslav Kysela , Takashi Iwai , Shenghao Ding , Kevin Lu , Baojun Xu Cc: linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, James Calligeros X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1930; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=7Jl02U1GOnxsVCRYbpxJ0xeuR6SSn1DPWvASGvNoLSk=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJnmb7ITGfs3K75KfJAWs1t16sON9i82Vgrez5qqKhy6M OTWwe/8HRNZGMS4GCzFFFk2NAl5zDZiu9kvUrkXZg4rE8gQaZEGBiBgYeDLTcwrNdIx0jPVNtQz NNQx1jFi4OIUgKleu46RoXeHgN9hvsPSjVOkY//fejuX6+yjePlisc/6klmqz57MVmZk6D/3No9 j5pItzfNllOe8PL6pPuGw7t/mXsHPnMdlOsztmAE= X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 Add properties to describe TDM slot idle behaviour. Signed-off-by: James Calligeros --- .../bindings/sound/tdm-slot.yaml | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/tdm-slot.yaml b/Docume= ntation/devicetree/bindings/sound/tdm-slot.yaml index b67844e1dfd5..b247b315d7f4 100644 --- a/Documentation/devicetree/bindings/sound/tdm-slot.yaml +++ b/Documentation/devicetree/bindings/sound/tdm-slot.yaml @@ -11,6 +11,16 @@ maintainers: =20 select: false =20 +$defs: + dai-tdm-idle-mode: + $ref: /schemas/types.yaml#/definitions/string + enum: + - none + - off + - zero + - pulldown + - hiz + definitions: dai-tdm-slot-num: $ref: /schemas/types.yaml#/definitions/uint32 @@ -32,3 +42,25 @@ definitions: dai-tdm-slot-rx-mask: $ref: /schemas/types.yaml#/definitions/uint32-array description: Receive direction slot mask. Optional. Identical to TX ma= sk. + + dai-tdm-slot-tx-idle-mode: + $ref: "#/$defs/dai-tdm-idle-mode" + description: Transmit direction idle slot mode. Optional. For hardware + that can configure its behaviour during idle TDM slots via + .set_tdm_idle(). "None" represents UB/unspecified behaviour and is t= he + same as not setting this property. + + dai-tdm-slot-rx-idle-mode: + $ref: "#/$defs/dai-tdm-idle-mode" + description: Receive direction idle slot mode. Optional. Identical to = TX + idle slot mode. + + dai-tdm-slot-tx-idle-mask: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Transmit direction idle slot mask. Optional. 1 represents + an idle slot. + + dai-tdm-slot-rx-idle-mask: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Receive direction idle slot mask. Optional. Identical to + TX mask. --=20 2.52.0 From nobody Sun Feb 8 10:04:34 2026 Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 710642DF709 for ; Tue, 9 Dec 2025 09:32:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272724; cv=none; b=CUWcbmd3ldGrJcZ+Klr0P6CtxoNNddWQyJEGe0Kk2yMJkz3zl8nrRNvZpJSWj38C2vLZIatEsGIAVxFibIG383bxDsFyHrcf/GCSSaapIPksWX/84yb5ZFfGzhr7me0OzkSUOBOTGkbGhZs5caZWMgeUPMkivEANboVJYK/g0Mo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272724; c=relaxed/simple; bh=9BrUquyvgfOE5tXuWI9JhhGZxPBE1kg0z2Vo1M4aQHc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lKu0jcGtcEsJ/S5rj877xp6pcEaTUJ+H72+zfGKZXg2zvVV1pbouyvwOwcc5u5QwuGHpmZPKSIaEbKlZMu8T9GUSCxNGLEvyWStrQdaVJYXaZNkQjuY+e6nNzQFtPyjNxSjESwnuNV5521MoLVsRfrea/eVQe1bAuyZkcSgaxxA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WdKPcsxJ; arc=none smtp.client-ip=209.85.216.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WdKPcsxJ" Received: by mail-pj1-f47.google.com with SMTP id 98e67ed59e1d1-3437af8444cso4817749a91.2 for ; Tue, 09 Dec 2025 01:32:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765272722; x=1765877522; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=X/homEcZK52uy44aasdrENOooGOE5sAlOYEfUkV5W7I=; b=WdKPcsxJt9kZ9NmSwHfiLHuEiVZvUfhnJDSR3rb0xgZguqSZFVMmxkst2wanW5HGTv BSyExrwCzdrm9RgjCUVX9RWZ4J2cp/QK/hE3II3aBH1++Yzvqxc/yqx6l/7LA9Lz3FBJ BOxk3xWNfQndzPJ2E/xXxjFhoZhVxuVr4tdilLHbbLyYLqXr/denGDnhkkowKwdO2QGW 3sJxW5J+z2+EVRGh7ijmI1Wka+fY4GrRfzfS7d6o3CSJW8gLO3UsC8WM+5oAAQ/tpMO0 uldWJHeKlPypdJe0MFlGiPnnWTQdueUnPSU/Tv6ImgkhG5vLJCo33zTDy0c2qhqIQttj I4nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765272722; x=1765877522; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=X/homEcZK52uy44aasdrENOooGOE5sAlOYEfUkV5W7I=; b=t2FQ6AzNDUFqinIpd37pxB14V/iN7EASUO5m/EVNILF7cVFbzfk5M/LOhyrUXb1+GT YKh8tsjuEbL5rwRcEP3SJBPklVyuMQnObpSt6IZIuDdZphnhPOQhG14BfQjUPgGRDr8K j8KQO6xc1bH7BEdH77MHzoHefsHnIzNAJVNjXCCBA5p4fvuymOz6WpQqXoCbbOO2BNxn Am6QbHm7LZBDnSgVdmVS0mB2ldzKXVbBfY89OaphtCcrpNsrA2KhlOXBRKqpR9dUEOAa te2hwIAI9IQOXN7FVHFu3V0DfpL+1dvOSEJ5uSnQXXenDtiJA1NGc/hlJxGRTGc4Steh vwQA== X-Forwarded-Encrypted: i=1; AJvYcCWraDXwxAzZEz3SEJ5hCPUVMTWSUtc/WL92MTiEzdIqTtR2PHFpSYPUxGFzUMz+E3wrGMix377b3AU8JE8=@vger.kernel.org X-Gm-Message-State: AOJu0YwZBF1B8gGEGmx3yTCdQLTUgFngYZwzQpzW8QTPxCE3sYYLgMt7 sI4Q6r6Hug0oVTZ/zyX0C/fopkYBzCeyJcaBpPLH0d/P08moNOkbdmxJ X-Gm-Gg: ASbGnctj2Q3ByVoYD7YtKy5MMt8UnSdFQcRmmRW2ZWI8jzFsXE/Rbz+ZYPKN+QUMgg7 1R60p4+ePvFtdVEES8GdaWmIFA8aA2GkYkc5081DBusLqsrXvuft/wLJ6xjiDyQ2A+x9yrwAfoE vk3Rqokbkh0jTgZAC2og718J6CZc+JSccRDvt4os2e7C2aFsCp/4xw0mEKCPtv9qsWSvInfk6rU 4dUrv1Iu6si3O5+ITUDLSb2o4zp60Z3dWBdshh9uelAHYXeacj/PNOzm4t8eyxnleQJEsYZnCAs 1TnJ13S1D+UdjGkxQCtvAhBmm428te2S1wYnO1LjgdOKVsLRtmv7EU59oq5wZPpc/rnIpz9EUCI T1edSLSHwGahL5gpvIMzXw6XFwnH4Q/fdiLCFR4Lyi4GCPwFBwI7AlT3tGRFLljUlmgFRBEpvA0 B/x+OKfFDUMMymeoXlTOJN1PJluNZMC0bzbLE7qIsP0aaAV0nd6sVLTJMjQuVoB1lvmLA9d0fdQ OiHN1hwbuOuTaXQNAVsJRYS7qpzIQx2ZwNSVXOJ+OheqYgrNOIltdjAVWwDOzuc7d3PpuhDMSg3 hQg1GATjpirf22XS/HQcPPWOA8DU4Hg9Cqu3KNaPdUa/hynv9O0= X-Google-Smtp-Source: AGHT+IEwaeD0b9uHojQWY3Zj92Hr/X5acaNl0q97VcOUGKTdKrWTewUu7dv7EFYi+rSt77tp7bmfqQ== X-Received: by 2002:a17:90b:3e4c:b0:349:3fe6:ab97 with SMTP id 98e67ed59e1d1-349a25c00dfmr7898399a91.22.1765272721737; Tue, 09 Dec 2025 01:32:01 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34a49658704sm1800408a91.6.2025.12.09.01.31.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 01:32:01 -0800 (PST) From: James Calligeros Date: Tue, 09 Dec 2025 19:31:17 +1000 Subject: [PATCH 4/7] ASoC: soc-dai: define TDM idle behaviour modes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251209-tdm-idle-slots-v1-4-38dabf6bc01e@gmail.com> References: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> In-Reply-To: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kuninori Morimoto , Shengjiu Wang , Jaroslav Kysela , Takashi Iwai , Shenghao Ding , Kevin Lu , Baojun Xu Cc: linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, James Calligeros X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1797; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=9BrUquyvgfOE5tXuWI9JhhGZxPBE1kg0z2Vo1M4aQHc=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJnmb7Llv+1kaVUxfcu0Lyr9iOuUFcssFQvk35ZxHPLV9 3RbufdWx0QWBjEuBksxRZYNTUIes43YbvaLVO6FmcPKBDJEWqSBAQhYGPhyE/NKjXSM9Ey1DfUM DXWMdYwYuDgFYKon2zD8L7p27p9KpcGMFdc2Tp/u92VGWJiRQcaf/Nf1cy5fVDnAEMHw32uK5pn yTx4z157KdWEontG08r7oaZNUBtm2Xccmfp7+gwcA X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 Some audio devices, such as certain Texas Instruments codecs, include configurable bus keepers. Imagine for example two codecs sharing a bus. When one codec is transmitting, the other must ensure that it is holding its side to 0, or data from the transmitting codec will be corrupted. We can trust the "idle" codec to simply do this itself, however this is undefined behaviour. Some devices may leave the line floating, others still may pull the line high. We need a way to control this behaviour. Thus, we define five possible bus-keeping modes that a device can be in: NONE (UB/as initialised), OFF (explicitly disabled), ZERO (actively transmit a 0), PULLDOWN, and HIZ (floating). These will be consumed by CODEC/CPU drivers via a common DAI op, enabling the explicit configuration of bus keepers where required. Signed-off-by: James Calligeros --- include/sound/soc-dai.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h index 224396927aef..a5784ef8e3f7 100644 --- a/include/sound/soc-dai.h +++ b/include/sound/soc-dai.h @@ -52,6 +52,19 @@ struct snd_compr_stream; #define SND_SOC_POSSIBLE_DAIFMT_AC97 (1 << SND_SOC_DAI_FORMAT_AC97) #define SND_SOC_POSSIBLE_DAIFMT_PDM (1 << SND_SOC_DAI_FORMAT_PDM) =20 +/* + * DAI TDM slot idle modes + * + * Describes a CODEC/CPU's behaviour when not actively receiving or + * transmitting on a given TDM slot. NONE is undefined behaviour. + * Add new modes to the end. + */ +#define SND_SOC_DAI_TDM_IDLE_NONE 0 +#define SND_SOC_DAI_TDM_IDLE_OFF 1 +#define SND_SOC_DAI_TDM_IDLE_ZERO 2 +#define SND_SOC_DAI_TDM_IDLE_PULLDOWN 3 +#define SND_SOC_DAI_TDM_IDLE_HIZ 4 + /* * DAI Clock gating. * --=20 2.52.0 From nobody Sun Feb 8 10:04:34 2026 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42F3E2E0910 for ; Tue, 9 Dec 2025 09:32:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272731; cv=none; b=a4pUyi93MknKtY+1pbviD0qeQjvQzVcnKOmvO6cV9ATlImTcT97elhQCmmgEg3b+Cy4wQ/wQRgX+rdA88+qUpvksjF6iHFMSFCIt1KaRyq1VO2FuDDzRYNlS7CYEU2q4B4G8p0HmPD27w+AfxdcVxXOMo+WNq8Tz4RVxHjSVYQ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272731; c=relaxed/simple; bh=9X7Ik0ab5d6Iz/18MVVGvVc22VgP6m21NK5Flfc6r74=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ib5IS2YsnzQ51WsBA/mVSf+W/tVEx5KYr1wDhuC7SbfWeZxo/NXzMCaKdBW8/ibJ5BI4i2jk7lkKF6S+pNGyfVmQ3kpkLRfyJgrEwDWrJB9iaOJlOY3sedyEXD8W7LIILFm9kQ0HBui3cHKHnhyWLLStHih8zGakZpwpcoWr5Hg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ctO9zKQC; arc=none smtp.client-ip=209.85.216.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ctO9zKQC" Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-3436a97f092so6889326a91.3 for ; Tue, 09 Dec 2025 01:32:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765272729; x=1765877529; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=wT5Tpa0cRknM+Vnr1JQ25hhT3yDeTWdGEabrHv7VB7g=; b=ctO9zKQCCcjO9oGYVTm1b1j2oT3lrbMQ9LRNkBrCjlAO5+DOC8BHoq7oEQbAcFqSs4 PAazpflPQqvokCfmocCikbAlSgqpCTIHU+Lw02E422diEfop9wb/RlG9hLR7h2j4r9YA IKuMYEft9EylZFvWz2Xm/cG4yUI2unMekipCM1OT9Xp4zI5KqYRI3k5C6WcM5BpY7JqL MhcqSMVuVBPGvmDduPOwMQ2fHoUW6LhuHSlGqijxikHdksMF58hoEW8QlNDIpmA5AJJy GcVr8SbLRgTqqETlPIjsdrF802M1nWANFhYVwg+Ow5JT9kmdYu3k/r8oVbiPI+AABhSO PBFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765272729; x=1765877529; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=wT5Tpa0cRknM+Vnr1JQ25hhT3yDeTWdGEabrHv7VB7g=; b=eyEYEIFmpji4vVXxddjEon6aUGm1pfiAzAEmtgrlFE+H7qbyYiI/JxygrbCayHEG60 gdx/TYuj0YPvBoU+KiPufd/vqtK14vZvYtXFFTY9RMmiQPycdMywhyt1ouVOegpdE2Gv kHqfP7CM7NcAITZsoSODtD9zOnTezcLuenMexs796pLBdvwE9i277PLSDxOoMxn/aqrW w9wQpaJK1LDHoCn0363e8b+cuiX5LJYE8U55+mGYCTKGwfgIZ2KNHGSB+gCC39PTaum8 njla2Th7S4HyCRO6AlAQQLeLB8U0JrsnXBY2Mgy25ZZoERDI9mnJ6UdHdF5PW0meQMZy LQOA== X-Forwarded-Encrypted: i=1; AJvYcCWWFxQktLteA5EvcOmlB1pNZZDvYX7x0u351UYrHBuiaQ3l0YCjazDfAKkNWMS2aiKl5IVgqxq3sYw0eKE=@vger.kernel.org X-Gm-Message-State: AOJu0YzgTdMRofsS4JFc3OFtzLFnALufXDB+UKqWBZo2oD/Ol86qFbUw F4PqtcfRDCxzuiE9pIQUmILEsj2d94hchypsjuxA+PXev8vNo0ssOlOh X-Gm-Gg: ASbGncuFir1F/3cBS6cuwgFyuRd83INOBLG1FeFfH/I1XCVlR++4fASMfH+fHeSZ+LG 9PT3I0aUN0Eqk0IVh+z8V3DweDbDH9RNjJbTQQ8ePkaN6GmZfboR6D19LstSc/i8CaKqymWuM2u Zs5iFY0gXOfuowUzEVahCTxaUX/QPFaDxgB7RtE5JnMAFzvGsfapYuXf95dCv0kbttKUotKjGuI tOY+/qKX/PJRMHSPO/ElURLA6PVxX3zDlYW49W0Up815fusmfOt25y8Es5zQfBiTYwvA3hB5+/W 1v/ElOAcDD+xGyrDrmGmTogU8jZekalhzGMzHq8XKanYg6bL8+334U1sMfXKms2jxls7bewJjGU yqKCDOgdQMNUDtvba1uDPt55EwdP/zF5z+xCqUFCVKBw/nc1rU9wPuDMv23adz/WQutiNEwxxQ+ tMhUE9/4UVKk4KblVbLpv70eNih+qYgJz9J4duqdIG1nRiBvtL9se5TyF6mrwQTcmRRcfb0vWmC ywrhyM0UqezTi8vYQq6mu3ovenZy2zJUn5dFCShLqFfC9Ard7QZJ0sC7E4Gub0i6Ymf+8spw4iG +26ohy5Q31vLbclZPbwOIq+bNp706TJapmulsDIB7d3Jk3NcAFo= X-Google-Smtp-Source: AGHT+IEf8k2cGwcYziNVTfhJRUNWm4Blk7mY9yN2+i0tDJn66zOZx4itoz7PdkJwqZ4b134kt4zn5Q== X-Received: by 2002:a17:90b:3506:b0:340:bde5:c9e8 with SMTP id 98e67ed59e1d1-349a2613605mr9150879a91.22.1765272729310; Tue, 09 Dec 2025 01:32:09 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34a49658704sm1800408a91.6.2025.12.09.01.32.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 01:32:09 -0800 (PST) From: James Calligeros Date: Tue, 09 Dec 2025 19:31:18 +1000 Subject: [PATCH 5/7] ASoC: soc-dai: add common operation to set TDM idle mode Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251209-tdm-idle-slots-v1-5-38dabf6bc01e@gmail.com> References: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> In-Reply-To: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kuninori Morimoto , Shengjiu Wang , Jaroslav Kysela , Takashi Iwai , Shenghao Ding , Kevin Lu , Baojun Xu Cc: linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, James Calligeros X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3549; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=9X7Ik0ab5d6Iz/18MVVGvVc22VgP6m21NK5Flfc6r74=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJnmb7I1nvHsL9CcfHRpJM/b7PymxSXtYfH8PI94VRjWN Nop1LR1TGRhEONisBRTZNnQJOQx24jtZr9I5V6YOaxMIEOkRRoYgICFgS83Ma/USMdIz1TbUM/Q UMdYx4iBi1MApvpKJcP/hCPlHm6PuVo3nGwJWLYz+8wxVlu1PgahH335M3Z3v1DmYWR4cPhcbHe w4rJdj2QFo7h+m50xEP60+dIS0Qn7l+jL39VkAQA= X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 Some audio devices, like certain Texas Instruments codecs, can be configured to alter their behaviour when idle on the bus. Now that we have definitions for various idle modes, add a snd_soc_dai_set_tdm_idle() operation to control this in a standardised way. Signed-off-by: James Calligeros --- include/sound/soc-dai.h | 7 +++++ sound/soc/soc-dai.c | 40 +++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h index a5784ef8e3f7..1f411237dde5 100644 --- a/include/sound/soc-dai.h +++ b/include/sound/soc-dai.h @@ -194,6 +194,10 @@ int snd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsig= ned int fmt); int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width); =20 +int snd_soc_dai_set_tdm_idle(struct snd_soc_dai *dai, + unsigned int tx_mask, unsigned int rx_mask, + int tx_mode, int rx_mode); + int snd_soc_dai_set_channel_map(struct snd_soc_dai *dai, unsigned int tx_num, const unsigned int *tx_slot, unsigned int rx_num, const unsigned int *rx_slot); @@ -310,6 +314,9 @@ struct snd_soc_dai_ops { int (*set_tdm_slot)(struct snd_soc_dai *dai, unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width); + int (*set_tdm_idle)(struct snd_soc_dai *dai, + unsigned int tx_mask, unsigned int rx_mask, + int tx_mode, int rx_mode); int (*set_channel_map)(struct snd_soc_dai *dai, unsigned int tx_num, const unsigned int *tx_slot, unsigned int rx_num, const unsigned int *rx_slot); diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c index a1e05307067d..2f370fda1266 100644 --- a/sound/soc/soc-dai.c +++ b/sound/soc/soc-dai.c @@ -282,6 +282,46 @@ int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai, } EXPORT_SYMBOL_GPL(snd_soc_dai_set_tdm_slot); =20 +/** + * snd_soc_dai_set_tdm_idle() - Configure a DAI's TDM idle mode + * @dai: The DAI to configure + * @tx_mask: bitmask representing idle TX slots. + * @rx_mask: bitmask representing idle RX slots. + * @tx_mode: idle mode to set for TX slots. + * @rx_mode: idle mode to set for RX slots. + * + * This function configures the DAI to handle idle TDM slots in the + * specified manner. @tx_mode and @rx_mode can be one of + * SND_SOC_DAI_TDM_IDLE_NONE, SND_SOC_DAI_TDM_IDLE_ZERO, + * SND_SOC_DAI_TDM_IDLE_PULLDOWN, or SND_SOC_DAI_TDM_IDLE_HIZ. + * SND_SOC_TDM_IDLE_NONE represents the DAI's default/unset idle slot + * handling state and could be any of the other modes depending on the + * hardware behind the DAI. It is therefore undefined behaviour when set + * explicitly. + * + * Mode and mask can be set independently for both the TX and RX direction. + * Some hardware may ignore both TX and RX masks depending on its + * capabilities. + */ +int snd_soc_dai_set_tdm_idle(struct snd_soc_dai *dai, + unsigned int tx_mask, unsigned int rx_mask, + int tx_mode, int rx_mode) +{ + int ret =3D -EOPNOTSUPP; + + /* You can't write to the RX line */ + if (rx_mode =3D=3D SND_SOC_DAI_TDM_IDLE_ZERO) + return soc_dai_ret(dai, -EINVAL); + + if (dai->driver->ops && + dai->driver->ops->set_tdm_idle) + ret =3D dai->driver->ops->set_tdm_idle(dai, tx_mask, rx_mask, + tx_mode, rx_mode); + + return soc_dai_ret(dai, ret); +} +EXPORT_SYMBOL_GPL(snd_soc_dai_set_tdm_idle); + /** * snd_soc_dai_set_channel_map - configure DAI audio channel map * @dai: DAI --=20 2.52.0 From nobody Sun Feb 8 10:04:34 2026 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9E8D82DE703 for ; Tue, 9 Dec 2025 09:32:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272739; cv=none; b=QuEuHWZUtTB2Fm8pMoMBEWGhyAuTwT+eZRXKIPKK8JH/b+RcRL/xhX16g7wQ3g+DvYxqIiZ5mD2tzBYffsBitJUPCKf9mk4ZLR+wVldKQCUSRFjejlaSuyzpBGSWpyMVPyep1wJ7I0QIR11G4g16kKQ8zXNKM1Fa88tJ5JrVKBQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272739; c=relaxed/simple; bh=+drHU6Kv5dx2gWI6Rb8MzRIPjOqO6lKIV5+rr02mpIU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lZk53Ldaa8IR5YNPGLeD31UCfYd+8+l5E26Xe0hEgGK3ccHVS769ewufVCLjL9CveJ0cW8CNzocBen0a8aS/mtyvF3ukYBacPXydyqRI0x8LVL+QRhkv+l9p1MLzE4M+avlDbLTzJOrebSe59t2EdAGJ5MeDZWn39e4wR2zdv5U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YX7vlZqg; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YX7vlZqg" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-29e1b8be48fso23393145ad.1 for ; Tue, 09 Dec 2025 01:32:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765272737; x=1765877537; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+PN0Qd2/OSPDiP/SCt4m3b00gB3oBVDwfSgnMIlH8+4=; b=YX7vlZqgO0NvWAjFQJt/MjrA2vf1Krjx4Ocd6l7m7NR4hzzDaR78wZ+yQXLMBmTuV/ QTsevIGpfoL0a2biCm0KDIFuDXIJ15RmCF1hv2SB3wpj+Jfmh2KwETfIdUuQ11MwuF5m Q6oVQQtqcPorqMet5sCB7OrACkfI88bnXAwU8hWyqs/aZgeavkccYWTcocMtf7v5wMI9 2weSgiK7d0EadLEJT9+84v6vWZa+78tsgP+HtZC/9WjGONCrW7HbJXJeAJSNkCgi49Pp vUFVcurTC7LixWFNCWL08E/0tdgJjrKUzFruXPPNgCC/eJbOfcBIHqPmLoPvFaGVaKIn PWCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765272737; x=1765877537; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+PN0Qd2/OSPDiP/SCt4m3b00gB3oBVDwfSgnMIlH8+4=; b=GJS6uWZ83FIm8ji37rMinResZ21uMWUDEI/7rRrU0qG+TZpX+hF3zYW1HMA9jdLvLr Z+CWq3GCgBDiulUrUwGwvsQuuC0J1TQeVWcJ3c5wYOQD6iRkQuckjqyu/gt0jDc1J9R9 QXm/AKBkKVa4K9+qvelAtBJE+M5rN5GqWRwB/FvIB3JV0Ugi+fDqZph9vZ/Hq1Fd1AdD 5OgS5gFBlmHiThn54eWqok0BKM6wZ0hB7FqopkYkQkASVRSm3MbhFRzHxVWEWik/r5gY eR2S7D5yJq4IPRkYu7sdM0UCjzpZgd9zGMf83ESBNAJz8AhGh1uVFj3/2T+7ictbLPzW dBqg== X-Forwarded-Encrypted: i=1; AJvYcCW99k/0gQwt2KqDYO78CHxwj6WpQXQR/9WirWRIoTpdMcR3rUqZq7rvO91e3QSNXWTlZoLg+9rrsQaCr94=@vger.kernel.org X-Gm-Message-State: AOJu0Ywuj7V4A6IqILr138Cgv0iy/4JFrVWOuvtW+rrfA1JxjJcV3CZa VYOJeEb7gfyECmessH3guxsWYMIQrS6GkIecl6gZfQToNJ3kufvoCtES X-Gm-Gg: ASbGncsQvvobhIZHDQA/hj5Zz0la8/qDFjYj6UKm4bLzQ9tzjfHqIQfJDHgiQgWYlB/ z1qgFsXOTk8snEswH3hz3NdJXqxD1xT30UGtZp1bZW9VFH+IuDv5fu8OABspraCEHzbFZ48+GnD t4kBVqWdfqq0XEj0/DsRrxqvJN1fwVT9Zs1SN1OzX7Hay870m5GbZeHIwT7YNEHC3VngS9RPQRs scGzVinxOc50aybSa6wcI2LiIu5Nqy3BH3bEfc8ikRtGRIYPIK1KhgpnXySbwHZleqcN2YKzRz7 SdWMYnpMoWkFAofvN2ZSysS/NtG/Y5RJgNX2comdA1sfYmo9zPqzI80TE4k75eShnu92IB1Jc0H ujAjf7jZOWEJTiyxvOwIYt0msIjIV7b0InNHbX6/PB0O3Z592jRT/JzyXvlJ+LKlRSsH39/CRJ9 owkoTQeQcbUwebxtVP8Tu1ZPBGJ5arTMRAQroYNGNjStCi9kPxxyranWga9tA9YADf3u75UGwGn BrcKnojAIxVVqOf7Uyl4PmyqDbaBHoVhMFUA4umcPYsIsmR7p8gdpmHBI4eVmKLPUc8V1fp6hAz M3uRc0tIwJQY+YhZrTNllIG5ewvr+o5sG0vquVIRxcU8g5nwNRlAS6GvAH8nEQ== X-Google-Smtp-Source: AGHT+IFotzk8vBpJPn3igE6lPKAddyobbStk24n2ejESg7hiOK8wrzqTNKlOE578VcVOs6JfDZz2qQ== X-Received: by 2002:a17:90b:35cb:b0:340:7b2e:64cc with SMTP id 98e67ed59e1d1-349a250ee48mr9384938a91.15.1765272736911; Tue, 09 Dec 2025 01:32:16 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34a49658704sm1800408a91.6.2025.12.09.01.32.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 01:32:16 -0800 (PST) From: James Calligeros Date: Tue, 09 Dec 2025 19:31:19 +1000 Subject: [PATCH 6/7] ASoC: tas2764: expose SDOUT bus keeper via set_tdm_idle operation Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251209-tdm-idle-slots-v1-6-38dabf6bc01e@gmail.com> References: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> In-Reply-To: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kuninori Morimoto , Shengjiu Wang , Jaroslav Kysela , Takashi Iwai , Shenghao Ding , Kevin Lu , Baojun Xu Cc: linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, James Calligeros X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4997; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=+drHU6Kv5dx2gWI6Rb8MzRIPjOqO6lKIV5+rr02mpIU=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJnmb7JfL7h9ab2x4v5VXfeDrtgleVdwvmWYk9b4w7zy2 8sdd+yvdUxkYRDjYrAUU2TZ0CTkMduI7Wa/SOVemDmsTCBDpEUaGICAhYEvNzGv1EjHSM9U21DP 0FDHWMeIgYtTAKb6xi6GP1y/mVemPYxX+hStFdmwwFavarPMj9QTcfuDGrtMjn48W8rwV+jP1Fa Wa6duhjKu/KD9X1tVgbXtvWZDDaN1WaBCvOcHFgA= X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 TAS2764, and the Apple-exclusive variant SN012776, include bus keepers on the SDOUT pin that can be configured to alter the behaviour of the SDOUT pin during specified TDM slots. The chip can either leave the bus floating (default/uninitialised behaviour) or fill the specified slots with zeroes. Expose the SDOUT bus keeper and allow it to be configured using the set_tdm_idle DAI op. The mask must be cropped to only cover slots valid for the configured BCLK ratio, so introduce a set_bclk_ratio op that properly configures the bus keeper too. Signed-off-by: James Calligeros --- sound/soc/codecs/tas2764.c | 95 +++++++++++++++++++++++++ sound/soc/codecs/tas2764.h | 11 +++ 2 files changed, 106 insertions(+) diff --git a/sound/soc/codecs/tas2764.c b/sound/soc/codecs/tas2764.c index 36e25e48b354..423b7073b302 100644 --- a/sound/soc/codecs/tas2764.c +++ b/sound/soc/codecs/tas2764.c @@ -44,6 +44,11 @@ struct tas2764_priv { =20 bool dac_powered; bool unmuted; + + struct { + int tx_mode; + unsigned int tx_mask; + } idle_slot_config; }; =20 #include "tas2764-quirks.h" @@ -509,11 +514,101 @@ static int tas2764_set_dai_tdm_slot(struct snd_soc_d= ai *dai, return 0; } =20 +static int tas2764_write_sdout_idle_mask(struct tas2764_priv *tas2764, u32= mask) +{ + struct snd_soc_component *component =3D tas2764->component; + int i, ret; + + /* Hardware supports up to 64 slots, but we don't */ + for (i =3D 0; i < 4; i++) { + ret =3D snd_soc_component_write(component, + TAS2764_SDOUT_HIZ_1 + i, + (mask >> (i * 8)) & 0xff); + if (ret < 0) + return ret; + } + + return 0; +} + +static int tas2764_set_dai_tdm_idle(struct snd_soc_dai *dai, + unsigned int tx_mask, unsigned int rx_mask, + int tx_mode, int rx_mode) +{ + struct snd_soc_component *component =3D dai->component; + struct tas2764_priv *tas2764 =3D snd_soc_component_get_drvdata(component); + int ret; + + /* We don't support setting anything on SDIN */ + if (rx_mode) + return -EOPNOTSUPP; + + if (tas2764->idle_slot_config.tx_mask =3D=3D tx_mask && + tas2764->idle_slot_config.tx_mode =3D=3D tx_mode) + return 0; + + switch (tx_mode) { + case SND_SOC_DAI_TDM_IDLE_ZERO: + if (!tx_mask) + return -EINVAL; + + ret =3D tas2764_write_sdout_idle_mask(tas2764, tx_mask); + if (ret < 0) + return ret; + + ret =3D snd_soc_component_update_bits(component, + TAS2764_SDOUT_HIZ_9, + TAS2764_SDOUT_HIZ_9_FORCE_0_EN, + TAS2764_SDOUT_HIZ_9_FORCE_0_EN); + if (ret < 0) + return ret; + + tas2764->idle_slot_config.tx_mask =3D tx_mask; + tas2764->idle_slot_config.tx_mode =3D tx_mode; + break; + case SND_SOC_DAI_TDM_IDLE_HIZ: + case SND_SOC_DAI_TDM_IDLE_OFF: + /* HiZ mode does not support a slot mask */ + ret =3D tas2764_write_sdout_idle_mask(tas2764, 0); + if (ret < 0) + return ret; + + ret =3D snd_soc_component_update_bits(component, + TAS2764_SDOUT_HIZ_9, + TAS2764_SDOUT_HIZ_9_FORCE_0_EN, 0); + if (ret < 0) + return ret; + + tas2764->idle_slot_config.tx_mask =3D 0; + tas2764->idle_slot_config.tx_mode =3D tx_mode; + break; + default: + return -EOPNOTSUPP; + } + + return 0; +} + +/* The SDOUT idle slot mask must be cropped based on the BCLK ratio */ +static int tas2764_set_bclk_ratio(struct snd_soc_dai *dai, unsigned int ra= tio) +{ + struct tas2764_priv *tas2764 =3D snd_soc_component_get_drvdata(dai->compo= nent); + + if (!tas2764->idle_slot_config.tx_mask) + return 0; + + tas2764->idle_slot_config.tx_mask &=3D GENMASK((ratio / 8) - 1, 0); + + return tas2764_write_sdout_idle_mask(tas2764, tas2764->idle_slot_config.t= x_mask); +} + static const struct snd_soc_dai_ops tas2764_dai_ops =3D { .mute_stream =3D tas2764_mute, .hw_params =3D tas2764_hw_params, .set_fmt =3D tas2764_set_fmt, + .set_bclk_ratio =3D tas2764_set_bclk_ratio, .set_tdm_slot =3D tas2764_set_dai_tdm_slot, + .set_tdm_idle =3D tas2764_set_dai_tdm_idle, .no_capture_mute =3D 1, }; =20 diff --git a/sound/soc/codecs/tas2764.h b/sound/soc/codecs/tas2764.h index 538290ed3d92..4494bc4889dc 100644 --- a/sound/soc/codecs/tas2764.h +++ b/sound/soc/codecs/tas2764.h @@ -126,4 +126,15 @@ =20 #define TAS2764_BOP_CFG0 TAS2764_REG(0X0, 0x1d) =20 +#define TAS2764_SDOUT_HIZ_1 TAS2764_REG(0x1, 0x3d) +#define TAS2764_SDOUT_HIZ_2 TAS2764_REG(0x1, 0x3e) +#define TAS2764_SDOUT_HIZ_3 TAS2764_REG(0x1, 0x3f) +#define TAS2764_SDOUT_HIZ_4 TAS2764_REG(0x1, 0x40) +#define TAS2764_SDOUT_HIZ_5 TAS2764_REG(0x1, 0x41) +#define TAS2764_SDOUT_HIZ_6 TAS2764_REG(0x1, 0x42) +#define TAS2764_SDOUT_HIZ_7 TAS2764_REG(0x1, 0x43) +#define TAS2764_SDOUT_HIZ_8 TAS2764_REG(0x1, 0x44) +#define TAS2764_SDOUT_HIZ_9 TAS2764_REG(0x1, 0x45) +#define TAS2764_SDOUT_HIZ_9_FORCE_0_EN BIT(7) + #endif /* __TAS2764__ */ --=20 2.52.0 From nobody Sun Feb 8 10:04:34 2026 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4CE182DE703 for ; Tue, 9 Dec 2025 09:32:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272746; cv=none; b=LA6nhetZdpKP98VoNWunc+B92RlTKrTC85dDHoRJLgwOUgj68E3Msa5Qpt4Al03M16/0bchti9DXCq5eTPx/54A1Ye5bcEoLSNsFVvs5MmC8HowdJTzEDp73TLUlAW00dWh4jZW7RWv39vC+pv2BiLSXB14B0oZYi8bdNjqEa+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765272746; c=relaxed/simple; bh=hQ3yIQ+LRbuFbg4idC7Bt8j/T1Iri2PmTgdBl9Lz8Vw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mIcDVe3mQ48NOkY3WYp/JitKhQ661un3fiHhEiKn72Ru3CCaG1wG+j5cnqQ8Gj2CBqjbC1eFmIkkeoYMzprTjAgq//6N7Jy9/B5zmuN9Snr3XopDO9oksUV6HuTEf2GgzOMIX2xWdYPD6lMFOj01677r0X7326fbQlph/7VV5Mc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FvFVeafZ; arc=none smtp.client-ip=209.85.216.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FvFVeafZ" Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-349b711d106so2129250a91.1 for ; Tue, 09 Dec 2025 01:32:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765272744; x=1765877544; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=sytcPbDCFIWJAyTshVfbcn49iCD+Fu/IyW5F/eizSLg=; b=FvFVeafZckq03GfFuwKbU9C/u/VSTKUq3I6XzbGrVdxdsHNQLFwECM4CSBgZkWrnbv KqPzsY2d6hlqXnDnL/BGI9Ik581eosTEI3CfXHl6nMZ5fQSxgUMMPeLpsNZNlUN7IGJo J8UgRBm50o9Z4JHThaW0IAdSVOtzbsBDIsfMutPsLoPxWe1idMmhIcLb+Ipivs+449XS 7+kCXtvnz86QDkHrSX2gj8SjGieaTlaMlu626BslqBEGpaew0154Xy+bGi0E4BkwUAvV FZLg2XMSbQBI5Znb6JrBwmAe9q+iXanhvQFOOx35l2ZndL2ASk0OqtDqEyvsJWE1E8Xe 8rHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765272744; x=1765877544; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=sytcPbDCFIWJAyTshVfbcn49iCD+Fu/IyW5F/eizSLg=; b=or6T2xPzbRjXvoQj3WU9XhDm3bx5lfGgWihruFn1sX3YLpq8XseyuKzwYZ5/nlvnpD CUrOKSYjFNbHN/ehQLXergxq9OKP5MwXqltiNMRrYV54Yc0y3c8JxY/Nm8RbDWUV7FQJ CFbsj7SwgdeJ6JapHNU7bpE9d+lx7a5RqHsDznt73ylN+DT41s7APZrh+/KZJ4DF4Ce0 gLN9fnm9xKgrhNYuzHoqODlZ0oetEWG4oe5zhlOKbZG7dFEa0uYexEPKwVBNnUYl5OmW GY6/90U60BpcNh8cNbBt6WFe4fSJmOQ5nXp6BMy5cJzd0v52SbqnmrYDDs5TRUJuFYmh vPrA== X-Forwarded-Encrypted: i=1; AJvYcCV7XpOXpZ5f7SsdoQaV7BP/G5cEcNJ6Du9cWKH0FfQLMTwj6Iv0s2pZvcIh8bRbqut4DQi8n24XSdrIzTs=@vger.kernel.org X-Gm-Message-State: AOJu0YxXnXKbN/ppTKeI0HkDu9aIs0zxgl8d+kA60mZKchxXmH9mWoJq NCssAIHCPCV2Pty1hbwkXw2bVec1sSOQ5jXkCFRcSsU8EqBxYHM87QzB X-Gm-Gg: ASbGncs5CgDOw0lhkYmjW7+oXDUqbl3BLQfIr3jr53zswXVuKWn9BE3XFpJpfQXFcDf Jaq5dRW5sO9kVuqFlXgnkzIr74xTx/I1P2HH25v9mbgcxALAVpdSinUTkTs3ogNOqn5w067hq+t nxJa3znGMCt6jR5DMXQaog55XvBm7twvFQuOBOICt1TMPUJLPIDf9dojAEH9jf2WubR2NCOaYeY 0GxbGfHC0AZ1mCsEb2c1FU96XPDlNoXkwg1MybRx2xvilZaCOYV+vy3RpmqZJoLZ4dzmjPSTyVM 6G+faAZU+j7IOSvQDgU/M8EYMJzlg+llZq0kdjxh6DAh+oTV3yivOE3FLWYXXHK2B+YDDleKXZK cwCCI1udIrRSn2H9rg3MhnuptdbebflSqT1jpTZG2vJQ84Jm6ASDTpH1J3QCR8Jm7EsiGLzfXnc 32FW6IxeFCj9VGygoOqQPBd7A8qR/IBVWZYqI6IvXwa5ceac/UjRsoC4jLqacDTQtCz3jtRMshh 1Pv/8DXNpTWl7yNsdD/y77CpdvJtAmCtpQ5pW4QK0mAS+dINkrmGl1tfE6UXg/8vrMKv+iytuD4 mN72Aa+1+a/YX6UrQQKQMZ5D7MXFmvrrYp1f56hWvHhwLnWH7xFBQwarM0V23g== X-Google-Smtp-Source: AGHT+IHshWKoIvDGYXvDIhmbIHXx+eRzKnkbv3j7ltjnhSQGKLSVw2gL9b8YPyFcCo5W0olsRE/M9w== X-Received: by 2002:a17:90b:390f:b0:340:f05a:3ed3 with SMTP id 98e67ed59e1d1-349a268665bmr9074422a91.17.1765272744486; Tue, 09 Dec 2025 01:32:24 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34a49658704sm1800408a91.6.2025.12.09.01.32.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 01:32:24 -0800 (PST) From: James Calligeros Date: Tue, 09 Dec 2025 19:31:20 +1000 Subject: [PATCH 7/7] ASoC: tas2770: expose SDOUT bus keeper via set_tdm_idle Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251209-tdm-idle-slots-v1-7-38dabf6bc01e@gmail.com> References: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> In-Reply-To: <20251209-tdm-idle-slots-v1-0-38dabf6bc01e@gmail.com> To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kuninori Morimoto , Shengjiu Wang , Jaroslav Kysela , Takashi Iwai , Shenghao Ding , Kevin Lu , Baojun Xu Cc: linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, James Calligeros X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4520; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=hQ3yIQ+LRbuFbg4idC7Bt8j/T1Iri2PmTgdBl9Lz8Vw=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJnmb7IPlyhL6Uu6eG8tPd/1Q3SR2v6KynBNJ+Oqo+syC zJyDzN3TGRhEONisBRTZNnQJOQx24jtZr9I5V6YOaxMIEOkRRoYgICFgS83Ma/USMdIz1TbUM/Q UMdYx4iBi1MApvpPJsM/020srMGnkqR/HGyTX+x85Moq67CKyEOXP/GGJqm+Fr2/ipFhuf4ktV0 Fqk9nqfjJLHtnY16gJWL952ahxyKW61suer3kAQA= X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 TAS2770 includes a bus keeper which can be used to control the behaviour of the SDOUT pin during specified TDM slots. The chip can either pull the pin to ground, actively transmit zeroes, or keep the pin floating (default/uninitialised behaviour). Expose the bus keeper via the set_tdm_idle DAI op so that it can be configured by consumers. Signed-off-by: James Calligeros --- sound/soc/codecs/tas2770.c | 75 +++++++++++++++++++++++++ sound/soc/codecs/tas2770.h | 12 ++++ 2 files changed, 87 insertions(+) diff --git a/sound/soc/codecs/tas2770.c b/sound/soc/codecs/tas2770.c index 6f878b01716f..d4d7d056141b 100644 --- a/sound/soc/codecs/tas2770.c +++ b/sound/soc/codecs/tas2770.c @@ -492,11 +492,86 @@ static int tas2770_set_dai_tdm_slot(struct snd_soc_da= i *dai, return 0; } =20 +static int tas2770_set_dai_tdm_idle(struct snd_soc_dai *dai, + unsigned int tx_mask, + unsigned int rx_mask, + int tx_mode, int rx_mode) +{ + struct snd_soc_component *component =3D dai->component; + struct tas2770_priv *tas2770 =3D snd_soc_component_get_drvdata(component); + int ret; + + /* We don't support setting anything for SDIN */ + if (rx_mode) + return -EOPNOTSUPP; + + if (tas2770->idle_tx_mode =3D=3D tx_mode) + return 0; + + switch (tx_mode) { + case SND_SOC_DAI_TDM_IDLE_PULLDOWN: + ret =3D snd_soc_component_update_bits(component, TAS2770_DIN_PD, + TAS2770_DIN_PD_SDOUT, + TAS2770_DIN_PD_SDOUT); + if (ret) + return ret; + + break; + case SND_SOC_DAI_TDM_IDLE_ZERO: + ret =3D snd_soc_component_update_bits(component, TAS2770_TDM_CFG_REG4, + TAS2770_TDM_CFG_REG4_TX_KEEPER, + TAS2770_TDM_CFG_REG4_TX_KEEPER); + if (ret) + return ret; + + ret =3D snd_soc_component_update_bits(component, TAS2770_TDM_CFG_REG4, + TAS2770_TDM_CFG_REG4_TX_FILL, 0); + if (ret) + return ret; + + break; + case SND_SOC_DAI_TDM_IDLE_HIZ: + ret =3D snd_soc_component_update_bits(component, TAS2770_TDM_CFG_REG4, + TAS2770_TDM_CFG_REG4_TX_KEEPER, + TAS2770_TDM_CFG_REG4_TX_KEEPER); + if (ret) + return ret; + + ret =3D snd_soc_component_update_bits(component, TAS2770_TDM_CFG_REG4, + TAS2770_TDM_CFG_REG4_TX_FILL, + TAS2770_TDM_CFG_REG4_TX_FILL); + if (ret) + return ret; + + break; + case SND_SOC_DAI_TDM_IDLE_OFF: + ret =3D snd_soc_component_update_bits(component, TAS2770_DIN_PD, + TAS2770_DIN_PD_SDOUT, 0); + if (ret) + return ret; + + ret =3D snd_soc_component_update_bits(component, TAS2770_TDM_CFG_REG4, + TAS2770_TDM_CFG_REG4_TX_KEEPER, 0); + if (ret) + return ret; + + break; + + default: + return -EOPNOTSUPP; + } + + tas2770->idle_tx_mode =3D tx_mode; + + return 0; +} + static const struct snd_soc_dai_ops tas2770_dai_ops =3D { .mute_stream =3D tas2770_mute, .hw_params =3D tas2770_hw_params, .set_fmt =3D tas2770_set_fmt, .set_tdm_slot =3D tas2770_set_dai_tdm_slot, + .set_tdm_idle =3D tas2770_set_dai_tdm_idle, .no_capture_mute =3D 1, }; =20 diff --git a/sound/soc/codecs/tas2770.h b/sound/soc/codecs/tas2770.h index 3fd2e7003c50..102040b6bdf8 100644 --- a/sound/soc/codecs/tas2770.h +++ b/sound/soc/codecs/tas2770.h @@ -67,6 +67,14 @@ #define TAS2770_TDM_CFG_REG3_RXS_SHIFT 0x4 #define TAS2770_TDM_CFG_REG3_30_MASK GENMASK(3, 0) #define TAS2770_TDM_CFG_REG3_30_SHIFT 0 + /* TDM Configuration Reg4 */ +#define TAS2770_TDM_CFG_REG4 TAS2770_REG(0X0, 0x0E) +#define TAS2770_TDM_CFG_REG4_TX_LSB_CFG BIT(7) +#define TAS2770_TDM_CFG_REG4_TX_KEEPER_CFG BIT(6) +#define TAS2770_TDM_CFG_REG4_TX_KEEPER BIT(5) +#define TAS2770_TDM_CFG_REG4_TX_FILL BIT(4) +#define TAS2770_TDM_CFG_REG4_TX_OFFSET_MASK GENMASK(3, 1) +#define TAS2770_TDM_CFG_REG4_TX_EDGE_FALLING BIT(0) /* TDM Configuration Reg5 */ #define TAS2770_TDM_CFG_REG5 TAS2770_REG(0X0, 0x0F) #define TAS2770_TDM_CFG_REG5_VSNS_MASK BIT(6) @@ -115,6 +123,9 @@ #define TAS2770_TEMP_LSB TAS2770_REG(0X0, 0x2A) /* Interrupt Configuration */ #define TAS2770_INT_CFG TAS2770_REG(0X0, 0x30) + /* Data In Pull-Down */ +#define TAS2770_DIN_PD TAS2770_REG(0X0, 0x31) +#define TAS2770_DIN_PD_SDOUT BIT(7) /* Misc IRQ */ #define TAS2770_MISC_IRQ TAS2770_REG(0X0, 0x32) /* Clock Configuration */ @@ -146,6 +157,7 @@ struct tas2770_priv { int pdm_slot; bool dac_powered; bool unmuted; + int idle_tx_mode; }; =20 #endif /* __TAS2770__ */ --=20 2.52.0