diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile index dba641193144..114b144c7899 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -185,7 +185,10 @@ k3-am68-phyboard-izar-lvds-ph128800t006-dtbs := k3-am68-phyboard-izar.dtb \ k3-am68-phyboard-izar-lvds-ph128800t006.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am68-phyboard-izar-peb-av-15.dtb k3-am68-phyboard-izar-peb-av-15-dtbs := k3-am68-phyboard-izar.dtb \ - k3-am68-phyboard-izar-peb-av-15.dtbo + k3-am68-phyboard-izar-peb-av-15.dtbo +dtb-$(CONFIG_ARCH_K3) += k3-am68-phyboard-izar-pwm-fan.dtb +k3-am68-phyboard-izar-pwm-fan-dtbs := k3-am68-phyboard-izar.dtb \ + k3-am68-phyboard-izar-pwm-fan.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am68-sk-base-board.dtb dtb-$(CONFIG_ARCH_K3) += k3-am68-sk-base-board-pcie1-ep.dtbo dtb-$(CONFIG_ARCH_K3) += k3-j721s2-common-proc-board.dtb @@ -467,6 +470,7 @@ dtb- += k3-am625-beagleplay-csi2-ov5640.dtb \ k3-am642-tqma64xxl-mbax4xxl-wlan.dtb \ k3-am68-phyboard-izar-lvds-ph128800t006.dtb \ k3-am68-phyboard-izar-peb-av-15.dtb \ + k3-am68-phyboard-izar-pwm-fan.dtb \ k3-am68-sk-base-board-csi2-dual-imx219.dtb \ k3-am68-sk-base-board-pcie1-ep.dtb \ k3-am69-aquila-clover-panel-cap-touch-7inch-dsi.dtb \ diff --git a/arch/arm64/boot/dts/ti/k3-am68-phyboard-izar-pwm-fan.dtso b/arch/arm64/boot/dts/ti/k3-am68-phyboard-izar-pwm-fan.dtso new file mode 100644 index 000000000000..8c1a51216a90 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am68-phyboard-izar-pwm-fan.dtso @@ -0,0 +1,74 @@ +// SPDX-License-Identifier: GPL-2.0-only OR MIT +/* + * Copyright (C) 2026 PHYTEC Messtechnik GmbH + * Author: Dominik Haller + */ + +/dts-v1/; +/plugin/; + +#include +#include "k3-pinctrl.h" + +&{/} { + pwmfan: pwm-fan { + compatible = "pwm-fan"; + pinctrl-names = "default"; + pinctrl-0 = <&main_pwmfan_default_pins>; + #cooling-cells = <2>; + cooling-levels = <0 90 150 255>; + /* frequency needs to be the same as lvds backlight */ + pwms = <&main_ehrpwm0 0 44000 PWM_POLARITY_INVERTED>; + }; +}; + +&main_pmx0 { + main_pwmfan_default_pins: main-pwmfan-default-pins { + pinctrl-single,pins = < + J721S2_IOPAD(0x0cc, PIN_OUTPUT, 5) /* (AE27) SPI0_CS0.EHRPWM0_A */ + >; + }; +}; + +&main_ehrpwm0 { + status = "okay"; +}; + +&main3_thermal { + trips { + cpu_low: cpu-low { + hysteresis = <3000>; + temperature = <55000>; + type = "active"; + }; + + cpu_med: cpu-med { + hysteresis = <3000>; + temperature = <60000>; + type = "active"; + }; + + cpu_high: cpu-high { + hysteresis = <3000>; + temperature = <65000>; + type = "active"; + }; + }; + + cooling-maps { + map1 { + cooling-device = <&pwmfan 1 1>; + trip = <&cpu_low>; + }; + + map2 { + cooling-device = <&pwmfan 2 2>; + trip = <&cpu_med>; + }; + + map3 { + cooling-device = <&pwmfan 3 3>; + trip = <&cpu_high>; + }; + }; +};