Hi Eugen, On 31/01/25 12:10 am, Eugen Hristev wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the > content is safe > > On 1/30/25 05:51, Manikandan Muralidharan wrote: >> From: Balamanikandan Gunasundar <balamanikandan.gunasun...@microchip.com> >> >> Define the pinctrl nodes with its label to align with the Linux DT. >> Without this change the pinmux nodes are grouped under an additional >> 'pinctrl' child node which is not identified by the pinctrl driver >> when the GPIO banks are made as child nodes of pinctrl node. > > This DT commit breaks the boards, and you are fixing the driver after ? This patch is a potential fix for an issue in u-boot where pin-mux of nand, qspi etc are not grouped or identified by the pinctrl-at91.c driver because in board DTS they are defined under a plain 'pinctrl' node entity without the pinctrl DTSI-label reference or full path representation, hence in the final dtb there are two different pinctrl node entities (1) pinctrl@fffff40 (2) pinctrl. The patch has no dependency with the driver changes. > > Does changing the driver mean that this old DT stops working ? Or it > still works? In patch 6/7, the fallback to current code flow to capture the reg address of GPIO banks are still available along with the new implementation but since the 5/7 binds the GPIO driver with pinctrl, I doubt in the old DTs with pioX GPIO banks defined outside the pinctrl node may not work.> > Eugen >> >> Signed-off-by: Balamanikandan Gunasundar >> <balamanikandan.gunasun...@microchip.com> >> Signed-off-by: Manikandan Muralidharan <manikanda...@microchip.com> >> --- >> arch/arm/dts/sam9x60ek.dts | 142 +++++++++++++++++++------------------ >> 1 file changed, 73 insertions(+), 69 deletions(-) >> >> diff --git a/arch/arm/dts/sam9x60ek.dts b/arch/arm/dts/sam9x60ek.dts >> index 74016f5e288..3bf45c14e42 100644 >> --- a/arch/arm/dts/sam9x60ek.dts >> +++ b/arch/arm/dts/sam9x60ek.dts >> @@ -78,75 +78,6 @@ >> }; >> }; >> }; >> - >> - pinctrl { >> - nand { >> - pinctrl_nand_oe_we: nand-oe-we-0 { >> - atmel,pins = >> - <AT91_PIOD 0 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) >> - AT91_PIOD 1 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>; >> - }; >> - >> - pinctrl_nand_rb: nand-rb-0 { >> - atmel,pins = >> - <AT91_PIOD 5 >> AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; >> - }; >> - >> - pinctrl_nand_cs: nand-cs-0 { >> - atmel,pins = >> - <AT91_PIOD 4 >> AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; >> - }; >> - }; >> - >> - ebi { >> - pinctrl_ebi_data_0_7: ebi-data-lsb-0 { >> - atmel,pins = >> - <AT91_PIOD 6 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) >> - AT91_PIOD 7 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) >> - AT91_PIOD 8 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) >> - AT91_PIOD 9 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) >> - AT91_PIOD 10 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) >> - AT91_PIOD 11 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) >> - AT91_PIOD 12 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) >> - AT91_PIOD 13 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>; >> - }; >> - >> - pinctrl_ebi_addr_nand: ebi-addr-0 { >> - atmel,pins = >> - <AT91_PIOD 2 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) >> - AT91_PIOD 3 >> AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>; >> - }; >> - }; >> - >> - pinctrl_qspi: qspi { >> - atmel,pins = >> - <AT91_PIOB 19 AT91_PERIPH_A >> AT91_PINCTRL_NONE >> - AT91_PIOB 20 AT91_PERIPH_A >> AT91_PINCTRL_NONE >> - AT91_PIOB 21 AT91_PERIPH_A >> AT91_PINCTRL_PULL_UP >> - AT91_PIOB 22 AT91_PERIPH_A >> AT91_PINCTRL_PULL_UP >> - AT91_PIOB 23 AT91_PERIPH_A >> AT91_PINCTRL_PULL_UP >> - AT91_PIOB 24 AT91_PERIPH_A >> AT91_PINCTRL_PULL_UP>; >> - }; >> - >> - pinctrl_flx0: flx0_default { >> - atmel,pins = >> - <AT91_PIOA 0 AT91_PERIPH_A >> AT91_PINCTRL_NONE >> - AT91_PIOA 1 AT91_PERIPH_A >> AT91_PINCTRL_NONE>; >> - }; >> - >> - pinctrl_onewire_tm_default: onewire_tm_default >> { >> - atmel,pins = >> - <AT91_PIOD 14 AT91_PERIPH_GPIO >> AT91_PINCTRL_PULL_UP>; >> - }; >> - >> - usb1 { >> - pinctrl_usb_default: usb_default { >> - atmel,pins = <AT91_PIOD 15 >> AT91_PERIPH_GPIO AT91_PINCTRL_NONE >> - AT91_PIOD 16 >> AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; >> - }; >> - }; >> - >> - }; >> }; >> }; >> }; >> @@ -221,6 +152,79 @@ >> status = "okay"; >> }; >> >> +&pinctrl { >> + /* shared pinctrl settings */ >> + qspi { >> + pinctrl_qspi: qspi { >> + atmel,pins = >> + <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE >> + AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE >> + AT91_PIOB 21 AT91_PERIPH_A >> AT91_PINCTRL_PULL_UP >> + AT91_PIOB 22 AT91_PERIPH_A >> AT91_PINCTRL_PULL_UP >> + AT91_PIOB 23 AT91_PERIPH_A >> AT91_PINCTRL_PULL_UP >> + AT91_PIOB 24 AT91_PERIPH_A >> AT91_PINCTRL_PULL_UP>; >> + }; >> + }; >> + >> + nand { >> + pinctrl_nand_oe_we: nand-oe-we-0 { >> + atmel,pins = >> + <AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS) >> + AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS)>; >> + }; >> + >> + pinctrl_nand_rb: nand-rb-0 { >> + atmel,pins = >> + <AT91_PIOD 5 AT91_PERIPH_GPIO >> AT91_PINCTRL_PULL_UP>; >> + }; >> + >> + pinctrl_nand_cs: nand-cs-0 { >> + atmel,pins = >> + <AT91_PIOD 4 AT91_PERIPH_GPIO >> AT91_PINCTRL_PULL_UP>; >> + }; >> + }; >> + >> + ebi { >> + pinctrl_ebi_data_0_7: ebi-data-lsb-0 { >> + atmel,pins = >> + <AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS) >> + AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS) >> + AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS) >> + AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS) >> + AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS) >> + AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS) >> + AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS) >> + AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS)>; >> + }; >> + >> + pinctrl_ebi_addr_nand: ebi-addr-0 { >> + atmel,pins = >> + <AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS) >> + AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE >> | AT91_PINCTRL_SLEWRATE_DIS)>; >> + }; >> + }; >> + >> + flexcom { >> + pinctrl_flx0: flx0_default { >> + atmel,pins = >> + <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE >> + AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>; >> + }; >> + }; >> + >> + pinctrl_onewire_tm_default: onewire_tm_default { >> + atmel,pins = >> + <AT91_PIOD 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; >> + }; >> + >> + usb1 { >> + pinctrl_usb_default: usb_default { >> + atmel,pins = <AT91_PIOD 15 AT91_PERIPH_GPIO >> AT91_PINCTRL_NONE >> + AT91_PIOD 16 AT91_PERIPH_GPIO >> AT91_PINCTRL_NONE>; >> + }; >> + }; >> +}; >> + >> &usb1 { >> num-ports = <3>; >> atmel,vbus-gpio = <0 >
-- Thanks and Regards, Manikandan M.