From patchwork Fri Nov 18 08:45:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 22201 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp70848wrr; Fri, 18 Nov 2022 00:49:06 -0800 (PST) X-Google-Smtp-Source: AA0mqf6uWKOxz7ju2ElECEMlf4DRmUtJ5FjDDl3TBImgBr0F4J88iXGm7R9BT2HLPUcp1r/bpRgk X-Received: by 2002:a17:906:a2d8:b0:7ad:fa6c:5e69 with SMTP id by24-20020a170906a2d800b007adfa6c5e69mr5092017ejb.199.1668761346034; Fri, 18 Nov 2022 00:49:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668761346; cv=none; d=google.com; s=arc-20160816; b=cx550+WjJYcOzdpXgcJWs7ZvfLIvSCqBtj9KRONOr+eknScQLPg1HJjrZ71hVPyOrg m+CPpJHwxb0RTXpDctGGgljsPvxqTGibQgDQ0l41Rcc9zj+wPmXMo9jdNrSoNfkFYgwq OO1B6KJKzWnlyKJXeKLeu6HXcZ0i0Y8SaSaR8+47T3hPVBr0SM+OBvSbLACoGeZCGzba NCTPy7vHt1F1ScSB5QFiq0v2As64u2i0Jmte58nznMMJLdoWFN5oma7HOi/n9anqm3rk RP9+pZuy5NF46nF/yyTTYDtHDrFJ5D2P2pKBeq1RTzsRLODtjbm6uEATCfyTRwJQ+Iif fqAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=pdA2WwhFWByaRGVKICxP7e1l/2IRmgbsS7SgJKJiYvA=; b=YMuTY1m2vpfjmN/EBwkZxgrk6/w9CY3eNCbiC6mJg9ND9L/DsAFrGQmb5ROnIpENO/ jcgrbxdp3+m1q71YclSl+SONqh8m80LOThrv2vpm8g9UpPma29gEF+inT379tn1mzWNR GaiaRikP20Kn1fUpq3U2+7VNEZmRDVNrIGaUdDdQPaYgvLUN/PXjOTslVZ8Z2affnTWe 6k6MbEU7zoqt2eWRdcvx67lsu7pdhNGmcYuD9rVV/lKhhIA+/pi1wet8WaErBDKdzKfG mykf5vAruoeq65/+MoQ8sCSH/6bgb9lkmVZT7N8X/nQp27abCt3sU3/wiCiPNmSevYN6 7e5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="TLeWC/zj"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t20-20020a170906179400b007ae86742c20si1987724eje.282.2022.11.18.00.48.39; Fri, 18 Nov 2022 00:49:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="TLeWC/zj"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241555AbiKRIpi (ORCPT + 99 others); Fri, 18 Nov 2022 03:45:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36664 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241437AbiKRIpT (ORCPT ); Fri, 18 Nov 2022 03:45:19 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0C4697A8B for ; Fri, 18 Nov 2022 00:45:10 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id x5so4107612wrt.7 for ; Fri, 18 Nov 2022 00:45:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=pdA2WwhFWByaRGVKICxP7e1l/2IRmgbsS7SgJKJiYvA=; b=TLeWC/zjXEMVGnjuNeQqlxZz++xObGFuXV/aUYwPyS3q7Q52jKPDgvM1x7RBLwUP8Q 3nrCOr5gpHp3pUQdC6m7MgOygjr+pMhh23UGCEfxEB3M/xStlK4Mw+dXCu6A7rKdAUNn lTOja3gdGQmWndlsbCDTQyssb8l3T6w5Z4rjCGfQu73V9ZRmus8gcEJzIT+aDpeeMvXA eaLTYr9MPWxwPwkEx+Dap03gbPK1JGc/xEilp+l9xvM3p0PXZ3nSehrUHaSa8ngaZ4S9 GcoFZ1GrvBD6LmTKfR/Iy7PiLV2BuMkTg0A5fGBM+X0dPw6HBUEsq1LQK02ta2tG448+ OCqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pdA2WwhFWByaRGVKICxP7e1l/2IRmgbsS7SgJKJiYvA=; b=H1dxa5YnT4hBgGl7FNUeK3AxMaKFdsYzlADXqjPd7/BPOWdH751jD8pxjIZFhECcrl TSEvb2pkHlYQ401BXCUpAEqOaIjSAZzOvltCirmGCR5iH4lwr7Nemq5wxMohaJK38Mu6 5HS6jLu54f1Lmo7mjgKesNlEviSzCVMic5NM8de498moJmVQFcXGwGGdrqkacU0dqOOx /x76PElN6TZe4+aJTFbBcH7DktqdLp7fCka1eI7PzEvTO9VuXb/3MBZQhtbNZ9r4dG1n 2ZocA4CasoOL8xdcaKgN9K6s9oijpuSYeLl1b2KHbLPckFJLH20lnkFqNkyXG/6VLQh+ 2hTg== X-Gm-Message-State: ANoB5pl0449OVg2OqDR1RRipogHO6v2lH/EfabzCc7iGNuVKt9VYazoR ufc8oGk+SNUN9dWt94e+YjSB0w== X-Received: by 2002:a05:6000:78d:b0:22e:3d63:80bc with SMTP id bu13-20020a056000078d00b0022e3d6380bcmr3851043wrb.30.1668761109439; Fri, 18 Nov 2022 00:45:09 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id v18-20020a5d6112000000b00236e834f050sm2960284wrt.35.2022.11.18.00.45.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Nov 2022 00:45:09 -0800 (PST) From: Neil Armstrong Date: Fri, 18 Nov 2022 09:45:05 +0100 Subject: [PATCH v2 1/6] dt-bindings: qcom: geni-se: document I2C Master Hub wrapper variant MIME-Version: 1.0 Message-Id: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-1-aadaa6997b28@linaro.org> References: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> In-Reply-To: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> To: Rob Herring , Krzysztof Kozlowski , Bjorn Andersson , Konrad Dybcio , Andy Gross Cc: linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong , devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org X-Mailer: b4 0.10.1 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749823097175687977?= X-GMAIL-MSGID: =?utf-8?q?1749823097175687977?= The I2C Master Hub is a stripped down version of the GENI Serial Engine QUP Wrapper Controller but only supporting I2C serial engines without DMA support. Document the variant compatible, forbid UART and SPI sub-nodes, and remove requirement for the Master AHB clock and iommu property. Signed-off-by: Neil Armstrong Reviewed-by: Krzysztof Kozlowski --- .../devicetree/bindings/soc/qcom/qcom,geni-se.yaml | 44 +++++++++++++++++++--- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.yaml index 2bf5293fc995..ab4df0205285 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.yaml +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.yaml @@ -21,20 +21,19 @@ properties: compatible: enum: - qcom,geni-se-qup + - qcom,geni-se-i2c-master-hub reg: description: QUP wrapper common register address and length. maxItems: 1 clock-names: - items: - - const: m-ahb - - const: s-ahb + minItems: 1 + maxItems: 2 clocks: - items: - - description: Master AHB Clock - - description: Slave AHB Clock + minItems: 1 + maxItems: 2 "#address-cells": const: 2 @@ -81,6 +80,39 @@ patternProperties: description: GENI Serial Engine based UART Controller. $ref: /schemas/serial/qcom,serial-geni-qcom.yaml# +allOf: + - if: + properties: + compatible: + contains: + const: qcom,geni-se-i2c-master-hub + then: + properties: + clock-names: + items: + - const: s-ahb + + clocks: + items: + - description: Slave AHB Clock + + iommus: false + + patternProperties: + "spi@[0-9a-f]+$": false + "serial@[0-9a-f]+$": false + else: + properties: + clock-names: + items: + - const: m-ahb + - const: s-ahb + + clocks: + items: + - description: Master AHB Clock + - description: Slave AHB Clock + additionalProperties: false examples: From patchwork Fri Nov 18 08:45:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 22202 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp70993wrr; Fri, 18 Nov 2022 00:49:34 -0800 (PST) X-Google-Smtp-Source: AA0mqf5HdiyZ1M7oN4a4w8xdAXfz7KJBwItprsCKWKKUxAsNJBUFK33CBD+YYHKLZfGPc1To063M X-Received: by 2002:a17:906:480f:b0:7ae:967a:50bb with SMTP id w15-20020a170906480f00b007ae967a50bbmr5114139ejq.383.1668761374081; Fri, 18 Nov 2022 00:49:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668761374; cv=none; d=google.com; s=arc-20160816; b=0lpoDFlilD327FqSDM1Lv/NqlmpSxI4FMDVC2egyH9kz889DhMkJtFrqcoeiSF0EjD Jyiwsre3DuYaRNtT7Jw8MtiswlppUadEvbZr1INK5u0Gd2CdiJ23ws2U1poVxflT9oUz tTgEho0prmiIe/Vpo/Bjo0mtvi8XBDcG6Q9crUzPuRugyeMZO+gK4HICuUhN3RZy1LFI bXqRt0RFp6vZkj0My/jITwR8QvfU98vCPqurHz/F8ruN3mNiaSBPRNdiD013nhPc6zxc g53FUjUgW9VLnpeNjbVJB1X3Jej2BNAPPMp4+Ihu+MKXdRngfVooXFdpB8zVEFwQUoH4 meNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=2ZVI21GiGBb72P+wFA+fb2eiFTOk5Z1sDSldnLU44Cg=; b=SQLRkuH/gYldK0iTTgGNwvw79aojihvQbalutKxxH+kGN6ORhIeRWLzdKkY8Gm5dnB 2tRRXYjejqqLzfh6JnMcJ4LfnDb6F+2JMo4PGHkh2OLsOuW3YUMY1E0ct1yVQdnNiiB7 pkewL3nZN2c6VAbs89H2YaUxB516ffEJQeH3YeKdQbzYzj9400vFE43xRd9JI6iog39F PgkJ00UQ9PEfrqh1WfSMyTwwnWVQRYRHioFki3afdVwwd08BUAWs5oE3iBnqO5rEL7ck moFWP5NqDtoVHDajw7rzPZWHrOLfgT1xC2tXN8ooTk8nhEOCz/2aSWiQpBViZ+BlGrbW BE3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=B2SPam30; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id qa35-20020a17090786a300b007771bc8dbb4si2976076ejc.781.2022.11.18.00.49.07; Fri, 18 Nov 2022 00:49:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=B2SPam30; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241640AbiKRIpo (ORCPT + 99 others); Fri, 18 Nov 2022 03:45:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241517AbiKRIpU (ORCPT ); Fri, 18 Nov 2022 03:45:20 -0500 Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AAAE197AAF for ; Fri, 18 Nov 2022 00:45:11 -0800 (PST) Received: by mail-wr1-x435.google.com with SMTP id j15so7516761wrq.3 for ; Fri, 18 Nov 2022 00:45:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=2ZVI21GiGBb72P+wFA+fb2eiFTOk5Z1sDSldnLU44Cg=; b=B2SPam30PBcRcEgx+uM0RhffnU+8Sb4wu9VwqAiiuxTm8FQMPjFU3TgdBxOB8t3jBd mDgl/Jw7JSSsfhef9JLD6b+VVcdiqtd4DkQ8gi06Pzw7kvfEy24Sk6uVrYZg2Y8daFzw l6X1NS65kb6/tCVfpeR3rmo1ziYS0NBq0/CXMt3OrIF4TRwFnIVpRRWWtBQJ74EPcWxf OPvlQ1hE9PfdNmNiwIJVjwcJEBHxB9ndc7BjLX0QHYaAn6kN0tHXWczO3odmcKI5dgAk O7oL8ArrWWgF4jnoNcE+Sbdla+fwanNoehkcYIdYASd+i9h3vHGl3B8UE/h7YFfxAOTQ /Y+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2ZVI21GiGBb72P+wFA+fb2eiFTOk5Z1sDSldnLU44Cg=; b=YAIgW1l9X1C9hsfHCDZ45z2S+c0GU4Kq1J8vM6MEFdD87Ho9tg1SNTZz/2yPkavZAj k+k5WmKJULvMwBMcbAohoJmgAIJRXtPaEPO5NG+WI9aiwOCpSUbAHR1neMIBUd3E9zAr q7YxkiWqrC2mKoT/tuxC9LrY1ccogWwBjctMibb48Yw1mcT9bClNK9gvTG1oLCQpYqGi qiUTsIpDd7zmV4cmgHpeJXSV3nlyKp1gq/ufefVHBJTCDUZu3dpy0n0gNwMdCxMRe9R7 KTzGD3D89GUG5aasI0lHTVDyXtKHrZULAYkxaae6l+NXfEs7I2T8yMks5vRxkYJNVupH tlDw== X-Gm-Message-State: ANoB5pluPb2WogM2AzMzrlgaXOrvj5Ceb+l9r4hRFbh13MurOvFsY2OI P3547jwLsJG/Mk9bCS+/iDOrKA== X-Received: by 2002:adf:f74d:0:b0:236:4e3c:7720 with SMTP id z13-20020adff74d000000b002364e3c7720mr3641986wrp.674.1668761110226; Fri, 18 Nov 2022 00:45:10 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id v18-20020a5d6112000000b00236e834f050sm2960284wrt.35.2022.11.18.00.45.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Nov 2022 00:45:09 -0800 (PST) From: Neil Armstrong Date: Fri, 18 Nov 2022 09:45:06 +0100 Subject: [PATCH v2 2/6] dt-bindings: i2c: qcom-geni: document I2C Master Hub serial I2C engine MIME-Version: 1.0 Message-Id: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-2-aadaa6997b28@linaro.org> References: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> In-Reply-To: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> To: Rob Herring , Krzysztof Kozlowski , Bjorn Andersson , Konrad Dybcio , Andy Gross Cc: linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong , devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org X-Mailer: b4 0.10.1 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749823126223220870?= X-GMAIL-MSGID: =?utf-8?q?1749823126223220870?= The I2C Master Hub is a stripped down version of the GENI Serial Engine QUP Wrapper Controller but only supporting I2C serial engines without DMA support. Document the I2C Serial Engine variant used within the I2C Master Hub Wrapper. This serial engine variant lacks DMA support, requires a core clock, and since DMA support is lacking the memory interconnect path isn't needed. Signed-off-by: Neil Armstrong Reviewed-by: Krzysztof Kozlowski --- .../bindings/i2c/qcom,i2c-geni-qcom.yaml | 64 ++++++++++++++++++---- 1 file changed, 54 insertions(+), 10 deletions(-) diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml index 0e7ed00562e2..f5f7dc8f325c 100644 --- a/Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml +++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml @@ -10,18 +10,19 @@ maintainers: - Andy Gross - Bjorn Andersson -allOf: - - $ref: /schemas/i2c/i2c-controller.yaml# - properties: compatible: - const: qcom,geni-i2c + enum: + - qcom,geni-i2c + - qcom,geni-i2c-master-hub clocks: - maxItems: 1 + minItems: 1 + maxItems: 2 clock-names: - const: se + minItems: 1 + maxItems: 2 clock-frequency: default: 100000 @@ -35,13 +36,12 @@ properties: - const: rx interconnects: + minItems: 2 maxItems: 3 interconnect-names: - items: - - const: qup-core - - const: qup-config - - const: qup-memory + minItems: 2 + maxItems: 3 interrupts: maxItems: 1 @@ -71,6 +71,50 @@ required: - clock-names - reg +allOf: + - $ref: /schemas/i2c/i2c-controller.yaml# + - if: + properties: + compatible: + contains: + const: qcom,geni-i2c-master-hub + then: + properties: + clocks: + minItems: 2 + + clock-names: + items: + - const: se + - const: core + + dmas: false + dma-names: false + + interconnects: + maxItems: 2 + + interconnect-names: + items: + - const: qup-core + - const: qup-config + else: + properties: + clocks: + maxItems: 1 + + clock-names: + const: se + + interconnects: + minItems: 3 + + interconnect-names: + items: + - const: qup-core + - const: qup-config + - const: qup-memory + unevaluatedProperties: false examples: From patchwork Fri Nov 18 08:45:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 22203 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp71216wrr; Fri, 18 Nov 2022 00:50:17 -0800 (PST) X-Google-Smtp-Source: AA0mqf5ma8BaerVTBKJfhM2H9kikRT/6GUZ3EzwhZV+FPnd3kss//8ZoOjmJop1e9iDyPM3uIVyH X-Received: by 2002:a17:906:a8a:b0:7ae:6cdd:9bc9 with SMTP id y10-20020a1709060a8a00b007ae6cdd9bc9mr4962888ejf.619.1668761417062; Fri, 18 Nov 2022 00:50:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668761417; cv=none; d=google.com; s=arc-20160816; b=FoenaW2AYzng4XP+T9P8dFtULX+YGY27vkpnTqctujqrDg+faMA6RR/b4E+o7aDmTA 13dJeLg7nXOdqawDrXnYuGQCWhtvK8ZPlNC1DjqB3Ry3dgm4odO+gsHEUOYc1VGjQUiG mrNDUB6E8HQODWjDkZRrxf612rqXndjFqsSbg+vWZefe+8Wmmb1bPh8KeIvpQ74JSlpA xNdgr8d6kvtsbrvnicDue04sLZxg4o69iL/mh192xJkjhwmRJMMG5WS/d9bjDj2sXhL0 7vZsCPO+8jx3brBUu2d5QSUhNmM0FfcLi6shfo7I/4EIiNhiPxrBmsmYocKoM10pJ4Rp /eQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=IuLuAC3NrQpbK2+5jslVHChdL7XH+Vu6DE07wqFfDkg=; b=fW7ouf9iy2GVa/UXs878TylkqK3UkI/T4gs/8JAHfRNC03FvlBM9kr4ohGdluEPCIk pS4OVC7z6ag+vF8Hxmuge5LLCWwWT/F973Pp5OedLpDtE5jo66U0zGNv1GQojzZE+WnX RZLTc4wFUkwhP3VKMxE7D0nAScdd27fPSjxcvrdUN5jT5zrIQqgbkAEpCHyh26MRm61R 19H9N9W62uKaYMEUevu9TI/LkHcuiZ7ES4wxqbs7IaVZB2IxC0nwdqTn+tceWg00zkMN VRAlvgw4oLIkZ1cfY7hBJj2fKyKSEtKlxEEm8TFrZBTUpkfdeGpau97RMxbYR9J3a/AL iQQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=hJvwJEBa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q13-20020a056402518d00b004617e8811c4si2930476edd.28.2022.11.18.00.49.52; Fri, 18 Nov 2022 00:50:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=hJvwJEBa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241576AbiKRIpw (ORCPT + 99 others); Fri, 18 Nov 2022 03:45:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36756 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241607AbiKRIpW (ORCPT ); Fri, 18 Nov 2022 03:45:22 -0500 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 88E93942C6 for ; Fri, 18 Nov 2022 00:45:12 -0800 (PST) Received: by mail-wr1-x433.google.com with SMTP id y16so8146181wrt.12 for ; Fri, 18 Nov 2022 00:45:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=IuLuAC3NrQpbK2+5jslVHChdL7XH+Vu6DE07wqFfDkg=; b=hJvwJEBaT5ADDuoRy8Z+xh66Nz3wsxDA5IPXT0SeocxKDV0oBgQrshHmWF+ju8Eo/t fghE5mGFN1gJjE+aLJXIvpWH+pfPBNLRgCYH5VS4ft890UYEt5qTIkXbnO7LsbO/4AXs kiuiNWKfobK5YOS8Sntu9IfuPJD8Ji+5SHj5vK5eCt3UzD4yexJEqdlTXpXRxz2y3FPM n1W+Js9N6DIt/tb8i72T1qnfOa7qcXpxHyMIlHKs19TddmufKLZceKdkByEOzZ/a5A3n D8VEiPoyMcr+nQG8y141gYrtlgc2YiHqvA7nibn0Pnqf6x5Thhgc6XHwB3L6qXmINQBW +i+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IuLuAC3NrQpbK2+5jslVHChdL7XH+Vu6DE07wqFfDkg=; b=41E1ZLuv8Eyg1ee/3Bga+MdonqfA+Kcx8dlAxeI28kZVY2SCg3z6UHv4AMfxsxGhgn QnRDUiCmUs6rLvjlWwgGRnkZzzRFKZIBCafrw/NBGujuzYIOpR2whAO5EXIUmdFbdbyt nLCO+CUIB4yrIiIs1vDD7zVxeedvZ0pircXxQJY6VTHinkQdCXGonrDSHE4MvBNp/T35 mkda+g5vDKR61bhIxrAhODsLUr1VPstVTwupjrMvKFwevmBeQlycQumu7erMS9d02bb8 rq5lR0CIslEzmQ7zoJMXOJ+O4C5lDtj/VKkRT/B1fHtIQGiDI2ZfHdactjKNbzlF7blz hSWQ== X-Gm-Message-State: ANoB5pntMMwBc8HyI2xKR/7pQgfTgo/9cTgr2le6I8Waj6v/e45Bfr3o WlgHZxm/cx0Oh8RcHOWT4Yg9Ew== X-Received: by 2002:adf:e0c6:0:b0:22a:34a4:8831 with SMTP id m6-20020adfe0c6000000b0022a34a48831mr3634242wri.199.1668761111025; Fri, 18 Nov 2022 00:45:11 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id v18-20020a5d6112000000b00236e834f050sm2960284wrt.35.2022.11.18.00.45.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Nov 2022 00:45:10 -0800 (PST) From: Neil Armstrong Date: Fri, 18 Nov 2022 09:45:07 +0100 Subject: [PATCH v2 3/6] soc: qcom: geni-se: add desc struct to specify clocks from device match data MIME-Version: 1.0 Message-Id: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-3-aadaa6997b28@linaro.org> References: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> In-Reply-To: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> To: Rob Herring , Krzysztof Kozlowski , Bjorn Andersson , Konrad Dybcio , Andy Gross Cc: linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong , devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org X-Mailer: b4 0.10.1 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749823171734577242?= X-GMAIL-MSGID: =?utf-8?q?1749823171734577242?= The I2C Master Hub is a stripped down version of the GENI Serial Engine QUP Wrapper Controller but only supporting I2C serial engines without DMA support. Prepare support for the I2C Master Hub variant by moving the required clocks list to a new desc struct then passing it through the compatible match data. Signed-off-by: Neil Armstrong Reviewed-by: Konrad Dybcio --- drivers/soc/qcom/qcom-geni-se.c | 59 +++++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-se.c index a0ceeede450f..ced2a2932eda 100644 --- a/drivers/soc/qcom/qcom-geni-se.c +++ b/drivers/soc/qcom/qcom-geni-se.c @@ -81,19 +81,31 @@ */ #define MAX_CLK_PERF_LEVEL 32 -#define NUM_AHB_CLKS 2 +#define MAX_CLKS 2 /** * struct geni_wrapper - Data structure to represent the QUP Wrapper Core * @dev: Device pointer of the QUP wrapper core * @base: Base address of this instance of QUP wrapper core - * @ahb_clks: Handle to the primary & secondary AHB clocks + * @clks: Handle to the primary & optional secondary AHB clocks + * @num_clks: Count of clocks * @to_core: Core ICC path */ struct geni_wrapper { struct device *dev; void __iomem *base; - struct clk_bulk_data ahb_clks[NUM_AHB_CLKS]; + struct clk_bulk_data clks[MAX_CLKS]; + unsigned int num_clks; +}; + +/** + * struct geni_se_desc - Data structure to represent the QUP Wrapper resources + * @clks: Name of the primary & optional secondary AHB clocks + * @num_clks: Count of clock names + */ +struct geni_se_desc { + unsigned int num_clks; + const char * const *clks; }; static const char * const icc_path_names[] = {"qup-core", "qup-config", @@ -496,8 +508,7 @@ static void geni_se_clks_off(struct geni_se *se) struct geni_wrapper *wrapper = se->wrapper; clk_disable_unprepare(se->clk); - clk_bulk_disable_unprepare(ARRAY_SIZE(wrapper->ahb_clks), - wrapper->ahb_clks); + clk_bulk_disable_unprepare(wrapper->num_clks, wrapper->clks); } /** @@ -528,15 +539,13 @@ static int geni_se_clks_on(struct geni_se *se) int ret; struct geni_wrapper *wrapper = se->wrapper; - ret = clk_bulk_prepare_enable(ARRAY_SIZE(wrapper->ahb_clks), - wrapper->ahb_clks); + ret = clk_bulk_prepare_enable(wrapper->num_clks, wrapper->clks); if (ret) return ret; ret = clk_prepare_enable(se->clk); if (ret) - clk_bulk_disable_unprepare(ARRAY_SIZE(wrapper->ahb_clks), - wrapper->ahb_clks); + clk_bulk_disable_unprepare(wrapper->num_clks, wrapper->clks); return ret; } @@ -887,11 +896,23 @@ static int geni_se_probe(struct platform_device *pdev) return PTR_ERR(wrapper->base); if (!has_acpi_companion(&pdev->dev)) { - wrapper->ahb_clks[0].id = "m-ahb"; - wrapper->ahb_clks[1].id = "s-ahb"; - ret = devm_clk_bulk_get(dev, NUM_AHB_CLKS, wrapper->ahb_clks); + const struct geni_se_desc *desc; + int i; + + desc = device_get_match_data(&pdev->dev); + if (!desc) + return -EINVAL; + + wrapper->num_clks = min_t(unsigned int, desc->num_clks, MAX_CLKS); + if (wrapper->num_clks < desc->num_clks) + dev_warn(dev, "too much clocks described in DT\n"); + + for (i = 0; i < wrapper->num_clks; ++i) + wrapper->clks[i].id = desc->clks[i]; + + ret = devm_clk_bulk_get(dev, wrapper->num_clks, wrapper->clks); if (ret) { - dev_err(dev, "Err getting AHB clks %d\n", ret); + dev_err(dev, "Err getting clks %d\n", ret); return ret; } } @@ -901,8 +922,18 @@ static int geni_se_probe(struct platform_device *pdev) return devm_of_platform_populate(dev); } +static const char * const qup_clks[] = { + "m-ahb", + "s-ahb", +}; + +static const struct geni_se_desc qup_desc = { + .clks = qup_clks, + .num_clks = ARRAY_SIZE(qup_clks), +}; + static const struct of_device_id geni_se_dt_match[] = { - { .compatible = "qcom,geni-se-qup", }, + { .compatible = "qcom,geni-se-qup", .data = &qup_desc }, {} }; MODULE_DEVICE_TABLE(of, geni_se_dt_match); From patchwork Fri Nov 18 08:45:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 22204 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp71224wrr; Fri, 18 Nov 2022 00:50:18 -0800 (PST) X-Google-Smtp-Source: AA0mqf6WrZe7H401bTJTezmCfdVqJ5GuuLOxgOOxfkK/meKa6of4nVvto7HLTdPkgmNdEPGDkAHK X-Received: by 2002:a17:907:cf84:b0:78d:4795:ff1f with SMTP id ux4-20020a170907cf8400b0078d4795ff1fmr5263942ejc.331.1668761418367; Fri, 18 Nov 2022 00:50:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668761418; cv=none; d=google.com; s=arc-20160816; b=q45w+++/+DFJkwYC1Wv7HIsqcyxa9VfE8iXA5txCY8wNcjlrAib9IOCT77p2j+J6OD 9T5dby4tiAqv+b0CqJS4XL6C0xpqWU0JfNR9JOQcsOiT/96Zhj3No1BW8Epv8OASzfFF 97oOaIm9gs5hYXR8cM1RjEFReQGWJ6urq02pCrvU13g2Lb76KmEK5614CzAfdQd7GzmZ tNQIW9KFQNgk88SLi5zyzIM+hdLyMg44PIcnrBOon9oHHSUmBe/jJcRawpNtYfEujG6l rOTnapmNxKoJveMq89CtxxcRNVDe7OEs6Nkfxdp4JE/HtNQKkGu+jDeOwEFB6mH+dwgS rLVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=PuYlzwdY3YL5ngZPDZI+/8bCcCBBYWki/srtrsbHb58=; b=Ciuogw5E6yFKQJxvcRGYs5ZNZ9VjpwUWjYLAlAM+J5NLmZGUD+P1nUujYHEATi3V7B HbUVSA4FuMI/togf4OGY8PuYahEuf6p2OZ+hkxqzf6w90/w/JlOp1yzYPPUQi4sWf6+g yqrchtYsmqed7f/aPl6ZF53xvmdZU9wKIFm9v336Q8gZXuGMhNoVPtVA225KHmI4kmHP S1/1ryUnJo97wTvo8/SwMSsqiPyxhpwhCDs3QcOVjgeO/gSpD6gxE95Apy8b2OsWbFIu Wdzbh+nZmi2A4AVmDQFEFr/bH/2rB4oWEb6R23pYeIzCR92Oq1l23pWUrw1Iedb/n76r 0MLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=JXq1G2Em; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f11-20020a056402354b00b00461bbc0f929si2950247edd.184.2022.11.18.00.49.54; Fri, 18 Nov 2022 00:50:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=JXq1G2Em; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241651AbiKRIp5 (ORCPT + 99 others); Fri, 18 Nov 2022 03:45:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240260AbiKRIpX (ORCPT ); Fri, 18 Nov 2022 03:45:23 -0500 Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 41C4298263 for ; Fri, 18 Nov 2022 00:45:13 -0800 (PST) Received: by mail-wr1-x42a.google.com with SMTP id g2so4505082wrv.6 for ; Fri, 18 Nov 2022 00:45:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=PuYlzwdY3YL5ngZPDZI+/8bCcCBBYWki/srtrsbHb58=; b=JXq1G2EmbKMuhO4Fn3hNW7mofcNkECcT/2PFQ15oRVKt5RHjKXxO/CFoS+Z6k7EtY0 Z1nKL31POAE+JLTT1gZNGtELi8M9qlIz8hrZwRonePc+dYc5mhGrsl1tss47o+EzrwcM 2M2CNQBg5oKYc2nTUsobLPCYdyUdSEB+xmwS0bZ1g+Mo7jFd1Pdc1EHhR/AYdj0Rm+xg B6RgJucVysn+pzVQYYUg5mNN/sesTLn/tOv7oEhue0mfryA5f6DyQ1ltclfNiCscKwyO IPn4ZilZ8WFsmIWUz6Dk7DKll8mFya99WUR71f0dqMWiwrJMsRoMS8r732ElVLzq8wdW 4zYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PuYlzwdY3YL5ngZPDZI+/8bCcCBBYWki/srtrsbHb58=; b=2zvya1bSzTWI5Ww7QTGHBRq/HP27V+nVaCw0OBSDy2HJD2Uev+N0Xel9OMTZcq5yy4 UzWjs2dN5J2S6jTvmOnwvKkIznls2+WaASlgM4rvtkoznpq85OK0rTwY01Hvw+Da6BUq rvShpaV7RC8pN/A+kZ+vLKmvtAe2rvsTDUHy2fC4oA64BuQxtqi9LsKhYYTZCyf+0DqU ntj7DqhvtXGNGQfObMgHON9aXYJxByx1qeVEPt8pgdzhdZSCM1OmTwGyCt+/26xhbqNs jr09CDxNjKnPAB0XBDzr1SA1mgM9IPq+jedXy0QZCTIxN8mdcuO8QvTElHE2JY98SKsg eiFw== X-Gm-Message-State: ANoB5pmkFTgqla06AQMuhdfGlH/3aJu7JrqecS1fpFJ5T0VVo/IZDPLB uNUwNKXDcVDSqwImOQlIvKapEw== X-Received: by 2002:adf:ea0b:0:b0:236:695b:6275 with SMTP id q11-20020adfea0b000000b00236695b6275mr3771407wrm.116.1668761111812; Fri, 18 Nov 2022 00:45:11 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id v18-20020a5d6112000000b00236e834f050sm2960284wrt.35.2022.11.18.00.45.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Nov 2022 00:45:11 -0800 (PST) From: Neil Armstrong Date: Fri, 18 Nov 2022 09:45:08 +0100 Subject: [PATCH v2 4/6] soc: qcom: geni-se: add support for I2C Master Hub wrapper variant MIME-Version: 1.0 Message-Id: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-4-aadaa6997b28@linaro.org> References: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> In-Reply-To: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> To: Rob Herring , Krzysztof Kozlowski , Bjorn Andersson , Konrad Dybcio , Andy Gross Cc: linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong , devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org X-Mailer: b4 0.10.1 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749823173029529116?= X-GMAIL-MSGID: =?utf-8?q?1749823173029529116?= The I2C Master Hub is a stripped down version of the GENI Serial Engine QUP Wrapper Controller but only supporting I2C serial engines without DMA support. Add the clock list for the I2C Master Hub variant to a new desc struct then pass it through the I2C Master Hub compatible match data. Signed-off-by: Neil Armstrong Reviewed-by: Konrad Dybcio --- drivers/soc/qcom/qcom-geni-se.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-se.c index ced2a2932eda..41f5b4d507d7 100644 --- a/drivers/soc/qcom/qcom-geni-se.c +++ b/drivers/soc/qcom/qcom-geni-se.c @@ -932,8 +932,18 @@ static const struct geni_se_desc qup_desc = { .num_clks = ARRAY_SIZE(qup_clks), }; +static const char * const i2c_master_hub_clks[] = { + "s-ahb", +}; + +static const struct geni_se_desc i2c_master_hub_desc = { + .clks = i2c_master_hub_clks, + .num_clks = ARRAY_SIZE(i2c_master_hub_clks), +}; + static const struct of_device_id geni_se_dt_match[] = { { .compatible = "qcom,geni-se-qup", .data = &qup_desc }, + { .compatible = "qcom,geni-se-i2c-master-hub", .data = &i2c_master_hub_desc }, {} }; MODULE_DEVICE_TABLE(of, geni_se_dt_match); From patchwork Fri Nov 18 08:45:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 22205 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp71609wrr; Fri, 18 Nov 2022 00:51:34 -0800 (PST) X-Google-Smtp-Source: AA0mqf5X5SAHFyBHlfhayNs460S+H5A68iQ2bP6k1UhgyZ2KuoCzwoeMzJBoUQ871otcPdbKQqpZ X-Received: by 2002:a17:906:3bce:b0:7aa:6998:ad72 with SMTP id v14-20020a1709063bce00b007aa6998ad72mr5281017ejf.763.1668761494413; Fri, 18 Nov 2022 00:51:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668761494; cv=none; d=google.com; s=arc-20160816; b=HODaJx85N4WGVJb+JvuVi0m84w5JTATrlpJqOcSrbYIgMD/D6gWgsQM9XxmnwDRZXr DAw7s4XMRY4wkHNY1cL0Z7e4XXZe4pe1LOqzRM4Y7DI3RhkPCpq3P3S72J3pu3rQ2LY/ VFmNsRaW3iaOkQ1UWyEQxQtr4lHOKIO4bbybz/ez+d48IYY/7j5AkLvl13QUaB11V2UL cGFtoA34Z18+OTVOn8tDWc3mp7Apt7C4Vomk6KTAk+7v4wjOSAV3EHFvQLLRFfZiPn5j dTwgvP8W9md4vPKGt2kW52zsmtWjPgnRYLSKQtqPfnplpriSq2Fmnnuawjmu6wGi712e JtAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=r8Au/1u0YFc5wyAQ+jpg2qjjEheMb69WJesiWy0RQrA=; b=cm/reMtCHOX15v6mj7ACNCKTcGzC3Pfs+HVE5b+LswWTdtdweuyb4egq7J3bGb+sNH 9ukupU6hplbyjfUuYYPcwaZit5Nf7bXpEbdSJP6s71Lp8v9QIP8e4f4nHCFs+J1EabrD 8g4zQ6eJs6HsBMu6BM+xiSrPShYnRT+Q99fUpSJmejVyd3PC/mpoVfEvUToliv+vuHks EtrEsuZhkS1wQsmm4VJ/bUcI6ZTjU7wRrg+X1TyUqownvDxpyTS9Gy/YlZ/4MB34nLLw eKr87HUCUIAdd7U+9VYGZo6Zm4iW26H/jdmdlwU2T54bP6d7YXpoH+tsoav7xNyctwbG HYoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=CqjzAenO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x3-20020a05640226c300b00458cd6f8506si3137557edd.173.2022.11.18.00.51.08; Fri, 18 Nov 2022 00:51:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=CqjzAenO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241657AbiKRIqB (ORCPT + 99 others); Fri, 18 Nov 2022 03:46:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36796 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240988AbiKRIpX (ORCPT ); Fri, 18 Nov 2022 03:45:23 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 30405942CF for ; Fri, 18 Nov 2022 00:45:13 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id x5so4107816wrt.7 for ; Fri, 18 Nov 2022 00:45:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=r8Au/1u0YFc5wyAQ+jpg2qjjEheMb69WJesiWy0RQrA=; b=CqjzAenO31gY7WhDxq0nQtkRjS379Vnd4W7Mumkw4WnxzQABSHojrcRiTYPUNTsMid Q5gAVyjy/gyzaTF8xm8mmTEurL3XQXNJC/kWAFD7rC2n6K52uXBwDsEMXckX5tqf+Qra /SDWEi3CZHr0J2v0mxBlXNyZlxaiGK0mkvAT0kZjKVvstMbVPhcKROcBaRcvbn6/u8ix j+nFjJ63q4+WvbXRBoeiwvNclOIsChtwJSfsgcYrd+bb91lSjG5oLqPx+fb9fzMKoa45 Opz0WQrViF/vBZAK+FyhT8iA8248N3XOeg2BMZbdlmQYn6ssfELAahVF7NV1KrqECL34 AYgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=r8Au/1u0YFc5wyAQ+jpg2qjjEheMb69WJesiWy0RQrA=; b=VBl6rTU6i3CpaTpU5wUilXdNaIQjQ12dYevbkDJDM8AKI3OjdYSRfPFBvbfToHooA9 zBWwG15OKhjc2cDQ9b+hhYSgRzX5Z/8ftN94CkOgld1Gq+qqz63kceNADmKh6rSy05ai fLxRX23+u/PpY9LiuO4SQP8MoZk0w0cpICb4NEv8sqLNtsBifPlXOEjMW7YAt41A8M7w Va4kAWrhATkpa2isl7EVZ0U6N0l1j/IV6X2w13POMrJfEkYghTVyzEiLkUWYutDbdHrE C9jPKQhoVGv7WHCd9+Q8XHOPVH+k43tL0axFP90jYK56L/e0JNWGerG+1BmfyjUyC98N RLQQ== X-Gm-Message-State: ANoB5pk1UkkIYGJ4kjClyw5InaHxOoz+3A5e5F3BHbWF9O0vCsHJ4yTQ c+hemyiBhKkUu/IL6clLWjJcXA== X-Received: by 2002:a05:6000:1cc:b0:241:a59b:ed46 with SMTP id t12-20020a05600001cc00b00241a59bed46mr3814409wrx.77.1668761112636; Fri, 18 Nov 2022 00:45:12 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id v18-20020a5d6112000000b00236e834f050sm2960284wrt.35.2022.11.18.00.45.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Nov 2022 00:45:12 -0800 (PST) From: Neil Armstrong Date: Fri, 18 Nov 2022 09:45:09 +0100 Subject: [PATCH v2 5/6] i2c: qcom-geni: add desc struct to prepare support for I2C Master Hub variant MIME-Version: 1.0 Message-Id: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-5-aadaa6997b28@linaro.org> References: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> In-Reply-To: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> To: Rob Herring , Krzysztof Kozlowski , Bjorn Andersson , Konrad Dybcio , Andy Gross Cc: linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong , devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org X-Mailer: b4 0.10.1 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749823252828095465?= X-GMAIL-MSGID: =?utf-8?q?1749823252828095465?= The I2C Master Hub is a stripped down version of the GENI Serial Engine QUP Wrapper Controller but only supporting I2C serial engines without DMA support. Those I2C serial engines variants have some requirements: - a separate "core" clock - doesn't support DMA, thus no memory interconnect path - fixed FIFO size not discoverable in the HW_PARAM_0 register Add a desc struct specifying all those requirements which will be used in a next change when adding the I2C Master Hub serial engine compatible. Signed-off-by: Neil Armstrong Reviewed-by: Konrad Dybcio --- drivers/i2c/busses/i2c-qcom-geni.c | 50 +++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c index 84a77512614d..75dd0718c5a1 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -88,6 +88,7 @@ struct geni_i2c_dev { int cur_wr; int cur_rd; spinlock_t lock; + struct clk *core_clk; u32 clk_freq_out; const struct geni_i2c_clk_fld *clk_fld; int suspended; @@ -100,6 +101,13 @@ struct geni_i2c_dev { bool abort_done; }; +struct geni_i2c_desc { + bool has_core_clk; + char *icc_ddr; + bool no_dma_support; + unsigned int tx_fifo_depth; +}; + struct geni_i2c_err_log { int err; const char *msg; @@ -764,6 +772,7 @@ static int geni_i2c_probe(struct platform_device *pdev) u32 proto, tx_depth, fifo_disable; int ret; struct device *dev = &pdev->dev; + const struct geni_i2c_desc *desc = NULL; gi2c = devm_kzalloc(dev, sizeof(*gi2c), GFP_KERNEL); if (!gi2c) @@ -776,6 +785,14 @@ static int geni_i2c_probe(struct platform_device *pdev) if (IS_ERR(gi2c->se.base)) return PTR_ERR(gi2c->se.base); + desc = device_get_match_data(&pdev->dev); + + if (desc && desc->has_core_clk) { + gi2c->core_clk = devm_clk_get(dev, "core"); + if (IS_ERR(gi2c->core_clk)) + return PTR_ERR(gi2c->core_clk); + } + gi2c->se.clk = devm_clk_get(dev, "se"); if (IS_ERR(gi2c->se.clk) && !has_acpi_companion(dev)) return PTR_ERR(gi2c->se.clk); @@ -819,7 +836,7 @@ static int geni_i2c_probe(struct platform_device *pdev) gi2c->adap.dev.of_node = dev->of_node; strscpy(gi2c->adap.name, "Geni-I2C", sizeof(gi2c->adap.name)); - ret = geni_icc_get(&gi2c->se, "qup-memory"); + ret = geni_icc_get(&gi2c->se, desc ? desc->icc_ddr : "qup-memory"); if (ret) return ret; /* @@ -829,12 +846,17 @@ static int geni_i2c_probe(struct platform_device *pdev) */ gi2c->se.icc_paths[GENI_TO_CORE].avg_bw = GENI_DEFAULT_BW; gi2c->se.icc_paths[CPU_TO_GENI].avg_bw = GENI_DEFAULT_BW; - gi2c->se.icc_paths[GENI_TO_DDR].avg_bw = Bps_to_icc(gi2c->clk_freq_out); + if (!desc || desc->icc_ddr) + gi2c->se.icc_paths[GENI_TO_DDR].avg_bw = Bps_to_icc(gi2c->clk_freq_out); ret = geni_icc_set_bw(&gi2c->se); if (ret) return ret; + ret = clk_prepare_enable(gi2c->core_clk); + if (ret) + return ret; + ret = geni_se_resources_on(&gi2c->se); if (ret) { dev_err(dev, "Error turning on resources %d\n", ret); @@ -844,10 +866,15 @@ static int geni_i2c_probe(struct platform_device *pdev) if (proto != GENI_SE_I2C) { dev_err(dev, "Invalid proto %d\n", proto); geni_se_resources_off(&gi2c->se); + clk_disable_unprepare(gi2c->core_clk); return -ENXIO; } - fifo_disable = readl_relaxed(gi2c->se.base + GENI_IF_DISABLE_RO) & FIFO_IF_DISABLE; + if (desc && desc->no_dma_support) + fifo_disable = false; + else + fifo_disable = readl_relaxed(gi2c->se.base + GENI_IF_DISABLE_RO) & FIFO_IF_DISABLE; + if (fifo_disable) { /* FIFO is disabled, so we can only use GPI DMA */ gi2c->gpi_mode = true; @@ -859,6 +886,16 @@ static int geni_i2c_probe(struct platform_device *pdev) } else { gi2c->gpi_mode = false; tx_depth = geni_se_get_tx_fifo_depth(&gi2c->se); + + /* I2C Master Hub Serial Elements doesn't have the HW_PARAM_0 register */ + if (!tx_depth && desc) + tx_depth = desc->tx_fifo_depth; + + if (!tx_depth) { + dev_err(dev, "Invalid TX FIFO depth\n"); + return -EINVAL; + } + gi2c->tx_wm = tx_depth - 1; geni_se_init(&gi2c->se, gi2c->tx_wm, tx_depth); geni_se_config_packing(&gi2c->se, BITS_PER_BYTE, @@ -867,6 +904,7 @@ static int geni_i2c_probe(struct platform_device *pdev) dev_dbg(dev, "i2c fifo/se-dma mode. fifo depth:%d\n", tx_depth); } + clk_disable_unprepare(gi2c->core_clk); ret = geni_se_resources_off(&gi2c->se); if (ret) { dev_err(dev, "Error turning off resources %d\n", ret); @@ -932,6 +970,8 @@ static int __maybe_unused geni_i2c_runtime_suspend(struct device *dev) gi2c->suspended = 1; } + clk_disable_unprepare(gi2c->core_clk); + return geni_icc_disable(&gi2c->se); } @@ -944,6 +984,10 @@ static int __maybe_unused geni_i2c_runtime_resume(struct device *dev) if (ret) return ret; + ret = clk_prepare_enable(gi2c->core_clk); + if (ret) + return ret; + ret = geni_se_resources_on(&gi2c->se); if (ret) return ret; From patchwork Fri Nov 18 08:45:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 22206 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp71682wrr; Fri, 18 Nov 2022 00:51:50 -0800 (PST) X-Google-Smtp-Source: AA0mqf4KJgGJy05yoqdVSnGJkbQ8pnJY/pR2eUyM9UGlAOhG3+c24jujXPazX07ua9dPzQsAv6nf X-Received: by 2002:aa7:c385:0:b0:461:eea0:5138 with SMTP id k5-20020aa7c385000000b00461eea05138mr5348630edq.59.1668761510005; Fri, 18 Nov 2022 00:51:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668761509; cv=none; d=google.com; s=arc-20160816; b=qMZKUwg3EziIPXUW6jv6jLjgPMsFBx1pSQ9wKRSXEoUlMZltKcOhmtbwRWozXq19ip lkr0M/3J3hCyHb7PkE6knMvskip0V04YaQQrc3vK6ar40+B6YYf7+IXII3Nnt+AZ0Rl3 E5EcmmsP2v0oBW/EDmppyM13CAeGRZNHmGwqFyMX6h1Tdhp5E6toOMCUNOqgYab6wPLI sCgPLGoEy31hrau6wTbjJtcXZkjpr/ZqDjyv1V49YcEmpA/b6m1OwUl0k04YTtucO10X NXIIe+Ol3pHzfsA/LluZqOrUI3g45ikm1zJtcE7ocMwn5swbdiu3VOJMjZpC5oYD4gp5 5GDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=w96//s+DKsR2vwyM7MoWsFHf/kzUOoVxQJ2TCTp4km0=; b=QcObXUZVLLQhYCTlh07IuLg8tzxU1cRLKhQE7BnjIJpEA1X23UsB01Y+WuHSRaBLrB NFKbuzvdlOdNZh/Seis9E+LapV5zd5RC+CRIouaJCC1Oi48ZAWHI0UkKZSic/biDIDvN 5fjKGHcxg/RNlg+MiLf0urPA2FPDA6SW7UMwkdSGxxvMYfSDJ4w/HPDWfMeYkgEaDM2q zUOcZJvrR5hC1GM3wBjt6T302cpsBnln7gV/CeSs/ehwHq8Op/L2oJkQO7cBL5DV2h2H XY0jPyZvBLYtrT5uucnBazasKUYvYYZ0ueLQbhy/Rqf7ig1b8DrUFg1uW72PnyvTuzCf m8Sg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=DnhRcHyt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sb13-20020a1709076d8d00b007add269f2c4si2931776ejc.740.2022.11.18.00.51.24; Fri, 18 Nov 2022 00:51:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=DnhRcHyt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229743AbiKRIqG (ORCPT + 99 others); Fri, 18 Nov 2022 03:46:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36862 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241516AbiKRIpZ (ORCPT ); Fri, 18 Nov 2022 03:45:25 -0500 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5CB3C84333 for ; Fri, 18 Nov 2022 00:45:14 -0800 (PST) Received: by mail-wr1-x431.google.com with SMTP id g12so8147058wrs.10 for ; Fri, 18 Nov 2022 00:45:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=w96//s+DKsR2vwyM7MoWsFHf/kzUOoVxQJ2TCTp4km0=; b=DnhRcHytlKZdpIe7HWqKcQIIDDjOZeQNBkYi30Mx0bixpzGTuFiAqWiJ99uMMfGsaA 4NDc+N1Qtnk/YmstKjX1dx3phSOnJPXzmZ2T2zSST8ljyzAItu1ILKaM1X2TglNrtkut g7qlEd6uDUbY9KgAG8I/ZZQ/iHqm4zESzm7vPc4wazBwEm+Fud8lZtYXtLJX7Aj6z5fv WubAcpU3mXc01QXy25fxn9Ig1ir1oeMIVmvImKYdtxfd3gpUu9McGPdvMBNRx7ijmanx OFD8wv6cJN6FcEH7w2IELz84L+IzxjeiIMhtKQJUq69Nwv+CVQAp85lkh4NbUNfz2nIe 7fhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=w96//s+DKsR2vwyM7MoWsFHf/kzUOoVxQJ2TCTp4km0=; b=cx6PS3a4Ich7fXcJGctZVxrmevxurHPr2uLzPSARwbu0MvwAqBV3V33pCcxXlDYMPG SpctkUU10QormRT8NtsiMLwTJ8OLccdl9VKOTGYbE1tgGqGF645P5OCYTRRmJwagmkbf m/l8FlZ9IYTlDy325dg0x8g0sfa3FWDLCdxHxP7uj/ibAenvFcJ/FAfxgl+hR4wvFLmW +Xp+BKj8o7ToyIqvsBWHZ6TInC5tkjBXyE2WUD6lfBXKObgrj1NQiMZbaSAAENb3QfP7 HMvFk/oSAczSk5YgXsFzkqU2hi3RVGkxOQHke0pcO8Z3b6NGqKHfJN5rnWrRfWswBnHn aWZQ== X-Gm-Message-State: ANoB5pnIvWHxbcLeLlEI1wy59X0P1JEC0aEhg7rEiinNp/sispDNg1zg K5dRK2rv6BFktbB8FJHuDlD+Ww== X-Received: by 2002:a05:6000:70f:b0:22e:41c5:7ef7 with SMTP id bs15-20020a056000070f00b0022e41c57ef7mr3707513wrb.332.1668761113472; Fri, 18 Nov 2022 00:45:13 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id v18-20020a5d6112000000b00236e834f050sm2960284wrt.35.2022.11.18.00.45.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Nov 2022 00:45:13 -0800 (PST) From: Neil Armstrong Date: Fri, 18 Nov 2022 09:45:10 +0100 Subject: [PATCH v2 6/6] i2c: qcom-geni: add support for I2C Master Hub variant MIME-Version: 1.0 Message-Id: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-6-aadaa6997b28@linaro.org> References: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> In-Reply-To: <20221114-narmstrong-sm8550-upstream-i2c-master-hub-v2-0-aadaa6997b28@linaro.org> To: Rob Herring , Krzysztof Kozlowski , Bjorn Andersson , Konrad Dybcio , Andy Gross Cc: linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong , devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org X-Mailer: b4 0.10.1 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749823269343694190?= X-GMAIL-MSGID: =?utf-8?q?1749823269343694190?= The I2C Master Hub is a stripped down version of the GENI Serial Engine QUP Wrapper Controller but only supporting I2C serial engines without DMA support. Add the I2C Master Hub serial engine compatible along the specific requirements in a new desc struct passed through the device match data. Signed-off-by: Neil Armstrong Reviewed-by: Konrad Dybcio --- drivers/i2c/busses/i2c-qcom-geni.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c index 75dd0718c5a1..bfe75038bc14 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -1026,8 +1026,16 @@ static const struct dev_pm_ops geni_i2c_pm_ops = { NULL) }; +const struct geni_i2c_desc i2c_master_hub = { + .has_core_clk = true, + .icc_ddr = NULL, + .no_dma_support = true, + .tx_fifo_depth = 16, +}; + static const struct of_device_id geni_i2c_dt_match[] = { { .compatible = "qcom,geni-i2c" }, + { .compatible = "qcom,geni-i2c-master-hub", .data = &i2c_master_hub }, {} }; MODULE_DEVICE_TABLE(of, geni_i2c_dt_match);