From 2f5225986fc0d50c6a902f6e6a2d8d190c90a2f6 Mon Sep 17 00:00:00 2001 From: Naveen Kumar S Date: Mon, 21 Aug 2017 11:59:31 +0530 Subject: [PATCH] dt: quill: dc: update plugin-manager assignments We need more than two windows on HDMI to support usecases where multiple video streams are run simultaneously. Dynamic re-assingment of windows helps in assigning extra windows to a particular DC. But if the windows were not assigned in DT to an enabled controller, it is not guaranteed that such windows shall support all display usecsases. Hence, it is suggested to have all the six windows distributed to at least one of the enabled DCs, which will help in having the windows ready for any display usecases. To support above requirement, updated window distribution for each of the display controllers as follows: i. Since E3320 is not used by all Quill platforms, overrides related to E3320 display module hardware have been moved from the display plugin manager dtsi to a new E3320 specific plugin manager dtsi: tegra186-quill-display-e3320-plugin-manager.dtsi. DSI Backlight related nodes too are enabled here. This file needs to be included in the base DT of platforms that use E3320 module. ii. Quill display plugin manager dtsi is included in Quill-p3310/p3489 plugin manager dtsi to maintain heirarchy. iii. All windows shall be assigned to DC.1 (HDMI) in Quill base DT. DC.0/DC.2 are disabled and only DC.1 is enabled in base DT. iv. If E3320 is attached, Quill display plugin manager dtsi shall enable DC.0, and update window assignment to 3:3:0. v. If E3320 is attached, Quill-P3310/P3489 plugin manager dtsi shall enable DC.2, enable SOR/DPAUX nodes for DP and update window assignment to 3:2:1. bug 200334612 Change-Id: I3d30f1cdcfb09b8ac316b91a06ca7767afca5873 Signed-off-by: Naveen Kumar S --- ...egra186-quill-display-e3320-plugin-manager.dtsi | 85 ++++++++++++++++++++++ .../tegra186-quill-display-plugin-manager.dtsi | 83 ++------------------- ...gra186-quill-p3310-1000-a00-plugin-manager.dtsi | 7 ++ 3 files changed, 100 insertions(+), 75 deletions(-) create mode 100644 kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-e3320-plugin-manager.dtsi diff --git a/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-e3320-plugin-manager.dtsi b/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-e3320-plugin-manager.dtsi new file mode 100644 index 0000000..d66f68b --- /dev/null +++ b/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-e3320-plugin-manager.dtsi @@ -0,0 +1,85 @@ +/* + * tegra186-quill-display-e3320-plugin-manager.dtsi: E3320 Display module + * override DTSI file. + * + * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + */ + +/ { + plugin-manager { + fragment-e3320-module-a00@0 { + ids = "3320-1000-000", "3320-1100-000"; + overrides@0 { + target = <&{/i2c@3160000/tps65132@3e}>; + _overlay_ { + status = "okay"; + outp { + ti,enable-gpio = <&gpio_i2c_0_21 2 0>; + }; + outn { + ti,enable-gpio = <&gpio_i2c_0_21 3 0>; + }; + }; + }; + + overrides@1 { + target = <&{/i2c@3160000}>; + _overlay_ { + gpio@21 { + status = "okay"; + }; + lp8557-backlight-s-wuxga-8-0@2c { + status = "okay"; + }; + }; + }; + }; + + fragment-e3320-module-a01@0 { + ids = "3320-1000-100", "3320-1000-200"; + overrides@0 { + target = <&{/i2c@3160000/tps65132@3e}>; + _overlay_ { + status = "okay"; + outp { + ti,enable-gpio = <&gpio_i2c_0_77 4 0>; + }; + outn { + delete-target-property = "ti,disable-active-discharge"; + ti,enable-gpio = <&gpio_i2c_0_21 2 0>; + ti,active-discharge-gpio = <&gpio_i2c_0_21 3 0>; + ti,active-discharge-time = <2000>; /* in us */ + }; + }; + }; + + overrides@1 { + target = <&en_vdd_disp_1v8>; + _overlay_ { + gpio = <&gpio_i2c_0_21 0 0>; + }; + }; + + overrides@2 { + target = <&{/i2c@3160000}>; + _overlay_ { + gpio@21 { + status = "okay"; + }; + lp8557-backlight-s-wuxga-8-0@2c { + status = "okay"; + }; + }; + }; + }; + }; +}; diff --git a/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-plugin-manager.dtsi b/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-plugin-manager.dtsi index 945cc8e..6ac49d0 100644 --- a/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-plugin-manager.dtsi +++ b/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-plugin-manager.dtsi @@ -15,75 +15,19 @@ / { plugin-manager { - fragment-e3320-a00@1 { - ids = "3320-1000-000", "3320-1100-000"; - overrides@1 { - target = <&{/i2c@3160000/tps65132@3e}>; - _overlay_ { - status = "okay"; - outp { - ti,enable-gpio = <&gpio_i2c_0_21 2 0>; - }; - outn { - ti,enable-gpio = <&gpio_i2c_0_21 3 0>; - }; - }; - }; - overrides@2 { + fragment-e3320 { + ids = ">=3320-1000-000", ">=3320-1100-000"; + overrides@0 { target = <&{/host1x}>; _overlay_ { nvdisplay@15200000 { status = "okay"; + nvidia,fb-win = <0>; + win-mask = <0x7>; }; - dsi { - status = "okay"; - panel-s-wuxga-8-0 { - status = "okay"; - }; - }; - }; - }; - overrides@3 { - target = <&{/i2c@3160000}>; - _overlay_ { - gpio@21 { - status = "okay"; - }; - lp8557-backlight-s-wuxga-8-0@2c { - status = "okay"; - }; - }; - }; - }; - - fragment-e3320-a01@1 { - ids = "3320-1000-100", "3320-1000-200"; - overrides@1 { - target = <&{/i2c@3160000/tps65132@3e}>; - _overlay_ { - status = "okay"; - outp { - ti,enable-gpio = <&gpio_i2c_0_77 4 0>; - }; - outn { - delete-target-property = "ti,disable-active-discharge"; - ti,enable-gpio = <&gpio_i2c_0_21 2 0>; - ti,active-discharge-gpio = <&gpio_i2c_0_21 3 0>; - ti,active-discharge-time = <2000>; /* in us */ - }; - }; - }; - overrides@2 { - target = <&en_vdd_disp_1v8>; - _overlay_ { - gpio = <&gpio_i2c_0_21 0 0>; - }; - }; - overrides@3 { - target = <&{/host1x}>; - _overlay_ { - nvdisplay@15200000 { - status = "okay"; + nvdisplay@15210000 { + nvidia,fb-win = <3>; + win-mask = <0x38>; }; dsi { status = "okay"; @@ -93,17 +37,6 @@ }; }; }; - overrides@4 { - target = <&{/i2c@3160000}>; - _overlay_ { - gpio@21 { - status = "okay"; - }; - lp8557-backlight-s-wuxga-8-0@2c { - status = "okay"; - }; - }; - }; }; fragment-e1639-sharp-25x16@2 { diff --git a/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi b/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi index 7f9161c..eb3641f 100644 --- a/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi +++ b/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi @@ -16,6 +16,7 @@ #include "tegra186-soc-prod-plugin-manager.dtsi" #include "tegra186-odm-data-plugin-manager.dtsi" #include "tegra186-quill-p3310-1000-300-plugin-manager.dtsi" +#include "tegra186-quill-display-plugin-manager.dtsi" / { eeprom-manager { @@ -236,8 +237,14 @@ override@0 { target = <&{/host1x}>; _overlay_ { + nvdisplay@15210000 { + nvidia,fb-win = <3>; + win-mask = <0x18>; + }; nvdisplay@15220000 { status = "okay"; + nvidia,fb-win = <5>; + win-mask = <0x20>; }; sor { status = "okay"; -- 2.1.4