How to use u-boot gpio-hog

I have an mt7981 device (GL.iNet gl-x3000) for which I've been adding support to the uboot-mediatek package. Everything boots fine now but I'm trying to tidy up some loose ends.

This board has a PCIe 5G modem which needs to be enabled and reset before booting the kernel to avoid problems during kernel boot. This just involves setting a few gpios to the correct values in u-boot. I'm able to do this fine with

gpio clear 10; gpio set 5; gpio set 9; gpio set 11

but I saw that u-boot has gpio-hog support which might enable me to define these 'permanently fixed' gpios more cleanly in the device tree.

As an experiment, I tried adding a stanza

&gpio {
	hub_power {
		gpio-hog;
		gpios = <5 GPIO_ACTIVE_HIGH>;
		output-high;
	};

	modem_control {
		gpio-hog;
		gpios = <9 GPIO_ACTIVE_HIGH>;
		output-high;
	};

	modem_reset {
		gpio-hog;
		gpios = <10 GPIO_ACTIVE_HIGH>;
		output-low;
	};

	modem_power {
		gpio-hog;
		gpios = <11 GPIO_ACTIVE_HIGH>;
		output-high;
	};
};

targetting the gpio-controller labelled gpio inside pinctrl@11d00000 of mt7981.dtsi, and dtc -I dtb on the resulting .dtb shows these nodes are correctly ending up as children of this.

But these gpio-hog nodes don't seem to do anything: gpio status -a at the u-boot console shows the lines are still in the default input state, and booting the kernel shows the modem hasn't been initialised, unlike with the gpio u-boot commands.

I expect I'm probably missing something obvious here, e.g. am I right to assume these gpio numbers match the numbers I use with the gpio command and in references like <&gpio n GPIO_ACTIVE_HIGH> elsewhere in the device tree?

I have double-checked that CONFIG_GPIO_HOG=y in the u-boot .config.

Any pointers would be gratefully received!