Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'zynqmp-dt-for-6.13' of https://github.com/Xilinx/linux-xlnx into soc/dt

arm64: ZynqMP DT changes for 6.13

- Enable AMS for all boards including HWMON
- Add thermal zones

* tag 'zynqmp-dt-for-6.13' of https://github.com/Xilinx/linux-xlnx:
arm64: zynqmp: Add thermal zones
arm64: zynqmp: Expose AMS to userspace as HWMON
arm64: zynqmp: Enable AMS for all boards

Link: https://lore.kernel.org/r/CAHTX3d+x1WrXhsp6+PQbo-B3T9q21tqE1RkhVsh0r7my3vH37g@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+100 -35
-18
arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
··· 90 90 }; 91 91 }; 92 92 93 - ams { 94 - compatible = "iio-hwmon"; 95 - io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>, 96 - <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>, 97 - <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>, 98 - <&xilinx_ams 9>, <&xilinx_ams 10>, <&xilinx_ams 11>, 99 - <&xilinx_ams 12>, <&xilinx_ams 13>, <&xilinx_ams 14>, 100 - <&xilinx_ams 15>, <&xilinx_ams 16>, <&xilinx_ams 17>, 101 - <&xilinx_ams 18>, <&xilinx_ams 19>, <&xilinx_ams 20>, 102 - <&xilinx_ams 21>, <&xilinx_ams 22>, <&xilinx_ams 23>, 103 - <&xilinx_ams 24>, <&xilinx_ams 25>, <&xilinx_ams 26>, 104 - <&xilinx_ams 27>, <&xilinx_ams 28>, <&xilinx_ams 29>; 105 - }; 106 - 107 93 pwm-fan { 108 94 compatible = "pwm-fan"; 109 95 status = "okay"; ··· 350 364 "", "", "", "", "", /* 160 - 164 */ 351 365 "", "", "", "", "", /* 165 - 169 */ 352 366 "", "", "", ""; /* 170 - 173 */ 353 - }; 354 - 355 - &xilinx_ams { 356 - status = "okay"; 357 367 }; 358 368 359 369 &ams_ps {
-4
arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
··· 590 590 status = "okay"; 591 591 }; 592 592 593 - &xilinx_ams { 594 - status = "okay"; 595 - }; 596 - 597 593 &ams_ps { 598 594 status = "okay"; 599 595 };
-4
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
··· 1028 1028 status = "okay"; 1029 1029 }; 1030 1030 1031 - &xilinx_ams { 1032 - status = "okay"; 1033 - }; 1034 - 1035 1031 &ams_ps { 1036 1032 status = "okay"; 1037 1033 };
-4
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
··· 511 511 status = "okay"; 512 512 }; 513 513 514 - &xilinx_ams { 515 - status = "okay"; 516 - }; 517 - 518 514 &ams_ps { 519 515 status = "okay"; 520 516 };
-4
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
··· 523 523 status = "okay"; 524 524 }; 525 525 526 - &xilinx_ams { 527 - status = "okay"; 528 - }; 529 - 530 526 &ams_ps { 531 527 status = "okay"; 532 528 };
+100 -1
arch/arm64/boot/dts/xilinx/zynqmp.dtsi
··· 18 18 #include <dt-bindings/interrupt-controller/irq.h> 19 19 #include <dt-bindings/power/xlnx-zynqmp-power.h> 20 20 #include <dt-bindings/reset/xlnx-zynqmp-resets.h> 21 + #include <dt-bindings/thermal/thermal.h> 21 22 22 23 / { 23 24 compatible = "xlnx,zynqmp"; ··· 37 36 #size-cells = <0>; 38 37 39 38 cpu0: cpu@0 { 39 + #cooling-cells = <2>; 40 40 compatible = "arm,cortex-a53"; 41 41 device_type = "cpu"; 42 42 enable-method = "psci"; ··· 48 46 }; 49 47 50 48 cpu1: cpu@1 { 49 + #cooling-cells = <2>; 51 50 compatible = "arm,cortex-a53"; 52 51 device_type = "cpu"; 53 52 enable-method = "psci"; ··· 59 56 }; 60 57 61 58 cpu2: cpu@2 { 59 + #cooling-cells = <2>; 62 60 compatible = "arm,cortex-a53"; 63 61 device_type = "cpu"; 64 62 enable-method = "psci"; ··· 70 66 }; 71 67 72 68 cpu3: cpu@3 { 69 + #cooling-cells = <2>; 73 70 compatible = "arm,cortex-a53"; 74 71 device_type = "cpu"; 75 72 enable-method = "psci"; ··· 394 389 <&zynqmp_firmware PD_R5_1_ATCM>, 395 390 <&zynqmp_firmware PD_R5_1_BTCM>; 396 391 memory-region = <&rproc_1_fw_image>; 392 + }; 393 + }; 394 + 395 + ams { 396 + compatible = "iio-hwmon"; 397 + io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>, 398 + <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>, 399 + <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>, 400 + <&xilinx_ams 9>, <&xilinx_ams 10>, <&xilinx_ams 11>, 401 + <&xilinx_ams 12>, <&xilinx_ams 13>, <&xilinx_ams 14>, 402 + <&xilinx_ams 15>, <&xilinx_ams 16>, <&xilinx_ams 17>, 403 + <&xilinx_ams 18>, <&xilinx_ams 19>, <&xilinx_ams 20>, 404 + <&xilinx_ams 21>, <&xilinx_ams 22>, <&xilinx_ams 23>, 405 + <&xilinx_ams 24>, <&xilinx_ams 25>, <&xilinx_ams 26>, 406 + <&xilinx_ams 27>, <&xilinx_ams 28>, <&xilinx_ams 29>; 407 + }; 408 + 409 + 410 + tsens_apu: thermal-sensor-apu { 411 + compatible = "generic-adc-thermal"; 412 + #thermal-sensor-cells = <0>; 413 + io-channels = <&xilinx_ams 7>; 414 + io-channel-names = "sensor-channel"; 415 + }; 416 + 417 + tsens_rpu: thermal-sensor-rpu { 418 + compatible = "generic-adc-thermal"; 419 + #thermal-sensor-cells = <0>; 420 + io-channels = <&xilinx_ams 8>; 421 + io-channel-names = "sensor-channel"; 422 + }; 423 + 424 + tsens_pl: thermal-sensor-pl { 425 + compatible = "generic-adc-thermal"; 426 + #thermal-sensor-cells = <0>; 427 + io-channels = <&xilinx_ams 20>; 428 + io-channel-names = "sensor-channel"; 429 + }; 430 + 431 + thermal-zones { 432 + apu-thermal { 433 + polling-delay-passive = <1000>; 434 + polling-delay = <5000>; 435 + thermal-sensors = <&tsens_apu>; 436 + 437 + trips { 438 + apu_passive: passive { 439 + temperature = <93000>; 440 + hysteresis = <3500>; 441 + type = "passive"; 442 + }; 443 + 444 + apu_critical: critical { 445 + temperature = <96500>; 446 + hysteresis = <3500>; 447 + type = "critical"; 448 + }; 449 + }; 450 + 451 + cooling-maps { 452 + map { 453 + trip = <&apu_passive>; 454 + cooling-device = 455 + <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 456 + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 457 + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 458 + <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 459 + }; 460 + }; 461 + }; 462 + 463 + rpu-thermal { 464 + polling-delay = <10000>; 465 + thermal-sensors = <&tsens_rpu>; 466 + 467 + trips { 468 + critical { 469 + temperature = <96500>; 470 + hysteresis = <3500>; 471 + type = "critical"; 472 + }; 473 + }; 474 + }; 475 + 476 + pl-thermal { 477 + polling-delay = <10000>; 478 + thermal-sensors = <&tsens_pl>; 479 + 480 + trips { 481 + critical { 482 + temperature = <96500>; 483 + hysteresis = <3500>; 484 + type = "critical"; 485 + }; 486 + }; 397 487 }; 398 488 }; 399 489 ··· 1257 1157 1258 1158 xilinx_ams: ams@ffa50000 { 1259 1159 compatible = "xlnx,zynqmp-ams"; 1260 - status = "disabled"; 1261 1160 interrupt-parent = <&gic>; 1262 1161 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 1263 1162 reg = <0x0 0xffa50000 0x0 0x800>;