Problem with pinmux for ehrpwm1B on BB classic


I tried to activate all 4 ehrpwms on the P8 Header, so I created a pinmux-struct for them:

/* Module pin mux for EHRPWMs */
static struct pinmux_config ehrpwm_pin_mux[] = {
     {"lcd_data10.ehrpwm1A", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
     {"lcd_data11.ehrpwm1B", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
     {"gpmc_ad8.ehrpwm2A", OMAP_MUX_MODE4 | AM33XX_PIN_OUTPUT},
     {"gpmc_ad9.ehrpwm2B", OMAP_MUX_MODE4 | AM33XX_PIN_OUTPUT},
     {NULL, 0},

And added setup_pin_mux(ehrpwm_pin_mux); to the setup_beaglebone-function.
It worked for all of them except for the ehrpwm1B.
If I check the status of the pin after the boot up it shows:

root@arm:/sys/kernel/debug/omap_mux# cat lcd_data11
name: lcd_data11.gpio2_17 (0x44e108cc/0x8cc = 0x002f), b NA, t NA
signals: lcd_data11 | gpmc_a15 | NA | mcasp0_ahclkr | mcasp0_axr2 | NA | NA | gpio2_17

If I set it manually to the MODE2 using the following, everything works fine:
root@arm:/sys/kernel/debug/omap_mux# echo 2 > lcd_data11

I guess it is a quite simple problem, but I don't know what to do. I noticed that ehrpwm1B is not listed in the signals line, so I tried using just {"lcd_data11", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT} as the mux setting, but it didn't change anything.

Can someone give me a tip, where the problem lies?

Best regards,


I found that the "ehrpwm1B" state is not available in the mux-entry of the pin, hence the NA in the signals list of the pin.
After adding "ehrpwm1B" in the mux33xx.c to the corresponding pin everything works now:

  "lcd_data11", "gpmc_a15", "ehrpwm1B", "mcasp0_ahclkr",
  "mcasp0_axr2", NULL, NULL, "gpio2_17"),