Hello, I use customer board for Jetson TX1, and fan connected to C16(PWM) B17(TACH). I can’t receive pwm for fan.When I try execute ./jetssonclocks.sh, I received
"Can't access Fan!"
I checked
/sys/kernel/debug/
And “tegra_pwm” doesn’t exist.
I checked device tree:
{
pwm_fan_shared_data: pfsd {
num_resources = <0>;
secret = <47>;
active_steps = <10>;
active_rpm = <0 1000 2000 3000 4000 5000 6000 7000 10000 11000>;
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>; /* mesecs */
state_cap = <7>;
active_pwm_max = <256>;
tach_gpio = <TEGRA_GPIO(K, 7)>; /* TEGRA_GPIO_PK7 */
pwm_gpio = <TEGRA_GPIO(E, 7)>; /* TEGRA_GPIO_PE7 */
tach_period = <1000>;
};
};
All right.
What else can i check?
Hi,
Does your customer board has the INA3221 voltage monitor?
If it doesn’t you may have to modify the device tree in order to manually enable the PWM for the fan. This is the patch I used to solve this problem on TX2:
diff --git a/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-cvb-prod-p2597-b00-p3310-1000-a00-00.dtsi b/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-cvb-prod-p2597-b00-p3310-1000-a00-00.dtsi
index 972d701..51e4580 100644
--- a/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-cvb-prod-p2597-b00-p3310-1000-a00-00.dtsi
+++ b/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-cvb-prod-p2597-b00-p3310-1000-a00-00.dtsi
@@ -248,7 +248,7 @@
regulator-name = "vdd-fan";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio_i2c_0_74 4 0>;
+ regulator-always-on;
};
vdd_3v3: regulator@14 {
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 c4c2f6f..3cb3397 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
@@ -65,36 +65,6 @@
nvidia,cd-wakeup-capable;
};
- i2c@3160000 {
- ina3221x@40 {
- channel@0 {
- ti,shunt-resistor-mohm = <10>;
- };
- channel@1 {
- ti,shunt-resistor-mohm = <10>;
- };
- };
- ina3221x@41 {
- channel@0 {
- ti,shunt-resistor-mohm = <20>;
- };
- channel@1 {
- ti,shunt-resistor-mohm = <10>;
- };
- channel@2 {
- ti,rail-name = "VDD_SYS_DDR";
- ti,shunt-resistor-mohm = <10>;
- };
- };
-
- gpio@74{
- status = "disabled";
- };
- gpio@77{
- status = "disabled";
- };
- };
-
ahci-sata@3507000 {
gpios = <&spmic 7 0>;
};
@@ -125,6 +95,11 @@
};
pinctrl@3520000 {
+ vbus-2-supply = <&battery_reg>;
+ status = "okay";
+ pinctrl-0 = <&tegra_xusb_padctl_pinmux_default>;
+ pinctrl-names = "default";
+
pinmux {
usb3-std-A-port2 {
nvidia,lanes = "usb3-0";
I hope this helps.
Thank you miguel.taylor, i changed file tegra210-jetson-common-power-tree-p2530-0930-e03.dtsi
170 vdd_fan: regulator@13 {
compatible = "regulator-fixed-sync";
reg = <13>;
regulator-name = "vdd-fan";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
//gpio = <&gpio TEGRA_GPIO(E, 4) 0>;
regulator-enable-ramp-delay = <284>;
regulator-disable-ramp-delay = <6200>;
179 };
and tegra210-jetson-cv-power-tree-p2597-2180-a00.dtsi
210//vdd_fan: regulator@13 {
211// gpio = <&tca9539_74 4 0>;
212//};
And fan started work.