Hi Guys, first post here!
I’m trying to get my head around device trees. Specifically, I want to be able to control the P9.23 pin on an beaglebone black - I’m using this to enable an interface on my own cape. Should be simple, no?
I have my board working with uarts and stuff, so I figured this would do the trick ( its own .dtsi containing just this);
&am33xx_pinmux {
address_mode_pins: address_mode_pins {
pinctrl-single,pins = <
AM33XX_PADCONF(AM335X_PIN_GPMC_A1, PIN_OUTPUT_PULLUP, MUX_MODE7) /* gpmc_a1.gpio1_17 */
>;
};
};
&gpio1 {
status = "okay";
label = "address enable 1";
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&address_mode_pins>;
};
The first part seems to work - the pin pullup changes when I change the PULL value.
But - when I issue the commands
root@beaglebone:~# gpioset -m wait gpiochip1 17=0
root@beaglebone:~# gpioset -m wait gpiochip1 17=1
Nothing happens on the actual pin. Kernel log says;
[ 61.256989] gpio gpiochip1: Persistence not supported for GPIO 17
[ 61.257032] gpio gpiochip1: registered chardev handle for line 17
[ 61.257081] gpio gpiochip1: registered chardev handle for 1 lines
If I remove the second part @gpio1 { … } it seems to work with the same gpioset commands. But why?
I am using a yocto build, and my main .dts basically includes
#include “am33xx.dtsi”
#include “am335x-bone-common.dtsi”
I just want to understand…