Message ID | 20230803080441.367341-5-j-choudhary@ti.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp999216vqx; Thu, 3 Aug 2023 01:36:56 -0700 (PDT) X-Google-Smtp-Source: APBJJlGr/A56NcgJkBWFXcUpfH82lqVI9T8pFlMf+XRhyRzgLdH8rINns6bJkAHooWzTIeKqe57K X-Received: by 2002:a05:6a20:8e0e:b0:135:293b:9b14 with SMTP id y14-20020a056a208e0e00b00135293b9b14mr22893592pzj.55.1691051815825; Thu, 03 Aug 2023 01:36:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691051815; cv=none; d=google.com; s=arc-20160816; b=SILb7wzuzccKNllz5QHoqX3qMNuy+AwMG+LBOgHima6hnXfqniFCWjGDCyE89ABmNb 7Ea9hMDuFHY9uTNOLNkG6fIjgoxFJEh/WEULACDJWuTLHTELf0p6IGuhi3mVuVFDudnu PHGMVpv3ObNIdZnyVvhml2gCvyoxGoncwf0Bd/7GEutKp5sBgAi9ZxxwFZYE87iu5H/x LDCkMl26Ew85VdoftEJ1CMZVtNkXqlRNNGUVLOxgXU17ILhLXADmrcoyj6V9uuuRHNIS X8B216uWwUTuRVAQhIJX9Lg87b7fyiPoMzdln7+JNTrinrLJLfnE5ng1QRDlI7qkVe3d 3MgA== 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=4zxs+bk84f74wf3IvYTCFayUMGYthcCnP+L9OYMsHkY=; fh=+vlOAzCRn4wWx3NhTAdKXcv+5UezRmic0jBYTC8wbmY=; b=i89N79ixkRKNuyqiV6StRoR4hV/sqBGTCDMuOgqp+cfc4FJR02xEGbY6/bbhrMewPV 0IAkrO0GLB4xnRU/794Vwn6J4JNhHAw0jx6FkHQUNVuRpXyPYLS4Lt+zrzHxulEXzLU5 Ihgt/G6zUJGAYJfDoxtrsZoh3JHfUF8oDAq0iLrS7qlAJDUwMR2eOyrSRw4Gv3ZTl47l CAr2F0Fly61Zqe87+KW39VSGnoOddz8o016wZOHSyEoraYFem1KqOi/xwBaY8Y0Ik0il JfZ+M1BXqBlQKMZOcooG0IQ6gGXdMMlQecXgv6dFRMN7b2p1LJNMdoaUL1LDTKFn+n3l ZpLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=jcGCBIgG; 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=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w128-20020a628286000000b00686ee44513bsi12057684pfd.124.2023.08.03.01.36.42; Thu, 03 Aug 2023 01:36:55 -0700 (PDT) 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=@ti.com header.s=ti-com-17Q1 header.b=jcGCBIgG; 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=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234317AbjHCIN7 (ORCPT <rfc822;jeff.pang.chn@gmail.com> + 99 others); Thu, 3 Aug 2023 04:13:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234432AbjHCINP (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Thu, 3 Aug 2023 04:13:15 -0400 Received: from lelv0143.ext.ti.com (lelv0143.ext.ti.com [198.47.23.248]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BBD436EB7; Thu, 3 Aug 2023 01:04:59 -0700 (PDT) Received: from lelv0266.itg.ti.com ([10.180.67.225]) by lelv0143.ext.ti.com (8.15.2/8.15.2) with ESMTP id 37384m8n056484; Thu, 3 Aug 2023 03:04:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1691049888; bh=4zxs+bk84f74wf3IvYTCFayUMGYthcCnP+L9OYMsHkY=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=jcGCBIgGK0tlQ2ZNhvHJywdtXoGc9RzN5eLTDuX/UIN7sWo6SGILcJkgrBzVdcyii oanvNpkovWfXsj6mccKb0lFxEpj/7v70Sh82Zo5wMv16zClTh58yDeR2dRyZu5B6Q/ geGM/O5eDf7MsrWrqx39XG3mV7MTeYR1Cr21+AQk= Received: from DFLE104.ent.ti.com (dfle104.ent.ti.com [10.64.6.25]) by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 37384mEV092276 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 3 Aug 2023 03:04:48 -0500 Received: from DFLE100.ent.ti.com (10.64.6.21) by DFLE104.ent.ti.com (10.64.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Thu, 3 Aug 2023 03:04:47 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) by DFLE100.ent.ti.com (10.64.6.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Thu, 3 Aug 2023 03:04:48 -0500 Received: from localhost (ileaxei01-snat.itg.ti.com [10.180.69.5]) by fllv0039.itg.ti.com (8.15.2/8.15.2) with ESMTP id 37384lE0125995; Thu, 3 Aug 2023 03:04:47 -0500 From: Jayesh Choudhary <j-choudhary@ti.com> To: <nm@ti.com>, <vigneshr@ti.com>, <afd@ti.com>, <rogerq@kernel.org> CC: <s-vadapalli@ti.com>, <kristo@kernel.org>, <robh+dt@kernel.org>, <krzysztof.kozlowski+dt@linaro.org>, <conor+dt@kernel.org>, <a-bhatia1@ti.com>, <r-ravikumar@ti.com>, <sabiya.d@ti.com>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <j-choudhary@ti.com> Subject: [PATCH v9 4/5] arm64: dts: ti: k3-j784s4-evm: Enable DisplayPort-0 Date: Thu, 3 Aug 2023 13:34:40 +0530 Message-ID: <20230803080441.367341-5-j-choudhary@ti.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230803080441.367341-1-j-choudhary@ti.com> References: <20230803080441.367341-1-j-choudhary@ti.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE 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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773196348674785555 X-GMAIL-MSGID: 1773196348674785555 |
Series |
Enable Display for J784S4 and AM69-SK platform
|
|
Commit Message
Jayesh Choudhary
Aug. 3, 2023, 8:04 a.m. UTC
From: Rahul T R <r-ravikumar@ti.com> Enable display for J784S4 EVM. Add assigned clocks for DSS, DT node for DisplayPort PHY and pinmux for DP HPD. Add the clock frequency for serdes_refclk. Add the endpoint nodes to describe connection from: DSS => MHDP => DisplayPort connector. Also add the GPIO expander-4 node and pinmux for main_i2c4 which is required for controlling DP power. Set status for all required nodes for DP-0 as "okay". Signed-off-by: Rahul T R <r-ravikumar@ti.com> [j-choudhary@ti.com: move all the changes together to enable DP-0 in EVM] Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> --- arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 119 +++++++++++++++++++++++ 1 file changed, 119 insertions(+)
Comments
Hi Jayesh, On 03-Aug-23 13:34, Jayesh Choudhary wrote: > From: Rahul T R <r-ravikumar@ti.com> > > Enable display for J784S4 EVM. > > Add assigned clocks for DSS, DT node for DisplayPort PHY and pinmux for > DP HPD. Add the clock frequency for serdes_refclk. > > Add the endpoint nodes to describe connection from: > DSS => MHDP => DisplayPort connector. > > Also add the GPIO expander-4 node and pinmux for main_i2c4 which is > required for controlling DP power. Set status for all required nodes > for DP-0 as "okay". > > Signed-off-by: Rahul T R <r-ravikumar@ti.com> > [j-choudhary@ti.com: move all the changes together to enable DP-0 in EVM] > Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> > --- > arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 119 +++++++++++++++++++++++ > 1 file changed, 119 insertions(+) > > diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts > index 7ad152a1b90f..005357d70122 100644 > --- a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts > +++ b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts > @@ -249,6 +249,28 @@ vdd_sd_dv: regulator-TLV71033 { > states = <1800000 0x0>, > <3300000 0x1>; > }; > + > + dp0_pwr_3v3: regulator-dp0-prw { > + compatible = "regulator-fixed"; > + regulator-name = "dp0-pwr"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + gpio = <&exp4 0 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + dp0: connector-dp0 { > + compatible = "dp-connector"; > + label = "DP0"; > + type = "full-size"; > + dp-pwr-supply = <&dp0_pwr_3v3>; > + > + port { > + dp0_connector_in: endpoint { > + remote-endpoint = <&dp0_out>; > + }; > + }; > + }; > }; > > &main_pmx0 { > @@ -286,6 +308,19 @@ vdd_sd_dv_pins_default: vdd-sd-dv-default-pins { > J784S4_IOPAD(0x020, PIN_INPUT, 7) /* (AJ35) MCAN15_RX.GPIO0_8 */ > >; > }; > + > + dp0_pins_default: dp0-default-pins { > + pinctrl-single,pins = < > + J784S4_IOPAD(0x0cc, PIN_INPUT, 12) /* (AM37) SPI0_CS0.DP0_HPD */ > + >; > + }; > + > + main_i2c4_pins_default: main-i2c4-default-pins { > + pinctrl-single,pins = < > + J784S4_IOPAD(0x014, PIN_INPUT_PULLUP, 8) /* (AG33) MCAN14_TX.I2C4_SCL */ > + J784S4_IOPAD(0x010, PIN_INPUT_PULLUP, 8) /* (AH33) MCAN13_RX.I2C4_SDA */ > + >; > + }; > }; > > &wkup_pmx2 { > @@ -827,3 +862,87 @@ adc { > ti,adc-channels = <0 1 2 3 4 5 6 7>; > }; > }; > + > +&serdes_refclk { > + status = "okay"; > + clock-frequency = <100000000>; > +}; > + > +&dss { > + status = "okay"; > + assigned-clocks = <&k3_clks 218 2>, > + <&k3_clks 218 5>, > + <&k3_clks 218 14>, > + <&k3_clks 218 18>; > + assigned-clock-parents = <&k3_clks 218 3>, > + <&k3_clks 218 7>, > + <&k3_clks 218 16>, > + <&k3_clks 218 22>; > +}; > + > +&serdes_wiz4 { > + status = "okay"; > +}; > + > +&serdes4 { > + status = "okay"; > + serdes4_dp_link: phy@0 { > + reg = <0>; > + cdns,num-lanes = <4>; > + #phy-cells = <0>; > + cdns,phy-type = <PHY_TYPE_DP>; > + resets = <&serdes_wiz4 1>, <&serdes_wiz4 2>, > + <&serdes_wiz4 3>, <&serdes_wiz4 4>; > + }; > +}; > + > +&mhdp { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&dp0_pins_default>; > + phys = <&serdes4_dp_link>; > + phy-names = "dpphy"; > +}; > + > +&dss_ports { > + port { Port index has not been added here. Since this port outputs to MHDP bridge, this should be "port@0", and a "reg = <0>;" property should be added below (along with the address and size cells properties). I suppose this works functionally in this case, because the port gets defaulted to "0" by the driver. But in future, when we add support for other dss output(s) on j784s4-evm, the driver will need indices to distinguish among them. > + dpi0_out: endpoint { > + remote-endpoint = <&dp0_in>; > + }; > + }; > +}; > + > +&main_i2c4 { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&main_i2c4_pins_default>; > + clock-frequency = <400000>; > + > + exp4: gpio@20 { > + compatible = "ti,tca6408"; > + reg = <0x20>; > + gpio-controller; > + #gpio-cells = <2>; > + }; > +}; > + > +&dp0_ports { > + #address-cells = <1>; > + #size-cells = <0>; These properties are being repeated from the MHDP node in the main.dtsi file, in the previous patch. You can drop them from one of the places. I would suggest keeping them in the main.dtsi file and removing them here, so that repetition is avoided across different platform.dts files, but I will leave the call up to you. In any case, they need to be removed from one of the two places. Btw, same will be applicable for dss_ports as well (once you add port index). Separate address and size cells properties won't be required in the j784s4-evm.dts and am69-sk.dts platform files, once they are already there in j784s4-main.dtsi. With the changes suggested above, Reviewed-by: Aradhya Bhatia <a-bhatia1@ti.com> > + > + port@0 { > + reg = <0>; > + > + dp0_in: endpoint { > + remote-endpoint = <&dpi0_out>; > + }; > + }; > + > + port@4 { > + reg = <4>; > + > + dp0_out: endpoint { > + remote-endpoint = <&dp0_connector_in>; > + }; > + }; > +};
Hello Aradhya, Thank you for the review. On 05/08/23 00:52, Aradhya Bhatia wrote: > Hi Jayesh, > > > On 03-Aug-23 13:34, Jayesh Choudhary wrote: >> From: Rahul T R <r-ravikumar@ti.com> >> >> Enable display for J784S4 EVM. >> >> Add assigned clocks for DSS, DT node for DisplayPort PHY and pinmux for >> DP HPD. Add the clock frequency for serdes_refclk. >> >> Add the endpoint nodes to describe connection from: >> DSS => MHDP => DisplayPort connector. >> >> Also add the GPIO expander-4 node and pinmux for main_i2c4 which is >> required for controlling DP power. Set status for all required nodes >> for DP-0 as "okay". >> >> Signed-off-by: Rahul T R <r-ravikumar@ti.com> >> [j-choudhary@ti.com: move all the changes together to enable DP-0 in EVM] >> Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> >> --- >> arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 119 +++++++++++++++++++++++ >> 1 file changed, 119 insertions(+) [...] >> + reg = <0>; >> + cdns,num-lanes = <4>; >> + #phy-cells = <0>; >> + cdns,phy-type = <PHY_TYPE_DP>; >> + resets = <&serdes_wiz4 1>, <&serdes_wiz4 2>, >> + <&serdes_wiz4 3>, <&serdes_wiz4 4>; >> + }; >> +}; >> + >> +&mhdp { >> + status = "okay"; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&dp0_pins_default>; >> + phys = <&serdes4_dp_link>; >> + phy-names = "dpphy"; >> +}; >> + >> +&dss_ports { >> + port { > > Port index has not been added here. Since this port outputs to MHDP > bridge, this should be "port@0", and a "reg = <0>;" property should be > added below (along with the address and size cells properties). > > I suppose this works functionally in this case, because the port gets > defaulted to "0" by the driver. But in future, when we add support for > other dss output(s) on j784s4-evm, the driver will need indices to > distinguish among them. > Okay. It makes sense. Just one thing here. Adding reg here would require it to have #address- cells and #size-cell but since we have only single child port that too at reg=<0>, it would throw dtbs_check warning: arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi:1828.20-1831.5: Warning (graph_child_address): /bus@100000/dss@4a00000/ports: graph node has single child node 'port@0', #address-cells/#size-cells are not necessary also defined at arch/arm64/boot/dts/ti/k3-j784s4-evm.dts:911.12-919.3 -jayesh >> + dpi0_out: endpoint { >> + remote-endpoint = <&dp0_in>; [...]
Hi Jayesh, On 07-Aug-23 17:54, Jayesh Choudhary wrote: > Hello Aradhya, > > Thank you for the review. > > On 05/08/23 00:52, Aradhya Bhatia wrote: >> Hi Jayesh, >> >> >> On 03-Aug-23 13:34, Jayesh Choudhary wrote: >>> From: Rahul T R <r-ravikumar@ti.com> >>> >>> Enable display for J784S4 EVM. >>> >>> Add assigned clocks for DSS, DT node for DisplayPort PHY and pinmux for >>> DP HPD. Add the clock frequency for serdes_refclk. >>> >>> Add the endpoint nodes to describe connection from: >>> DSS => MHDP => DisplayPort connector. >>> >>> Also add the GPIO expander-4 node and pinmux for main_i2c4 which is >>> required for controlling DP power. Set status for all required nodes >>> for DP-0 as "okay". >>> >>> Signed-off-by: Rahul T R <r-ravikumar@ti.com> >>> [j-choudhary@ti.com: move all the changes together to enable DP-0 in >>> EVM] >>> Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> >>> --- >>> arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 119 +++++++++++++++++++++++ >>> 1 file changed, 119 insertions(+) > > [...] > >>> + reg = <0>; >>> + cdns,num-lanes = <4>; >>> + #phy-cells = <0>; >>> + cdns,phy-type = <PHY_TYPE_DP>; >>> + resets = <&serdes_wiz4 1>, <&serdes_wiz4 2>, >>> + <&serdes_wiz4 3>, <&serdes_wiz4 4>; >>> + }; >>> +}; >>> + >>> +&mhdp { >>> + status = "okay"; >>> + pinctrl-names = "default"; >>> + pinctrl-0 = <&dp0_pins_default>; >>> + phys = <&serdes4_dp_link>; >>> + phy-names = "dpphy"; >>> +}; >>> + >>> +&dss_ports { >>> + port { >> >> Port index has not been added here. Since this port outputs to MHDP >> bridge, this should be "port@0", and a "reg = <0>;" property should be >> added below (along with the address and size cells properties). >> >> I suppose this works functionally in this case, because the port gets >> defaulted to "0" by the driver. But in future, when we add support for >> other dss output(s) on j784s4-evm, the driver will need indices to >> distinguish among them. >> > > Okay. It makes sense. > Just one thing here. Adding reg here would require it to have #address- > cells and #size-cell but since we have only single child port that too > at reg=<0>, it would throw dtbs_check warning: > > arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi:1828.20-1831.5: Warning > (graph_child_address): /bus@100000/dss@4a00000/ports: graph node has > single child node 'port@0', #address-cells/#size-cells are not necessary > also defined at arch/arm64/boot/dts/ti/k3-j784s4-evm.dts:911.12-919.3 > Okay! Was not aware about this. I still think "port@0" should be specified instead of just "port" and the warning should be ignored, if possible. If there were only a "port@1" child node, this warning would not have come up, and I believe "port@0" should be treated just the same. Moreover, while we can add these properties at a later stage as an incremental patch, adding the size and address cells in the dtsi would affect other platform dts files as well, that use this SoC. For e.g., the patch 5/5 of this series, on AM69-SK will still require the size and address cells for its ports. The clean up then will be that much more, when adding those incremental patches. Anyway, I will let Nishanth and Vignesh take the final call on this. Regards Aradhya > >>> + dpi0_out: endpoint { >>> + remote-endpoint = <&dp0_in>; > > > [...]
On 8/7/23 7:56 AM, Aradhya Bhatia wrote: > Hi Jayesh, > > On 07-Aug-23 17:54, Jayesh Choudhary wrote: >> Hello Aradhya, >> >> Thank you for the review. >> >> On 05/08/23 00:52, Aradhya Bhatia wrote: >>> Hi Jayesh, >>> >>> >>> On 03-Aug-23 13:34, Jayesh Choudhary wrote: >>>> From: Rahul T R <r-ravikumar@ti.com> >>>> >>>> Enable display for J784S4 EVM. >>>> >>>> Add assigned clocks for DSS, DT node for DisplayPort PHY and pinmux for >>>> DP HPD. Add the clock frequency for serdes_refclk. >>>> >>>> Add the endpoint nodes to describe connection from: >>>> DSS => MHDP => DisplayPort connector. >>>> >>>> Also add the GPIO expander-4 node and pinmux for main_i2c4 which is >>>> required for controlling DP power. Set status for all required nodes >>>> for DP-0 as "okay". >>>> >>>> Signed-off-by: Rahul T R <r-ravikumar@ti.com> >>>> [j-choudhary@ti.com: move all the changes together to enable DP-0 in >>>> EVM] >>>> Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> >>>> --- >>>> arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 119 +++++++++++++++++++++++ >>>> 1 file changed, 119 insertions(+) >> >> [...] >> >>>> + reg = <0>; >>>> + cdns,num-lanes = <4>; >>>> + #phy-cells = <0>; >>>> + cdns,phy-type = <PHY_TYPE_DP>; >>>> + resets = <&serdes_wiz4 1>, <&serdes_wiz4 2>, >>>> + <&serdes_wiz4 3>, <&serdes_wiz4 4>; >>>> + }; >>>> +}; >>>> + >>>> +&mhdp { >>>> + status = "okay"; >>>> + pinctrl-names = "default"; >>>> + pinctrl-0 = <&dp0_pins_default>; >>>> + phys = <&serdes4_dp_link>; >>>> + phy-names = "dpphy"; >>>> +}; >>>> + >>>> +&dss_ports { >>>> + port { >>> >>> Port index has not been added here. Since this port outputs to MHDP >>> bridge, this should be "port@0", and a "reg = <0>;" property should be >>> added below (along with the address and size cells properties). >>> >>> I suppose this works functionally in this case, because the port gets >>> defaulted to "0" by the driver. But in future, when we add support for >>> other dss output(s) on j784s4-evm, the driver will need indices to >>> distinguish among them. >>> >> >> Okay. It makes sense. >> Just one thing here. Adding reg here would require it to have #address- >> cells and #size-cell but since we have only single child port that too >> at reg=<0>, it would throw dtbs_check warning: >> >> arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi:1828.20-1831.5: Warning >> (graph_child_address): /bus@100000/dss@4a00000/ports: graph node has >> single child node 'port@0', #address-cells/#size-cells are not necessary >> also defined at arch/arm64/boot/dts/ti/k3-j784s4-evm.dts:911.12-919.3 >> > > Okay! Was not aware about this. I still think "port@0" should be > specified instead of just "port" and the warning should be ignored, if > possible. > Do not ignore new DT check warnings, if you go with "port@0" (which you need to do as the "ti,j721e-dss" binding requires it) you must also add the #address-cells/#size-cells. Andrew > If there were only a "port@1" child node, this warning would not have > come up, and I believe "port@0" should be treated just the same. > > Moreover, while we can add these properties at a later stage as an > incremental patch, adding the size and address cells in the dtsi would > affect other platform dts files as well, that use this SoC. > > For e.g., the patch 5/5 of this series, on AM69-SK will still require > the size and address cells for its ports. The clean up then will be that > much more, when adding those incremental patches. > > Anyway, I will let Nishanth and Vignesh take the final call on this. > > Regards > Aradhya > >> >>>> + dpi0_out: endpoint { >>>> + remote-endpoint = <&dp0_in>; >> >> >> [...] >
On 07-Aug-23 21:19, Andrew Davis wrote: > On 8/7/23 7:56 AM, Aradhya Bhatia wrote: >> Hi Jayesh, >> >> On 07-Aug-23 17:54, Jayesh Choudhary wrote: >>> Hello Aradhya, >>> >>> Thank you for the review. >>> >>> On 05/08/23 00:52, Aradhya Bhatia wrote: >>>> Hi Jayesh, >>>> >>>> >>>> On 03-Aug-23 13:34, Jayesh Choudhary wrote: >>>>> From: Rahul T R <r-ravikumar@ti.com> >>>>> >>>>> Enable display for J784S4 EVM. >>>>> >>>>> Add assigned clocks for DSS, DT node for DisplayPort PHY and pinmux >>>>> for >>>>> DP HPD. Add the clock frequency for serdes_refclk. >>>>> >>>>> Add the endpoint nodes to describe connection from: >>>>> DSS => MHDP => DisplayPort connector. >>>>> >>>>> Also add the GPIO expander-4 node and pinmux for main_i2c4 which is >>>>> required for controlling DP power. Set status for all required nodes >>>>> for DP-0 as "okay". >>>>> >>>>> Signed-off-by: Rahul T R <r-ravikumar@ti.com> >>>>> [j-choudhary@ti.com: move all the changes together to enable DP-0 in >>>>> EVM] >>>>> Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> >>>>> --- >>>>> arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 119 >>>>> +++++++++++++++++++++++ >>>>> 1 file changed, 119 insertions(+) >>> >>> [...] >>> >>>>> + reg = <0>; >>>>> + cdns,num-lanes = <4>; >>>>> + #phy-cells = <0>; >>>>> + cdns,phy-type = <PHY_TYPE_DP>; >>>>> + resets = <&serdes_wiz4 1>, <&serdes_wiz4 2>, >>>>> + <&serdes_wiz4 3>, <&serdes_wiz4 4>; >>>>> + }; >>>>> +}; >>>>> + >>>>> +&mhdp { >>>>> + status = "okay"; >>>>> + pinctrl-names = "default"; >>>>> + pinctrl-0 = <&dp0_pins_default>; >>>>> + phys = <&serdes4_dp_link>; >>>>> + phy-names = "dpphy"; >>>>> +}; >>>>> + >>>>> +&dss_ports { >>>>> + port { >>>> >>>> Port index has not been added here. Since this port outputs to MHDP >>>> bridge, this should be "port@0", and a "reg = <0>;" property should be >>>> added below (along with the address and size cells properties). >>>> >>>> I suppose this works functionally in this case, because the port gets >>>> defaulted to "0" by the driver. But in future, when we add support for >>>> other dss output(s) on j784s4-evm, the driver will need indices to >>>> distinguish among them. >>>> >>> >>> Okay. It makes sense. >>> Just one thing here. Adding reg here would require it to have #address- >>> cells and #size-cell but since we have only single child port that too >>> at reg=<0>, it would throw dtbs_check warning: >>> >>> arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi:1828.20-1831.5: Warning >>> (graph_child_address): /bus@100000/dss@4a00000/ports: graph node has >>> single child node 'port@0', #address-cells/#size-cells are not necessary >>> also defined at arch/arm64/boot/dts/ti/k3-j784s4-evm.dts:911.12-919.3 >>> >> >> Okay! Was not aware about this. I still think "port@0" should be >> specified instead of just "port" and the warning should be ignored, if >> possible. >> > > Do not ignore new DT check warnings, if you go with "port@0" (which you > need to do as the "ti,j721e-dss" binding requires it) you must also add > the #address-cells/#size-cells. > The warning that Jayesh mentioned above comes when "port@0" is mentioned, *along-with* the #address-cells/#size-cells properties. Essentially, it wants us to not use "port@0" when only single port is being added whose reg values is 0. This warning does not come when only a single port other than 0, "port@1" for e.g., is being used. That's the warning, that should get ignored, if possible. However, just mentioning "port@0", without the #address-cells/ #size-cells, would be plain wrong. Regards Aradhya > >> If there were only a "port@1" child node, this warning would not have >> come up, and I believe "port@0" should be treated just the same. >> >> Moreover, while we can add these properties at a later stage as an >> incremental patch, adding the size and address cells in the dtsi would >> affect other platform dts files as well, that use this SoC. >> >> For e.g., the patch 5/5 of this series, on AM69-SK will still require >> the size and address cells for its ports. The clean up then will be that >> much more, when adding those incremental patches. >> >> Anyway, I will let Nishanth and Vignesh take the final call on this. >> >> Regards >> Aradhya >> >>> >>>>> + dpi0_out: endpoint { >>>>> + remote-endpoint = <&dp0_in>; >>> >>> >>> [...] >>
On 8/7/23 1:29 PM, Aradhya Bhatia wrote: > > > On 07-Aug-23 21:19, Andrew Davis wrote: >> On 8/7/23 7:56 AM, Aradhya Bhatia wrote: >>> Hi Jayesh, >>> >>> On 07-Aug-23 17:54, Jayesh Choudhary wrote: >>>> Hello Aradhya, >>>> >>>> Thank you for the review. >>>> >>>> On 05/08/23 00:52, Aradhya Bhatia wrote: >>>>> Hi Jayesh, >>>>> >>>>> >>>>> On 03-Aug-23 13:34, Jayesh Choudhary wrote: >>>>>> From: Rahul T R <r-ravikumar@ti.com> >>>>>> >>>>>> Enable display for J784S4 EVM. >>>>>> >>>>>> Add assigned clocks for DSS, DT node for DisplayPort PHY and pinmux >>>>>> for >>>>>> DP HPD. Add the clock frequency for serdes_refclk. >>>>>> >>>>>> Add the endpoint nodes to describe connection from: >>>>>> DSS => MHDP => DisplayPort connector. >>>>>> >>>>>> Also add the GPIO expander-4 node and pinmux for main_i2c4 which is >>>>>> required for controlling DP power. Set status for all required nodes >>>>>> for DP-0 as "okay". >>>>>> >>>>>> Signed-off-by: Rahul T R <r-ravikumar@ti.com> >>>>>> [j-choudhary@ti.com: move all the changes together to enable DP-0 in >>>>>> EVM] >>>>>> Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> >>>>>> --- >>>>>> arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 119 >>>>>> +++++++++++++++++++++++ >>>>>> 1 file changed, 119 insertions(+) >>>> >>>> [...] >>>> >>>>>> + reg = <0>; >>>>>> + cdns,num-lanes = <4>; >>>>>> + #phy-cells = <0>; >>>>>> + cdns,phy-type = <PHY_TYPE_DP>; >>>>>> + resets = <&serdes_wiz4 1>, <&serdes_wiz4 2>, >>>>>> + <&serdes_wiz4 3>, <&serdes_wiz4 4>; >>>>>> + }; >>>>>> +}; >>>>>> + >>>>>> +&mhdp { >>>>>> + status = "okay"; >>>>>> + pinctrl-names = "default"; >>>>>> + pinctrl-0 = <&dp0_pins_default>; >>>>>> + phys = <&serdes4_dp_link>; >>>>>> + phy-names = "dpphy"; >>>>>> +}; >>>>>> + >>>>>> +&dss_ports { >>>>>> + port { >>>>> >>>>> Port index has not been added here. Since this port outputs to MHDP >>>>> bridge, this should be "port@0", and a "reg = <0>;" property should be >>>>> added below (along with the address and size cells properties). >>>>> >>>>> I suppose this works functionally in this case, because the port gets >>>>> defaulted to "0" by the driver. But in future, when we add support for >>>>> other dss output(s) on j784s4-evm, the driver will need indices to >>>>> distinguish among them. >>>>> >>>> >>>> Okay. It makes sense. >>>> Just one thing here. Adding reg here would require it to have #address- >>>> cells and #size-cell but since we have only single child port that too >>>> at reg=<0>, it would throw dtbs_check warning: >>>> >>>> arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi:1828.20-1831.5: Warning >>>> (graph_child_address): /bus@100000/dss@4a00000/ports: graph node has >>>> single child node 'port@0', #address-cells/#size-cells are not necessary >>>> also defined at arch/arm64/boot/dts/ti/k3-j784s4-evm.dts:911.12-919.3 >>>> >>> >>> Okay! Was not aware about this. I still think "port@0" should be >>> specified instead of just "port" and the warning should be ignored, if >>> possible. >>> >> >> Do not ignore new DT check warnings, if you go with "port@0" (which you >> need to do as the "ti,j721e-dss" binding requires it) you must also add >> the #address-cells/#size-cells. >> > > The warning that Jayesh mentioned above comes when "port@0" is > mentioned, *along-with* the #address-cells/#size-cells properties. > Essentially, it wants us to not use "port@0" when only single port is > being added whose reg values is 0. > > This warning does not come when only a single port other than 0, > "port@1" for e.g., is being used. That's the warning, that should get > ignored, if possible. > Ah, I see now. Almost seems like a bug in dtc checks, but checking the code it looks deliberate, although I cannot see why.. Rob, Could you provide some guidance on why graph nodes are handled this way? Seems this is valid: ports { #address-cells = <1>; #size-cells = <0>; port@1 { reg = <1>; }; } but this is not: ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; }; }; I'm guessing we allow port 0 to not be numbered if it is the only one for legacy convenience, but *forcing* it to not be numbered when it would otherwise be more consistent seems overly strict. Andrew > However, just mentioning "port@0", without the #address-cells/ > #size-cells, would be plain wrong. > > Regards > Aradhya > >> >>> If there were only a "port@1" child node, this warning would not have >>> come up, and I believe "port@0" should be treated just the same. >>> >>> Moreover, while we can add these properties at a later stage as an >>> incremental patch, adding the size and address cells in the dtsi would >>> affect other platform dts files as well, that use this SoC. >>> >>> For e.g., the patch 5/5 of this series, on AM69-SK will still require >>> the size and address cells for its ports. The clean up then will be that >>> much more, when adding those incremental patches. >>> >>> Anyway, I will let Nishanth and Vignesh take the final call on this. >>> >>> Regards >>> Aradhya >>> >>>> >>>>>> + dpi0_out: endpoint { >>>>>> + remote-endpoint = <&dp0_in>; >>>> >>>> >>>> [...] >>> >
On 08/08/23 00:24, Andrew Davis wrote: > On 8/7/23 1:29 PM, Aradhya Bhatia wrote: >> >> >> On 07-Aug-23 21:19, Andrew Davis wrote: >>> On 8/7/23 7:56 AM, Aradhya Bhatia wrote: >>>> Hi Jayesh, >>>> >>>> On 07-Aug-23 17:54, Jayesh Choudhary wrote: >>>>> Hello Aradhya, >>>>> >>>>> Thank you for the review. >>>>> >>>>> On 05/08/23 00:52, Aradhya Bhatia wrote: >>>>>> Hi Jayesh, >>>>>> >>>>>> >>>>>> On 03-Aug-23 13:34, Jayesh Choudhary wrote: >>>>>>> From: Rahul T R <r-ravikumar@ti.com> >>>>>>> >>>>>>> Enable display for J784S4 EVM. >>>>>>> >>>>>>> Add assigned clocks for DSS, DT node for DisplayPort PHY and pinmux >>>>>>> for >>>>>>> DP HPD. Add the clock frequency for serdes_refclk. >>>>>>> >>>>>>> Add the endpoint nodes to describe connection from: >>>>>>> DSS => MHDP => DisplayPort connector. >>>>>>> >>>>>>> Also add the GPIO expander-4 node and pinmux for main_i2c4 which is >>>>>>> required for controlling DP power. Set status for all required nodes >>>>>>> for DP-0 as "okay". >>>>>>> >>>>>>> Signed-off-by: Rahul T R <r-ravikumar@ti.com> >>>>>>> [j-choudhary@ti.com: move all the changes together to enable DP-0 in >>>>>>> EVM] >>>>>>> Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> >>>>>>> --- >>>>>>> arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 119 >>>>>>> +++++++++++++++++++++++ >>>>>>> 1 file changed, 119 insertions(+) >>>>> >>>>> [...] >>>>> >>>>>>> + reg = <0>; >>>>>>> + cdns,num-lanes = <4>; >>>>>>> + #phy-cells = <0>; >>>>>>> + cdns,phy-type = <PHY_TYPE_DP>; >>>>>>> + resets = <&serdes_wiz4 1>, <&serdes_wiz4 2>, >>>>>>> + <&serdes_wiz4 3>, <&serdes_wiz4 4>; >>>>>>> + }; >>>>>>> +}; >>>>>>> + >>>>>>> +&mhdp { >>>>>>> + status = "okay"; >>>>>>> + pinctrl-names = "default"; >>>>>>> + pinctrl-0 = <&dp0_pins_default>; >>>>>>> + phys = <&serdes4_dp_link>; >>>>>>> + phy-names = "dpphy"; >>>>>>> +}; >>>>>>> + >>>>>>> +&dss_ports { >>>>>>> + port { >>>>>> >>>>>> Port index has not been added here. Since this port outputs to MHDP >>>>>> bridge, this should be "port@0", and a "reg = <0>;" property >>>>>> should be >>>>>> added below (along with the address and size cells properties). >>>>>> >>>>>> I suppose this works functionally in this case, because the port gets >>>>>> defaulted to "0" by the driver. But in future, when we add support >>>>>> for >>>>>> other dss output(s) on j784s4-evm, the driver will need indices to >>>>>> distinguish among them. >>>>>> >>>>> >>>>> Okay. It makes sense. >>>>> Just one thing here. Adding reg here would require it to have >>>>> #address- >>>>> cells and #size-cell but since we have only single child port that too >>>>> at reg=<0>, it would throw dtbs_check warning: >>>>> >>>>> arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi:1828.20-1831.5: Warning >>>>> (graph_child_address): /bus@100000/dss@4a00000/ports: graph node has >>>>> single child node 'port@0', #address-cells/#size-cells are not >>>>> necessary >>>>> also defined at >>>>> arch/arm64/boot/dts/ti/k3-j784s4-evm.dts:911.12-919.3 >>>>> >>>> >>>> Okay! Was not aware about this. I still think "port@0" should be >>>> specified instead of just "port" and the warning should be ignored, if >>>> possible. >>>> >>> >>> Do not ignore new DT check warnings, if you go with "port@0" (which you >>> need to do as the "ti,j721e-dss" binding requires it) you must also add >>> the #address-cells/#size-cells. >>> >> >> The warning that Jayesh mentioned above comes when "port@0" is >> mentioned, *along-with* the #address-cells/#size-cells properties. >> Essentially, it wants us to not use "port@0" when only single port is >> being added whose reg values is 0. >> >> This warning does not come when only a single port other than 0, >> "port@1" for e.g., is being used. That's the warning, that should get >> ignored, if possible. >> > > Ah, I see now. > > Almost seems like a bug in dtc checks, but checking the code it > looks deliberate, although I cannot see why.. > > Rob, > > Could you provide some guidance on why graph nodes are handled > this way? Seems this is valid: > > ports { > #address-cells = <1>; > #size-cells = <0>; > > port@1 { > reg = <1>; > }; > } > > but this is not: > > ports { > #address-cells = <1>; > #size-cells = <0>; > > port@0 { > reg = <0>; > }; > }; > > I'm guessing we allow port 0 to not be numbered if it is the only > one for legacy convenience, but *forcing* it to not be numbered > when it would otherwise be more consistent seems overly strict. > > Andrew Hello Rob, Krzysztof, For this series, v11 has been already reviewed by Roger and Aradhya: <https://lore.kernel.org/all/77701023-7bd1-4e04-aa44-0e46aa087c4f@kernel.org/> Only this warning persist. Can you ACK the series so that it can be queued/merged. If W=1 warning is not acceptable, I can revert to port description here in v9. Warm Regards, Jayesh > >> However, just mentioning "port@0", without the #address-cells/ >> #size-cells, would be plain wrong. >> >> Regards >> Aradhya >> >>> >>>> If there were only a "port@1" child node, this warning would not have >>>> come up, and I believe "port@0" should be treated just the same. >>>> >>>> Moreover, while we can add these properties at a later stage as an >>>> incremental patch, adding the size and address cells in the dtsi would >>>> affect other platform dts files as well, that use this SoC. >>>> >>>> For e.g., the patch 5/5 of this series, on AM69-SK will still require >>>> the size and address cells for its ports. The clean up then will be >>>> that >>>> much more, when adding those incremental patches. >>>> >>>> Anyway, I will let Nishanth and Vignesh take the final call on this. >>>> >>>> Regards >>>> Aradhya >>>> >>>>> >>>>>>> + dpi0_out: endpoint { >>>>>>> + remote-endpoint = <&dp0_in>; >>>>> >>>>> >>>>> [...] >>>> >>
diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts index 7ad152a1b90f..005357d70122 100644 --- a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts +++ b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts @@ -249,6 +249,28 @@ vdd_sd_dv: regulator-TLV71033 { states = <1800000 0x0>, <3300000 0x1>; }; + + dp0_pwr_3v3: regulator-dp0-prw { + compatible = "regulator-fixed"; + regulator-name = "dp0-pwr"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&exp4 0 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + dp0: connector-dp0 { + compatible = "dp-connector"; + label = "DP0"; + type = "full-size"; + dp-pwr-supply = <&dp0_pwr_3v3>; + + port { + dp0_connector_in: endpoint { + remote-endpoint = <&dp0_out>; + }; + }; + }; }; &main_pmx0 { @@ -286,6 +308,19 @@ vdd_sd_dv_pins_default: vdd-sd-dv-default-pins { J784S4_IOPAD(0x020, PIN_INPUT, 7) /* (AJ35) MCAN15_RX.GPIO0_8 */ >; }; + + dp0_pins_default: dp0-default-pins { + pinctrl-single,pins = < + J784S4_IOPAD(0x0cc, PIN_INPUT, 12) /* (AM37) SPI0_CS0.DP0_HPD */ + >; + }; + + main_i2c4_pins_default: main-i2c4-default-pins { + pinctrl-single,pins = < + J784S4_IOPAD(0x014, PIN_INPUT_PULLUP, 8) /* (AG33) MCAN14_TX.I2C4_SCL */ + J784S4_IOPAD(0x010, PIN_INPUT_PULLUP, 8) /* (AH33) MCAN13_RX.I2C4_SDA */ + >; + }; }; &wkup_pmx2 { @@ -827,3 +862,87 @@ adc { ti,adc-channels = <0 1 2 3 4 5 6 7>; }; }; + +&serdes_refclk { + status = "okay"; + clock-frequency = <100000000>; +}; + +&dss { + status = "okay"; + assigned-clocks = <&k3_clks 218 2>, + <&k3_clks 218 5>, + <&k3_clks 218 14>, + <&k3_clks 218 18>; + assigned-clock-parents = <&k3_clks 218 3>, + <&k3_clks 218 7>, + <&k3_clks 218 16>, + <&k3_clks 218 22>; +}; + +&serdes_wiz4 { + status = "okay"; +}; + +&serdes4 { + status = "okay"; + serdes4_dp_link: phy@0 { + reg = <0>; + cdns,num-lanes = <4>; + #phy-cells = <0>; + cdns,phy-type = <PHY_TYPE_DP>; + resets = <&serdes_wiz4 1>, <&serdes_wiz4 2>, + <&serdes_wiz4 3>, <&serdes_wiz4 4>; + }; +}; + +&mhdp { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&dp0_pins_default>; + phys = <&serdes4_dp_link>; + phy-names = "dpphy"; +}; + +&dss_ports { + port { + dpi0_out: endpoint { + remote-endpoint = <&dp0_in>; + }; + }; +}; + +&main_i2c4 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&main_i2c4_pins_default>; + clock-frequency = <400000>; + + exp4: gpio@20 { + compatible = "ti,tca6408"; + reg = <0x20>; + gpio-controller; + #gpio-cells = <2>; + }; +}; + +&dp0_ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + dp0_in: endpoint { + remote-endpoint = <&dpi0_out>; + }; + }; + + port@4 { + reg = <4>; + + dp0_out: endpoint { + remote-endpoint = <&dp0_connector_in>; + }; + }; +};