Tool/software: Linux
Hello,
I've been trying to manually enable the EHRPWM1 module on my BeagleBone Black so that I can interface with it from /sys/class/pwm. I do not wish to use device tree overlays, so I'm editing just the regular device tree. I've added the following lines to my device tree source:
&am33xx_pinmux { ... ehrpwm1_pins: pinmux_ehrpwm1_pins { pinctrl-single,pins = < 0x48 0x06 /* PWM1A - P9.14 */ 0x4c 0x06 /* PWM1B - P9.16 */ >; }; }; &epwmss1 { status = "okay"; }; &ehrpwm1 { pinctrl-names = "default"; pinctrl-0 = <&ehrpwm1_pins>; status = "okay"; };
I then added the following line in my Linux build config:
CONFIG_PWM_TIEHRPWM=y
To my knowledge, this should be sufficient for enabling and muxing the EHRPWM1 subsystem, as well as including the ti-ehrpwm and ti-pwmss drivers in the kernel. The device tree compiles exactly the way I want it. However, when I recompile the kernel and try to install it on my board, I get the following error from U-Boot and the OS never boots:
irq 22: nobody cared (try booting with the "irqpoll" option) ... Disabling IRQ #22
Has anyone run into this problem before? I couldn't find any useful information in the AM335x manual. It seems like enabling the PWM subsystem causes an interrupt at boot that isn't being handled. Does this look like a device tree issue, a driver issue, or a hardware issue? Any help would be appreciated, thanks.