Robert: I haven't quite solved the problem, but I've made some progress. Reporting back both FYI and to help anyone else with this problem.
I downloaded your dtb-rebuilder and spent some time looking at it. I anticipated having to write those changes into the patched file, but as it happened, I found that they're already included in am57xx-beagle-x15-common.dtsi. I checked the more specific file (am57xx-beagle-x15-revc.dts) to verify that it didn't have any overriding settings.
I built the DTB:
make all
make install
...and verified that /usr/bin/dtb (aliased to /usr/bin/local/dtb) had been updated. So far, so good.
I rebooted and found that device behavior hadn't changed. But at least I had a lead as to where the behavior was controlled.
I tried tweaking the hystersis values in common.dtsi, making sure that the most relevant hysteresis values are reasonably large:
hysteresis = <2000>; /* millicelsius */
board_alert0: board_alert {
hysteresis = <5000>; /* millicelsius */
hysteresis = <1000>; /* millicelsius */
I rebuilt, reinstalled, and rebooted... no change in behavior - the fan still turned on and off every couple of seconds. Watching the output of tmp102 via sensors, I can see that the CPU temperature only fluctuates about 0.1-0.2 C between fan cycles. I set them even higher - up to 5000 mC. Rebuild, reinstall, reboot... no effect.
I realized that I could tackle the problem in a more crude way - by increasing the temperature polling frequency... bordering on stupidly large:
board_thermal: board_thermal {
polling-delay-passive = <30000>; /* milliseconds */
polling-delay = <30000>; /* milliseconds */
Rebuild, reinstall, reboot - that seems to have worked. Well, kind of. The fan typically cycles in 30-second intervals now. Oddly, it's not 100% of the time: sometimes it conducts three or four 30-second on/off cycles and then exhibits a few short cycles (like: turning on just long enough to get up to speed, turning off just long enough to stop, and then turning on for 30 seconds again).
Honestly, though, this solves the immediate problem: rapid fan cycling was both getting on my nerves, and creating some concerns about wear and tear from constantly turning on and off. I suppose I can live with a 30-second cycle time.
However, I'm still really puzzled by the inconsistent behavior: why hysteresis temperatures didn't work, and why the cycle time doesn't seem to be fixed. Curious results that bear further exploration.
Regards,
David Stein