Hi Justin!

The initial device tree changed between kernel 3.8 and 4.x. In 4.x the 
Control Module register *pwmss_ctrl* (@664h) gets cleared at boot. This 
register can get used to sychronize several PWM subsystems. A feature that 
isn't supported by the kernel nor by any of it's drivers. So no reason to 
change the initial state and clear that register. This just disables all 
PWM subsystems and makes kernel versions incompatible. (You may call it an 
official kernel virus).

Anyway, in order to get the PWM subsystems working in kernel 4.x you have 
to make sure that the register doesn't get cleared at boot. Ie. you can 
invert the bit-logic. Therefor download the device tree sources, edit file 
*am33xx-clocks.dtsi*, find the following nodes and make them look like (= 
add tag *ti,set-bit-to-disable)*

    ehrpwm0_tbclk: ehrpwm0_tbclk@44e10664 {
        #clock-cells = <0>;
        compatible = "ti,gate-clock";
        clocks = <&l4ls_gclk>;
        ti,bit-shift = <0>;
        ti,set-bit-to-disable;
        reg = <0x0664>;
    };

    ehrpwm1_tbclk: ehrpwm1_tbclk@44e10664 {
        #clock-cells = <0>;
        compatible = "ti,gate-clock";
        clocks = <&l4ls_gclk>;
        ti,bit-shift = <1>;
        ti,set-bit-to-disable;
        reg = <0x0664>;
    };

    ehrpwm2_tbclk: ehrpwm2_tbclk@44e10664 {
        #clock-cells = <0>;
        compatible = "ti,gate-clock";
        clocks = <&l4ls_gclk>;
        ti,bit-shift = <2>;
        ti,set-bit-to-disable;
        reg = <0x0664>;
    };

Then compile and install the binary trees. PWM subsystems will work after 
reboot.

Regards

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/8762020d-51b8-4a84-849b-8e102a5d6290%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to