Simple (!) device tree question.

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? :blush:

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… :dizzy_face: