[PATCH v2 2/7] ARM: dts: at91: sam9x60: Define pinctrl node with its label
Manikandan.M at microchip.com
Manikandan.M at microchip.com
Mon Feb 3 10:17:50 CET 2025
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.gunasundar at 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 at 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.gunasundar at microchip.com>
>> Signed-off-by: Manikandan Muralidharan <manikandan.m at 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.
More information about the U-Boot
mailing list