This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3359: Problems enabling EHRPWM1 via Device Tree/U-Boot

Part Number: AM3359

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.