Hi endli.make
I am using J120 Auvidea and Jetson TX2 with L4T 32.1 (JetPack4.2) and everything is working correctly including HDMI . I have not tried with the pre-built images yet, instead, I have compiled the kernel sources with some changes in the device tree to support J120 board (see the patch below).
The patch was created comparing the kernel sources provided by Auvidea and the kernel sources provided by Nvidia. Therefore you could use the kernel sources provided by Auvidea directly.
You can apply this instructions to compile the kernel sources and flash Jetson TX2:
Please notice that you have to apply the patch below before to compile the kernel and device tree. (step 3)
diff --git a/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi b/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi
index 039d409..58a5f40 100644
--- a/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi
+++ b/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi
@@ -97,11 +97,11 @@
#else
target = <&tegra_xusb_padctl_pinmux_default>;
_overlay_ {
- e3325-usb3-std-A-HS {
- status = "okay";
+ usb3-std-A-port2 {
+ status="okay";
};
- e3325-usb3-std-A-SS {
- status = "okay";
+ usb3-std-A-port3 {
+ status="okay";
};
};
#endif
@@ -121,21 +121,21 @@
_overlay_ {
phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(1)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>;
- phy-names = "utmi-0", "utmi-1", "usb3-1", "utmi-2", "usb3-0";
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>,
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(1)>;
+ phy-names = "utmi-0", "utmi-1", "utmi-2", "usb3-0", "usb3-1";
};
#endif
};
override@2 {
target = <&tegra_main_gpio>;
_overlay_ {
- e3325_sdio_rst {
- status = "okay";
+ usb3-std-A-port2 {
+ status="okay";
};
- e3325_lane0_mux {
- status = "okay";
+ usb3-std-A-port3 {
+ status="okay";
};
};
};
@@ -143,10 +143,10 @@
target = <&tegra_pcie>;
_overlay_ {
pci@1,0 {
- nvidia,num-lanes = <2>;
+ nvidia,num-lanes = <4>;
};
pci@2,0 {
- nvidia,num-lanes = <1>;
+ nvidia,num-lanes = <0>;
};
pci@3,0 {
nvidia,num-lanes = <1>;
@@ -214,16 +214,19 @@
_overlay_ {
phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>,
<&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>,
- <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-0}>;
- phy-names = "usb2-0", "usb2-1", "usb3-0";
+ <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>,
+ <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-0}>,
+ <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-1}>;
+ phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0", "usb3-1";
};
#else
_overlay_ {
phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>;
- phy-names = "utmi-0", "utmi-1", "utmi-2", "usb3-0";
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>,
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(1)>;
+ phy-names = "utmi-0", "utmi-1", "utmi-2", "usb3-0", "usb3-1";
};
#endif
};
@@ -233,10 +236,11 @@
_overlay_ {
ports {
usb3-1 {
- status = "disabled";
+ nvidia,usb2-companion = <1>;
+ status = "okay";
};
usb3-0 {
- nvidia,usb2-companion = <1>;
+ nvidia,usb2-companion = <2>;
status = "okay";
};
};
@@ -245,10 +249,10 @@
target = <&tegra_xusb_padctl_pinmux_default>;
_overlay_ {
usb3-std-A-port2 {
- nvidia,lanes = "usb3-0";
+ nvidia,lanes = "usb3-1";
};
- e3325-usb3-std-A-HS {
- status = "okay";
+ usb3-std-A-port3 {
+ nvidia,lanes = "usb3-0";
};
};
#endif
@@ -263,24 +267,29 @@
#if TEGRA_XUSB_PADCONTROL_VERSION >= DT_VERSION_2
_overlay_ {
phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>,
- <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>;
- phy-names = "usb2-0", "usb2-1";
+ <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>,
+ <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>,
+ <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-0}>,
+ <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-1}>;
+ phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0", "usb3-1";
};
#else
_overlay_ {
phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>;
- phy-names = "utmi-0", "utmi-1", "utmi-2";
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>,
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>,
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(1)>;
+ phy-names = "utmi-0", "utmi-1", "utmi-2", "usb3-0", "usb3-1";
};
#endif
};
override@1 {
target = <&tegra_xusb_padctl_pinmux_default>;
_overlay_ {
- usb3-std-A-port2 {
+ /*usb3-std-A-port2 {
status = "disabled";
- };
+ };*/
};
};
diff --git a/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts b/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts
index 8afcaea..6e6bd96 100644
--- a/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts
+++ b/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts
@@ -120,16 +120,20 @@
status = "okay";
phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>,
<&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>,
+ <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>,
+ <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-0}>,
<&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-1}>;
- phy-names = "usb2-0", "usb2-1", "usb3-1";
+ phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0", "usb3-1";
};
#else
xhci@3530000 {
status = "okay";
phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>,
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(1)>;
- phy-names = "utmi-0", "utmi-1", "usb3-1";
+ phy-names = "utmi-0", "utmi-1", "utmi-2", "usb3-0", "usb3-1";
nvidia,boost_cpu_freq = <800>;
};
#endif
@@ -195,6 +199,16 @@
vbus-supply = <&vdd_usb1_5v>;
nvidia,oc-pin = <1>;
};
+ usb2-2 {
+ status = "okay";
+ mode = "host";
+ vbus-supply = <&battery_reg>;
+ nvidia,oc-pin = <1>;
+ };
+ usb3-0 {
+ nvidia,usb2-companion = <2>;
+ status = "okay";
+ };
usb3-1 {
nvidia,usb2-companion = <1>;
status = "okay";
@@ -218,45 +232,64 @@
tegra_xusb_padctl_pinmux_default: pinmux {
/* Quill does not support usb3-micro AB */
usb2-micro-AB {
+ status = "okay";
nvidia,lanes = "otg-0";
nvidia,function = "xusb";
nvidia,port-cap = <TEGRA_PADCTL_PORT_OTG_CAP>;
nvidia,oc-pin = <0>;
};
usb2-std-A-port2 {
+ status = "okay";
nvidia,lanes = "otg-1";
nvidia,function = "xusb";
nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
nvidia,oc-pin = <1>;
};
+ usb2-std-A-port3 {
+ status = "okay";
+ nvidia,lanes = "otg-2";
+ nvidia,function = "xusb";
+ nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
+ nvidia,oc-pin = <1>;
+ };
+
usb3-std-A-port2 {
+ status = "okay";
nvidia,lanes = "usb3-1";
nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
nvidia,oc-pin = <1>;
};
+
+ usb3-std-A-port3 {
+ status = "okay";
+ nvidia,lanes = "usb3-0";
+ nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
+ nvidia,oc-pin = <1>;
+ };
- e3325-usb3-std-A-HS {
+ /*e3325-usb3-std-A-HS {
nvidia,lanes = "otg-2";
nvidia,function = "xusb";
nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
- status = "disabled";
+ //status = "disabled";
+ status = "okay";
};
e3325-usb3-std-A-SS {
nvidia,lanes = "usb3-0";
nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
status = "disabled";
- };
+ };*/
};
};
pcie-controller@10003000 {
status = "okay";
pci@1,0 {
- nvidia,num-lanes = <2>;
+ nvidia,num-lanes = <4>;
status = "okay";
};
pci@2,0 {
- nvidia,num-lanes = <1>;
+ nvidia,num-lanes = <0>;
status = "disabled";
};
pci@3,0 {
@@ -319,6 +352,42 @@
status = "disabled";
};
};
+
+ fixed-regulators {
+ vdd_fan: regulator@13 {
+ status = "okay";
+ compatible = "pwm-fan";
+ gpio = <&tegra_main_gpio TEGRA_MAIN_GPIO(J, 6) GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ pwm_fan_shared_data: pfsd {
+ status = "okay";
+ num_resources = <0>;
+ secret = <47>;
+ active_steps = <10>;
+ active_rpm = <0 1000 2000 3000 4000 5000 6000 7000 10000 11000>;
+ rpm_diff_tolerance = <2>;
+ active_rru = <40 2 1 1 1 1 1 1 1 1>;
+ active_rrd = <40 2 1 1 1 1 1 1 1 1>;
+ state_cap_lookup = <2 2 2 2 3 3 3 4 4 4>;
+ pwm_period = <45334>;
+ pwm_id = <3>;
+ step_time = <100>;
+ state_cap = <7>;
+ active_pwm_max = <256>;
+ tach_period = <1000>;
+ pwm_gpio = <&tegra_main_gpio TEGRA_MAIN_GPIO(J, 6) GPIO_ACTIVE_LOW>;
+ };
+ pwm-fan {
+ status = "okay";
+ compatible = "pwm-fan";
+ #pwm-cells = <1>;
+ pwms = <&tegra_pwm4 0 45334>;
+ shared_data = <&pwm_fan_shared_data>;
+ active_pwm = <0 80 120 160 255 255 255 255 255 255>;
+ };
+
};
#if LINUX_VERSION >= 414
diff --git a/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts b/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
index 880a252..cdb3cd8 100644
--- a/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
+++ b/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
@@ -117,7 +117,7 @@
pcie-controller@10003000 {
pci@1,0 {
- nvidia,num-lanes = <4>;
+ nvidia,num-lanes = <2>;
nvidia,disable-clock-request;
};
pci@2,0 {
@@ -129,17 +129,31 @@
};
xhci@3530000 {
+ status = "okay";
phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>;
- phy-names = "utmi-0", "utmi-1", "usb3-0";
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>,
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>,
+ <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(1)>;
+ phy-names = "utmi-0", "utmi-1", "utmi-2", "usb3-0", "usb3-1";
};
pinctrl@3520000 {
pinmux {
- usb3-std-A-port2 {
- nvidia,lanes = "usb3-0";
+ usb2-std-A-port2 {
+ nvidia,lanes = "otg-1";
+ nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
+ status = "okay";
+
+ };
+ usb2-std-A-port3 {
+ nvidia,lanes = "otg-2";
+ nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
+ status = "okay";
};
+ /*usb3-std-A-port2 {
+ nvidia,lanes = "usb3-1";
+ };*/
};
};