From nobody Tue Apr 7 06:34:42 2026 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (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 8EAA4221F24 for ; Mon, 16 Mar 2026 01:02:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622924; cv=none; b=urj4sieDVfgd6e6CGXkzOFRMX0fsDYBdMbXdTs0gixiWrmZO4BYhnCSueBUTDG8O3n2qYMCMrb1VhoW5g9ofefwrlZZwQs4JmuSblfAuDRGwHRVNoyDb1CkiD5XxbxCgKo8gDgI9fiIbQ9+gaBl3LROupFPUH/5EzjjvGRQsfKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622924; c=relaxed/simple; bh=oAZeYp7NfN4Ch40Jvo2x/a/56aus/5DjsiPO86eV1KA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FnIfWQD0Wt5LxowWbiEodzZuiQN9OTG2lTNEXilh8j7m0o3J0Dbh08Q2foIOyDQYDjfDqRT/adr5wAxEjsfufrV+PMBym+2jRmxHnKkNkKWS+fiOwAfseoKOpHL1WjnuuXeMVoe7+7QV9BuPeCp18fDjwEbz4WfbpDjkSYqcTY0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=kMDspcoJ; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="kMDspcoJ" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-48534237460so44487885e9.3 for ; Sun, 15 Mar 2026 18:02:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773622921; x=1774227721; 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=d4EnNcwv+9HLoV1oCcE9hg7Uth97xpmXg0NPNWImA9A=; b=kMDspcoJmTnoSXy/ekmFJb1wCA5uawOKEIDIb2j27H7XIZ/ZyxBx9Y7AJV+FHN13hg bH6R9YW7GQtKhS78yga0LBtbtiXZdFFpc1/04JFcM5lbP8tdnbJlwHFQeuSuHvNzhuNO EoFmc1i15XZ59rDMd71ayHZQG6RZMgcExQm26lGG3SXxYMnGjRr7X44ja16RLmrtHhsw /l4X8ar+V/q3xYkb0xOsACjGb3+WOU8eUMNi3rlUXLPb0dDNdnhCDBwRCPuPmG6hxDjA dOZATfap6sakpCbHmv/MMM5WEztG3znqt61qS/sl4Hu/WcmPn4EBYH4av3AH2GJ3fHLO cvUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773622921; x=1774227721; 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=d4EnNcwv+9HLoV1oCcE9hg7Uth97xpmXg0NPNWImA9A=; b=D3Ez7yhao6VEdInUFqOghZvKexSqSh5L7UhC6BM4xDoIx9igUN8EyIofJ7c9V5pY1J 7tC67u/Ec0GSAc9t6RzmdxTQt0s+5+ykatWLm55IGVF2oAmqiOaqBM+dTXobhPQghIN0 HQRc9pYi6cwl3c6PmrX1SzdCcOeDAnBXYPpSJ4wO+cuqKBRv7N0tSHWdC1SnL/LC+5+Q H8ReepKcz1WnnAfj5hqw7ANAjFUfvUY8hCu0yJcfd2acCYYSBg68PM86qqnT6XOZ5Aw0 JJ5nyDEfdPmT3pNeDfAl5kKcYFfoXkj09YI026ar6mjNgrXkxkXPgq9QTM3bq519cI3Q Reqg== X-Forwarded-Encrypted: i=1; AJvYcCUFhhGHfidXln3QIfHfp4ZCW1jpWNfaZIQ7sM+PdqauNAynwfaoGGtPlQ5eo1VGnG6paLcn3QLDoRiBKQY=@vger.kernel.org X-Gm-Message-State: AOJu0YyqiKJqG5svm75YdrHU8buVCojVX8oDLzcISrRnPlEOlNtSz0gC v0mq2Q8YDLPYiY7UR8RYIhHmpo68v/cd13NtFyN6SGme6hwktWhLDd9+/OxyZrDMxCU= X-Gm-Gg: ATEYQzwuwrwFxrTtI3cvCQrhv3ZHJVv+ORZyfpKDOVGnEm8M2SD6SGAmShKvSrfSYOD ZDes4J4kNL5lvOjzBMGIC/TRotWUwP5zE38rNszYK8+q3ayHwog/5luqcmzXtooDmDzfAa9qyRr zSm/Q5/0EoECD7T3U0RsTQ6JgYciCJLVqIb8FsmI64OCw82skcTWaBmxp0w1G7+lPpoVc6p4uCo XiTblwlyG8NeIYRDUwqvTBlHIzggem9p8zuSO1UkOmsm4CLXg0HgC2yL09OVMPOYeIv3Ns2jrCL NEaVi6Z5CH0Tx9t2QcMXvwJjQ1h2c3fXVJAP5Whbbd6LS5IKatkY+fisu4NjbLE+jGd17A+x2S5 sbA1FAOMH67Ci0QGFzCbK6fdFBfAVFOhJL70c95L16JDyeC5xnlfwMYAG3k+6loS4kPNHTqXVVW pHvgX+OJaz7PJZbQbsR5DedqJYB8i1QiC915Y= X-Received: by 2002:a05:6000:4014:b0:439:5c75:dc08 with SMTP id ffacd0b85a97d-43a04d83f48mr19743351f8f.10.1773622920856; Sun, 15 Mar 2026 18:02:00 -0700 (PDT) Received: from [192.168.0.35] ([109.76.190.215]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe228986sm34729700f8f.35.2026.03.15.18.01.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 18:01:59 -0700 (PDT) From: Bryan O'Donoghue Date: Mon, 16 Mar 2026 01:02:01 +0000 Subject: [PATCH v10 1/7] dt-bindings: media: qcom,x1e80100-camss: Add simple-mfd compatible 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: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-1-fdfe984fe941@linaro.org> References: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> In-Reply-To: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Robert Foss , Todor Tomov , Mauro Carvalho Chehab , Konrad Dybcio , Vladimir Zapolskiy , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Bryan O'Donoghue , Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1254; i=bryan.odonoghue@linaro.org; h=from:subject:message-id; bh=oAZeYp7NfN4Ch40Jvo2x/a/56aus/5DjsiPO86eV1KA=; b=kA0DAAoBInE7s6GNyDoByyZiAGm3VoyiZNseu9UYoYC6eu33PYlElYW9JtR6Z9+S+cofJeDRy IkCMwQAAQoAHRYhBOaT+yqro23hF6tvtCJxO7Ohjcg6BQJpt1aMAAoJECJxO7Ohjcg6qWsP/RgS BHzfWTj1wcBuU+6PV3S0jVOIvoI86H6pdK+pjyAky1grBTPY26KE3LPamd3au9EZGClSU7SCuAI VcSaNrxpPGBbO2vZPWUZHgAsTd/DyHvkjUAKajPx4/SBy5gtbAzOapGesptckgbfdv5hLv/nFir CNIQlbH3UJnxbZUjVyRC08fn1HNlL+5Aqtbh0wYJTqo+mX85OgIyZL/qSSWqYej5P1fQvMtZNIU BR1gycYTalGd7hZp3toIe+UEsNexPfdF5h7RfC6MthoONUIDKbribA25cJFrFsieJAmlARWfiGh fAqsDlvgoM7Jdrkgt30UfP244qrOvON5N9VfBMoc2xi0EGkzKlBCJzaUHAhsN7OxLyf/zjLLimy ukbYdDQv0TQyC32y195OjR9pO5s7oIIuw0df2vKVSkrs+zS/5AxkG74hxRAvw6X+S2boht11wbT YNSFibbBS0IiMS0li/8tdwN0nngNmbnODico41Ls/GN5VpsD0Ad0j3GbqXrzp7gibQsEhEJnheK bxkSZxEioXkdEdCrvBfaLkAun4KhEMHP47SWOFqHGy1AjB93OHhBv7dHOUaMwIWA6mcbOqJnytp FXQ/csnLAM7c5JamgRhkWAEvJsOQUXN7tGZXiV6PY/3dbntLJiT6NmLjzKjUUozIH3xHy83f2a+ KjRQP X-Developer-Key: i=bryan.odonoghue@linaro.org; a=openpgp; fpr=E693FB2AABA36DE117AB6FB422713BB3A18DC83A Add "simple-mfd" as a second compatible string to allow child nodes within the CAMSS block to probe as individual platform devices. Signed-off-by: Bryan O'Donoghue --- Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml | 8 +++++= +-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.ya= ml b/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml index 2d1662ef522b7..b5654ef71bd89 100644 --- a/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml +++ b/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml @@ -14,7 +14,11 @@ description: =20 properties: compatible: - const: qcom,x1e80100-camss + oneOf: + - const: qcom,x1e80100-camss + - items: + - const: qcom,x1e80100-camss + - const: simple-mfd =20 reg: maxItems: 17 @@ -191,7 +195,7 @@ examples: #size-cells =3D <2>; =20 camss: isp@acb7000 { - compatible =3D "qcom,x1e80100-camss"; + compatible =3D "qcom,x1e80100-camss", "simple-mfd"; =20 reg =3D <0 0x0acb7000 0 0x2000>, <0 0x0acb9000 0 0x2000>, --=20 2.52.0 From nobody Tue Apr 7 06:34:42 2026 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (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 61A17223DD6 for ; Mon, 16 Mar 2026 01:02:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622927; cv=none; b=JAe/MGe8D5r73ksSaxxS7A/rGXlYJK5NTcf0X9oxRti85dqPknlM351Gq6OLoizUobI8QuA8aEj0lu7BxpUkMWN3ymkSYn4FdwLEHvRs4szuiJ/j2UH93tJ/gA9WAiBfU1YU19KZsc3OUyMOilOVCLlGS8yCtNePvItbor5dogk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622927; c=relaxed/simple; bh=CLD7plAx4kx256EGAsOH23fn2fiqSPTmqTRUmqF6KEE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Y/wBoTmE4nkf3/81FSsU8XB9oG+Vnbio3zvlNrl5O5m97eTUCdFSWaNERpbj8//sZhmV0wRKnK4qmk6ci6H0VdhVESmvf6to9GNGHVCGnqSkauYheHb5z3fH4ia5OxGfDeUwr82bczDz9L7PsmEpYRkQdqkmpkK8OjzfI/KjSeI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Yq3BW+y7; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Yq3BW+y7" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-439b611274bso2475223f8f.3 for ; Sun, 15 Mar 2026 18:02:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773622923; x=1774227723; 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=1te5YEH0gYMSw917nzr6gDgeGTg4NzsX9xHG1EXOTkk=; b=Yq3BW+y7ncbL1f0zlIiR5ednwCtRYmlhxltexIKijnoWjcBg93+n7zy6fi+j4Oe57W TSTlfUNIcHflO21oye+i13+Hnl7VnzfvxFzDRzyAEvfbQQ9kl/hc1MeMW3iY/AdpnbKh tXfK+bkzMngXf6Xv9JjNJ8SCj9CWL1Y76HS3JlVZ72Um35PpzVLn1JKYbWnmEU0caCr5 ibJo0ttLtNvIuv8gR6t5di1WjQk2xncDeZ5rYiLxJc1vxokZY0sat66zhM0G5HKpHdcw gY4jSsBlMBLOgnT+ebjkt2ePzPXNFdm2dGg8IdDPxwrSjeJ76U+O/K0uSwpVm9XU0KEB I+Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773622923; x=1774227723; 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=1te5YEH0gYMSw917nzr6gDgeGTg4NzsX9xHG1EXOTkk=; b=Hw+w8J6I6DTiGSEhYNx6c0tmZg66HsYCzv9zsJ3RFl9oIsugxweXZ/a6XY6FC6SfSI OH9nY0o8QUrufGG8zF/wVgM9YQ90zpDF8jF/Cr/wNVOo1hqNegPxQKmkjSOWzt+4fpbp 6+yNhttXBKW6Dsf6z+I0wgdJNuXyQVd6hyyfL+AgMWJZPBV/G6OV2N5cIbOLAbacb+17 DfRapbTr+zW9UVBNpTQGW7jBDSVXQFv6B40gcwLXcAELgmLbt29177RwgxfUOGt+ji/i 4fRFv+xRZ5fSeAczepfJnUvjw1NoeIxT7Ut7FGLuWv27yZRGeQl7uGGdGnw1ZdFJAaxn fYkw== X-Forwarded-Encrypted: i=1; AJvYcCXgrokwDumwBJCTbSd1LJClvQnRO7LjO2q2goaZCeAosdrj8GjWzUsmBk9il7HAIzTKIrqcpNze3hJugD4=@vger.kernel.org X-Gm-Message-State: AOJu0YzRych7t1ktnQuvSG60YntSAEyYhOD0NTtIQ6ah0wmtRmfXcqPi sAor8HRMQwpsQKo6AV+YU1CrdCSE/5lbjsB/eRfeW3/nwWlwHz6aqUV9Y/pk+cxpQyU= X-Gm-Gg: ATEYQzzKldjkUfchSuHhG14SsU1RrbPeLFbi4WjnQ4z3z205ZxhOc64dKegxoyWJpol CVFoCbDfptnzTl4Q+fw0Haax7oCSQR7J3AQOdxXfqAyFuBdJI37WyYnSrlXf4NnWsiDlCkxxzaB W82HQ1SqGbV4N9D4sT5c8t2KkszAhzTlHmNxZvJqCRpAR2Q5+CeyW0Cznu+FD/2UZJEjTl48Dcr k/SXnHjRbY1FcN6QH32tzxznOFgjp9R/oLTDis9vQzBJir/dwjuIEPNFR9jp8CpB65beyokSGX4 +RYsApseldicDT5vPNOmqKwVAkBX0MVsMlVwJ5Ox8/h2/sMhdXFLrgJkdVUwHAMsejbBEHkoJce UESzCDRsfh2OmqVc0OjbP3ezFuALR/VKm53TshW2Msr0+PysXNsHWCTjLRX3rI5xEwXTBVMyxBo aBQ68kmtOeFmKJd5QyjvsFSnpm0tfkB82rvAg= X-Received: by 2002:a05:6000:184a:b0:43b:3f2d:7d58 with SMTP id ffacd0b85a97d-43b3f2d7fc1mr6266218f8f.52.1773622922742; Sun, 15 Mar 2026 18:02:02 -0700 (PDT) Received: from [192.168.0.35] ([109.76.190.215]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe228986sm34729700f8f.35.2026.03.15.18.02.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 18:02:01 -0700 (PDT) From: Bryan O'Donoghue Date: Mon, 16 Mar 2026 01:02:02 +0000 Subject: [PATCH v10 2/7] dt-bindings: media: qcom,x1e80100-camss: Add optional PHY handle definitions 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: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-2-fdfe984fe941@linaro.org> References: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> In-Reply-To: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Robert Foss , Todor Tomov , Mauro Carvalho Chehab , Konrad Dybcio , Vladimir Zapolskiy , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Bryan O'Donoghue , Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2635; i=bryan.odonoghue@linaro.org; h=from:subject:message-id; bh=CLD7plAx4kx256EGAsOH23fn2fiqSPTmqTRUmqF6KEE=; b=owEBbQKS/ZANAwAKASJxO7Ohjcg6AcsmYgBpt1aMekIzpJ8q1fVJcbItgh6FdhwBrvDzsimwn VNES1pk2nuJAjMEAAEKAB0WIQTmk/sqq6Nt4Rerb7QicTuzoY3IOgUCabdWjAAKCRAicTuzoY3I OohFEACDsnuxYUUvG/2qxEmt3khiQhsVwCXSEZlHB/HbjiCeSPqmAeLRbvdrVLEmhrDS0ZIANtQ V4cvJfRFInp+VpfjsITexNkvBgcAY32GBr+5Vjwzzm/wE4JtzLtU/QL6FKLxoCW9iJ46PE+MGz/ 7a7NKkkxe9Dh1WUO9QTZvA7FxFDfqCRuOEKmQJgKzcgzOCOQuLhsUUtsJKdNW99jaVv3WGHrGtX UtIp9uhKu6w4QvpbW8C4qxxrzrBPzLeP2N/rB7uNw8thNbBaqei0jUIjSL/4kLj/Xjf35dY41L2 T4XgqZvQTOKGroQzpWffBkoTyqHtT8xQqg5xbErCQRhrplIlgdF/CqRUsW7GDcnfBrzoPWmsUNH lnEnVKDesLd23v1UCnL/rQF1/ge05qEB1tvZL3TeKU5fPgAjc2m7CEjEzZoBlp6EEKbqG5+k+6X aW6o4oHp47eVYpoXqxhGOF4+9LYtARVlmIa+O4JyC8eyVDxYE3HYNtJutfu5iFdUk4mV9kXhS2m vWXVIUK+x3bnxc+eOOGPdgRoQuO71zCd63JrPMNlJiClPeimjSYVv+HME7pyHLwhO+PJtGWWg7E 7Te3ZlwN2zKbOJ9G2e8EZ0gHLsCiEvrTcwFJLKwQBeBEGijrlk+tKvj3RC828ipDsxgqRUvDZfs e+dP72zYnarfbjg== X-Developer-Key: i=bryan.odonoghue@linaro.org; a=openpgp; fpr=E693FB2AABA36DE117AB6FB422713BB3A18DC83A Add optional PHY handle definitions. This will allow for supporting both legacy PHY definitions as well as supporting the optional new handle based approach. Drop the legacy high-level 0p8 and 1p2 supplies as required, each PHY has its own individual rails. The old binding is still valid but with individual nodes we define the rails in the CSIPHY sub-nodes. Signed-off-by: Bryan O'Donoghue --- .../bindings/media/qcom,x1e80100-camss.yaml | 33 ++++++++++++++++++= ++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.ya= ml b/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml index b5654ef71bd89..5442f981baebc 100644 --- a/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml +++ b/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml @@ -43,6 +43,14 @@ properties: - const: vfe_lite0 - const: vfe_lite1 =20 + '#address-cells': + const: 2 + + '#size-cells': + const: 2 + + ranges: true + clocks: maxItems: 29 =20 @@ -130,6 +138,16 @@ properties: description: 1.2V supply to a PHY. =20 + phys: + maxItems: 4 + + phy-names: + items: + - const: csiphy0 + - const: csiphy1 + - const: csiphy2 + - const: csiphy4 + ports: $ref: /schemas/graph.yaml#/properties/ports =20 @@ -162,6 +180,14 @@ properties: required: - data-lanes =20 +patternProperties: + "^phy@[0-9a-f]+$": + $ref: /schemas/phy/qcom,x1e80100-csi2-phy.yaml + unevaluatedProperties: false + + "^opp-table(-.*)?$": + type: object + required: - compatible - reg @@ -175,8 +201,6 @@ required: - iommus - power-domains - power-domain-names - - vdd-csiphy-0p8-supply - - vdd-csiphy-1p2-supply - ports =20 additionalProperties: false @@ -188,6 +212,7 @@ examples: #include #include #include + #include #include =20 soc { @@ -233,6 +258,10 @@ examples: "vfe_lite0", "vfe_lite1"; =20 + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + clocks =3D <&camcc CAM_CC_CAMNOC_AXI_NRT_CLK>, <&camcc CAM_CC_CAMNOC_AXI_RT_CLK>, <&camcc CAM_CC_CORE_AHB_CLK>, --=20 2.52.0 From nobody Tue Apr 7 06:34:42 2026 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (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 734232192F4 for ; Mon, 16 Mar 2026 01:02:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622929; cv=none; b=pX0kS1wEqKN3hHed9CMwHUrWprgTFXZ9Y9uneEDT8eFK+goy4K2JFerqz0J3+CmqxPMxQUdnzhFbpcqYUGHH/MOt0J0R3CDSWHn1kantcmcprxQkjX31/qCtv7O5RJEFv/yfAh6WFFmxb+2aLrp9WvjJeOQk1XF5f7HHT4Xtu+U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622929; c=relaxed/simple; bh=m3sFOUUGHoLJacVpMtfWXveVT27hc4jump/F3kg6iRU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kS4ssc2n1JoKKznfHN4mfatJANFAhlKRxY2j2GgGGoEVMD5G031OlwYaZI4ksnAf38jqxNwJb++/MrL+QSk2tL4wb3wt6GdQ/0M3H1UmA5TNeY7KMe4QTaQVgkuC2FKzYvHTMbKse6EOmLj59FnrhY4hCB5c2PgNwqqJdVOywQY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=vV7FIq+g; arc=none smtp.client-ip=209.85.221.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="vV7FIq+g" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-439bc14dcf4so3597072f8f.1 for ; Sun, 15 Mar 2026 18:02:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773622926; x=1774227726; 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=bHAPraFWQyyYt02pK8dOnh29cQ9xef2U3WO2DMQ9kPs=; b=vV7FIq+gJ0uLMXGEVT6My+PTXLggajJ1WIbUpJPMI3UOGVdvCAfEztCqRUwiTyb0mq hE49GG0IvIwHRFd/JZqKD1j+QwlBJ4d0HZX277YIH/YK99wj30/ZYos3CNUXB9av1gLn wdV+Cbh/XYQ3ZhJQHX56towoe9SXJwOUMtFdona/Sp6t8qAw3tuOFh4cjBFz7CN17gf8 RPpj36S6jTG2SUNkXy66NxkN1/TmjADpOmtlxfrhRQmQnchMWEfMRqrVGvkBvwSOamNZ Kbg6gh6PomGFlImstGUHZV8yMJazm2o+1B71VendTDBeVxdUTh5mNFYn+Ch1JJ5twKRq ZGqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773622926; x=1774227726; 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=bHAPraFWQyyYt02pK8dOnh29cQ9xef2U3WO2DMQ9kPs=; b=Hc2fBIyCDVDPtIYBhkgYLfY2ARvqUWp7+EdKBoUjtRZwY/srUVo0DZDSQYqktANest Rm8jDkmg9vfV9jPivvfrTHpx4sZYEHrhTcDPBZ/FdIOIGOmU7BzIMUVEDowSVqEOov/9 vJwGChMrXtuJ5QiK0NHQX5HRnF1+Q60Oy3wsqJxZDIprAYQNvSPjoBxbgTC8nt3Sp9e7 kAGQLDiI/XDS3wy9pYa+qE5EqDkt7XaUsNhCCEhjGoIpipKsPs6tjM6lvvehhif/J8WF p/Esz2zf5F41btNBXtuMdZILWnYtbbOwYoS3SDKqmx0sxsJ1TrGvtJoL7zlTS5tc3xj3 zC+g== X-Forwarded-Encrypted: i=1; AJvYcCVCRh2Mgxvit8hVkds/TduRQDY0hqijCjL82YJaPrHuHgg+BX5T6MV2GqCHfGcv0E8t1IWyYXzM+FUgodM=@vger.kernel.org X-Gm-Message-State: AOJu0YyZdeDna4O5WdTZcqaW5YVNucFEF7bVql0uKgcw9mHecrGN3TOk u4XPdJ2xYd45ARD1+juF/4b+DNe2OqyIdqOgU3dtRrpHf+Qciov9JdrR36hm1GVPPa4= X-Gm-Gg: ATEYQzwnI3S9Un1ukWJ/2uPpkFS8YcMQSqYj9CgiU2oAz2UxvKmO/ws3i38nB8Nflhu BNK5OuHb18ztM46vRLKuwL5Opg0b3PZOYvbwiXKpdlV1EQHyL1Fe5cvSIQ1jXkuuugxpmSBb8xZ 6MRu4NB+QAoJ3NSFZVsxIoEjdzHUiTJjYDK95t0KgQrPOaK0NOOyNXOYRYSV4amOFAl5z+gKXwy MZaxci//AP3XQfebIZYky+q7K1Y1l9TJYtZ491GhTweYsKFN4g3gLVg8lNEf4xAFJrAAlCyC2Q2 d/GC3OPosMWiZr3oZRhZrN7zz8cMxAkNotKla+102N+JNUWYVGvZKgSawfyemVO81ocPOXtqWxx bPXxh0YGz9d5/oabKU8VpAxLPZToIa4M61OMs1MLVTP+GZfREClfqVTJ8Cc2/JFFWPI/uXp48E6 h8sfSTv3H9Tb/bRq/G1++vWBTbZYvxJudnSl4= X-Received: by 2002:a05:6000:2911:b0:43b:425b:ec3f with SMTP id ffacd0b85a97d-43b425beeccmr4439134f8f.4.1773622925745; Sun, 15 Mar 2026 18:02:05 -0700 (PDT) Received: from [192.168.0.35] ([109.76.190.215]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe228986sm34729700f8f.35.2026.03.15.18.02.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 18:02:04 -0700 (PDT) From: Bryan O'Donoghue Date: Mon, 16 Mar 2026 01:02:03 +0000 Subject: [PATCH v10 3/7] dt-bindings: media: qcom,x1e80100-camss: Add support for combo-mode endpoints 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: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-3-fdfe984fe941@linaro.org> References: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> In-Reply-To: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Robert Foss , Todor Tomov , Mauro Carvalho Chehab , Konrad Dybcio , Vladimir Zapolskiy , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Bryan O'Donoghue , Krzysztof Kozlowski , Christopher Obbard X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4006; i=bryan.odonoghue@linaro.org; h=from:subject:message-id; bh=m3sFOUUGHoLJacVpMtfWXveVT27hc4jump/F3kg6iRU=; b=owEBbQKS/ZANAwAKASJxO7Ohjcg6AcsmYgBpt1aM2iLV/j8B0Hx52qqO7520LXPDrlCfDI8xL o4csPloyFSJAjMEAAEKAB0WIQTmk/sqq6Nt4Rerb7QicTuzoY3IOgUCabdWjAAKCRAicTuzoY3I OmpPD/wJuBUz8CN7nRTPui9VGwGjxMuYAbyN2U/r3FWOAcwsiguAGTdjOxQydYzDjSgSJCTvXlg BDG9Vi68RciaUve+VturRsVvuik3bVhLqjH9rjDY0wkVB5VVhIP1ozLkKanciZabet1A+aFxZql krHJllxAJdY/4KZDRlObljWI4P08CMkRgv04vKVX5JmTnbUS+M6YFGTEnJCl5qrGTKb4jUdjkAF Br8JT+ZHk3yffEBLL+GDMw8omW9cdTHAC6xC7YFTafXb/xsVHOoTKKdCuMja2SDXjSV43GcldEJ r4b7adB5t1O+5tioxJKgvKRL9KQHjJQqzdcuEXzxxPmvby4Ti2rNpOnrIltgVCkr3SjCXv8ROmL hN96gev9P57foCFRJAn88IDXoTpYDhdbjXABVFXq08Btg21YDIMp3rV6UPidjXcew7iT3RsqjvG pqpf8UFGvC/kPoHH5Z4cL78ViEZX3MgsxJpMIxyVoRFQzu4S0TNQS42m1jsRpf89uIZmjzG54It xe6n4GG+t/tAmAaUU5LxgD/whN4Vv2VGDr1ivhbRF5NGiIIjVxzdJnKRILc1HJr23vWv0EjnueE JpEj+UXL05aOpLHHmjx7Waucsho+6Jom9l3GO7Qr4y/III8IBDBAaURr5jrP5b+HtJSH7lmwynk 8z+qBlB/tZVXU3Q== X-Developer-Key: i=bryan.odonoghue@linaro.org; a=openpgp; fpr=E693FB2AABA36DE117AB6FB422713BB3A18DC83A Qualcomm CSI2 PHYs support a mode where two sensors may be attached to the one CSIPHY. When we have one endpoint we may have - DPHY 1, 2 or 4 data lanes + 1 clock lane - CPHY 3 wire data lane When we have two endpoints this indicates the special fixed combo-mode. - DPHY endpoint0 =3D> 2+1 and endpoint1 =3D> 1+1 data-lane/clock-lane combi= nation. Reviewed-by: Christopher Obbard Signed-off-by: Bryan O'Donoghue --- .../bindings/media/qcom,x1e80100-camss.yaml | 69 ++++++++++++++++++= ++-- 1 file changed, 65 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.ya= ml b/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml index 5442f981baebc..94a29f439ccf4 100644 --- a/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml +++ b/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml @@ -152,7 +152,8 @@ properties: $ref: /schemas/graph.yaml#/properties/ports =20 description: - CSI input ports. + CSI input ports. Supports either standard single sensor mode or + Qualcomm's combo mode with one sensor in 2x1 + 1x1 data-lane, clock-= lane mode. =20 patternProperties: "^port@[0-3]$": @@ -160,26 +161,86 @@ properties: unevaluatedProperties: false =20 description: - Input port for receiving CSI data from a CSIPHY. + Input port for receiving CSI data. =20 properties: - endpoint: + endpoint@0: $ref: video-interfaces.yaml# unevaluatedProperties: false =20 + description: + Endpoint for receiving a single sensor input (or first leg o= f combo). + properties: data-lanes: minItems: 1 - maxItems: 4 + maxItems: 4 # Base max allows 4 (for D-PHY) + + clock-lanes: + maxItems: 1 =20 bus-type: enum: - 1 # MEDIA_BUS_TYPE_CSI2_CPHY - 4 # MEDIA_BUS_TYPE_CSI2_DPHY =20 + endpoint@1: + $ref: video-interfaces.yaml# + unevaluatedProperties: false + + description: + Endpoint for receiving the second leg of a combo sensor inpu= t. + + properties: + data-lanes: + maxItems: 1 + + clock-lanes: + maxItems: 1 + + bus-type: + const: 4 # Combo is D-PHY specific + required: - data-lanes =20 + allOf: + # Case 1: Combo Mode (endpoint@1 is present) + # If endpoint@1 exists, we restrict endpoint@0 to 2 lanes (D-PHY= split) + - if: + required: + - endpoint@1 + then: + properties: + endpoint@0: + properties: + data-lanes: + minItems: 2 + maxItems: 2 + bus-type: + const: 4 + endpoint@1: + properties: + data-lanes: + minItems: 1 + maxItems: 1 + bus-type: + const: 4 + + # Case 2: Single Mode (endpoint@1 is missing) + # We explicitly allow up to 4 lanes here to cover the D-PHY use = case. + - if: + not: + required: + - endpoint@1 + then: + properties: + endpoint@0: + properties: + data-lanes: + minItems: 1 + maxItems: 4 + patternProperties: "^phy@[0-9a-f]+$": $ref: /schemas/phy/qcom,x1e80100-csi2-phy.yaml --=20 2.52.0 From nobody Tue Apr 7 06:34:42 2026 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (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 A8D4625E469 for ; Mon, 16 Mar 2026 01:02:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622932; cv=none; b=aRPI9Q4TqCUf8PNeKX/QRczYiaquj6ZwCgC59JQLbcKKanGDHdV4llxee/BJWcD8CCoQHywGHlc8Thgr5G8pZWQhF6eo+/DnZwhbXHborQAQxXKPHyKj9+js9yKWklqrTleSlwdiX36pKJ5PXfU2v7m1p4/ju2fV6+Aw3GjlXB8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622932; c=relaxed/simple; bh=FC2WtnD/edrrO3dvh2jkDAJh4YtyCCg10TeND1JFtJ8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jaSTv74WWdm0JopnAxTyATfWF3KAyv8GQwpxDT7466sI0j/DNV4DPEZTgOvqfbO8yNvrXL464ql9VxxZ0Kt20ZRyVlxFZw8GtL1l4BNsd9fXxKMX0S84npxc2VHXrzuZQG8EIq8f3kCoVAzMJRl4Rs3oBmgnEDeF7VKOfXib1L0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=NfQmxLYG; arc=none smtp.client-ip=209.85.221.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="NfQmxLYG" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-439b73f4ab4so4529450f8f.1 for ; Sun, 15 Mar 2026 18:02:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773622927; x=1774227727; 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=mAo229F1McxQvEyDk0hFi46mMGpyqb1mbBmM/21egy4=; b=NfQmxLYG11UTF3quj8+GGKmTCVINbKzCjzLZYxXSNtqYKoXrzgji7ss7nyArimQGsU ch/zacNjrLDi8F+twkyzQkNcpp69I4NKWmGp3FYV4R8WbwbWcCAaEqMe3Fbe5fIlgNaE jy150tf/7f2tbJWqr/RVXZXsLwUKLkyIdZWlv6YFnw7CH0TSjAz7G/F+0jZJyA6JH/C9 znj6/7kIhG+00YjOY5v7sAr6vdBpN8G9kKpFZeWlRVepM4OU6adDSgGImsvVUHSpX+fe nTeQUGY/wwNaK2f6UBT4CR7Qka6ilHBUboRxyVQWjRl12lrIAgsbSlLO5ig+qiudtqhc rqag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773622927; x=1774227727; 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=mAo229F1McxQvEyDk0hFi46mMGpyqb1mbBmM/21egy4=; b=kC/fv4G8vbil5ulst1olr2fq9HQQwT27Ar64K5sanVhKrGizKxS49uydhh+1Vh7lbT Ep/431qLpYu/tlGa3bzo1IlHzfHRN7x5sMvV0/QXVs/txHYqUnzqdlNTif031r5nUMu9 SkOHUpflyVFrItWQvUMZQCYKuxVImG+NVxWbo49MAFsrhnlAZDPJA37qnGHWNaV+bg+S JSNyH8z19xHC4gy8vbozSHO/a67onrh0Sx5mt0ElUpe/i03XYsTcoQ7OXFhKIl2aBb7X dcDoo4buYqTS+NspJ6lbGghQDKnv28qZiAB1JabFa2Qh/2zD9zqh3HMZWijL4Syz569S z/OA== X-Forwarded-Encrypted: i=1; AJvYcCVe4W1SqropF0GUOvrvRtEBBGepixejihrsE79ApFuWrhylvdcxAhFneZMYgjhhiUbWfMTrQ26nV9JAnIQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yz0s3VurvEXcg+onCB4jfq2etJG6Euk5klbleW/+ydOwAQpp9gU 7XM6BvTKLhSRCIxE336WlzLfTHjHBq9p2ednDsU792O14flRgGF4ZaOV0k15HEE79B4= X-Gm-Gg: ATEYQzybHUC75LFaYHQxIxRZGwlDSNsDvv3IFPu+i5SxEaY7GpSPF6BTZR9XyNmZbC0 b3u0b/M1dDCf5Lc5Vu4lwLZ6dZcMBR9tuBW2VVwocsHS/E3WpOJUkjmeVIxWwnzFvS2k1G6Z7hr LMq5P+hHoMzsOR72WacmHEl7kAzo+KEx0uGI1TG6KIhHOrzdfcI+GdOUtX/bDv1nYVf8wGYN3Ly 7T7sjE16r/yfC2I2aeksAj4i5wQUd9hQydyigBzH+0pq8nsY0uOFTRZTF5XOP9Xnr1dGGAzTdz9 iyQD6DlymjXlacrZq4qZaytWTtr0rwtxj78uIMq/THvT/NwCd1R6OTXS3UFuLB4KNjIX+wc4nGq 2vukzOq90hLlc9DrPVAQXZpZuNsSMEyr58Jbk9pWYBtKG6vu5HOJdx7lHEHq07tr6PvHGVNUZEW am/7qMNgCCmcv6S7RVKTzwmAQMHmkBaWRPMR4= X-Received: by 2002:a05:6000:2dc5:b0:43b:446e:dfa9 with SMTP id ffacd0b85a97d-43b446ee04cmr2149892f8f.31.1773622927092; Sun, 15 Mar 2026 18:02:07 -0700 (PDT) Received: from [192.168.0.35] ([109.76.190.215]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe228986sm34729700f8f.35.2026.03.15.18.02.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 18:02:06 -0700 (PDT) From: Bryan O'Donoghue Date: Mon, 16 Mar 2026 01:02:04 +0000 Subject: [PATCH v10 4/7] dt-bindings: media: qcom,x1e80100-camss: Describe iommu entries 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: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-4-fdfe984fe941@linaro.org> References: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> In-Reply-To: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Robert Foss , Todor Tomov , Mauro Carvalho Chehab , Konrad Dybcio , Vladimir Zapolskiy , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Bryan O'Donoghue , Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2593; i=bryan.odonoghue@linaro.org; h=from:subject:message-id; bh=FC2WtnD/edrrO3dvh2jkDAJh4YtyCCg10TeND1JFtJ8=; b=owEBbQKS/ZANAwAKASJxO7Ohjcg6AcsmYgBpt1aMzJ83rYlyOJ1kxjRv1WgXzSpbIkFQKgLw8 F3m/nXWEV6JAjMEAAEKAB0WIQTmk/sqq6Nt4Rerb7QicTuzoY3IOgUCabdWjAAKCRAicTuzoY3I OoCxD/9mLTNXYyGtwAmDBDdtoEYmY9lu+YbQhHBVUtS8n55a3L/QgHuFaELhpBfP9Qvt2ndzVvP sMUYa2uaxMZKvWo4jae3sIudbJpRwYLCEqbag1G6sCWTb65ueA4dcewp7jTES+EudGCcr8cTd9/ s60+KKlHb1R9I1Z/HECpbTIOGolfY0GSq9mDjapcDamBLRJhc2Z0VWmAsfWZuIbi2wf3eQkNjSX eC9/z9Li7OwE2siqaY+eyvY8wlbCwpt4ydAWYz/o4V6kDRVTqUI9PlRb6a9rCXYW9JKL6Fj+FvJ rvVmsJZNmobYlIS9ov2xOraAYEtMuTL/DwcipCHoOUGFg1Zx2lOAdlt22E0Y9B/3PIlynBiLe1g M00UCg2g/UZenZw53rl7NfGuAvsOG6Ilrqa1p01uhOgiTlgOf8evi/cFoDAtXAWqYcBTsqox442 hCN2I/4Gupf2GLxOYkPiXyRqGVNfFYMRS+httONrEkcAHui7CX9OMx+GhG8/07SUo0S+Ks5aEdv ncIn1eqNgTVjEcvwUFZDtXh7CMuDerOq8eN2B0CCDW0iPaeUCry1MXBa5psHwtFwciX1qKFLFRW v4EBexrx0ZFf4KQFtVOtcCMoBtk1wYr8E1bysV08CFLFC5CH4KqMGN+tiEeoKaMge8wUpLfd3Oc gNVWIML4bZqt0Zg== X-Developer-Key: i=bryan.odonoghue@linaro.org; a=openpgp; fpr=E693FB2AABA36DE117AB6FB422713BB3A18DC83A The original iommus list included entries for ICP and BPS/IPE S1 contexts. Only the five S1 HLOS stream IDs are required by the CAMSS ISP hardware: IFE/IFE_LITE read and write, SFE read and write, and CDM IFE. The remaining entries serve other hardware blocks which will be described in their own nodes as support is added. Signed-off-by: Bryan O'Donoghue Reviewed-by: Krzysztof Kozlowski --- .../bindings/media/qcom,x1e80100-camss.yaml | 26 ++++++++++++++++--= ---- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.ya= ml b/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml index 94a29f439ccf4..3e91bbfb808b3 100644 --- a/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml +++ b/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml @@ -116,7 +116,22 @@ properties: - const: sf_icp_mnoc =20 iommus: - maxItems: 8 + oneOf: + - items: + - description: S1 HLOS IFE and IFE_LITE non-protected read + - description: S1 HLOS IFE and IFE_LITE non-protected write + - description: S1 HLOS SFE non-protected read + - description: S1 HLOS SFE non-protected write + - description: S1 HLOS CDM IFE non-protected + - description: Legacy slot 0 - do not use + - description: Legacy slot 1 - do not use + - description: Legacy slot 2 - do not use + - items: + - description: S1 HLOS IFE and IFE_LITE non-protected read + - description: S1 HLOS IFE and IFE_LITE non-protected write + - description: S1 HLOS SFE non-protected read + - description: S1 HLOS SFE non-protected write + - description: S1 HLOS CDM IFE non-protected =20 power-domains: items: @@ -426,13 +441,10 @@ examples: "sf_icp_mnoc"; =20 iommus =3D <&apps_smmu 0x800 0x60>, + <&apps_smmu 0x820 0x60>, + <&apps_smmu 0x840 0x60>, <&apps_smmu 0x860 0x60>, - <&apps_smmu 0x1800 0x60>, - <&apps_smmu 0x1860 0x60>, - <&apps_smmu 0x18e0 0x00>, - <&apps_smmu 0x1980 0x20>, - <&apps_smmu 0x1900 0x00>, - <&apps_smmu 0x19a0 0x20>; + <&apps_smmu 0x18a0 0x0>; =20 power-domains =3D <&camcc CAM_CC_IFE_0_GDSC>, <&camcc CAM_CC_IFE_1_GDSC>, --=20 2.52.0 From nobody Tue Apr 7 06:34:42 2026 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.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 725BB26E708 for ; Mon, 16 Mar 2026 01:02:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622934; cv=none; b=FyPr/5zRrL84sSKpcLc/IzdXVkkgAeZdcyyIyn44UElXO80hoTg78+yZlitaN7SmKnnvYFnE6LtzPFonvSnxLLMXRqYeKmxq0uTJpnO9flZGKgVNHcwSZmcwGLxpQs8nnv4q4V8hdWnd6Mhk9G+QW0GS7tM3ENaa6WQaq5eUEeg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622934; c=relaxed/simple; bh=R9D7QBRJGljcNS52e8MDmb3qUgPBLvJ+yJXgng1kixc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kB0uBomYRdJ21tmntNAsw80515F6ZW0/TOqT9imkfE5ovnIVlWgvCdr23/L/LMQEeE/AnqBNMfXqMxCg0/Tu1xFNFpHs4DJt9H/4Eixpo4ZPhrowCJn/9Kyns0QorenOJsHj9eaYMF8MkS879+nyoQKJuWKX7PwhLuAqlU/6EMM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=GDirzlnV; arc=none smtp.client-ip=209.85.221.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="GDirzlnV" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-43b467dcf0bso17158f8f.0 for ; Sun, 15 Mar 2026 18:02:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773622928; x=1774227728; 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=vEXI/wT0/vTDxPb1iAv2bVNkGUuRphAeXeojsX6f5oI=; b=GDirzlnVZBqFInVureS45IUSRj1j3iDX07PpDA+qD9O61ez+yc0f8AyaX43r2Pnuzg ES2XDYQW3+vXBfWy7dnJ/Hwr5J/MT26oShx+0vSV2utp2a+73McBFDeM0FRk0lejAun1 mY6Sus/4t9yn2LQ3TuxVv2q1v3ZxEih5X1+DfMuINcuqRM0dO+KADj7kjw7HFglRwPqw 5VuarigZFSmWw/guuOdomtpvTcY6DVMFcON4AUWJ9T7e6ybEY7gc3S5XoDueWDGCV795 unZqmye0s3kp+wSt3teH1/rXL00F7bXxJa+lIYb9PdgMXbicxFv8PLaHJ2oMChSGEu+w i+iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773622928; x=1774227728; 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=vEXI/wT0/vTDxPb1iAv2bVNkGUuRphAeXeojsX6f5oI=; b=KtMYIYjyY3vd67R1AJAiMUmU6DncusYxD2uKL185NciW39SEaMEpJgt40LU0UbnYro lLPZqQOSOAUApqCrI4TAgOKiE0330B0/OavQtruhk3dLfha/9EKmDLmjtdvf6eJIaua0 yb30dw0b2Yo5/lo+dhJ7IfiTWQsTNcQOaYOoVNuYMfxR6lqPXpK6UbrnIdW47xyuMv9x iFPB10htFki2AoSXmoRLZtzYBqBwBX80PsDiec1p+VfxEfV2FCDjHJ179BD24qLDTinZ UNK7okrir0O+YNy2Jm/19mTzq9bE9QoCCdXzwiy1oXZBQSzDcEmYY0PZ2Dw0nt/qSvL1 toeQ== X-Forwarded-Encrypted: i=1; AJvYcCVzfXD5k0ePXLTJP6PXqZZXGdoFuMxD2krr80zZCZbYjgEeMC66qXu+b23Q9Mf7dLPB/ejDL10V7S0md6c=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8IBNnuOto76EBhiLisTXSRsUNkzfhRs0uXbpJAOLXoSfNcMY9 TWlA9eM6NtzH6fkGNgbl7ZjTcCvXHTCbT9MlNmsvRBGe0mcZpMUf47/sBAl9nzmptBg= X-Gm-Gg: ATEYQzzO/ViJinN4L3iwispuvCRfUmqTTyPYtIsQ8NZjWP2t1GcnC3tH+zFamfBWsSE DzzBk/bVBAHjxdH+kxzegQqoXER3B7oq0x2oUk40iarmqyFL2BTnLgnsu4lxYgBntRAwoBpIxht WoClkflzst7RTjQx8Uz+761MLjNtUtCdCgFv32lUcduJSZMBPlsEg/SG/i8I92BneCsr9oIxs2u Z4UqzuLQLG3cSJfoEB9iXwHh0IgOxvA6MwCWmHog2rAbT2HyjiS67+Cny+YSq5EV0Zx9bRD097y bcY3F97wV7OBsujRX99o1z4Ug1/+LkrEEHulSeyu5o9Qwjulsj7GTiZf1MptanzKYHFZ9FR0Km9 Rre5hoMM7sul43zoKzoHOE4/dWtDtR4YK7fztQR/w7Yv27DAo/ZcMUZiwz4PJrB0MGn9DWRe8oP pfQk3AU1Z0HV7K+aTLdacQEIpOHAM7yDYXKmM= X-Received: by 2002:a05:6000:2085:b0:439:c5da:64b7 with SMTP id ffacd0b85a97d-439fe19592fmr27321985f8f.15.1773622928442; Sun, 15 Mar 2026 18:02:08 -0700 (PDT) Received: from [192.168.0.35] ([109.76.190.215]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe228986sm34729700f8f.35.2026.03.15.18.02.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 18:02:07 -0700 (PDT) From: Bryan O'Donoghue Date: Mon, 16 Mar 2026 01:02:05 +0000 Subject: [PATCH v10 5/7] media: qcom: camss: Add legacy_phy flag to SoC definition structures 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: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-5-fdfe984fe941@linaro.org> References: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> In-Reply-To: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Robert Foss , Todor Tomov , Mauro Carvalho Chehab , Konrad Dybcio , Vladimir Zapolskiy , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Bryan O'Donoghue , Krzysztof Kozlowski , Christopher Obbard X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=6433; i=bryan.odonoghue@linaro.org; h=from:subject:message-id; bh=R9D7QBRJGljcNS52e8MDmb3qUgPBLvJ+yJXgng1kixc=; b=owEBbQKS/ZANAwAKASJxO7Ohjcg6AcsmYgBpt1aMXXdTyWRBHpbg95ECMxYFnTxhylH4wic3m DvnrFVMF7eJAjMEAAEKAB0WIQTmk/sqq6Nt4Rerb7QicTuzoY3IOgUCabdWjAAKCRAicTuzoY3I OighEAC3IryKA/Hg2DUVtqqWGMi/HkQ398jH9xsLQSjgZNgottPV02IU7WSSWRtfL1BsCc/HOs/ RnTJmN4n1KxwNmhr0EL09tyjh+lzhPSE11fdE8SAtlKjXfdFxr7qWzQJokrmE3jYvYONvPNgjhr sw9F6RzHTY/HHDLwbU/VX7S85iK6YzN1egXW+Z9LZUnsP8KW57smJhIR9OIWvOyJdxswuKgFyxi +mdxuDL426niTLUtt1wlyPWzfmtS8qK43Eg4iQMWoruvjV5VVoNQndCz3p8U7bPmUGTxr+1B3Po x92Agiba4DLh64XIEpXtOw80/wdksd9dsJ92aq2VWW3zJcTSOtbAyyEUAwdqc6fnPM28TYBq94D S4TaU3nhp9Ec2LpqFpn4Ig1VEuQCHBzzl2B3zXxuXxKUOmHdiwVb0/qzNj24mCPSM5AKkYGzjCw d1dcJ/wtBiz48Z+ntSLKGQJBup744YF7wzpT0ogml7IsYAODuVLzhwFEaE9uMKXyOKZSAcuT/vf Y20VJ5pbxCQ71bDmds6z+1ruBszGChP9eoyUXfjFV90f8QzSIAkeF7pkM6k63vfn9+qs9xEgxOG kHwOTWOyjxtxtPbqT4c0P3Ua7bnOS5Zap29N67oVxJl5/hSgyCrJ3ZKkrvTwJuy6prRxqki6IMK xzejyoDAts7Gitw== X-Developer-Key: i=bryan.odonoghue@linaro.org; a=openpgp; fpr=E693FB2AABA36DE117AB6FB422713BB3A18DC83A Flag which SoCs have legacy - builtin PHY code. This will be useful in subsequent patches to inform PHY bringup logic if legacy bindings are available. Reviewed-by: Christopher Obbard Tested-by: Christopher Obbard Signed-off-by: Bryan O'Donoghue --- drivers/media/platform/qcom/camss/camss.c | 17 +++++++++++++++++ drivers/media/platform/qcom/camss/camss.h | 1 + 2 files changed, 18 insertions(+) diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 00b87fd9afbd8..5fb5ad87e1671 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -5104,6 +5104,7 @@ static void camss_remove(struct platform_device *pdev) =20 static const struct camss_resources msm8916_resources =3D { .version =3D CAMSS_8x16, + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_8x16, .csid_res =3D csid_res_8x16, .ispif_res =3D &ispif_res_8x16, @@ -5115,6 +5116,7 @@ static const struct camss_resources msm8916_resources= =3D { =20 static const struct camss_resources msm8939_resources =3D { .version =3D CAMSS_8x39, + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_8x39, .csid_res =3D csid_res_8x39, .ispif_res =3D &ispif_res_8x39, @@ -5126,6 +5128,7 @@ static const struct camss_resources msm8939_resources= =3D { =20 static const struct camss_resources msm8953_resources =3D { .version =3D CAMSS_8x53, + .legacy_phy =3D true, .icc_res =3D icc_res_8x53, .icc_path_num =3D ARRAY_SIZE(icc_res_8x53), .csiphy_res =3D csiphy_res_8x96, @@ -5139,6 +5142,7 @@ static const struct camss_resources msm8953_resources= =3D { =20 static const struct camss_resources msm8996_resources =3D { .version =3D CAMSS_8x96, + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_8x96, .csid_res =3D csid_res_8x96, .ispif_res =3D &ispif_res_8x96, @@ -5150,6 +5154,7 @@ static const struct camss_resources msm8996_resources= =3D { =20 static const struct camss_resources qcm2290_resources =3D { .version =3D CAMSS_2290, + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_2290, .csid_res =3D csid_res_2290, .vfe_res =3D vfe_res_2290, @@ -5163,6 +5168,7 @@ static const struct camss_resources qcm2290_resources= =3D { static const struct camss_resources qcs8300_resources =3D { .version =3D CAMSS_8300, .pd_name =3D "top", + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_8300, .csid_res =3D csid_res_8775p, .csid_wrapper_res =3D &csid_wrapper_res_sm8550, @@ -5177,6 +5183,7 @@ static const struct camss_resources qcs8300_resources= =3D { static const struct camss_resources sa8775p_resources =3D { .version =3D CAMSS_8775P, .pd_name =3D "top", + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_8775p, .csid_res =3D csid_res_8775p, .csid_wrapper_res =3D &csid_wrapper_res_sm8550, @@ -5190,6 +5197,7 @@ static const struct camss_resources sa8775p_resources= =3D { =20 static const struct camss_resources sdm660_resources =3D { .version =3D CAMSS_660, + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_660, .csid_res =3D csid_res_660, .ispif_res =3D &ispif_res_660, @@ -5201,6 +5209,7 @@ static const struct camss_resources sdm660_resources = =3D { =20 static const struct camss_resources sdm670_resources =3D { .version =3D CAMSS_845, + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_670, .csid_res =3D csid_res_670, .vfe_res =3D vfe_res_670, @@ -5212,6 +5221,7 @@ static const struct camss_resources sdm670_resources = =3D { static const struct camss_resources sdm845_resources =3D { .version =3D CAMSS_845, .pd_name =3D "top", + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_845, .csid_res =3D csid_res_845, .vfe_res =3D vfe_res_845, @@ -5223,6 +5233,7 @@ static const struct camss_resources sdm845_resources = =3D { static const struct camss_resources sm6150_resources =3D { .version =3D CAMSS_6150, .pd_name =3D "top", + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_sm6150, .csid_res =3D csid_res_sm6150, .vfe_res =3D vfe_res_sm6150, @@ -5236,6 +5247,7 @@ static const struct camss_resources sm6150_resources = =3D { static const struct camss_resources sm8250_resources =3D { .version =3D CAMSS_8250, .pd_name =3D "top", + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_8250, .csid_res =3D csid_res_8250, .vfe_res =3D vfe_res_8250, @@ -5249,6 +5261,7 @@ static const struct camss_resources sm8250_resources = =3D { static const struct camss_resources sc8280xp_resources =3D { .version =3D CAMSS_8280XP, .pd_name =3D "top", + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_sc8280xp, .csid_res =3D csid_res_sc8280xp, .ispif_res =3D NULL, @@ -5263,6 +5276,7 @@ static const struct camss_resources sc8280xp_resource= s =3D { static const struct camss_resources sc7280_resources =3D { .version =3D CAMSS_7280, .pd_name =3D "top", + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_7280, .csid_res =3D csid_res_7280, .vfe_res =3D vfe_res_7280, @@ -5276,6 +5290,7 @@ static const struct camss_resources sc7280_resources = =3D { static const struct camss_resources sm8550_resources =3D { .version =3D CAMSS_8550, .pd_name =3D "top", + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_8550, .csid_res =3D csid_res_8550, .vfe_res =3D vfe_res_8550, @@ -5290,6 +5305,7 @@ static const struct camss_resources sm8550_resources = =3D { static const struct camss_resources sm8650_resources =3D { .version =3D CAMSS_8650, .pd_name =3D "top", + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_sm8650, .csid_res =3D csid_res_sm8650, .csid_wrapper_res =3D &csid_wrapper_res_sm8550, @@ -5304,6 +5320,7 @@ static const struct camss_resources sm8650_resources = =3D { static const struct camss_resources x1e80100_resources =3D { .version =3D CAMSS_X1E80100, .pd_name =3D "top", + .legacy_phy =3D true, .csiphy_res =3D csiphy_res_x1e80100, .csid_res =3D csid_res_x1e80100, .vfe_res =3D vfe_res_x1e80100, diff --git a/drivers/media/platform/qcom/camss/camss.h b/drivers/media/plat= form/qcom/camss/camss.h index 6d048414c919e..24ec3ad7990e7 100644 --- a/drivers/media/platform/qcom/camss/camss.h +++ b/drivers/media/platform/qcom/camss/camss.h @@ -104,6 +104,7 @@ enum icc_count { struct camss_resources { enum camss_version version; const char *pd_name; + const bool legacy_phy; const struct camss_subdev_resources *csiphy_res; const struct camss_subdev_resources *csid_res; const struct camss_subdev_resources *ispif_res; --=20 2.52.0 From nobody Tue Apr 7 06:34:42 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 269E42798ED for ; Mon, 16 Mar 2026 01:02:12 +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=1773622938; cv=none; b=iXPEbNRdD+jzoyNg1IzFNUu5+AY/KB3vZe0XJnZjEkstzox5lXKXjsdU9u/Jpz3gNesnMusxU2/mOQ5lMjBR/5sPCdR1b6tS1TaR9dbbGZfSJqplrxxxfl/caf5ZbhNirT5/UdXAY4X0dTXeeOjBFll+2+sBrVmxnPhHkCn830A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622938; c=relaxed/simple; bh=oZ9movgz3y3a+s25qO8ApIoTiD09HxKxeoCZJZcUMLs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XYCOOzUERUJLAm7/8jEIPkXXQ75VG3B3hcMlMw8ukhrfO4HCiw+uPSXtHAsKZ8A/0FtqOjDoyI0Abp03DTiqZvVdN7g2sYGnOP5k08tB3gpaS/VebxHCSilcYwtYlRnUS/7xfQb4UqYl1xJKbgos+ZIL8hgQEUiJ/JzxmtO784Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=svt2RsuU; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="svt2RsuU" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4852afd42ceso35106045e9.2 for ; Sun, 15 Mar 2026 18:02:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773622931; x=1774227731; 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=xxr/EzxAKZpEbyX4qAuriPKBOfBak1fbxwW1huFfCcA=; b=svt2RsuU20wV/ANtFNHQBeM4DdRgVZJ5NfvDZJO7Htc83LzZLHoHA0U8gVIdFZPkPQ PSCewi3c4pt5ZTq7OKcsO29KoGLyf2SKxPdb+Cq+1zTJy3v4c/mH8ddysHV2x7ceT5vo CebtL5VRsrchd8cfZvwZxnw10oAdj10AMo13vduKugIpR6sk4mnCrSibMz9W4jKiGFSt aZmhg9ApYji3WrUi0qFA1WrtrwMjMU27CXm9ClHfEBJ33ae72Z5NFq1HP5rJYEalIWw1 YPm2Z5GTBPb+nAf3hHIWZWKu5+V+XiVbd2XZT7pFcReHfvfUurVpjzolOkkrKzYxwiAf sNSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773622931; x=1774227731; 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=xxr/EzxAKZpEbyX4qAuriPKBOfBak1fbxwW1huFfCcA=; b=KSvD+ATn6nEiuh8vse2QewYEcGl+oyeMV4LD7ZM7Hd8agOJO/baWYin6v/3c4fNAwU l5MCJeMSA0wOqsaWtcpGjTIi8CfzK7zR2msu4i+zE81hFKabse1mZOxs4A7vaoLNbZ6m /1mJOcQn5qQDwlLjg0wiajj0g/SyfkFW8edqCfWfxnKXkGxZ/7FAcF3CT7pXRQu6Zkgt XrpKcOoEk7PQ6k4z7ws0GYa4EeKroyIceyLLu+MErsKkagORboBGfqyq/BrgsZ9K4aPA JOHUK3HNAQ9Arky+gvqNvS3y3uHP3N187TWFbrgSSEgJYiouMzp+si2EdY52dn4he4BD MSeg== X-Forwarded-Encrypted: i=1; AJvYcCW40JLrCwal0JNq/EhpzrPmhjET63d4CFe7g9Q5OZ8mgS8USdQqECQ5iSNYDAVqej3gk/Qo0PiMBpjpS3U=@vger.kernel.org X-Gm-Message-State: AOJu0YxEHUAFfy6WFaA+1ifxh97elb1dS6p1kq4InJU4VUsItxdvJ5wY 9qyZb+guP7UqMbgAGb5EpXTK0sLb1UWp2cPO0yPKyULgnYb7IW1yh1O/NrLPUZYEJ8g= X-Gm-Gg: ATEYQzz24ekOrKgGOwE9UNzIz0XqVrnsQMMljUUNxKL6MTNGBEWZYQGoE6cdXTjkWqI Cqb2s4wmtYu9NbuEZlc8wyJ9cWjaHA6ronKBeBf49oiUXn2x/mHcNXAv4qSVc92i86FjIJjVZVD JlswrZyxqQrFZpNPTV9+CMOJazbm6NnVcSkxxS0UXnK/0vQCSA1WNlp22fMuf3X80dCIM8PQCuW sGCpZ+gReCZUrhBEOsJQjCCPUII+2iOZCcd7WH7eq4Inwgp2ylAeUJvmamVzw8jgq+AlR3kJd8b zrsnMyx3DSS004EbUoO4kHVykw6xL/lHUS6V1CEr1QuUqJIRE3KNJT3mFBNbyT2jTb56T0cIr9g +3TgHw+yEPd+GS7HscUrAsRg765/knhAguvVXPZ5aaVTLe8oNcGKYi3Jf3sqGRZvQtczParmYlc nFAmO1rq4/RRJjhB5EaCseRtUNStku/ECqesY= X-Received: by 2002:a05:600c:4fc6:b0:479:1b0f:dfff with SMTP id 5b1f17b1804b1-485566cfccfmr177824275e9.10.1773622931161; Sun, 15 Mar 2026 18:02:11 -0700 (PDT) Received: from [192.168.0.35] ([109.76.190.215]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe228986sm34729700f8f.35.2026.03.15.18.02.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 18:02:09 -0700 (PDT) From: Bryan O'Donoghue Date: Mon, 16 Mar 2026 01:02:06 +0000 Subject: [PATCH v10 6/7] media: qcom: camss: Add support for PHY API devices 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: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-6-fdfe984fe941@linaro.org> References: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> In-Reply-To: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Robert Foss , Todor Tomov , Mauro Carvalho Chehab , Konrad Dybcio , Vladimir Zapolskiy , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Bryan O'Donoghue , Krzysztof Kozlowski , Christopher Obbard X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=15878; i=bryan.odonoghue@linaro.org; h=from:subject:message-id; bh=oZ9movgz3y3a+s25qO8ApIoTiD09HxKxeoCZJZcUMLs=; b=owEBbQKS/ZANAwAKASJxO7Ohjcg6AcsmYgBpt1aNERxdqR6/TNlfe8OHkq1d7dI66v+tpwuLS Eiae25LVLCJAjMEAAEKAB0WIQTmk/sqq6Nt4Rerb7QicTuzoY3IOgUCabdWjQAKCRAicTuzoY3I Ohf3D/wOwTLCZrq53WPbbd6riC7SihVNUFi+NvN/Yj1WZYxU1dC189Llj3yjVcbo37G0S08juVo hxkj5o2zX7fgIgvBhPThmzG62b6/GtNzUD35XKotmSxd4V2c35bsYWV52lsejtODtGQMf6/UoRP 0tHf0w9ojVjGTDx6EV1ocx5AQvZ4PnYRQ0zY7zum22Wv0/JrkLvq3N84nLTX8zqKnh+jyIlB5tH b1pV0aUurL3vMiggluhgL44Ot6+vUa+XQ2Rh8q62jbAlnrVfizYRQAhUKikS0UFRVJHAWPNHBF0 dTC80OTXps/ZzpvpOb1GwBEfND68qO2NNE9EZOvcWL+ET+lGXSKjxjYUCDeUD9urx3nU3GWrQDe hxlH3mCTcHXwJcLUZu0hJpPo86w+6+mwtPNy4QBNmO2Iio89lFWpb1Uzq5nW5IfXix48+INPVQC i8cXV8H94xHorot5z2WJs6x70ABT/bZm2G6oxfWgIpl/Hd+kdF1IoOXMIWw1k6/4q26iRURJDbB +WgoymDrLhcH5zPSNfsyCt9DI6J7YT0Y/O4W77rKq772SFV8KAQXqzku+57pofoMw0m0CFhsdSk 0L8aF4jlCLoNxfUG2t4C+2RK83Odq5ubLK014NdryLHs0VRmV8RkSyRgZofc8AUmBdI/3XY0OTy QfmxI0vJvBXtZtQ== X-Developer-Key: i=bryan.odonoghue@linaro.org; a=openpgp; fpr=E693FB2AABA36DE117AB6FB422713BB3A18DC83A Add the ability to use a PHY pointer which interacts with the standard PHY API. In the first instance the code will try to use the new PHY interface. If no PHYs are present in the DT then the legacy method will be attempted. Reviewed-by: Christopher Obbard Tested-by: Christopher Obbard Signed-off-by: Bryan O'Donoghue --- drivers/media/platform/qcom/camss/Kconfig | 1 + drivers/media/platform/qcom/camss/camss-csiphy.c | 185 +++++++++++++++++++= ++-- drivers/media/platform/qcom/camss/camss-csiphy.h | 7 + drivers/media/platform/qcom/camss/camss.c | 72 +++++++-- 4 files changed, 235 insertions(+), 30 deletions(-) diff --git a/drivers/media/platform/qcom/camss/Kconfig b/drivers/media/plat= form/qcom/camss/Kconfig index 4eda48cb1adf0..1edc5e5a1829e 100644 --- a/drivers/media/platform/qcom/camss/Kconfig +++ b/drivers/media/platform/qcom/camss/Kconfig @@ -7,3 +7,4 @@ config VIDEO_QCOM_CAMSS select VIDEO_V4L2_SUBDEV_API select VIDEOBUF2_DMA_SG select V4L2_FWNODE + select PHY_QCOM_MIPI_CSI2 diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.c b/drivers/med= ia/platform/qcom/camss/camss-csiphy.c index 62623393f4144..b8bfbf2fef8fa 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy.c +++ b/drivers/media/platform/qcom/camss/camss-csiphy.c @@ -7,12 +7,14 @@ * Copyright (c) 2011-2015, The Linux Foundation. All rights reserved. * Copyright (C) 2016-2018 Linaro Ltd. */ +#include #include #include #include #include #include #include +#include #include #include #include @@ -131,10 +133,10 @@ static u8 csiphy_get_bpp(const struct csiphy_format_i= nfo *formats, } =20 /* - * csiphy_set_clock_rates - Calculate and set clock rates on CSIPHY module + * csiphy_set_clock_rates_legacy - Calculate and set clock rates on CSIPHY= module * @csiphy: CSIPHY device */ -static int csiphy_set_clock_rates(struct csiphy_device *csiphy) +static int csiphy_set_clock_rates_legacy(struct csiphy_device *csiphy) { struct device *dev =3D csiphy->camss->dev; s64 link_freq; @@ -200,7 +202,7 @@ static int csiphy_set_clock_rates(struct csiphy_device = *csiphy) * * Return 0 on success or a negative error code otherwise */ -static int csiphy_set_power(struct v4l2_subdev *sd, int on) +static int csiphy_set_power_legacy(struct v4l2_subdev *sd, int on) { struct csiphy_device *csiphy =3D v4l2_get_subdevdata(sd); struct device *dev =3D csiphy->camss->dev; @@ -219,7 +221,7 @@ static int csiphy_set_power(struct v4l2_subdev *sd, int= on) return ret; } =20 - ret =3D csiphy_set_clock_rates(csiphy); + ret =3D csiphy_set_clock_rates_legacy(csiphy); if (ret < 0) { regulator_bulk_disable(csiphy->num_supplies, csiphy->supplies); @@ -254,7 +256,7 @@ static int csiphy_set_power(struct v4l2_subdev *sd, int= on) } =20 /* - * csiphy_stream_on - Enable streaming on CSIPHY module + * csiphy_stream_on_legacy - Enable streaming on CSIPHY module * @csiphy: CSIPHY device * * Helper function to enable streaming on CSIPHY module. @@ -262,7 +264,7 @@ static int csiphy_set_power(struct v4l2_subdev *sd, int= on) * * Return 0 on success or a negative error code otherwise */ -static int csiphy_stream_on(struct csiphy_device *csiphy) +static int csiphy_stream_on_legacy(struct csiphy_device *csiphy) { struct csiphy_config *cfg =3D &csiphy->cfg; s64 link_freq; @@ -306,11 +308,86 @@ static int csiphy_stream_on(struct csiphy_device *csi= phy) * * Helper function to disable streaming on CSIPHY module */ -static void csiphy_stream_off(struct csiphy_device *csiphy) +static void csiphy_stream_off_legacy(struct csiphy_device *csiphy) { csiphy->res->hw_ops->lanes_disable(csiphy, &csiphy->cfg); } =20 +/* + * csiphy_stream_on - Enable streaming on CSIPHY module + * @csiphy: CSIPHY device + * + * Helper function to enable streaming on CSIPHY module. + * Main configuration of CSIPHY module is also done here. + * + * Return 0 on success or a negative error code otherwise + */ +static int csiphy_stream_on(struct csiphy_device *csiphy) +{ + u8 bpp =3D csiphy_get_bpp(csiphy->res->formats->formats, csiphy->res->for= mats->nformats, + csiphy->fmt[MSM_CSIPHY_PAD_SINK].code); + u8 num_lanes =3D csiphy->cfg.csi2->lane_cfg.num_data; + struct phy_configure_opts_mipi_dphy *dphy_cfg; + union phy_configure_opts dphy_opts =3D { 0 }; + struct device *dev =3D csiphy->camss->dev; + s64 link_freq; + int ret; + + dphy_cfg =3D &dphy_opts.mipi_dphy; + + link_freq =3D camss_get_link_freq(&csiphy->subdev.entity, bpp, num_lanes); + + if (link_freq < 0) { + dev_err(dev, + "Cannot get CSI2 transmitter's link frequency\n"); + return -EINVAL; + } + + phy_mipi_dphy_get_default_config_for_hsclk(link_freq, num_lanes, dphy_cfg= ); + + phy_set_mode(csiphy->phy, PHY_MODE_MIPI_DPHY); + ret =3D phy_configure(csiphy->phy, &dphy_opts); + if (ret) { + dev_err(dev, "failed to configure MIPI D-PHY\n"); + goto error; + } + + return phy_power_on(csiphy->phy); + +error: + return ret; +} + +/* + * csiphy_stream_off - Disable streaming on CSIPHY module + * @csiphy: CSIPHY device + * + * Helper function to disable streaming on CSIPHY module + */ +static void csiphy_stream_off(struct csiphy_device *csiphy) +{ + phy_power_off(csiphy->phy); +} + +/* + * csiphy_set_stream - Enable/disable streaming on CSIPHY module + * @sd: CSIPHY V4L2 subdevice + * @enable: Requested streaming state + * + * Return 0 on success or a negative error code otherwise + */ +static int csiphy_set_stream_legacy(struct v4l2_subdev *sd, int enable) +{ + struct csiphy_device *csiphy =3D v4l2_get_subdevdata(sd); + int ret =3D 0; + + if (enable) + ret =3D csiphy_stream_on_legacy(csiphy); + else + csiphy_stream_off_legacy(csiphy); + + return ret; +} =20 /* * csiphy_set_stream - Enable/disable streaming on CSIPHY module @@ -568,16 +645,16 @@ static bool csiphy_match_clock_name(const char *clock= _name, const char *format, } =20 /* - * msm_csiphy_subdev_init - Initialize CSIPHY device structure and resourc= es + * msm_csiphy_subdev_init_legacy - Initialize CSIPHY device structure and = resources * @csiphy: CSIPHY device * @res: CSIPHY module resources table * @id: CSIPHY module id * * Return 0 on success or a negative error code otherwise */ -int msm_csiphy_subdev_init(struct camss *camss, - struct csiphy_device *csiphy, - const struct camss_subdev_resources *res, u8 id) +int msm_csiphy_subdev_init_legacy(struct camss *camss, + struct csiphy_device *csiphy, + const struct camss_subdev_resources *res, u8 id) { struct device *dev =3D camss->dev; struct platform_device *pdev =3D to_platform_device(dev); @@ -705,6 +782,69 @@ int msm_csiphy_subdev_init(struct camss *camss, return ret; } =20 +/* + * msm_csiphy_subdev_init - Initialize CSIPHY device structure and resourc= es + * @csiphy: CSIPHY device + * @res: CSIPHY module resources table + * @id: CSIPHY module id + * + * Return 0 on success or a negative error code otherwise + */ +int msm_csiphy_subdev_init(struct camss *camss, + struct csiphy_device *csiphy, + const struct camss_subdev_resources *res, u8 id) +{ + struct device *dev =3D camss->dev; + struct of_phandle_args args; + u8 combo_mode; + int idx; + int ret; + + snprintf(csiphy->name, ARRAY_SIZE(csiphy->name), "csiphy%d", id); + + idx =3D of_property_match_string(dev->of_node, "phy-names", csiphy->name); + if (idx < 0) { + dev_err(dev, "%s not found\n", csiphy->name); + return idx; + } + + ret =3D of_parse_phandle_with_args(dev->of_node, "phys", "#phy-cells", id= x, &args); + if (ret < 0) { + dev_err(dev, "unable to parse phys args %s\n", csiphy->name); + return ret; + } + + if (!of_device_is_available(args.np)) + goto put_np; + + combo_mode =3D args.args[0]; + if (combo_mode !=3D PHY_TYPE_DPHY) { + dev_err(dev, "%s mode %d not supported\n", csiphy->name, combo_mode); + ret =3D -EOPNOTSUPP; + goto put_np; + } + + csiphy->phy =3D devm_phy_get(dev, csiphy->name); + if (IS_ERR(csiphy->phy)) { + ret =3D PTR_ERR(csiphy->phy); + goto put_np; + } + + csiphy->camss =3D camss; + csiphy->id =3D id; + csiphy->cfg.combo_mode =3D combo_mode; + csiphy->res =3D &res->csiphy; + + ret =3D phy_init(csiphy->phy); + if (ret) + dev_err(dev, "phy %s init fail %d\n", csiphy->name, ret); + +put_np: + of_node_put(args.np); + + return ret; +} + /* * csiphy_link_setup - Setup CSIPHY connections * @entity: Pointer to media entity structure @@ -739,8 +879,12 @@ static int csiphy_link_setup(struct media_entity *enti= ty, return 0; } =20 -static const struct v4l2_subdev_core_ops csiphy_core_ops =3D { - .s_power =3D csiphy_set_power, +static const struct v4l2_subdev_core_ops csiphy_core_ops_legacy =3D { + .s_power =3D csiphy_set_power_legacy, +}; + +static const struct v4l2_subdev_video_ops csiphy_video_ops_legacy =3D { + .s_stream =3D csiphy_set_stream_legacy, }; =20 static const struct v4l2_subdev_video_ops csiphy_video_ops =3D { @@ -754,8 +898,13 @@ static const struct v4l2_subdev_pad_ops csiphy_pad_ops= =3D { .set_fmt =3D csiphy_set_format, }; =20 +static const struct v4l2_subdev_ops csiphy_v4l2_ops_legacy =3D { + .core =3D &csiphy_core_ops_legacy, + .video =3D &csiphy_video_ops_legacy, + .pad =3D &csiphy_pad_ops, +}; + static const struct v4l2_subdev_ops csiphy_v4l2_ops =3D { - .core =3D &csiphy_core_ops, .video =3D &csiphy_video_ops, .pad =3D &csiphy_pad_ops, }; @@ -784,7 +933,11 @@ int msm_csiphy_register_entity(struct csiphy_device *c= siphy, struct device *dev =3D csiphy->camss->dev; int ret; =20 - v4l2_subdev_init(sd, &csiphy_v4l2_ops); + if (IS_ERR(csiphy->phy)) + v4l2_subdev_init(sd, &csiphy_v4l2_ops_legacy); + else + v4l2_subdev_init(sd, &csiphy_v4l2_ops); + sd->internal_ops =3D &csiphy_v4l2_internal_ops; sd->flags |=3D V4L2_SUBDEV_FL_HAS_DEVNODE; snprintf(sd->name, ARRAY_SIZE(sd->name), "%s%d", @@ -823,6 +976,8 @@ int msm_csiphy_register_entity(struct csiphy_device *cs= iphy, */ void msm_csiphy_unregister_entity(struct csiphy_device *csiphy) { + if (!IS_ERR(csiphy->phy)) + phy_exit(csiphy->phy); v4l2_device_unregister_subdev(&csiphy->subdev); media_entity_cleanup(&csiphy->subdev.entity); } diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.h b/drivers/med= ia/platform/qcom/camss/camss-csiphy.h index 2d5054819df7f..25b803c06e8bf 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy.h +++ b/drivers/media/platform/qcom/camss/camss-csiphy.h @@ -12,6 +12,7 @@ =20 #include #include +#include #include #include #include @@ -95,6 +96,7 @@ struct csiphy_device_regs { =20 struct csiphy_device { struct camss *camss; + struct phy *phy; u8 id; struct v4l2_subdev subdev; struct media_pad pads[MSM_CSIPHY_PADS_NUM]; @@ -102,6 +104,7 @@ struct csiphy_device { void __iomem *base_clk_mux; u32 irq; char irq_name[30]; + char name[16]; struct camss_clock *clock; bool *rate_set; int nclocks; @@ -116,6 +119,10 @@ struct csiphy_device { =20 struct camss_subdev_resources; =20 +int msm_csiphy_subdev_init_legacy(struct camss *camss, + struct csiphy_device *csiphy, + const struct camss_subdev_resources *res, u8 id); + int msm_csiphy_subdev_init(struct camss *camss, struct csiphy_device *csiphy, const struct camss_subdev_resources *res, u8 id); diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 5fb5ad87e1671..b1737b5d52160 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -4450,14 +4450,35 @@ static int camss_parse_endpoint_node(struct device = *dev, static int camss_parse_ports(struct camss *camss) { struct device *dev =3D camss->dev; + const struct camss_resources *res =3D camss->res; struct fwnode_handle *fwnode =3D dev_fwnode(dev), *ep; int ret; =20 fwnode_graph_for_each_endpoint(fwnode, ep) { struct camss_async_subdev *csd; + struct fwnode_handle *remote; + + if (!fwnode_device_is_available(ep)) + continue; + + if (res->legacy_phy) { + csd =3D v4l2_async_nf_add_fwnode_remote(&camss->notifier, ep, + typeof(*csd)); + } else { + /* + * For non-legacy PHY, the CSIPHY is a separate device. + * Register the remote endpoint (CSIPHY's endpoint) as + * the async subdev, not the remote port parent. + */ + remote =3D fwnode_graph_get_remote_endpoint(ep); + if (!remote) + continue; + + csd =3D v4l2_async_nf_add_fwnode(&camss->notifier, remote, + struct camss_async_subdev); + fwnode_handle_put(remote); + } =20 - csd =3D v4l2_async_nf_add_fwnode_remote(&camss->notifier, ep, - typeof(*csd)); if (IS_ERR(csd)) { ret =3D PTR_ERR(csd); goto err_cleanup; @@ -4489,15 +4510,26 @@ static int camss_init_subdevices(struct camss *cams= s) unsigned int i; int ret; =20 - for (i =3D 0; i < camss->res->csiphy_num; i++) { - ret =3D msm_csiphy_subdev_init(camss, &camss->csiphy[i], - &res->csiphy_res[i], - res->csiphy_res[i].csiphy.id); - if (ret < 0) { - dev_err(camss->dev, - "Failed to init csiphy%d sub-device: %d\n", - i, ret); - return ret; + if (!res->legacy_phy) { + for (i =3D 0; i < camss->res->csiphy_num; i++) { + ret =3D msm_csiphy_subdev_init(camss, &camss->csiphy[i], + &res->csiphy_res[i], + res->csiphy_res[i].csiphy.id); + if (ret < 0) + return ret; + } + } else { + for (i =3D 0; i < camss->res->csiphy_num; i++) { + ret =3D msm_csiphy_subdev_init_legacy(camss, &camss->csiphy[i], + &res->csiphy_res[i], + res->csiphy_res[i].csiphy.id); + if (ret < 0) { + dev_err(camss->dev, + "Failed to init csiphy%d sub-device: %d\n", + i, ret); + return ret; + } + camss->csiphy[i].phy =3D ERR_PTR(-ENODEV); } } =20 @@ -4574,6 +4606,9 @@ static int camss_link_entities(struct camss *camss) =20 for (i =3D 0; i < camss->res->csiphy_num; i++) { for (j =3D 0; j < camss->res->csid_num; j++) { + if (!camss->csiphy[i].phy) + continue; + ret =3D media_create_pad_link(&camss->csiphy[i].subdev.entity, MSM_CSIPHY_PAD_SRC, &camss->csid[j].subdev.entity, @@ -4683,6 +4718,9 @@ static int camss_register_entities(struct camss *cams= s) int ret; =20 for (i =3D 0; i < camss->res->csiphy_num; i++) { + if (!camss->csiphy[i].phy) + continue; + ret =3D msm_csiphy_register_entity(&camss->csiphy[i], &camss->v4l2_dev); if (ret < 0) { @@ -4738,8 +4776,10 @@ static int camss_register_entities(struct camss *cam= ss) =20 i =3D camss->res->csiphy_num; err_reg_csiphy: - for (i--; i >=3D 0; i--) - msm_csiphy_unregister_entity(&camss->csiphy[i]); + for (i--; i >=3D 0; i--) { + if (camss->csiphy[i].phy) + msm_csiphy_unregister_entity(&camss->csiphy[i]); + } =20 return ret; } @@ -4754,8 +4794,10 @@ static void camss_unregister_entities(struct camss *= camss) { unsigned int i; =20 - for (i =3D 0; i < camss->res->csiphy_num; i++) - msm_csiphy_unregister_entity(&camss->csiphy[i]); + for (i =3D 0; i < camss->res->csiphy_num; i++) { + if (camss->csiphy[i].phy) + msm_csiphy_unregister_entity(&camss->csiphy[i]); + } =20 for (i =3D 0; i < camss->res->csid_num; i++) msm_csid_unregister_entity(&camss->csid[i]); --=20 2.52.0 From nobody Tue Apr 7 06:34:42 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 DD82D27B353 for ; Mon, 16 Mar 2026 01:02:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622936; cv=none; b=fHx910mQOyN3UgkNx2EWgpUfe4qmv/nifAXtuidDXiTXA+an5Mwlza7mBGrx5heb3uHTV9okZK8MnCvVxe1wx9KwDr7YksTIgA1usVJVtC7e5J2tSVdfMymDFLfz746FkzCr+I9VTLhTPJT/NCm/5zhI3ZC9UM8dLtAmQTNVRLA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773622936; c=relaxed/simple; bh=aVDiNWO67RvcaLKortzpEYBNU1wRvtLFUoiyUFNRkzQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LUQ2/aOaUAqEne3K6o8JHJWHu2a99xMfZWQwSSVEQy+5uQ68uMjffR2izgbCvFbDprUhqx/1nsCCwikL3agZPuRtO3dxXhr+vg/d4eh2Q2+2mhFhFDy9+fYeLhgKDv2pZZ3FJi8E186WdKzq4Z8GdOdzuoj65SoLhdCSBIzqgqc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=mu6eNfD0; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="mu6eNfD0" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-48557c8ad47so21118295e9.0 for ; Sun, 15 Mar 2026 18:02:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773622933; x=1774227733; 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=aSn7hQ5i66Q0S46ZKJZuvK8H5ifNzHdzpxgp/ADQRCI=; b=mu6eNfD0XUeJO5TDPO5Q5DsaOO0noMtnEpdE5n0ICroYzdN8kb9rGmOWBNRG55jJBd w0EdmNY/coSq/11OX/pkGYxiq0Hmif9d8nvSulucMGsqiHfoiWIShSUywZ6YeB43HSyp ljfZwEpS39TePW0VdVBTXNSYsJd8T4w8zm0j5gmYftJmMpIDoiyD6egoyb+Mift1H8mf vCUYXCzSWXtgv5CUqfsR/WxGHhA8xMuenLZZAy6leGHmDyqxB6SXtrnkB2TYzp8WgVLd OW+jVSWU3KofLJ+WxeYwxCanHkGNBZX9gRUsS929K22H+XMUH8OZ7JB7a2/h9JaKcZl3 hfFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773622933; x=1774227733; 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=aSn7hQ5i66Q0S46ZKJZuvK8H5ifNzHdzpxgp/ADQRCI=; b=lRN/HudCqhTCT1ksB60Pt3JPLgkqP+kxWCkOAzq4GDxfXkVrM3rDTu2tlbQerb3mtW YSEQacNfjD02i2dFz1l+Fa0RnM9W3OrscuVQeV9pSfYekj0dtyBsjruwi3NXShDVZ68v 8Lm6LIASa9guKYzpL4V5u4tRx1eJY2E+pCxoZusJN/3wwC7CvXGxoMh95LMKBW3w6tZJ NqATvNLEWa9iXWmO0l6JoKuxImCPiH4IZNzRFS49IbXb2pbqL7Z3QxT7rUhChVaqFqpW fDSct8CrM2mgyvFllXZghEkIbp0NRLWuRVK1Bi5w/RppsLM19sY2hqhmsF42Fs4CTXNT h3hQ== X-Forwarded-Encrypted: i=1; AJvYcCXdRBvGgt/zAiRXSCRTJSidwrygVVWxnsQqpkweGVbubyNTAoDa3BcBK8GF+7xhZ6xGET67eVN7w6T/Spw=@vger.kernel.org X-Gm-Message-State: AOJu0Yygl/a0/ymLpnN/NqkMafRenBN1qkG+lWKy/viNlL5gcQCsaRuE D9ED9tPtWLyaqyrQ79PopMqfoHDe6upbTDrHyj+IspIhoLssaRhkM3mdcXayJlPff+E= X-Gm-Gg: ATEYQzwLMWyxfGDcgXfMrx8HL8lWLl0ZxHobgMjX1/O36z2HxpYUgsZ+PksVDzY5BF7 252QC912yUSnxigOUn6sPuRnRniyhWukYKJT9dLW9X2rf/1opJoBxWfRhFnJA5jeD0bl9RkZapa D5TuV99yskxutEOIIBdL4vjDHtgDpcQfkVgY8k+urku4DkPf9eB57p9YJOv+lBNm7JdhkDSbkAO mJRb2ocfrE3p5Ip5K5wLXQG8O7179dp+61D198Ic14cwgWt8TY9tWXtoAR0jacqOcMI23H920v+ pv4xlvj/inFwoJf9pABy0tPS+JdZn3f5ikR6bOHWw2nS+uJ1tnh/mMSaSKSUjbIlUZhIwf8tGkg FPr3uIBwbhiU4SYgEy6/RxGf+RUaly8m6AVmqfWWwMrjZt+JkKKe23czFmvCWuKoNSFi9DkBFdC OqvVMheONnan2BL1/LwjG8iG28mr5U640p9Is= X-Received: by 2002:a05:600c:548a:b0:485:4100:1eee with SMTP id 5b1f17b1804b1-4855670e7f9mr200978105e9.24.1773622933127; Sun, 15 Mar 2026 18:02:13 -0700 (PDT) Received: from [192.168.0.35] ([109.76.190.215]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe228986sm34729700f8f.35.2026.03.15.18.02.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 18:02:11 -0700 (PDT) From: Bryan O'Donoghue Date: Mon, 16 Mar 2026 01:02:07 +0000 Subject: [PATCH v10 7/7] media: qcom: camss: Drop legacy PHY descriptions from x1e 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: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-7-fdfe984fe941@linaro.org> References: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> In-Reply-To: <20260316-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v10-0-fdfe984fe941@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Robert Foss , Todor Tomov , Mauro Carvalho Chehab , Konrad Dybcio , Vladimir Zapolskiy , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Bryan O'Donoghue , Krzysztof Kozlowski , Christopher Obbard X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3159; i=bryan.odonoghue@linaro.org; h=from:subject:message-id; bh=aVDiNWO67RvcaLKortzpEYBNU1wRvtLFUoiyUFNRkzQ=; b=owEBbQKS/ZANAwAKASJxO7Ohjcg6AcsmYgBpt1aNiTUxan9LQk2eGkEMbeN+4hDN1CC/SHfks MpN3KerCBeJAjMEAAEKAB0WIQTmk/sqq6Nt4Rerb7QicTuzoY3IOgUCabdWjQAKCRAicTuzoY3I OkcJD/9ncxjPqP8d7ijCG/48u6PPqFiDjus2c3VUQBQA3QGuObdumglfCpbzKeoO7ljmLEzR2j2 EhU2jJqfGNWXS2BrCrfxXGvH6Caa7Z5o9dCDYN1MYAKcIhkXRgyGdEQ6vn1uDVYYC4lUY0MPkbz 3caYMr5AZiAZBkxvM6Nnb9dpoWYpIvZnhU1aPwew0W0HQAkx3iuiXBzcptCR125hl3SHww6MG+H DxpGB76xwB0dvzlUwLb5YNJx7QcqWxHmnPrk4xTH76QVg9BC4HzzYip3BZlFgAt/nayE28rl+Vd /OfRZS2ITOnkF+LlY2OLebOXqWKG+b2mbetwXKdmqv7woE8d82XoajqZ4ATFC7bWVEZC5oB4sAK k9mzHSUMvfvWQcWRvZTb51H4sNx21meG72knIIm7593amZGSmoyVmm39OtDgmVOsPbF0u1DsUKm ct50qOTT1uxUJonNfyNuxeJP3E2DcYiM6eoM+6TzeCXVnQCJtDQ7V6ghIuPuHQfWfQz43N833oz 5+RGqI4uNrRIQeSx+HdrKm/BTs0g2cfmAAG0AEWxWv4uEg4PJ05Om4sj8q2ceR8jVsRY1b71KkR Zpg3TR00LdxM3Plq6yjbfWiUm3X9HbWpUd+Gg2wFQH+qgGWaLDsRTPHjuWiv8F79LapMANNM68F UUsZHZtpFD2eCTA== X-Developer-Key: i=bryan.odonoghue@linaro.org; a=openpgp; fpr=E693FB2AABA36DE117AB6FB422713BB3A18DC83A x1e is the first CAMSS SoC to use the new PHY interface. Drop the redundant legacy CSIPHY descriptions. Reviewed-by: Christopher Obbard Tested-by: Christopher Obbard Signed-off-by: Bryan O'Donoghue --- drivers/media/platform/qcom/camss/camss.c | 37 ---------------------------= ---- 1 file changed, 37 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index b1737b5d52160..0ebe634f5d96b 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -3895,15 +3895,6 @@ static const struct resources_icc icc_res_sa8775p[] = =3D { static const struct camss_subdev_resources csiphy_res_x1e80100[] =3D { /* CSIPHY0 */ { - .regulators =3D { - { .supply =3D "vdd-csiphy-0p8", .init_load_uA =3D 105000 }, - { .supply =3D "vdd-csiphy-1p2", .init_load_uA =3D 58900 } - }, - .clock =3D { "csiphy0", "csiphy0_timer" }, - .clock_rate =3D { { 300000000, 400000000, 480000000 }, - { 266666667, 400000000 } }, - .reg =3D { "csiphy0" }, - .interrupt =3D { "csiphy0" }, .csiphy =3D { .id =3D 0, .hw_ops =3D &csiphy_ops_3ph_1_0, @@ -3912,15 +3903,6 @@ static const struct camss_subdev_resources csiphy_re= s_x1e80100[] =3D { }, /* CSIPHY1 */ { - .regulators =3D { - { .supply =3D "vdd-csiphy-0p8", .init_load_uA =3D 105000 }, - { .supply =3D "vdd-csiphy-1p2", .init_load_uA =3D 58900 } - }, - .clock =3D { "csiphy1", "csiphy1_timer" }, - .clock_rate =3D { { 300000000, 400000000, 480000000 }, - { 266666667, 400000000 } }, - .reg =3D { "csiphy1" }, - .interrupt =3D { "csiphy1" }, .csiphy =3D { .id =3D 1, .hw_ops =3D &csiphy_ops_3ph_1_0, @@ -3929,15 +3911,6 @@ static const struct camss_subdev_resources csiphy_re= s_x1e80100[] =3D { }, /* CSIPHY2 */ { - .regulators =3D { - { .supply =3D "vdd-csiphy-0p8", .init_load_uA =3D 105000 }, - { .supply =3D "vdd-csiphy-1p2", .init_load_uA =3D 58900 } - }, - .clock =3D { "csiphy2", "csiphy2_timer" }, - .clock_rate =3D { { 300000000, 400000000, 480000000 }, - { 266666667, 400000000 } }, - .reg =3D { "csiphy2" }, - .interrupt =3D { "csiphy2" }, .csiphy =3D { .id =3D 2, .hw_ops =3D &csiphy_ops_3ph_1_0, @@ -3946,15 +3919,6 @@ static const struct camss_subdev_resources csiphy_re= s_x1e80100[] =3D { }, /* CSIPHY4 */ { - .regulators =3D { - { .supply =3D "vdd-csiphy-0p8", .init_load_uA =3D 105000 }, - { .supply =3D "vdd-csiphy-1p2", .init_load_uA =3D 58900 } - }, - .clock =3D { "csiphy4", "csiphy4_timer" }, - .clock_rate =3D { { 300000000, 400000000, 480000000 }, - { 266666667, 400000000 } }, - .reg =3D { "csiphy4" }, - .interrupt =3D { "csiphy4" }, .csiphy =3D { .id =3D 4, .hw_ops =3D &csiphy_ops_3ph_1_0, @@ -5362,7 +5326,6 @@ static const struct camss_resources sm8650_resources = =3D { static const struct camss_resources x1e80100_resources =3D { .version =3D CAMSS_X1E80100, .pd_name =3D "top", - .legacy_phy =3D true, .csiphy_res =3D csiphy_res_x1e80100, .csid_res =3D csid_res_x1e80100, .vfe_res =3D vfe_res_x1e80100, --=20 2.52.0