'pin' is marked as deprecated in 'properties:'

I am migrating from nrfConnect 1.7.1 to 2.3.0 and am getting a number of build errors. I have a custom board definition for my product and in it we've obviously defined custom pins for the peripheral devices.

For example: uart0

&uart0 {
	status = "okay";
	compatible = "nordic,nrf-uarte";
	current-speed = <115200>;
	tx-pin = <20>;
	rx-pin = <19>;
};

When building, I get the following error:

'tx-pin' is marked as deprecated in 'properties:' in /opt/nordic/ncs/v2.3.0/zephyr/dts/bindings/serial/nordic,nrf-uarte.yaml for node /soc/uart@40002000.
'rx-pin' is marked as deprecated in 'properties:' in /opt/nordic/ncs/v2.3.0/zephyr/dts/bindings/serial/nordic,nrf-uarte.yaml for node /soc/uart@40002000.

I understand that I need to use `pincntrl-0: <>` instead. However, I have no idea what pinctrl expects. I keep getting an "unknown node" error. What can I reference? Is there a migration guide somewhere? 

I am guessing that it should look something like this: `pinctrl-0 = <&uart0_tx_pa20 &uart0_rx_pa19>;` but I have no idea. Any help is appreciated.

  • Hi,

    I was having the same issue with a little different error.  It looked like in the PINCTRL Driver that the common.c routine was not getting compiled.  This was causing a couple of routines to not be resolved and getting a build error.  With CONFIG_PINCTRL=y set in proj.conf it should have been built.  But, as you commented above, putting that in the proj.conf did not appear to work.  That was recommended to me as well, although I had already tried that as a result of looking in the CMakeLists.txt.

    Luckily, I saw your post of finding a hint by putting it in the device tree defconfig file and that did that trick for me as well.

    So thanks for your digging into this. It would be good to know why it isn't working when put in the proj.conf file like you would think it should.

    Thanks again,

    h.

Related