From nobody Mon Feb 9 09:32:44 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