From nobody Sat Jun 20 14:15:59 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.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 2FFF4477E33 for ; Thu, 30 Apr 2026 17:47:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777571266; cv=none; b=i79Z1Zw4u2MLupAP3c0YyGmTF+p7zSHdhFlp+6/oNM0gyl5mnBHpHhHtp4OZZsOPX4DwAeYkVixKbu8A2Xu+pGPTs9CbCIxogMDdAHOSS+ndf/Fch8iDEqB5wWk6LdFphQ1YIlFTQPxIUoFwGAsD3kyXXix3xLHVkdRWXa4nuYQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777571266; c=relaxed/simple; bh=eWyFo6wtcwjcGn72c1H93Yp+EkyaoRZ7SE6IqiBOBuE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RlS2dy8UuF/QQvLWhuf0ldo6ngC1ghPuVx6IYHgXYKq1UgillJc4Pv1knS1k5Yhw9Yl8OTcs196UjmQNMPNrJ4CZVtesMb4e7k59PnVNXdm/yzX1ikdYPELln3H6M5VW90e0IjoAdd4xYwgoWKjBkll/+Itawo1PItObPPKnNL8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=imd-tec.com; spf=pass smtp.mailfrom=imd-tec.com; dkim=pass (2048-bit key) header.d=imd-tec.com header.i=@imd-tec.com header.b=Wd1Aj/ro; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=imd-tec.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=imd-tec.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=imd-tec.com header.i=@imd-tec.com header.b="Wd1Aj/ro" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-48334ee0aeaso11172015e9.1 for ; Thu, 30 Apr 2026 10:47:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imd-tec.com; s=google; t=1777571264; x=1778176064; 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=5gbkbiFxStV52q4s9W7vmjcqc2PkrySXx7kVEFbo+QI=; b=Wd1Aj/roBKasuMdcYbPquAiufq5cWkzAf6ieBw/SkL+4FBaDfukP13+FifJ5aRfyOe out9ZiDm4i3UIfh/AqeCKTAWesoc94b/DyTbijsI3X9WjQRzXqyS94O0QTrLKtT5E1D0 6HXwid76Hre6hFBzONViXTHcyZovEiNcwJp0Ei85J5W+lhH5k/PRyxc1wjKrm84q+kso aAoNAKuRVnDggqc22Kmlh3FNuIdaxlWBbS1ZqNn15MXaE2YXQdBoIv+uVD5MAwDC8kLu 1m47jpzVJ2Yh9LjrF9COuHME0QXuSSiTbCY+CPVMvfWUMp7ktevwtkY2iNEetiYR3wpw 0RUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777571264; x=1778176064; 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=5gbkbiFxStV52q4s9W7vmjcqc2PkrySXx7kVEFbo+QI=; b=KQaXZsSEq+esuXwtN87knjdiK1jITLIXAdEWzQfeNMdYry+gEXFRdooyFQld6wlTV6 oP2FyiAmsUBqZHBixd5Q+K9T+gnOXYguL//JEVBStXCAt1N3f7KfbPO5TL6gv+h3Cq3T 6oX+hXAMnj2l9jBZlTY73VQ0es6asS4y2dt0eVrxjnKFzIJtylNYnCxo1kWdvJx3ttsX +IQehnm2+95cewksUNcBjtu2UTWj37OKv3/OiR2aEfTcmyW2BYlW3Xhi+EA5RaElp2yk 7Wq1ikDTF8H56ywXG2s80usiKFWAspMJSyCF3DJgSswMJAFjUn8c9HzjAR6GFuyLB/H/ OCMg== X-Forwarded-Encrypted: i=1; AFNElJ8xXFpG3s/UTnC/MOmq6TG9/giV99JI5u1ZOrC9gbdYtlMjkH2goh3Qtjsf2ilhlSxVzw4KM1QSBC8KDE0=@vger.kernel.org X-Gm-Message-State: AOJu0Yy0LtuaqmIbG/ASLjNPeEtkLCXAbQq/tZCiVzKktF9oY2NG+HsU K4S8EOJBmxtB9T6vilpVoQWmREKlZTc7n/Zdi/8atUzjm4aALPglQKRoYZhRwL3DHic= X-Gm-Gg: AeBDievY6emkruAQtu7uuVcECU4iRgO91/dINP4pvsF+EhgJvZn706qoHOhxwPG3P2W GoLWQG1RYc0mETMsEinDB1ptEOctXWNPbGTgTwRY/gbNNY6g93xeUciH0p86u7pGIZMFF3428Dh zhkcnZbwf0z08+wEiAk5IK3aPi01PLQEtZVDoqgAxB/aR9jHvkuLlh/vLGws2f32r6wSma/gwUX cMAUphNDSjYHF2zy30QROAwua7Se5k9cW+fzkc60P8jVbJf58YJ3mgruDt7hEfjA/MzLENdm44t shZf5OijlMGnATHLYzIGEF68xEPu2LZLL1BRceiMqctwqkPwiIPf1O5onvXwJV5CKnK18bAiCVz yxyGjGK3wosiHee7IpBngvHjXUUEHIPts7tNotwZ+nRbl+m0LO2H1P2SR2qVXh/JYQqsIJsqfvj hs58SfDhatUoQnSaCB9+O782TTOd4+5IsI+0hP32o9i4q9DGrjxR8XZbId2/+mWmnF3FUP27pKj SSzC2oTlSHLuC8+FaWnRlDstoUsHroLYI8= X-Received: by 2002:a05:600c:8b84:b0:480:69b6:dfed with SMTP id 5b1f17b1804b1-48a84460ab3mr68015285e9.24.1777571263279; Thu, 30 Apr 2026 10:47:43 -0700 (PDT) Received: from [127.0.1.1] ([2a00:23c6:2736:8e01:fd90:2598:5764:5f01]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a7c1d0228sm174449435e9.2.2026.04.30.10.47.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 10:47:42 -0700 (PDT) From: William Bright Date: Thu, 30 Apr 2026 18:47:01 +0100 Subject: [PATCH RFC 1/3] dt-bindings: vendor-prefixes: Add IMDT 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: <20260430-imdt-qcs8550-sbc-rfc-v1-1-4d2b6675eaa3@imd-tec.com> References: <20260430-imdt-qcs8550-sbc-rfc-v1-0-4d2b6675eaa3@imd-tec.com> In-Reply-To: <20260430-imdt-qcs8550-sbc-rfc-v1-0-4d2b6675eaa3@imd-tec.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, William Bright X-Mailer: b4 0.15.2 Add IMDT (IMD Technologies Ltd) to the vendor prefixes list. Signed-off-by: William Bright --- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Docum= entation/devicetree/bindings/vendor-prefixes.yaml index ee7fd3cfe203..2db12a1cb6e1 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -769,6 +769,8 @@ patternProperties: description: ILI Technology Corporation (ILITEK) "^imagis,.*": description: Imagis Technologies Co., Ltd. + "^imdt,.*": + description: IMD Technologies Ltd. "^img,.*": description: Imagination Technologies Ltd. "^imi,.*": --=20 2.43.0 From nobody Sat Jun 20 14:15:59 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 7C5CF477E3F for ; Thu, 30 Apr 2026 17:47:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777571267; cv=none; b=Npf5PyHEPENWyTm7pS536Qc5P5tJnKoeJGFDlDMMFXH7Yc/qUkTvpC/lrsAuIPRLJKMJtahR9HKrrK05eLcYiyv0bA7uTDRUfHBRgJj/z7NjXSMxIvsjjZ1pvgnuWN8La7cVfeS/ogD80Tt+Yoii8L7bVFnS5DEDvS1yu3NSvAM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777571267; c=relaxed/simple; bh=yiaD1q3Eo/UrebdhQBErSSmmy2q8AzQyw5B4P/F0IGw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RmjnaJDyyYo1P0ytAi8FS5tLg8mHUgDBNc3pzEe5taffm1nyR+CA8iQ1bIUwiz8U2dBvnpcPeErmpacoN0o/a20TtRdiJtX6CZAI+ZZntXSfgVTFaPOTUYJ6tpdX9B82AKaVU7gnaU48PkbqG+wzOCst+hoPqE0F4YfouS/iakc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=imd-tec.com; spf=pass smtp.mailfrom=imd-tec.com; dkim=pass (2048-bit key) header.d=imd-tec.com header.i=@imd-tec.com header.b=QSiH3k9q; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=imd-tec.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=imd-tec.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=imd-tec.com header.i=@imd-tec.com header.b="QSiH3k9q" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-48374014a77so14493075e9.3 for ; Thu, 30 Apr 2026 10:47:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imd-tec.com; s=google; t=1777571264; x=1778176064; 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=F3/NzWJWCkR/MPt1qoN4RNWPWVChQ9AWvCEeS02wAAU=; b=QSiH3k9qR2JbS39ua2PmFuKK78JfMQui2vKp3Dgl3540GaT2VMIRf2bKG10AfliWLX U07UwOdOpxfRvgKpI4mMjFFsnDT3mNxVRaucDZDZghX9Jy+IdB1zIR4CamICAzr6RPbi 5PmWKNVXQ+rHzLv7O3fA+Eg9fX2M1S63NKJtdlIcKi6tYAm2onaHf9Ct+CYFBpofPyd6 hE0foCejIGM8RS2sKN277bOgluBACtMtJ7rcNZDaOpPqdTgU4YgaVox0mi2kOlxq39Dq h4bZswP1bSeXGxYUbJ1tVjFk1znyugRaCUxj7ZmyCDqpaaXxkf2BUOuQS20fJfHv6dc2 6W0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777571264; x=1778176064; 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=F3/NzWJWCkR/MPt1qoN4RNWPWVChQ9AWvCEeS02wAAU=; b=WYfBL7J5ChX1puzzRe/sXtvcnlkVh595nnucp8MHaz7hAwwNVd4M4EwFmkU3ZnDP72 N4RXxesirbIu/2xrzB6EHmrCGX4r5gJemcFTKss0cudl5hyM4e3A6+9j4tZZ2kH6neVk LLgLVMhYkgIwzf3H9b1CHhJTeLtb2/ZlXc4zAyZ3VI520VsnDqC+w7Bk6AhB09n/O8sL aFj6l/jc2Bfio9sdsbrG87Eh+U5qpcqFn4wDOf8v/TbTY1gzbhK2zUnZbTzC9faqwT7L SFiWPCEaCT+CBXXFjTcgx80abTyW+VaUXdX3HX1JsT8/H5DFfU3/9hruVvLHhBH+NEXS 1N/w== X-Forwarded-Encrypted: i=1; AFNElJ+oYo9nys5WpcwBLhnSMvbQozf3SVRszs0gC7ySYiEV2Nh/ma3ygN4+4++59142kMc9G9tRmETNhzG4uOk=@vger.kernel.org X-Gm-Message-State: AOJu0Ywe7krPtFLwmOElVeF3nOO3x0cNBWZFhm3A9GvWft7P5G7ecDS0 hs8W6HIuNfLVDzxRAWnV4u9IvAxB2j6UmClrPWmxlm/f+mdkyiOpaPyeWFQASbgEIT0= X-Gm-Gg: AeBDieu5IMNS/74liNbPrhvnc4NqqiVyH6qHEGWCsqDUo3jqIkOSj/X1amQiAZPP6w+ JxY+uGZyY/tCsRg+43QsyzE7Uj5UkM4qQDpui/ThS4+rW07CWnCpbbJZSaAb6VNHSlyTQI/SNiR v+Zp0pui3Y4C0Fi+V/WqnlbyD6GhbFINqLCjUljyVjWYshVGTGiWQiUAo1pc5T6KPGG5DziVuxs JNmFBLLxLdnt4BaEPKETASung6+w+6N3n7N4vyhemwjhLzDySOno01HQTFY4t/FnjLigxiMVbOb NC4nZBTBASkrOxOIcItJ9lO4Rcm5RmKCpChcB/zUn1PnzpZKAWmh9cRAcPDuBlnhBF1r/d0fkWt nq8nEkyA2t+9v5qbwisLc8RkNZ2RqlTBawL7VLggM3g8ekyfnVrTemPfp+agwF3pOn1XGYc3Nbv ZRuXwAPBCyBKLuxS4PvfiFY064aFqYau4kMmkAm7LLa/zjIm4VFZKrjyfuj1kMTqLZlo5noaxcN R+NJj93jYYQ+pVemDxi7HlO+q9FH3Vg/SU7FkTlbSX5VQ== X-Received: by 2002:a05:600c:83c5:b0:48a:5574:3a5b with SMTP id 5b1f17b1804b1-48a8448629emr69017555e9.27.1777571264100; Thu, 30 Apr 2026 10:47:44 -0700 (PDT) Received: from [127.0.1.1] ([2a00:23c6:2736:8e01:fd90:2598:5764:5f01]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a7c1d0228sm174449435e9.2.2026.04.30.10.47.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 10:47:43 -0700 (PDT) From: William Bright Date: Thu, 30 Apr 2026 18:47:02 +0100 Subject: [PATCH RFC 2/3] dt-bindings: qcom: Document IMDT QCS8550 SBC and SoM 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: <20260430-imdt-qcs8550-sbc-rfc-v1-2-4d2b6675eaa3@imd-tec.com> References: <20260430-imdt-qcs8550-sbc-rfc-v1-0-4d2b6675eaa3@imd-tec.com> In-Reply-To: <20260430-imdt-qcs8550-sbc-rfc-v1-0-4d2b6675eaa3@imd-tec.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, William Bright X-Mailer: b4 0.15.2 Document the IMDT QCS8550 SBC which consists of an IMDT QCS8550 SoM soldered onto an IMDT QCS8550 carrier board. The IMDT QCS8550 SoM consists of a QCS8550, UFS and PMICs. Signed-off-by: William Bright --- Documentation/devicetree/bindings/arm/qcom.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentatio= n/devicetree/bindings/arm/qcom.yaml index cc29b06621a9..5dcd794369e4 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -1080,6 +1080,13 @@ properties: - const: qcom,qcs8550 - const: qcom,sm8550 =20 + - items: + - enum: + - imdt,qcs8550-sbc + - const: imdt,qcs8550-som + - const: qcom,qcs8550 + - const: qcom,sm8550 + - items: - enum: - qcom,sm8650-hdk --=20 2.43.0 From nobody Sat Jun 20 14:15:59 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.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 C83D1478E5E for ; Thu, 30 Apr 2026 17:47:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777571269; cv=none; b=Mo22Sdb7E3fEH6dzKm00Cd9asxjukR6uzR1+Eyr1umrJ5nW4OfGWKkG7/xg4An732ZWXUYZ9Lv+dIV6q9yhm70p847owTDJ46SbrvhrPyVpoERw/43HOwC/B3vdWAekkLD60Iem1gc5aulmVeysVbpf5XOSHGVFu8JME3YKI9fw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777571269; c=relaxed/simple; bh=/zzbqq4YuOpEnGgp72cNRD6qFCkGDX0TUkWEr7PVBx4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SX5orqoQeg9iCxoXjEgKFiq3lTYRopaPiFRcxB/Y5bH7iKcRfXht9ycFll/GqcSkl4fGNMi8igJsLZ9Ed9Z9hW3haCTjWMVwxxJCEPSehVOG6on9H9/z54W9+cR5pUWxw1o8a/KdigDEjNpKdlFMm65Y+lsimPzfNDbQFtsEZKg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=imd-tec.com; spf=pass smtp.mailfrom=imd-tec.com; dkim=pass (2048-bit key) header.d=imd-tec.com header.i=@imd-tec.com header.b=L96pjuDU; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=imd-tec.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=imd-tec.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=imd-tec.com header.i=@imd-tec.com header.b="L96pjuDU" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-48a7fe4f40bso12330915e9.0 for ; Thu, 30 Apr 2026 10:47:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imd-tec.com; s=google; t=1777571265; x=1778176065; 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=e81ZModzMjtaL8jDgg3MyiHzFSyoTtrHkgYWCUJd6rQ=; b=L96pjuDUSNRu7K4P/cR0v8ngEpM+iPlH02xM7/Ex7Ug47k91VXZcDqJc01N+ZlwkRf aBbOrtWczJ3SBbxqr5pppwBtjWFuCTlvDVdEeEdD3VPEir43YmOKi4rxgCas6rZkEPbs pqv+WKKRUNTEB9UMazlKUABE4VPKcnXZ2v3mOyuvES3pJliae3EPxsWmwLC3ToMVdX++ Q/AaqRL+RXQEqDrAEGNnSAD/yRXHllJdmsQEwYk4YGS/QcYY4O2icS97XGTmvUGGXl1v QWysREjbHwUbw4ON3xsdL/P04a+q64gACOF4oJ12vznBKkDfkZIAstx/2tYfQUrLSJ4L n6vA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777571265; x=1778176065; 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=e81ZModzMjtaL8jDgg3MyiHzFSyoTtrHkgYWCUJd6rQ=; b=lE2ktySf9ivq2TMpC/Ms97Faxt4B9dUYbXQw6rHp8byEl8w+nMcMKkP11O5fjEm00e znIofKxbdJ085jO3+bXQ/5Yu74n8nr7455ZrfL4NkoUA7gdHQPH2c+ZP/EtY+8v7GEGu FfSBKk14/P7lES6T/tIe5R9e+lmCdzQS7y9IizuQUdsaP8Uela4GyIqKnI80SJAvzioH /gWaCOaihONqddjrkt+G/KJD7J19K8h4f011UZXHqp++ctIGX6QuCXRnaYrh9YaHtfj4 3ybicnT8g4nLb5bFDKlA4yVx+PNkITf+rQ0S4nxZqPGK8z2uoaGEZuo7/0cY0emdRUG5 W7ZA== X-Forwarded-Encrypted: i=1; AFNElJ+Zt7eZjekTPFPJGHFOFz6jwle2AX25QL7Ye4pbg6X71ZpnzzZjXcA6oqW/B0yAhmq8aAn1Cgzp38e32KE=@vger.kernel.org X-Gm-Message-State: AOJu0YwiA5pz+M2Ed6eyiNJYYMG4M8xJXvzULOBDUNijJSHnKALB7BmB AQompmCRL8p4O21ekNQYihnQ8afRYWUR0M7xkpdFBg3UQm/etlYBtQScaF0O8nf6ZZg= X-Gm-Gg: AeBDieu00GWJ8A3GMUWhpE9BnJH8UAznqPDoeAceg+F4E2CjxBhwyZQjbnHE5pCzK5q +IpPcfQARL6waqhpjNUO8FTmbOOX6yx2HwZ1QEfi30zrEykTHWXEBlL+Qd1uRNRjiTCOWcYa9sP 5JvRc5oYXriPjbeA+4OxKemKDWkDNmRw3gcRvZgNviOjQ8qKmh3Xiq1OGq5JiOpfUAAL5qv9h+9 NABa/NYTxujFTcl7c5suWBoFumYI7R5yPMYaGrGgcapKT5oxyqzo1Klrh1qy1+qml/D7I6VSk3e cvuQT2fpMOufQP1EWxI0AZ7LvkQefUfl5un1bGxUHRmYJLh8vHOk2vpbyXEkkGT6cpJAtYUJq2R p2xmjVAj1sH50TPQobofclA7w1QY/mKnz8t3pD9ET272jFtZasp/EevltE5qflMqRHAdhuVqFSD HjP76m9/O+kveYXO4csyKAKf8ZndfMvuyHWSm/8J/0Z35oeQX+JxCF3PF7Vxp5z1XzJ4b8N7Guc ESR5VwB6MT3AMfmKd8Ol7DvJPlLcAfC8y0= X-Received: by 2002:a05:600c:45d4:b0:488:90ac:8f71 with SMTP id 5b1f17b1804b1-48a83d66cd4mr57361745e9.5.1777571265047; Thu, 30 Apr 2026 10:47:45 -0700 (PDT) Received: from [127.0.1.1] ([2a00:23c6:2736:8e01:fd90:2598:5764:5f01]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a7c1d0228sm174449435e9.2.2026.04.30.10.47.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 10:47:44 -0700 (PDT) From: William Bright Date: Thu, 30 Apr 2026 18:47:03 +0100 Subject: [PATCH RFC 3/3] arm64: dts: qcom: Add IMDT QCS8550 SBC 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: <20260430-imdt-qcs8550-sbc-rfc-v1-3-4d2b6675eaa3@imd-tec.com> References: <20260430-imdt-qcs8550-sbc-rfc-v1-0-4d2b6675eaa3@imd-tec.com> In-Reply-To: <20260430-imdt-qcs8550-sbc-rfc-v1-0-4d2b6675eaa3@imd-tec.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, William Bright X-Mailer: b4 0.15.2 The IMDT QCS8550 SBC is a two-board design from IMD Technologies Ltd built around the Qualcomm QCS8550 SoC. An IMDT QCS8550 SoM is soldered onto the IMDT QCS8550 carrier board that supplies VPH_PWR and exposes the off-module peripherals. The hardware is described across two new files: - qcs8550-imdt-som.dtsi: the QCS8550 SoM, its PMICs (PM8550, PM8550VE, PM8550VS, PMK8550) and the apps_rsc PMIC outputs. Compared to other SM8550/QCS8550 boards, this SoM excludes the PM8550B charger PMIC. - qcs8550-imdt-sbc.dts: the carrier board, its VPH_PWR input, on-carrier fixed and GPIO regulators (camera, display, M.2, peripheral, SD/WLAN), the carrier-side vdd-bob/vdd-s supplies, and the peripherals enabled on the SBC. Enabled on the SBC: SDHC2 (microSD), SDHC4 (NXP IW416 WiFi/BT), UART7/14, UFS, GPU, IPA, video (iris), USB-3 (gadget only) with an on-board NXP PTN3222 eUSB2 redriver, PCIe0 (M.2 Key-E), PCIe1 (routed via the on-board PCIe switch to a Microchip LAN7430 Gigabit Ethernet controller), qupv3 I2C controllers, pon_pwrkey, pon_resin, and the ADSP / CDSP / MPSS remoteprocs. The NXP IW416 WiFi side is brought up via an mmc-pwrseq-simple node referenced by SDHC4, which sequences the chip PMIC_EN and WLAN_EN lines with vmmc/vqmmc. The IW416 BT side is described as a child of UART14 using the closest existing upstream binding (nxp,88w8987-bt); the btnxpuart driver auto-detects the IW416 chip ID at runtime. Assisted-by: Claude:claude-opus-4.7 Signed-off-by: William Bright --- arch/arm64/boot/dts/qcom/Makefile | 1 + arch/arm64/boot/dts/qcom/qcs8550-imdt-sbc.dts | 845 +++++++++++++++++++++= ++++ arch/arm64/boot/dts/qcom/qcs8550-imdt-som.dtsi | 319 ++++++++++ 3 files changed, 1165 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/M= akefile index 88c5c0c1cb8e..d38fb3c43c13 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -181,6 +181,7 @@ qcs8300-ride-el2-dtbs :=3D qcs8300-ride.dtb monaco-el2.= dtbo =20 dtb-$(CONFIG_ARCH_QCOM) +=3D qcs8300-ride-el2.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qcs8550-aim300-aiot.dtb +dtb-$(CONFIG_ARCH_QCOM) +=3D qcs8550-imdt-sbc.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qcs9100-ride.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qcs9100-ride-r3.dtb =20 diff --git a/arch/arm64/boot/dts/qcom/qcs8550-imdt-sbc.dts b/arch/arm64/boo= t/dts/qcom/qcs8550-imdt-sbc.dts new file mode 100644 index 000000000000..73a13c4f0e65 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/qcs8550-imdt-sbc.dts @@ -0,0 +1,845 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2026 IMD Technologies Ltd + */ + +/dts-v1/; + +#include "qcs8550-imdt-som.dtsi" + +/ { + model =3D "IMDT QCS8550 SBC"; + compatible =3D "imdt,qcs8550-sbc", "imdt,qcs8550-som", + "qcom,qcs8550", "qcom,sm8550"; + chassis-type =3D "embedded"; + + aliases { + serial0 =3D &uart7; + serial1 =3D &uart14; + }; + + chosen { + stdout-path =3D "serial0:115200n8"; + }; + + backlight: backlight { + compatible =3D "gpio-backlight"; + gpios =3D <&pm8550_gpios 6 GPIO_ACTIVE_HIGH>; + default-on; + }; + + cam_1v2_reg: regulator-cam-1v2 { + compatible =3D "regulator-fixed"; + regulator-name =3D "cam_1v2_reg"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + vin-supply =3D <&hr_cam_pwr>; + }; + + cam_1v8_reg: regulator-cam-1v8 { + compatible =3D "regulator-fixed"; + regulator-name =3D "cam_1v8_reg"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + vin-supply =3D <&hr_cam_pwr>; + }; + + cam_2v8_reg: regulator-cam-2v8 { + compatible =3D "regulator-fixed"; + regulator-name =3D "cam_2v8_reg"; + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + vin-supply =3D <&hr_cam_pwr>; + }; + + cam_3v3_reg: regulator-cam-3v3 { + compatible =3D "regulator-fixed"; + regulator-name =3D "cam_3v3_reg"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + vin-supply =3D <&hr_cam_pwr>; + }; + + display_panel_pwr_en: regulator-display-panel-en { + compatible =3D "regulator-fixed"; + regulator-name =3D "display_panel_pwr_en"; + regulator-min-microvolt =3D <8000000>; + regulator-max-microvolt =3D <8000000>; + startup-delay-us =3D <10000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&panel_en_default>; + + gpio =3D <&tlmm 123 GPIO_ACTIVE_HIGH>; + enable-active-high; + + vin-supply =3D <&som_vph_pwr>; + }; + + /* 5V VIN to backlight LED driver PMIC */ + dsi_5v_en: regulator-dsi-5v-en { + compatible =3D "regulator-fixed"; + regulator-name =3D "dsi_5v_en"; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dsi_5v_en_default>; + + gpio =3D <&tlmm 140 GPIO_ACTIVE_HIGH>; + enable-active-high; + + vin-supply =3D <&som_vph_pwr>; + + regulator-always-on; + regulator-boot-on; + }; + + /* Enables 1V2, 1V8_CAM and 3V3_CAM */ + hr_cam_pwr: regulator-hr-cam-pwr { + compatible =3D "regulator-fixed"; + regulator-name =3D "hr_cam_pwr"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&hr_cam_en_default>; + + gpio =3D <&tlmm 146 GPIO_ACTIVE_LOW>; + + vin-supply =3D <&som_vph_pwr>; + + regulator-always-on; + regulator-boot-on; + }; + + /* Enables V2MB_3V8 and V2ME_3V3 */ + m2_pd_pwr: regulator-m2-pd-pwr { + compatible =3D "regulator-fixed"; + regulator-name =3D "m2_pd_pwr"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&m2_pd_en_default>; + + gpio =3D <&tlmm 144 GPIO_ACTIVE_LOW>; + + vin-supply =3D <&som_vph_pwr>; + + regulator-always-on; + regulator-boot-on; + + gpio-open-drain; + }; + + per_1v8_reg: regulator-per-1v8 { + compatible =3D "regulator-fixed"; + regulator-name =3D "per_1v8_reg"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + vin-supply =3D <&per_pwr>; + }; + + per_3v3_reg: regulator-per-3v3 { + compatible =3D "regulator-fixed"; + regulator-name =3D "per_3v3_reg"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + vin-supply =3D <&per_pwr>; + }; + + per_5v_reg: regulator-per-5v { + compatible =3D "regulator-fixed"; + regulator-name =3D "per_5v_reg"; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + vin-supply =3D <&per_pwr>; + }; + + /* Enables 5V_PER, 3V3_PER and 1V8_PER */ + per_pwr: regulator-per-pwr { + compatible =3D "regulator-fixed"; + regulator-name =3D "per_pwr"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pwr_per_en_default>; + + gpio =3D <&tlmm 142 GPIO_ACTIVE_HIGH>; + enable-active-high; + + vin-supply =3D <&som_vph_pwr>; + + regulator-always-on; + regulator-boot-on; + }; + + sdhci_2_vqmmc: regulator-sdhci-2-vqmmc { + compatible =3D "regulator-gpio"; + + regulator-name =3D "sdhci_2_vqmmc"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <3300000>; + regulator-type =3D "voltage"; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&sd_vset_default>; + + gpios =3D <&tlmm 4 GPIO_ACTIVE_HIGH>; + enable-active-high; + + gpios-states =3D <0>; + states =3D <3300000 0>, + <1800000 1>; + + startup-delay-us =3D <10000>; + }; + + sdhci_4_vqmmc: regulator-sdhci-4-vqmmc { + compatible =3D "regulator-fixed"; + regulator-name =3D "sdhci_4_vqmmc"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + som_vph_pwr: regulator-som-vph-pwr { + compatible =3D "regulator-fixed"; + regulator-name =3D "som_vph_pwr"; + regulator-min-microvolt =3D <3900000>; + regulator-max-microvolt =3D <3900000>; + regulator-always-on; + regulator-boot-on; + }; + + vph_pwr: regulator-vph-pwr { + compatible =3D "regulator-fixed"; + regulator-name =3D "vph_pwr"; + regulator-min-microvolt =3D <3700000>; + regulator-max-microvolt =3D <3700000>; + regulator-always-on; + regulator-boot-on; + }; + + vsys_sd_3v3_reg: regulator-vsys-sd-3v3 { + compatible =3D "regulator-fixed"; + regulator-name =3D "vsys_sd_3v3_reg"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + regulator-always-on; + regulator-boot-on; + }; + + vsys_wlan_3v3_reg: regulator-vsys-wlan-3v3 { + compatible =3D "regulator-fixed"; + regulator-name =3D "vsys_wlan_3v3_reg"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + regulator-always-on; + regulator-boot-on; + }; + + wifi_pwrseq: wifi-pwrseq { + compatible =3D "mmc-pwrseq-simple"; + /* + * NXP IW416 chip enables: PMIC_EN (master) and WLAN_EN. + * Held asserted (low) before SDHC4 powers up, then + * released after vmmc/vqmmc are stable. + */ + reset-gpios =3D <&tlmm 19 GPIO_ACTIVE_LOW>, + <&tlmm 5 GPIO_ACTIVE_LOW>; + post-power-on-delay-ms =3D <50>; + }; +}; + +&apps_rsc { + regulators-0 { + vdd-bob1-supply =3D <&vph_pwr>; + vdd-bob2-supply =3D <&vph_pwr>; + }; + + regulators-3 { + vdd-s4-supply =3D <&vph_pwr>; + vdd-s5-supply =3D <&vph_pwr>; + }; + + regulators-4 { + vdd-s4-supply =3D <&vph_pwr>; + }; + + regulators-5 { + vdd-s1-supply =3D <&vph_pwr>; + vdd-s2-supply =3D <&vph_pwr>; + vdd-s3-supply =3D <&vph_pwr>; + vdd-s4-supply =3D <&vph_pwr>; + vdd-s5-supply =3D <&vph_pwr>; + vdd-s6-supply =3D <&vph_pwr>; + }; +}; + +&gpi_dma1 { + status =3D "okay"; +}; + +&gpu { + status =3D "okay"; +}; + +&gpu_zap_shader { + firmware-name =3D "qcom/sm8550/a740_zap.mbn"; + /* Zap shader doesn't load so is disabled */ + status =3D "disabled"; +}; + +&i2c_master_hub_0 { + status =3D "okay"; +}; + +&i2c_hub_2 { + clock-frequency =3D <400000>; + status =3D "okay"; + + ptn3222: redriver@43 { + compatible =3D "nxp,ptn3222"; + reg =3D <0x43>; + #phy-cells =3D <0>; + + vdd1v8-supply =3D <&vreg_l15b_1p8>; + vdd3v3-supply =3D <&vreg_l5b_3p1>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&eusb2_repeater_reset_default>; + + reset-gpios =3D <&pm8550vs_d_gpios 4 GPIO_ACTIVE_LOW>; + }; +}; + +&ipa { + qcom,gsi-loader =3D "self"; + memory-region =3D <&ipa_fw_mem>; + firmware-name =3D "qcom/sm8550/ipa_fws.mbn"; + status =3D "okay"; +}; + +&iris { + status =3D "okay"; +}; + +&lpass_rxmacro { + status =3D "disabled"; +}; + +&lpass_tlmm { + status =3D "disabled"; +}; + +&lpass_txmacro { + status =3D "disabled"; +}; + +&lpass_vamacro { + status =3D "disabled"; +}; + +&lpass_wsa2macro { + status =3D "disabled"; +}; + +&lpass_wsamacro { + status =3D "disabled"; +}; + +&pcie0 { + wake-gpios =3D <&tlmm 96 GPIO_ACTIVE_HIGH>; + perst-gpios =3D <&tlmm 94 GPIO_ACTIVE_LOW>; + + /* + * pcie0 hosts the M.2 Key-E slot. Apply the SDIO reset + * de-assert here so any module's chip enable is settled + * before pcie0 trains its link. + */ + pinctrl-0 =3D <&pcie0_default_state>, <&m2e_sdio_resetn_default>; + pinctrl-names =3D "default"; + + status =3D "okay"; +}; + +&pcie0_phy { + vdda-phy-supply =3D <&vreg_l1e_0p88>; + vdda-pll-supply =3D <&vreg_l3e_1p2>; + + status =3D "okay"; +}; + +&pcie1 { + wake-gpios =3D <&tlmm 99 GPIO_ACTIVE_HIGH>; + perst-gpios =3D <&tlmm 97 GPIO_ACTIVE_LOW>; + + /* + * pcie_switch_sel_default and gbe_reset_default are board-init + * lines that must be stable before pcie1 trains its link: the + * PCIe switch needs its mode-select strap settled, and the + * downstream LAN743x must be out of reset to enumerate. + * Applying them via pcie1's pinctrl-0 fires them during + * qcom-pcie probe, before bus enumeration. + */ + pinctrl-0 =3D <&pcie1_default_state>, + <&pcie_switch_sel_default>, + <&gbe_reset_default>; + pinctrl-names =3D "default"; + + status =3D "okay"; +}; + +&pcie1_phy { + vdda-phy-supply =3D <&vreg_l3c_0p9>; + vdda-pll-supply =3D <&vreg_l3e_1p2>; + vdda-qref-supply =3D <&vreg_l1e_0p88>; + + status =3D "okay"; +}; + +&pm8550_gpios { + sd_card_detect_default: sd-card-detect-default-state { + pins =3D "gpio12"; + function =3D "normal"; + input-enable; + output-disable; + bias-disable; + power-source =3D <1>; /* 1.8 V */ + }; +}; + +&pm8550vs_d_gpios { + eusb2_repeater_reset_default: eusb2-repeater-reset-default-state { + pins =3D "gpio4"; + function =3D "normal"; + + input-enable; + output-enable; + bias-disable; + + drive-push-pull; + power-source =3D <1>; /* 1.8V */ + qcom,drive-strength =3D <3>; + }; +}; + +&pmk8550_gpios { + pmk8550_sleep_clk: sleep-clk-state { + pins =3D "gpio3"; + function =3D "func1"; + input-disable; + output-enable; + bias-disable; + power-source =3D <1>; /* 1.8 V */ + }; +}; + +&pon_pwrkey { + status =3D "okay"; +}; + +&pon_resin { + linux,code =3D ; + + status =3D "okay"; +}; + +&qupv3_id_0 { + status =3D "okay"; +}; + +&qupv3_id_1 { + status =3D "okay"; +}; + +&remoteproc_adsp { + firmware-name =3D "qcom/sm8550/adsp.mbn", + "qcom/sm8550/adsp_dtb.mbn"; + status =3D "okay"; +}; + +&remoteproc_cdsp { + firmware-name =3D "qcom/sm8550/cdsp.mbn", + "qcom/sm8550/cdsp_dtb.mbn"; + status =3D "okay"; +}; + +&remoteproc_mpss { + firmware-name =3D "qcom/sm8550/modem.mbn", + "qcom/sm8550/modem_dtb.mbn"; + status =3D "okay"; +}; + +&sdc2_default { + clk-pins { + drive-strength =3D <16>; + }; + + cmd-pins { + /delete-property/ bias-pull-up; + bias-disable; + drive-strength =3D <16>; + }; + + data-pins { + /delete-property/ bias-pull-up; + bias-disable; + drive-strength =3D <16>; + }; +}; + +&sdhc_2 { + cd-gpios =3D <&pm8550_gpios 12 GPIO_ACTIVE_LOW>; + + pinctrl-0 =3D <&sdc2_default>, <&sd_card_detect_default>; + pinctrl-1 =3D <&sdc2_default>, <&sd_card_detect_default>; + pinctrl-names =3D "default", "sleep"; + + vmmc-supply =3D <&vsys_sd_3v3_reg>; + vqmmc-supply =3D <&sdhci_2_vqmmc>; + + bus-width =3D <4>; + no-sdio; + no-mmc; + + status =3D "okay"; +}; + +&sdhc_4 { + pinctrl-0 =3D <&sdc4_default>, <&pmk8550_sleep_clk>; + pinctrl-1 =3D <&sdc4_sleep>, <&pmk8550_sleep_clk>; + pinctrl-names =3D "default", "sleep"; + + vmmc-supply =3D <&vsys_wlan_3v3_reg>; + vqmmc-supply =3D <&sdhci_4_vqmmc>; + + mmc-pwrseq =3D <&wifi_pwrseq>; + + keep-power-in-suspend; + non-removable; + no-mmc; + no-sd; + + status =3D "okay"; +}; + +&tlmm { + /* Reserved I/Os for NFC */ + gpio-reserved-ranges =3D <32 8>; + + bt_default: bt-default-state { + bt-en-pins { + pins =3D "gpio81"; + function =3D "gpio"; + drive-strength =3D <16>; + bias-disable; + }; + + sw-ctrl-pins { + pins =3D "gpio82"; + function =3D "gpio"; + bias-pull-down; + }; + }; + + dsi_5v_en_default: dsi-5v-en-default-state { + pins =3D "gpio140"; + function =3D "gpio"; + drive-strength =3D <8>; + bias-pull-down; + }; + + goodix_int_default: goodix-int-default-state { + goodix-int-pins { + pins =3D "gpio88"; + function =3D "gpio"; + bias-disable; + }; + }; + + goodix_reset_default: goodix-reset-default-state { + goodix-reset-pins { + pins =3D "gpio122"; + function =3D "gpio"; + drive-strength =3D <8>; + drive-open-drain; + bias-disable; + }; + }; + + hr_cam_en_default: hr-cam-en-default-state { + hr-cam-en-pins { + pins =3D "gpio146"; + function =3D "gpio"; + drive-strength =3D <16>; + }; + }; + + lt9611_irq_pin: lt9611-irq-state { + pins =3D "gpio8"; + function =3D "gpio"; + bias-disable; + }; + + lt9611_rst_pin: lt9611-rst-state { + pins =3D "gpio7"; + function =3D "gpio"; + output-high; + }; + + m2_pd_en_default: m2-pd-en-default-state { + m2-pd-en-pins { + pins =3D "gpio144"; + function =3D "gpio"; + drive-strength =3D <16>; + drive-open-drain; + }; + }; + + panel_en_default: panel-en-default-state { + pins =3D "gpio123"; + function =3D "gpio"; + drive-strength =3D <8>; + bias-pull-down; + }; + + panel_reset_default: panel-reset-default-state { + pins =3D "gpio133"; + function =3D "gpio"; + drive-strength =3D <8>; + bias-disable; + drive-open-drain; + }; + + pwr_per_en_default: pwr-per-en-default-state { + pwr-per-en-pins { + pins =3D "gpio142"; + function =3D "gpio"; + drive-strength =3D <16>; + }; + }; + + sd_vset_default: sd-vset-default-state { + sd-vset-pins { + pins =3D "gpio4"; + function =3D "gpio"; + bias-disable; + drive-strength =3D <16>; + }; + }; + + sdc4_default: sdc4-default-state { + clk-pins { + pins =3D "gpio50"; + function =3D "sdc4_clk"; + bias-disable; + drive-strength =3D <16>; + }; + + cmd-pins { + pins =3D "gpio51"; + function =3D "sdc4_cmd"; + bias-disable; + drive-strength =3D <16>; + }; + + data0-pins { + pins =3D "gpio89"; + function =3D "sdc40"; + bias-disable; + drive-strength =3D <16>; + }; + + data1-pins { + pins =3D "gpio90"; + function =3D "sdc41"; + bias-disable; + drive-strength =3D <16>; + }; + + data2-pins { + pins =3D "gpio48"; + function =3D "sdc42"; + bias-disable; + drive-strength =3D <16>; + }; + + data3-pins { + pins =3D "gpio49"; + function =3D "sdc43"; + bias-disable; + drive-strength =3D <16>; + }; + }; + + sdc4_sleep: sdc4-sleep-state { + clk-pins { + pins =3D "gpio50"; + function =3D "sdc4_clk"; + bias-disable; + drive-strength =3D <2>; + }; + + cmd-pins { + pins =3D "gpio51"; + function =3D "sdc4_cmd"; + bias-disable; + drive-strength =3D <2>; + }; + + data0-pins { + pins =3D "gpio89"; + function =3D "sdc40"; + bias-disable; + drive-strength =3D <2>; + }; + + data1-pins { + pins =3D "gpio90"; + function =3D "sdc41"; + bias-disable; + drive-strength =3D <2>; + }; + + data2-pins { + pins =3D "gpio48"; + function =3D "sdc42"; + bias-disable; + drive-strength =3D <2>; + }; + + data3-pins { + pins =3D "gpio49"; + function =3D "sdc43"; + bias-disable; + drive-strength =3D <2>; + }; + }; + + wcd_default: wcd-reset-n-active-state { + pins =3D "gpio108"; + function =3D "gpio"; + drive-strength =3D <16>; + bias-disable; + output-low; + }; + + wlan_en: wlan-en-state { + pins =3D "gpio80"; + function =3D "gpio"; + drive-strength =3D <8>; + bias-pull-down; + }; + + audio-speaker-dac-reset-default-state { + pins =3D "gpio171"; + function =3D "gpio"; + drive-strength =3D <2>; + drive-open-drain; + }; + + /* + * Drive LAN743x reset high (de-asserted) when pcie1 probes, + * so the PHY enumerates on the bus. Open-drain matches the + * board's external pull-up on the reset line. + */ + gbe_reset_default: gbe-reset-default-state { + pins =3D "gpio138"; + function =3D "gpio"; + drive-strength =3D <2>; + drive-open-drain; + bias-disable; + output-high; + }; + + /* + * We drive this GPIO physically high on the M2 Key-E + * connector to make sure the module is enabled. An M2 + * Key-E module could be using this pin as a chip enable. + */ + m2e_sdio_resetn_default: m2e-sdio-resetn-default-state { + pins =3D "gpio41"; + function =3D "gpio"; + drive-strength =3D <2>; + bias-disable; + output-high; + }; + + /* Force the on-board PCIe switch to select the GbE upstream port. */ + pcie_switch_sel_default: pcie-switch-sel-default-state { + pins =3D "gpio16"; + function =3D "gpio"; + drive-strength =3D <2>; + bias-disable; + output-low; + }; +}; + +&uart7 { + status =3D "okay"; +}; + +&uart14 { + status =3D "okay"; + + /* + * NXP IW416 WiFi+BT combo, BT side over UART. The btnxpuart + * driver auto-detects the chip ID at runtime; the upstream + * binding only enumerates 88w8987/8997 compatibles, so use + * the closest match until an iw416-bt compatible is added. + */ + bluetooth { + compatible =3D "nxp,88w8987-bt"; + fw-init-baudrate =3D <115200>; + max-speed =3D <3000000>; + firmware-name =3D "uartiw416_bt.bin"; + reset-gpios =3D <&tlmm 160 GPIO_ACTIVE_LOW>; + }; +}; + +&ufs_mem_hc { + reset-gpios =3D <&tlmm 210 GPIO_ACTIVE_LOW>; + + vcc-supply =3D <&vreg_l17b_2p5>; + vcc-max-microamp =3D <1300000>; + vccq-supply =3D <&vreg_l1g_1p2>; + vccq-max-microamp =3D <1200000>; + vdd-hba-supply =3D <&vreg_l3g_1p2>; + + status =3D "okay"; +}; + +&ufs_mem_phy { + vdda-phy-supply =3D <&vreg_l1d_0p88>; + vdda-pll-supply =3D <&vreg_l3e_1p2>; + + status =3D "okay"; +}; + +&usb_1 { + /delete-property/ usb-role-switch; + dr_mode =3D "peripheral"; + + status =3D "okay"; +}; + +&usb_1_hsphy { + vdd-supply =3D <&vreg_l1e_0p88>; + vdda12-supply =3D <&vreg_l3e_1p2>; + + phys =3D <&ptn3222>; + + status =3D "okay"; +}; + +&usb_dp_qmpphy { + vdda-phy-supply =3D <&vreg_l3e_1p2>; + vdda-pll-supply =3D <&vreg_l3f_0p88>; + + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/qcom/qcs8550-imdt-som.dtsi b/arch/arm64/bo= ot/dts/qcom/qcs8550-imdt-som.dtsi new file mode 100644 index 000000000000..816cbd254dea --- /dev/null +++ b/arch/arm64/boot/dts/qcom/qcs8550-imdt-som.dtsi @@ -0,0 +1,319 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2026 IMD Technologies Ltd + */ + +#include +#include "qcs8550.dtsi" +#include "pm8550.dtsi" +#define PMK8550VE_SID 5 +#include "pm8550ve.dtsi" +#include "pm8550vs.dtsi" +#include "pmk8550.dtsi" + +&apps_rsc { + regulators-0 { + compatible =3D "qcom,pm8550-rpmh-regulators"; + qcom,pmic-id =3D "b"; + + vdd-l1-l4-l10-supply =3D <&vreg_s6g_1p86>; + vdd-l2-l13-l14-supply =3D <&vreg_bob1>; + vdd-l3-supply =3D <&vreg_s4g_1p25>; + vdd-l5-l16-supply =3D <&vreg_bob1>; + vdd-l6-l7-supply =3D <&vreg_bob1>; + vdd-l8-l9-supply =3D <&vreg_bob1>; + vdd-l11-supply =3D <&vreg_s4g_1p25>; + vdd-l12-supply =3D <&vreg_s6g_1p86>; + vdd-l15-supply =3D <&vreg_s6g_1p86>; + vdd-l17-supply =3D <&vreg_bob2>; + + /* + * PMIC outputs whose testpoints lack capacitors are + * omitted to prevent accidental use: + * L1B_1P8, L4B_1P8, L6B_1P8, L7B_1P8, L8B_1P8, + * L13B_3P0, L14B_3P2. + * Other outputs are unused. + */ + vreg_bob1: bob1 { + regulator-name =3D "vreg_bob1"; + regulator-min-microvolt =3D <3296000>; + regulator-max-microvolt =3D <3960000>; + regulator-initial-mode =3D ; + }; + + vreg_bob2: bob2 { + regulator-name =3D "vreg_bob2"; + regulator-min-microvolt =3D <2720000>; + regulator-max-microvolt =3D <3960000>; + regulator-initial-mode =3D ; + }; + + vreg_l5b_3p1: ldo5 { + regulator-name =3D "vreg_l5b_3p1"; + regulator-min-microvolt =3D <3104000>; + regulator-max-microvolt =3D <3104000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + + vreg_l15b_1p8: ldo15 { + regulator-name =3D "vreg_l15b_1p8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + + vreg_l17b_2p5: ldo17 { + regulator-name =3D "vreg_l17b_2p5"; + regulator-min-microvolt =3D <2504000>; + regulator-max-microvolt =3D <2504000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + }; + + regulators-1 { + compatible =3D "qcom,pm8550vs-rpmh-regulators"; + qcom,pmic-id =3D "c"; + + vdd-l1-supply =3D <&vreg_s4g_1p25>; + vdd-l2-supply =3D <&vreg_s4e_0p95>; + vdd-l3-supply =3D <&vreg_s4e_0p95>; + + vreg_l3c_0p9: ldo3 { + regulator-name =3D "vreg_l3c_0p9"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <912000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + }; + + regulators-2 { + compatible =3D "qcom,pm8550vs-rpmh-regulators"; + qcom,pmic-id =3D "d"; + + vdd-l1-supply =3D <&vreg_s4e_0p95>; + vdd-l2-supply =3D <&vreg_s4e_0p95>; + vdd-l3-supply =3D <&vreg_s4e_0p95>; + + vreg_l1d_0p88: ldo1 { + regulator-name =3D "vreg_l1d_0p88"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <920000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + + /* ldo2 supplies SM8550 VDD_LPI_MX */ + }; + + regulators-3 { + compatible =3D "qcom,pm8550vs-rpmh-regulators"; + qcom,pmic-id =3D "e"; + + vdd-l1-supply =3D <&vreg_s4e_0p95>; + vdd-l2-supply =3D <&vreg_s4e_0p95>; + vdd-l3-supply =3D <&vreg_s4g_1p25>; + + vreg_s4e_0p95: smps4 { + regulator-name =3D "vreg_s4e_0p95"; + regulator-min-microvolt =3D <904000>; + regulator-max-microvolt =3D <984000>; + regulator-initial-mode =3D ; + }; + + vreg_s5e_1p08: smps5 { + regulator-name =3D "vreg_s5e_1p08"; + regulator-min-microvolt =3D <1080000>; + regulator-max-microvolt =3D <1120000>; + regulator-initial-mode =3D ; + }; + + vreg_l1e_0p88: ldo1 { + regulator-name =3D "vreg_l1e_0p88"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <880000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + + vreg_l2e_0p9: ldo2 { + regulator-name =3D "vreg_l2e_0p9"; + regulator-min-microvolt =3D <904000>; + regulator-max-microvolt =3D <970000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + + vreg_l3e_1p2: ldo3 { + regulator-name =3D "vreg_l3e_1p2"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + }; + + regulators-4 { + compatible =3D "qcom,pm8550ve-rpmh-regulators"; + qcom,pmic-id =3D "f"; + + vdd-l1-supply =3D <&vreg_s4e_0p95>; + vdd-l2-supply =3D <&vreg_s4e_0p95>; + vdd-l3-supply =3D <&vreg_s4e_0p95>; + + vreg_s4f_0p5: smps4 { + regulator-name =3D "vreg_s4f_0p5"; + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <700000>; + regulator-initial-mode =3D ; + }; + + vreg_l1f_0p9: ldo1 { + regulator-name =3D "vreg_l1f_0p9"; + regulator-min-microvolt =3D <912000>; + regulator-max-microvolt =3D <912000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + + vreg_l2f_0p88: ldo2 { + regulator-name =3D "vreg_l2f_0p88"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <912000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + + vreg_l3f_0p88: ldo3 { + regulator-name =3D "vreg_l3f_0p88"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <912000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + }; + + regulators-5 { + compatible =3D "qcom,pm8550vs-rpmh-regulators"; + qcom,pmic-id =3D "g"; + + vdd-l1-supply =3D <&vreg_s4g_1p25>; + vdd-l2-supply =3D <&vreg_s4g_1p25>; + vdd-l3-supply =3D <&vreg_s4g_1p25>; + + vreg_s1g_1p25: smps1 { + regulator-name =3D "vreg_s1g_1p25"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1300000>; + regulator-initial-mode =3D ; + }; + + vreg_s2g_0p85: smps2 { + regulator-name =3D "vreg_s2g_0p85"; + regulator-min-microvolt =3D <800000>; + regulator-max-microvolt =3D <1000000>; + regulator-initial-mode =3D ; + }; + + vreg_s3g_0p8: smps3 { + regulator-name =3D "vreg_s3g_0p8"; + regulator-min-microvolt =3D <300000>; + regulator-max-microvolt =3D <1004000>; + regulator-initial-mode =3D ; + }; + + vreg_s4g_1p25: smps4 { + regulator-name =3D "vreg_s4g_1p25"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1352000>; + regulator-initial-mode =3D ; + }; + + vreg_s5g_0p85: smps5 { + regulator-name =3D "vreg_s5g_0p85"; + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <1004000>; + regulator-initial-mode =3D ; + }; + + vreg_s6g_1p86: smps6 { + regulator-name =3D "vreg_s6g_1p86"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <2000000>; + regulator-initial-mode =3D ; + }; + + vreg_l1g_1p2: ldo1 { + regulator-name =3D "vreg_l1g_1p2"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + + vreg_l3g_1p2: ldo3 { + regulator-name =3D "vreg_l3g_1p2"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-allowed-modes =3D ; + }; + }; +}; + +&pm8550vs_c { + status =3D "okay"; +}; + +&pm8550vs_d { + status =3D "okay"; +}; + +&pm8550vs_d_gpios { + status =3D "okay"; +}; + +&pm8550vs_e { + status =3D "okay"; +}; + +&pm8550vs_g { + status =3D "okay"; +}; + +&sleep_clk { + clock-frequency =3D <32764>; +}; + +&xo_board { + clock-frequency =3D <76800000>; +}; --=20 2.43.0