diff options
Diffstat (limited to 'arch/arm/boot/dts/at91sam9x5.dtsi')
| -rw-r--r-- | arch/arm/boot/dts/at91sam9x5.dtsi | 270 | 
1 files changed, 237 insertions, 33 deletions
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index 03fc136421c..7ee49e8daf9 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi @@ -111,50 +111,244 @@  				interrupts = <21 4 0>;  			}; -			pioA: gpio@fffff400 { -				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; -				reg = <0xfffff400 0x100>; -				interrupts = <2 4 1>; -				#gpio-cells = <2>; -				gpio-controller; -				interrupt-controller; -				#interrupt-cells = <2>; -			}; +			pinctrl@fffff400 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus"; +				ranges = <0xfffff400 0xfffff400 0x800>; -			pioB: gpio@fffff600 { -				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; -				reg = <0xfffff600 0x100>; -				interrupts = <2 4 1>; -				#gpio-cells = <2>; -				gpio-controller; -				interrupt-controller; -				#interrupt-cells = <2>; +				/* shared pinctrl settings */ +				dbgu { +					pinctrl_dbgu: dbgu-0 { +						atmel,pins = +							<0 9 0x1 0x0	/* PA9 periph A */ +							 0 10 0x1 0x1>;	/* PA10 periph A with pullup */ +					}; +				}; + +				usart0 { +					pinctrl_usart0: usart0-0 { +						atmel,pins = +							<0 0 0x1 0x1	/* PA0 periph A with pullup */ +							 0 1 0x1 0x0>;	/* PA1 periph A */ +					}; + +					pinctrl_usart0_rts: usart0_rts-0 { +						atmel,pins = +							<0 2 0x1 0x0>;	/* PA2 periph A */ +					}; + +					pinctrl_usart0_cts: usart0_cts-0 { +						atmel,pins = +							<0 3 0x1 0x0>;	/* PA3 periph A */ +					}; +				}; + +				usart1 { +					pinctrl_usart1: usart1-0 { +						atmel,pins = +							<0 5 0x1 0x1	/* PA5 periph A with pullup */ +							 0 6 0x1 0x0>;	/* PA6 periph A */ +					}; + +					pinctrl_usart1_rts: usart1_rts-0 { +						atmel,pins = +							<3 27 0x3 0x0>;	/* PC27 periph C */ +					}; + +					pinctrl_usart1_cts: usart1_cts-0 { +						atmel,pins = +							<3 28 0x3 0x0>;	/* PC28 periph C */ +					}; +				}; + +				usart2 { +					pinctrl_usart2: usart2-0 { +						atmel,pins = +							<0 7 0x1 0x1	/* PA7 periph A with pullup */ +							 0 8 0x1 0x0>;	/* PA8 periph A */ +					}; + +					pinctrl_uart2_rts: uart2_rts-0 { +						atmel,pins = +							<0 0 0x2 0x0>;	/* PB0 periph B */ +					}; + +					pinctrl_uart2_cts: uart2_cts-0 { +						atmel,pins = +							<0 1 0x2 0x0>;	/* PB1 periph B */ +					}; +				}; + +				usart3 { +					pinctrl_uart3: usart3-0 { +						atmel,pins = +							<3 23 0x2 0x1	/* PC22 periph B with pullup */ +							 3 23 0x2 0x0>;	/* PC23 periph B */ +					}; + +					pinctrl_usart3_rts: usart3_rts-0 { +						atmel,pins = +							<3 24 0x2 0x0>;	/* PC24 periph B */ +					}; + +					pinctrl_usart3_cts: usart3_cts-0 { +						atmel,pins = +							<3 25 0x2 0x0>;	/* PC25 periph B */ +					}; +				}; + +				uart0 { +					pinctrl_uart0: uart0-0 { +						atmel,pins = +							<3 8 0x3 0x0	/* PC8 periph C */ +							 3 9 0x3 0x1>;	/* PC9 periph C with pullup */ +					}; +				}; + +				uart1 { +					pinctrl_uart1: uart1-0 { +						atmel,pins = +							<3 16 0x3 0x0	/* PC16 periph C */ +							 3 17 0x3 0x1>;	/* PC17 periph C with pullup */ +					}; +				}; + +				nand { +					pinctrl_nand: nand-0 { +						atmel,pins = +							<3 4 0x0 0x1	/* PD5 gpio RDY pin pull_up */ +							 3 5 0x0 0x1>;	/* PD4 gpio enable pin pull_up */ +					}; +				}; + +				macb0 { +					pinctrl_macb0_rmii: macb0_rmii-0 { +						atmel,pins = +							<1 0 0x1 0x0	/* PB0 periph A */ +							 1 1 0x1 0x0	/* PB1 periph A */ +							 1 2 0x1 0x0	/* PB2 periph A */ +							 1 3 0x1 0x0	/* PB3 periph A */ +							 1 4 0x1 0x0	/* PB4 periph A */ +							 1 5 0x1 0x0	/* PB5 periph A */ +							 1 6 0x1 0x0	/* PB6 periph A */ +							 1 7 0x1 0x0	/* PB7 periph A */ +							 1 9 0x1 0x0	/* PB9 periph A */ +							 1 10 0x1 0x0>;	/* PB10 periph A */ +					}; + +					pinctrl_macb0_rmii_mii: macb0_rmii_mii-0 { +						atmel,pins = +							<1 8 0x1 0x0	/* PA8 periph A */ +							 1 11 0x1 0x0	/* PA11 periph A */ +							 1 12 0x1 0x0	/* PA12 periph A */ +							 1 13 0x1 0x0	/* PA13 periph A */ +							 1 14 0x1 0x0	/* PA14 periph A */ +							 1 15 0x1 0x0	/* PA15 periph A */ +							 1 16 0x1 0x0	/* PA16 periph A */ +							 1 17 0x1 0x0>;	/* PA17 periph A */ +					}; +				}; + +				mmc0 { +					pinctrl_mmc0_slot0_clk_cmd_dat0: mmc0_slot0_clk_cmd_dat0-0 { +						atmel,pins = +							<0 17 0x1 0x0	/* PA17 periph A */ +							 0 16 0x1 0x1	/* PA16 periph A with pullup */ +							 0 15 0x1 0x1>;	/* PA15 periph A with pullup */ +					}; + +					pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 { +						atmel,pins = +							<0 18 0x1 0x1	/* PA18 periph A with pullup */ +							 0 19 0x1 0x1	/* PA19 periph A with pullup */ +							 0 20 0x1 0x1>;	/* PA20 periph A with pullup */ +					}; +				}; + +				mmc1 { +					pinctrl_mmc1_slot0_clk_cmd_dat0: mmc1_slot0_clk_cmd_dat0-0 { +						atmel,pins = +							<0 13 0x2 0x0	/* PA13 periph B */ +							 0 12 0x2 0x1	/* PA12 periph B with pullup */ +							 0 11 0x2 0x1>;	/* PA11 periph B with pullup */ +					}; + +					pinctrl_mmc1_slot0_dat1_3: mmc1_slot0_dat1_3-0 { +						atmel,pins = +							<0 2 0x2 0x1	/* PA2 periph B with pullup */ +							 0 3 0x2 0x1	/* PA3 periph B with pullup */ +							 0 4 0x2 0x1>;	/* PA4 periph B with pullup */ +					}; +				}; + +				pioA: gpio@fffff400 { +					compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; +					reg = <0xfffff400 0x200>; +					interrupts = <2 4 1>; +					#gpio-cells = <2>; +					gpio-controller; +					interrupt-controller; +					#interrupt-cells = <2>; +				}; + +				pioB: gpio@fffff600 { +					compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; +					reg = <0xfffff600 0x200>; +					interrupts = <2 4 1>; +					#gpio-cells = <2>; +					gpio-controller; +					#gpio-lines = <19>; +					interrupt-controller; +					#interrupt-cells = <2>; +				}; + +				pioC: gpio@fffff800 { +					compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; +					reg = <0xfffff800 0x200>; +					interrupts = <3 4 1>; +					#gpio-cells = <2>; +					gpio-controller; +					interrupt-controller; +					#interrupt-cells = <2>; +				}; + +				pioD: gpio@fffffa00 { +					compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; +					reg = <0xfffffa00 0x200>; +					interrupts = <3 4 1>; +					#gpio-cells = <2>; +					gpio-controller; +					#gpio-lines = <22>; +					interrupt-controller; +					#interrupt-cells = <2>; +				};  			}; -			pioC: gpio@fffff800 { -				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; -				reg = <0xfffff800 0x100>; -				interrupts = <3 4 1>; -				#gpio-cells = <2>; -				gpio-controller; -				interrupt-controller; -				#interrupt-cells = <2>; +			mmc0: mmc@f0008000 { +				compatible = "atmel,hsmci"; +				reg = <0xf0008000 0x600>; +				interrupts = <12 4 0>; +				#address-cells = <1>; +				#size-cells = <0>; +				status = "disabled";  			}; -			pioD: gpio@fffffa00 { -				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; -				reg = <0xfffffa00 0x100>; -				interrupts = <3 4 1>; -				#gpio-cells = <2>; -				gpio-controller; -				interrupt-controller; -				#interrupt-cells = <2>; +			mmc1: mmc@f000c000 { +				compatible = "atmel,hsmci"; +				reg = <0xf000c000 0x600>; +				interrupts = <26 4 0>; +				#address-cells = <1>; +				#size-cells = <0>; +				status = "disabled";  			};  			dbgu: serial@fffff200 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfffff200 0x200>;  				interrupts = <1 4 7>; +				pinctrl-names = "default"; +				pinctrl-0 = <&pinctrl_dbgu>;  				status = "disabled";  			}; @@ -164,6 +358,8 @@  				interrupts = <5 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx; +				pinctrl-names = "default"; +				pinctrl-0 = <&pinctrl_usart0>;  				status = "disabled";  			}; @@ -173,6 +369,8 @@  				interrupts = <6 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx; +				pinctrl-names = "default"; +				pinctrl-0 = <&pinctrl_usart1>;  				status = "disabled";  			}; @@ -182,6 +380,8 @@  				interrupts = <7 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx; +				pinctrl-names = "default"; +				pinctrl-0 = <&pinctrl_usart2>;  				status = "disabled";  			}; @@ -189,6 +389,8 @@  				compatible = "cdns,at32ap7000-macb", "cdns,macb";  				reg = <0xf802c000 0x100>;  				interrupts = <24 4 3>; +				pinctrl-names = "default"; +				pinctrl-0 = <&pinctrl_macb0_rmii>;  				status = "disabled";  			}; @@ -273,6 +475,8 @@  			      >;  			atmel,nand-addr-offset = <21>;  			atmel,nand-cmd-offset = <22>; +			pinctrl-names = "default"; +			pinctrl-0 = <&pinctrl_nand>;  			gpios = <&pioD 5 0  				 &pioD 4 0  				 0  |