Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp1187778pxb; Wed, 6 Apr 2022 10:49:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzVJ+CSfF4OAQJiCC8uYGrdBkOd1KRUnooJDEbsXUpsUfWM/BnHhetK6kE8Ac1PYHkU3oUS X-Received: by 2002:a17:90b:3805:b0:1c7:6e7a:3e01 with SMTP id mq5-20020a17090b380500b001c76e7a3e01mr11179105pjb.213.1649267386090; Wed, 06 Apr 2022 10:49:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649267386; cv=none; d=google.com; s=arc-20160816; b=reyl38ar0SmEu+ytlOUE66mq69tmgD2hcgLsQvH1CL9fLMlQfsA/WR1IN+xdvWNgC5 iueYt6xuKcfp+QOI/Uctq4/1BooTjnEC0pY3au/eaLhwsf8Ibp4uipyKSdkWOF/s1Z4H V1FgI+mPrEFhRoJsdZdK5qX35f3sqC9x/WKwyzevlBPhGtZr+H7V1BDHVpav91ahPpgI uSfJiBs2k+iKOvLcKP8ovTNlphltAvsYXpOesXG65X3RKh2JvF3PrRoKQUWaxnjCTtO3 odPaHg5ocIpRmdSwiQA5y2iYROddosv6VKABGTlxYo1cGb9GC7kxdAMTGzLzC59dLzNp rJzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=AuYEO+jqXrA2ds+jyGLBzGqZRKYBAqGjG52xkW2VNts=; b=DIKSpzLiP0e2bJ3j9osnBP4NT5kQQrRWZZq3yTPCmES0waI+RQKQG+OmTeJjSS7IMq SzeNJbL28f8mKqm6v3jbiy/LAdfDxJt1Yl5ncwtlwKLXLnizbjS7RtZkSBxSBivW0sJx 6ZalN8EhEjH+7a6jr77JpT+djS8rWUOosy75rfm9UwC4rb92QmmJRRZ6NY2z5v2CuyYe vba0AVoFOrc4GtCeOqV9BgDtmpwI3qYHxXsXPcoEgdWjG+X/Jn+9Riizoifnz8jDW7/z i9vhdD9jd0Fp42bxD03ENuIqFui+ui5RIyIn8H4fx6EZSd/XD+c1413SwhYMVg3HWgcy 3o4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@goldelico.com header.s=strato-dkim-0002 header.b=VP+PQ1Lo; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id u6-20020a17090341c600b00153b32082afsi17928765ple.266.2022.04.06.10.49.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 10:49:46 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@goldelico.com header.s=strato-dkim-0002 header.b=VP+PQ1Lo; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 094D415837; Wed, 6 Apr 2022 10:42:42 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239098AbiDFRoi (ORCPT + 99 others); Wed, 6 Apr 2022 13:44:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239568AbiDFRoH (ORCPT ); Wed, 6 Apr 2022 13:44:07 -0400 Received: from mo4-p03-ob.smtp.rzone.de (mo4-p03-ob.smtp.rzone.de [85.215.255.101]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DA59D24F50D; Wed, 6 Apr 2022 09:26:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1649262374; s=strato-dkim-0002; d=goldelico.com; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=AuYEO+jqXrA2ds+jyGLBzGqZRKYBAqGjG52xkW2VNts=; b=VP+PQ1LoHm+sa8B2WVLVAxGa3kFyt6yp2zU9nAN1jJG8hSJ19w3W9nIzfRbtq/trTT hKYQQyqyyFtGaN+fta6GqU9KJp59kOBZm+25udbyi8VdfShTI0DiV6JvICEUucEqjjRw 5b0GsD2q5vBrl9nOMGdqmKj12ISDD4DNFKh/Zytoc13NGmsj2tc5Di6dC5eU8LRqLtv3 UUtz2rbszSs5P6gTel0Gfm1uRAeYMWjGo+ZHyD2BvsG5Rz7fZkwuPuNI3ECkLbdmt9rL kaIOmzucmJzlGevfxOQjFFCsP4H4pKaYYwg90aAH1gCko8GXGgTal2HM0qg9lGZJrsTm TXAg== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":JGIXVUS7cutRB/49FwqZ7WcJeFKiMhflhwDubTJ9o1OAA2UMf2MwPVbgcbPa" X-RZG-CLASS-ID: mo00 Received: from iMac.fritz.box by smtp.strato.de (RZmta 47.42.2 DYNA|AUTH) with ESMTPSA id k708cfy36GQEgVS (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Wed, 6 Apr 2022 18:26:14 +0200 (CEST) From: "H. Nikolaus Schaller" To: Andrzej Hajda , Neil Armstrong , Robert Foss , Paul Boddie , Laurent Pinchart , Jernej Skrabec , David Airlie , Daniel Vetter , Paul Cercueil , Maxime Ripard , "H. Nikolaus Schaller" , Kieran Bingham Cc: Jonas Karlman , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-mips@vger.kernel.org, letux-kernel@openphoenux.org Subject: [PATCH v17 6/6] drm/bridge: display-connector: add ddc-en gpio support Date: Wed, 6 Apr 2022 18:26:08 +0200 Message-Id: X-Mailer: git-send-email 2.33.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 "hdmi-connector.yaml" bindings defines an optional property "ddc-en-gpios" for a single gpio to enable DDC operation. Usually this controls +5V power on the HDMI connector. This +5V may also be needed for HPD. This was not reflected in code but is needed to make the CI20 board work. Now, the driver activates the ddc gpio after probe and deactivates after remove so it is "almost on". But only if this driver is loaded (and not e.g. blacklisted as module). Signed-off-by: H. Nikolaus Schaller --- drivers/gpu/drm/bridge/display-connector.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/gpu/drm/bridge/display-connector.c b/drivers/gpu/drm/bridge/display-connector.c index d24f5b90feabf..e4d52a7e31b71 100644 --- a/drivers/gpu/drm/bridge/display-connector.c +++ b/drivers/gpu/drm/bridge/display-connector.c @@ -24,6 +24,7 @@ struct display_connector { int hpd_irq; struct regulator *dp_pwr; + struct gpio_desc *ddc_en; }; static inline struct display_connector * @@ -345,6 +346,17 @@ static int display_connector_probe(struct platform_device *pdev) } } + /* enable DDC */ + if (type == DRM_MODE_CONNECTOR_HDMIA) { + conn->ddc_en = devm_gpiod_get_optional(&pdev->dev, "ddc-en", + GPIOD_OUT_HIGH); + + if (IS_ERR(conn->ddc_en)) { + dev_err(&pdev->dev, "Couldn't get ddc-en gpio\n"); + return PTR_ERR(conn->ddc_en); + } + } + conn->bridge.funcs = &display_connector_bridge_funcs; conn->bridge.of_node = pdev->dev.of_node; @@ -373,6 +385,9 @@ static int display_connector_remove(struct platform_device *pdev) { struct display_connector *conn = platform_get_drvdata(pdev); + if (conn->ddc_en) + gpiod_set_value(conn->ddc_en, 0); + if (conn->dp_pwr) regulator_disable(conn->dp_pwr); -- 2.33.0