Vocore2 pwm sysfs
Posted: Mon Jan 30, 2017 8:17 am
Hi!
I'm trying to access the pwm sysfs on my vocore2. In the default image, there is no pwm sysfs interface. However, I managed to configure support for it through kernel config and building my own image:
with this image, there is a pwm node in /sys/class/pwm. But it is missing all interfaces.
I have no clue what to do from here. But I have a couple of observations, that may give hints:
1) with my custom image a lot of GPIOs are exported by default:
2) in dmesg there is a lot of chatter from pinctrl:
I have a hunch that I may be only missing an adjustment to pinctrl, but I have no idea what to do or what I may be missing. Any hints?
Any help is greatly appreciated!
Thanks, velo
I'm trying to access the pwm sysfs on my vocore2. In the default image, there is no pwm sysfs interface. However, I managed to configure support for it through kernel config and building my own image:
- Code: Select all
diff --git a/target/linux/ramips/mt7628/config-3.18 b/target/linux/ramips/mt7628/config-3.18
index aca70ca..ef52bac 100644
--- a/target/linux/ramips/mt7628/config-3.18
+++ b/target/linux/ramips/mt7628/config-3.18
@@ -159,6 +159,15 @@ CONFIG_PHYLIB=y
CONFIG_PHY_RALINK_USB=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_RT2880=y
+#### velo
+## taken from target/linux/ramips/mt7688/config-3.18
+
+CONFIG_PWM=y
+# CONFIG_PWM_FSL_FTM is not set
+CONFIG_PWM_MEDIATEK=y
+CONFIG_PWM_SYSFS=y
+
+#### konrad
# CONFIG_PINCTRL_SINGLE is not set
# CONFIG_PREEMPT_RCU is not set
CONFIG_RALINK=y
with this image, there is a pwm node in /sys/class/pwm. But it is missing all interfaces.
- Code: Select all
root@vocore2:/sys/class/pwm# ls -alh
drwxr-xr-x 2 root root 0 Jan 1 1970 .
drwxr-xr-x 27 root root 0 Jan 1 1970 ..
I have no clue what to do from here. But I have a couple of observations, that may give hints:
1) with my custom image a lot of GPIOs are exported by default:
- Code: Select all
root@vocore2:/sys/class/gpio# ls
export gpio20 gpio37 gpio39 gpio41 gpiochip0 gpiochip64
gpio19 gpio21 gpio38 gpio40 gpio42 gpiochip32 unexport
2) in dmesg there is a lot of chatter from pinctrl:
- Code: Select all
[ 0.070000] pinctrl core: initialized pinctrl subsystem
[ 0.080000] NET: Registered protocol family 16
[ 0.090000] rt2880-pinmux pinctrl: try to register 47 pins ...
[ 0.090000] pinctrl core: registered pin 0 (io0) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 1 (io1) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 2 (io2) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 3 (io3) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 4 (io4) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 5 (io5) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 6 (io6) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 7 (io7) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 8 (io8) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 9 (io9) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 10 (io10) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 11 (io11) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 12 (io12) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 13 (io13) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 14 (io14) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 15 (io15) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 16 (io16) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 17 (io17) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 18 (io18) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 19 (io19) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 20 (io20) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 21 (io21) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 22 (io22) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 23 (io23) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 24 (io24) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 25 (io25) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 26 (io26) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 27 (io27) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 28 (io28) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 29 (io29) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 30 (io30) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 31 (io31) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 32 (io32) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 33 (io33) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 34 (io34) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 35 (io35) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 36 (io36) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 37 (io37) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 38 (io38) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 39 (io39) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 40 (io40) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 41 (io41) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 42 (io42) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 43 (io43) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 44 (io44) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 45 (io45) on rt2880-pinmux
[ 0.090000] pinctrl core: registered pin 46 (io46) on rt2880-pinmux
[ 0.090000] pinctrl core: add 14 pinmux maps
[ 0.090000] rt2880-pinmux pinctrl: found group selector 14 for gpio
[ 0.090000] rt2880-pinmux pinctrl: found group selector 4 for i2c
[ 0.090000] rt2880-pinmux pinctrl: found group selector 11 for i2s
[ 0.090000] rt2880-pinmux pinctrl: found group selector 0 for pwm1
[ 0.090000] rt2880-pinmux pinctrl: found group selector 2 for uart2
[ 0.090000] rt2880-pinmux pinctrl: found group selector 9 for sdmode
[ 0.090000] rt2880-pinmux pinctrl: found group selector 7 for wdt
[ 0.090000] rt2880-pinmux pinctrl: found group selector 5 for refclk
[ 0.090000] rt2880-pinmux pinctrl: found group selector 27 for agpio
[ 0.090000] rt2880-pinmux pinctrl: found group selector 20 for p4led_an
[ 0.090000] rt2880-pinmux pinctrl: found group selector 19 for p3led_an
[ 0.090000] rt2880-pinmux pinctrl: found group selector 18 for p2led_an
[ 0.090000] rt2880-pinmux pinctrl: found group selector 17 for p1led_an
[ 0.090000] rt2880-pinmux pinctrl: found group selector 16 for p0led_an
[ 0.090000] rt2880-pinmux pinctrl: request pin 11 (io11) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 4 (io4) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 5 (io5) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 0 (io0) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 1 (io1) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 2 (io2) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 3 (io3) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 19 (io19) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 20 (io20) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 21 (io21) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 22 (io22) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 23 (io23) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 24 (io24) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 25 (io25) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 26 (io26) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 27 (io27) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 28 (io28) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 29 (io29) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 38 (io38) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 36 (io36) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 39 (io39) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 40 (io40) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 41 (io41) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 42 (io42) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: request pin 43 (io43) for pinctrl
[ 0.090000] rt2880-pinmux pinctrl: failed to lookup the sleep state
[ 0.100000] mt7621_gpio 10000600.gpio: registering 32 gpios
[ 0.110000] mt7621_gpio 10000600.gpio: registering 32 gpios
[ 0.110000] mt7621_gpio 10000600.gpio: registering 32 gpios
I have a hunch that I may be only missing an adjustment to pinctrl, but I have no idea what to do or what I may be missing. Any hints?
Any help is greatly appreciated!
Thanks, velo