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: AM335x PWM configuration



Tool/software: Linux

I have configured PWM from menuconfig but i can't see any of directory about EHRPWM  that i did follow as this processors.wiki.ti.com/.../AM335x_PWM_Driver's_Guide page

  • What Linux version is this?
  • Hi Biser,
    I used ti-processor sdk -linux-am335x v04.02 for beaglebone black.

    best regards
    somkiat
  • The wiki you refer is incorrect. It's for the old SDK 6.0. This is the wiki for the current Processor SDK: processors.wiki.ti.com/.../Linux_Core_PWM_User's_Guide
  • Hi Biser,

    I still can not find the "/sys/class/pwm/pwmchipx" that I want to control.

    best regards
    somkiat

  • Hello somkiat,

    Please, refer to this thread.

    Best regards,
    Kemal

  • Hi Kemal,
    It's work!, Thanks for the info.

    Best regards,
    Somkiat

  • i have configured am335x-boneblack.dts file as below, but ehrpwm2b_pins still not show follow the link e2e.ti.com/.../661736.

    &am33xx_pinmux { nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr0 */ AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */ AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */ AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */ AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */ AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */ AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */ AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */ AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */ AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */ AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */ AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */ AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */ AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */ AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */ AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */ AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */ AM33XX_IOPAD(0x8e0, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_vsync.lcd_vsync */ AM33XX_IOPAD(0x8e4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_hsync.lcd_hsync */ AM33XX_IOPAD(0x8e8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_pclk.lcd_pclk */ AM33XX_IOPAD(0x8ec, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */ >; }; nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr0 */ >; }; mcasp0_pins: mcasp0_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */ AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2*/ AM33XX_IOPAD(0x994, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */ AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */ AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */ >; }; ehrpwm2a_pins: pinmux_ehrpwm2a_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE4) /* gpmc_ad8.ehrpwm2A */ >; }; ehrpwm2b_pins: pinmux_ehrpwm2b_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE4) /* gpmc_ad9.ehrpwm2B */ >; }; }; &epwmss2 { status = "okay"; ehrpwm2: pwm@48304200 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&ehrpwm2a_pins &ehrpwm2b_pins>; }; };

  • The chip is one /sys/class/pwm/pwmchip0, A pins refers to /sys/class/pwm/pwmchip0/pwm0, B pins refers to /sys/class/pwm/pwmchip0/pwm1.

  • Hi Kemal,
    thank you again for your reply.

    Best regards,
    Somkiat