PWM of BeagleBone Black on 11.1-RELEASE
SAITOU Toshihide
toshi at ruby.ocn.ne.jp
Wed Mar 14 15:38:22 UTC 2018
On Thu, 08 Mar 2018 22:02:28 +0900 (JST), SAITOU Toshihide
<toshi at ruby.ocn.ne.jp> wrote:
>
> How can I setup the PWM of BeagleBone Black?
> The driver attached but no signal observed with the
> followings.
>
> $ sysctl dev.am335x_ehrpwm.1.dutyB=50
> $ sysctl dev.am335x_ehrpwm.1.dutyA=50
> $ sysctl dev.am335x_ehrpwm.1.period=100
>
> (nothing was observed)
>
> $ uname -a
> FreeBSD beaglebone 11.1-RELEASE FreeBSD 11.1-RELEASE #0
> r321309: Fri Jul 21 10:22:32 UTC 2017
> root at releng2.nyi.freebsd.org:/usr/obj/arm.armv6/usr/src/sys/BEAGLEBONE
> arm
>
> # dtc -I dts -O dtb pwm.dts -o pwm.dtb
> # cp pwm.dtb /boot/dtb/
>
> # cat /boot/loader.conf
>
> fdt_overlays="pwm.dtb"
>
> # cat pwm.dts
>
> /dts-v1/;
> /plugin/;
>
> / {
> compatible = "ti,beaglebone", "ti,beaglebone-black",
> "ti,beaglebone-green";
>
> fragment at 4 {
> target = <&am33xx_pinmux>;
> __overlay__ {
> pinctrl-single,pins = < 0x048 0xe >; /* P9.21,
> gpio0_3 */
> };
> };
>
> fragment at 5 {
> target = <&epwmss1>;
> __overlay__ {
> status = "okay";
> };
> };
>
> fragment at 6 {
> target = <&ehrpwm1>;
> __overlay__ {
> status = "okay";
> };
> };
>
> fragment at 7 {
> target = <&ecap1>;
> __overlay__ {
> status = "okay";
> };
> };
> };
It worked with this settings (althought I don't understand yet):
Edit the beaglebone-black.dts as follows:
add followings to the &am33xx_pinmux entry:
ehrpwm0_pins: pinmux_ehrpwm0_AB { };
ehrpwm1_pins: pinmux_ehrpwm1_AB { };
append the followings:
&ehrpwm0 {
pinctrl-names = "default";
pinctrl-0 = <&ehrpwm0_pins>;
status = "okay";
};
&ehrpwm1 {
pinctrl-names = "default";
pinctrl-0 = <&ehrpwm1_pins>;
status = "okay";
};
And pwm.dts is :
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black",
"ti,beaglebone-green";
fragment at 0 {
target = <&am33xx_pinmux>;
__overlay__ {
ehrpwm0_pins: pinmux_ehrpwm0_AB {
pinctrl-single,pins = <
0x150 0x03 /* P9.21, 0x150, gpio0.2, mode3 */
0x154 0x03 /* P9.22, 0x154, gpio0.3, mode3 */
>;
};
};
};
fragment at 1 {
target = <&epwmss0>;
__overlay__ {
status = "okay";
};
};
fragment at 2 {
target = <&ehrpwm0>;
__overlay__ {
status = "okay";
};
};
fragment at 3 {
target = <&am33xx_pinmux>;
__overlay__ {
ehrpwm1_pins: pinmux_ehrpwm1_AB {
pinctrl-single,pins = <
0x48 0x06 /* P9.14, 0x48, gpio1.18, mode6 */
0x4c 0x06 /* P9.16, 0x4c, gpio1.19, mode6 */
>;
};
};
};
fragment at 4 {
target = <&epwmss1>;
__overlay__ {
status = "okay";
};
};
fragment at 5 {
target = <&ehrpwm1>;
__overlay__ {
status = "okay";
};
};
};
I'm sorry for the noise.
--
SAITOU Toshihide
More information about the freebsd-arm
mailing list