diff options
Diffstat (limited to 'dts/upstream/src/arm/microchip')
30 files changed, 899 insertions, 90 deletions
| diff --git a/dts/upstream/src/arm/microchip/at91-sam9x60ek.dts b/dts/upstream/src/arm/microchip/at91-sam9x60ek.dts index cdc56b53299..c1ff3248bd8 100644 --- a/dts/upstream/src/arm/microchip/at91-sam9x60ek.dts +++ b/dts/upstream/src/arm/microchip/at91-sam9x60ek.dts @@ -609,7 +609,7 @@  		compatible = "jedec,spi-nor";  		reg = <0>;  		spi-max-frequency = <104000000>; -		spi-cs-setup-ns = <7>; +		spi-cs-setup-delay-ns = <7>;  		spi-tx-bus-width = <4>;  		spi-rx-bus-width = <4>;  		m25p,fast-read; diff --git a/dts/upstream/src/arm/microchip/at91-sama5d27_som1.dtsi b/dts/upstream/src/arm/microchip/at91-sama5d27_som1.dtsi index 8ac85dac5a9..13c28e92b17 100644 --- a/dts/upstream/src/arm/microchip/at91-sama5d27_som1.dtsi +++ b/dts/upstream/src/arm/microchip/at91-sama5d27_som1.dtsi @@ -44,7 +44,7 @@  					compatible = "jedec,spi-nor";  					reg = <0>;  					spi-max-frequency = <104000000>; -					spi-cs-setup-ns = <7>; +					spi-cs-setup-delay-ns = <7>;  					spi-tx-bus-width = <4>;  					spi-rx-bus-width = <4>;  					m25p,fast-read; diff --git a/dts/upstream/src/arm/microchip/at91-sama5d27_wlsom1.dtsi b/dts/upstream/src/arm/microchip/at91-sama5d27_wlsom1.dtsi index ef11606a82b..0417f53b3e9 100644 --- a/dts/upstream/src/arm/microchip/at91-sama5d27_wlsom1.dtsi +++ b/dts/upstream/src/arm/microchip/at91-sama5d27_wlsom1.dtsi @@ -234,7 +234,7 @@  		compatible = "jedec,spi-nor";  		reg = <0>;  		spi-max-frequency = <104000000>; -		spi-cs-setup-ns = <7>; +		spi-cs-setup-delay-ns = <7>;  		spi-rx-bus-width = <4>;  		spi-tx-bus-width = <4>;  		m25p,fast-read; @@ -385,7 +385,7 @@  	wilc: wifi@0 {  		reg = <0>; -		compatible = "microchip,wilc1000"; +		compatible = "microchip,wilc3000", "microchip,wilc1000";  		pinctrl-names = "default";  		pinctrl-0 = <&pinctrl_wilc_default>;  		clocks = <&pmc PMC_TYPE_SYSTEM 9>; diff --git a/dts/upstream/src/arm/microchip/at91-sama5d2_icp.dts b/dts/upstream/src/arm/microchip/at91-sama5d2_icp.dts index 9fa6f1395aa..fbae6a9af6c 100644 --- a/dts/upstream/src/arm/microchip/at91-sama5d2_icp.dts +++ b/dts/upstream/src/arm/microchip/at91-sama5d2_icp.dts @@ -714,7 +714,7 @@  		compatible = "jedec,spi-nor";  		reg = <0>;  		spi-max-frequency = <104000000>; -		spi-cs-setup-ns = <7>; +		spi-cs-setup-delay-ns = <7>;  		spi-tx-bus-width = <4>;  		spi-rx-bus-width = <4>;  		m25p,fast-read; diff --git a/dts/upstream/src/arm/microchip/at91-sama7d65_curiosity.dts b/dts/upstream/src/arm/microchip/at91-sama7d65_curiosity.dts index 30fdc4f55a3..d086437f5e6 100644 --- a/dts/upstream/src/arm/microchip/at91-sama7d65_curiosity.dts +++ b/dts/upstream/src/arm/microchip/at91-sama7d65_curiosity.dts @@ -30,6 +30,32 @@  		device_type = "memory";  		reg = <0x60000000 0x40000000>;  	}; + +	reg_5v: regulator-5v { +		compatible = "regulator-fixed"; +		regulator-name = "5V_MAIN"; +		regulator-min-microvolt = <5000000>; +		regulator-max-microvolt = <5000000>; +		regulator-always-on; +	}; +}; + +&can1 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_can1_default>; +	status = "okay"; +}; + +&can2 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_can2_default>; +	status = "okay"; +}; + +&can3 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_can3_default>; +	status = "okay";  };  &dma0 { @@ -60,6 +86,26 @@  	status = "okay";  }; +&gmac0 { +	#address-cells = <1>; +	#size-cells = <0>; +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_gmac0_default +		     &pinctrl_gmac0_mdio_default +		     &pinctrl_gmac0_txck_default +		     &pinctrl_gmac0_phy_irq>; +	phy-mode = "rgmii-id"; +	nvmem-cells = <&eeprom0_eui48>; +	nvmem-cell-names = "mac-address"; +	status = "okay"; + +	ethernet-phy@7 { +		reg = <0x7>; +		interrupt-parent = <&pioa>; +		interrupts = <PIN_PC1 IRQ_TYPE_LEVEL_LOW>; +	}; +}; +  &i2c10 {  	dmas = <0>, <0>;  	i2c-analog-filter; @@ -99,6 +145,149 @@  			label = "VDDCPU";  		};  	}; + +	pmic@5b { +		compatible = "microchip,mcp16502"; +		reg = <0x5b>; +		lvin-supply = <®_5v>; +		pvin1-supply = <®_5v>; +		pvin2-supply = <®_5v>; +		pvin3-supply = <®_5v>; +		pvin4-supply = <®_5v>; +		status = "okay"; + +		regulators { +			vdd_3v3: VDD_IO { +				regulator-name = "VDD_IO"; +				regulator-min-microvolt = <3300000>; +				regulator-max-microvolt = <3300000>; +				regulator-initial-mode = <2>; +				regulator-allowed-modes = <2>, <4>; +				regulator-always-on; + +				regulator-state-standby { +					regulator-on-in-suspend; +					regulator-suspend-microvolt = <3300000>; +					regulator-mode = <4>; +				}; + +				regulator-state-mem { +					regulator-off-in-suspend; +					regulator-mode = <4>; +				}; +			}; + +			vddioddr: VDD_DDR { +				regulator-name = "VDD_DDR"; +				regulator-min-microvolt = <1350000>; +				regulator-max-microvolt = <1350000>; +				regulator-initial-mode = <2>; +				regulator-allowed-modes = <2>, <4>; +				regulator-always-on; + +				regulator-state-standby { +					regulator-on-in-suspend; +					regulator-suspend-microvolt = <1350000>; +					regulator-mode = <4>; +				}; + +				regulator-state-mem { +					regulator-on-in-suspend; +					regulator-suspend-microvolt = <1350000>; +					regulator-mode = <4>; +				}; +			}; + +			vddcore: VDD_CORE { +				regulator-name = "VDD_CORE"; +				regulator-min-microvolt = <1050000>; +				regulator-max-microvolt = <1050000>; +				regulator-initial-mode = <2>; +				regulator-allowed-modes = <2>, <4>; +				regulator-always-on; + +				regulator-state-standby { +					regulator-on-in-suspend; +					regulator-suspend-microvolt = <1050000>; +					regulator-mode = <4>; +				}; + +				regulator-state-mem { +					regulator-off-in-suspend; +					regulator-mode = <4>; +				}; +			}; + +			vddcpu: VDD_OTHER { +				regulator-name = "VDD_OTHER"; +				regulator-min-microvolt = <1050000>; +				regulator-max-microvolt = <1250000>; +				regulator-initial-mode = <2>; +				regulator-allowed-modes = <2>, <4>; +				regulator-ramp-delay = <3125>; +				regulator-always-on; + +				regulator-state-standby { +					regulator-on-in-suspend; +					regulator-suspend-microvolt = <1050000>; +					regulator-mode = <4>; +				}; + +				regulator-state-mem { +					regulator-off-in-suspend; +					regulator-mode = <4>; +				}; +			}; + +			vldo1: LDO1 { +				regulator-name = "LDO1"; +				regulator-min-microvolt = <1800000>; +				regulator-max-microvolt = <1800000>; +				regulator-always-on; + +				regulator-state-standby { +					regulator-suspend-microvolt = <1800000>; +					regulator-on-in-suspend; +				}; + +				regulator-state-mem { +					regulator-off-in-suspend; +				}; +			}; + +			vldo2: LDO2 { +				regulator-name = "LDO2"; +				regulator-min-microvolt = <1200000>; +				regulator-max-microvolt = <3700000>; + +				regulator-state-standby { +					regulator-on-in-suspend; +				}; + +				regulator-state-mem { +					regulator-off-in-suspend; +				}; +			}; +		}; +	}; + +	eeprom0: eeprom@51 { +		compatible = "microchip,24aa025e48"; +		reg = <0x51>; +		size = <256>; +		pagesize = <16>; +		vcc-supply = <&vdd_3v3>; + +		nvmem-layout { +			compatible = "fixed-layout"; +			#address-cells = <1>; +			#size-cells = <1>; + +			eeprom0_eui48: eui48@fa { +				reg = <0xfa 0x6>; +			}; +		}; +	};  };  &main_xtal { @@ -106,6 +295,57 @@  };  &pioa { +	pinctrl_can1_default: can1-default { +		pinmux = <PIN_PD10__CANTX1>, +			 <PIN_PD11__CANRX1>; +		bias-disable; +	}; + +	pinctrl_can2_default: can2-default { +		pinmux = <PIN_PD12__CANTX2>, +			 <PIN_PD13__CANRX2>; +		bias-disable; +	}; + +	pinctrl_can3_default: can3-default { +		pinmux = <PIN_PD14__CANTX3>, +			 <PIN_PD15__CANRX3>; +		bias-disable; +	}; + +	pinctrl_gmac0_default: gmac0-default { +		pinmux = <PIN_PA26__G0_TX0>, +			 <PIN_PA27__G0_TX1>, +			 <PIN_PB4__G0_TX2>, +			 <PIN_PB5__G0_TX3>, +			 <PIN_PA29__G0_RX0>, +			 <PIN_PA30__G0_RX1>, +			 <PIN_PB2__G0_RX2>, +			 <PIN_PB6__G0_RX3>, +			 <PIN_PA25__G0_TXCTL>, +			 <PIN_PB3__G0_RXCK>, +			 <PIN_PA28__G0_RXCTL>; +		slew-rate = <0>; +		bias-disable; +	}; + +	pinctrl_gmac0_mdio_default: gmac0-mdio-default { +		pinmux = <PIN_PA31__G0_MDC>, +			 <PIN_PB0__G0_MDIO>; +		bias-disable; +	}; + +	pinctrl_gmac0_phy_irq: gmac0-phy-irq { +		pinmux = <PIN_PC1__GPIO>; +		bias-disable; +	}; + +	pinctrl_gmac0_txck_default: gmac0-txck-default { +		pinmux = <PIN_PB1__G0_REFCK>; +		slew-rate = <0>; +		bias-pull-up; +	}; +  	pinctrl_i2c10_default: i2c10-default{  		pinmux = <PIN_PB19__FLEXCOM10_IO1>,  			 <PIN_PB20__FLEXCOM10_IO0>; @@ -141,8 +381,14 @@  	};  }; +&rtt { +	atmel,rtt-rtc-time-reg = <&gpbr 0x0>; +}; +  &sdmmc1 {  	bus-width = <4>; +	no-1-8-v; +	sdhci-caps-mask = <0x0 0x00200000>;  	pinctrl-names = "default";  	pinctrl-0 = <&pinctrl_sdmmc1_default>;  	status = "okay"; diff --git a/dts/upstream/src/arm/microchip/at91-sama7g54_curiosity.dts b/dts/upstream/src/arm/microchip/at91-sama7g54_curiosity.dts index 2dec2218f32..eb5f27ce194 100644 --- a/dts/upstream/src/arm/microchip/at91-sama7g54_curiosity.dts +++ b/dts/upstream/src/arm/microchip/at91-sama7g54_curiosity.dts @@ -369,6 +369,38 @@  		spi-tx-bus-width = <4>;  		spi-rx-bus-width = <4>;  		m25p,fast-read; +		label = "at91-qspi"; + +		partitions { +			compatible = "fixed-partitions"; +			#address-cells = <1>; +			#size-cells = <1>; + +			at91bootstrap@0 { +				label = "qspi1: at91bootstrap"; +				reg = <0x0 0x40000>; +			}; + +			bootloader@40000 { +				label = "qspi1: u-boot"; +				reg = <0x40000 0x100000>; +			}; + +			bootloaderenv@140000 { +				label = "qspi1: u-boot env"; +				reg = <0x140000 0x40000>; +			}; + +			dtb@180000 { +				label = "qspi1: device tree"; +				reg = <0x180000 0x80000>; +			}; + +			kernel@200000 { +				label = "qspi1: kernel"; +				reg = <0x200000 0x600000>; +			}; +		};  	};  }; diff --git a/dts/upstream/src/arm/microchip/at91-sama7g5ek.dts b/dts/upstream/src/arm/microchip/at91-sama7g5ek.dts index 2543599013b..3924f62ff0f 100644 --- a/dts/upstream/src/arm/microchip/at91-sama7g5ek.dts +++ b/dts/upstream/src/arm/microchip/at91-sama7g5ek.dts @@ -35,16 +35,6 @@  		i2c2 = &i2c9;  	}; -	clocks { -		slow_xtal { -			clock-frequency = <32768>; -		}; - -		main_xtal { -			clock-frequency = <24000000>; -		}; -	}; -  	gpio-keys {  		compatible = "gpio-keys"; @@ -556,6 +546,10 @@  	pinctrl-0 = <&pinctrl_i2s0_default>;  }; +&main_xtal { +	clock-frequency = <24000000>; +}; +  &pdmc0 {  	#sound-dai-cells = <0>;  	microchip,mic-pos = <MCHP_PDMC_DS0 MCHP_PDMC_CLK_NEGATIVE>, /* MIC 1 */ @@ -885,6 +879,10 @@  	};  }; +&slow_xtal { +	clock-frequency = <32768>; +}; +  &spdifrx {  	pinctrl-names = "default";  	pinctrl-0 = <&pinctrl_spdifrx_default>; diff --git a/dts/upstream/src/arm/microchip/at91rm9200.dtsi b/dts/upstream/src/arm/microchip/at91rm9200.dtsi index 2a4c83d8873..e105ad855ce 100644 --- a/dts/upstream/src/arm/microchip/at91rm9200.dtsi +++ b/dts/upstream/src/arm/microchip/at91rm9200.dtsi @@ -714,9 +714,8 @@  	i2c-gpio-0 {  		compatible = "i2c-gpio"; -		gpios = <&pioA 25 GPIO_ACTIVE_HIGH /* sda */ -			 &pioA 26 GPIO_ACTIVE_HIGH /* scl */ -			>; +		sda-gpios = <&pioA 25 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioA 26 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <2>;	/* ~100 kHz */ diff --git a/dts/upstream/src/arm/microchip/at91sam9260.dtsi b/dts/upstream/src/arm/microchip/at91sam9260.dtsi index ec973f07a96..fc0b6a73204 100644 --- a/dts/upstream/src/arm/microchip/at91sam9260.dtsi +++ b/dts/upstream/src/arm/microchip/at91sam9260.dtsi @@ -781,9 +781,8 @@  	i2c_gpio0: i2c-gpio-0 {  		compatible = "i2c-gpio"; -		gpios = <&pioA 23 GPIO_ACTIVE_HIGH /* sda */ -			 &pioA 24 GPIO_ACTIVE_HIGH /* scl */ -			>; +		sda-gpios = <&pioA 23 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioA 24 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <2>;	/* ~100 kHz */ diff --git a/dts/upstream/src/arm/microchip/at91sam9261.dtsi b/dts/upstream/src/arm/microchip/at91sam9261.dtsi index 0b556c23455..d1d678b77e8 100644 --- a/dts/upstream/src/arm/microchip/at91sam9261.dtsi +++ b/dts/upstream/src/arm/microchip/at91sam9261.dtsi @@ -655,8 +655,8 @@  		compatible = "i2c-gpio";  		pinctrl-names = "default";  		pinctrl-0 = <&pinctrl_i2c_bitbang>; -		gpios = <&pioA 7 GPIO_ACTIVE_HIGH>, /* sda */ -			<&pioA 8 GPIO_ACTIVE_HIGH>; /* scl */ +		sda-gpios = <&pioA 7 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioA 8 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <2>;	/* ~100 kHz */ diff --git a/dts/upstream/src/arm/microchip/at91sam9263.dtsi b/dts/upstream/src/arm/microchip/at91sam9263.dtsi index 3e9e5ce7c6c..a4b5d1f228f 100644 --- a/dts/upstream/src/arm/microchip/at91sam9263.dtsi +++ b/dts/upstream/src/arm/microchip/at91sam9263.dtsi @@ -826,9 +826,8 @@  	i2c-gpio-0 {  		compatible = "i2c-gpio"; -		gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */ -			 &pioB 5 GPIO_ACTIVE_HIGH /* scl */ -			>; +		sda-gpios = <&pioB 4 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioB 5 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <2>;	/* ~100 kHz */ diff --git a/dts/upstream/src/arm/microchip/at91sam9263ek.dts b/dts/upstream/src/arm/microchip/at91sam9263ek.dts index 471ea25296a..93c5268a084 100644 --- a/dts/upstream/src/arm/microchip/at91sam9263ek.dts +++ b/dts/upstream/src/arm/microchip/at91sam9263ek.dts @@ -152,7 +152,7 @@  				nand@3 {  					reg = <0x3 0x0 0x800000>;  					rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>; -					cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>; +					cs-gpios = <&pioD 15 GPIO_ACTIVE_HIGH>;  					nand-bus-width = <8>;  					nand-ecc-mode = "soft";  					nand-on-flash-bbt; diff --git a/dts/upstream/src/arm/microchip/at91sam9g25-gardena-smart-gateway.dts b/dts/upstream/src/arm/microchip/at91sam9g25-gardena-smart-gateway.dts index e0c1e8df81b..947c011c1b0 100644 --- a/dts/upstream/src/arm/microchip/at91sam9g25-gardena-smart-gateway.dts +++ b/dts/upstream/src/arm/microchip/at91sam9g25-gardena-smart-gateway.dts @@ -46,7 +46,7 @@  		led-power-green {  			label = "smartgw:power:green";  			gpios = <&pioC 20 GPIO_ACTIVE_HIGH>; -			default-state = "on"; +			linux,default-trigger = "timer";  		};  		led-power-red { diff --git a/dts/upstream/src/arm/microchip/at91sam9g45.dtsi b/dts/upstream/src/arm/microchip/at91sam9g45.dtsi index 535e26e05e9..4e00ed2d3ec 100644 --- a/dts/upstream/src/arm/microchip/at91sam9g45.dtsi +++ b/dts/upstream/src/arm/microchip/at91sam9g45.dtsi @@ -1010,9 +1010,8 @@  	i2c-gpio-0 {  		compatible = "i2c-gpio"; -		gpios = <&pioA 20 GPIO_ACTIVE_HIGH /* sda */ -			 &pioA 21 GPIO_ACTIVE_HIGH /* scl */ -			>; +		sda-gpios = <&pioA 20 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioA 21 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <5>;	/* ~100 kHz */ diff --git a/dts/upstream/src/arm/microchip/at91sam9n12.dtsi b/dts/upstream/src/arm/microchip/at91sam9n12.dtsi index 2f930c39ce4..af41c3dbb4b 100644 --- a/dts/upstream/src/arm/microchip/at91sam9n12.dtsi +++ b/dts/upstream/src/arm/microchip/at91sam9n12.dtsi @@ -786,9 +786,8 @@  	i2c-gpio-0 {  		compatible = "i2c-gpio"; -		gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */ -			 &pioA 31 GPIO_ACTIVE_HIGH /* scl */ -			>; +		sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioA 31 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <2>;	/* ~100 kHz */ diff --git a/dts/upstream/src/arm/microchip/at91sam9rl.dtsi b/dts/upstream/src/arm/microchip/at91sam9rl.dtsi index 1fec9fcc7cd..de74cf2980a 100644 --- a/dts/upstream/src/arm/microchip/at91sam9rl.dtsi +++ b/dts/upstream/src/arm/microchip/at91sam9rl.dtsi @@ -833,8 +833,8 @@  	i2c-gpio-0 {  		compatible = "i2c-gpio"; -		gpios = <&pioA 23 GPIO_ACTIVE_HIGH>, /* sda */ -			<&pioA 24 GPIO_ACTIVE_HIGH>; /* scl */ +		sda-gpios = <&pioA 23 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioA 24 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <2>;	/* ~100 kHz */ @@ -847,8 +847,8 @@  	i2c-gpio-1 {  		compatible = "i2c-gpio"; -		gpios = <&pioD 10 GPIO_ACTIVE_HIGH>, /* sda */ -			<&pioD 11 GPIO_ACTIVE_HIGH>; /* scl */ +		sda-gpios = <&pioD 10 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioD 11 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <2>;	/* ~100 kHz */ diff --git a/dts/upstream/src/arm/microchip/at91sam9x5.dtsi b/dts/upstream/src/arm/microchip/at91sam9x5.dtsi index 17bdf1e4db0..9070fd06995 100644 --- a/dts/upstream/src/arm/microchip/at91sam9x5.dtsi +++ b/dts/upstream/src/arm/microchip/at91sam9x5.dtsi @@ -933,9 +933,8 @@  	i2c-gpio-0 {  		compatible = "i2c-gpio"; -		gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */ -			 &pioA 31 GPIO_ACTIVE_HIGH /* scl */ -			>; +		sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioA 31 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <2>;	/* ~100 kHz */ @@ -948,9 +947,8 @@  	i2c-gpio-1 {  		compatible = "i2c-gpio"; -		gpios = <&pioC 0 GPIO_ACTIVE_HIGH /* sda */ -			 &pioC 1 GPIO_ACTIVE_HIGH /* scl */ -			>; +		sda-gpios = <&pioC 0 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioC 1 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <2>;	/* ~100 kHz */ @@ -963,9 +961,8 @@  	i2c-gpio-2 {  		compatible = "i2c-gpio"; -		gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */ -			 &pioB 5 GPIO_ACTIVE_HIGH /* scl */ -			>; +		sda-gpios = <&pioB 4 GPIO_ACTIVE_HIGH>; +		scl-gpios = <&pioB 5 GPIO_ACTIVE_HIGH>;  		i2c-gpio,sda-open-drain;  		i2c-gpio,scl-open-drain;  		i2c-gpio,delay-us = <2>;	/* ~100 kHz */ diff --git a/dts/upstream/src/arm/microchip/sam9x7.dtsi b/dts/upstream/src/arm/microchip/sam9x7.dtsi index b217a908f52..66c07e642c3 100644 --- a/dts/upstream/src/arm/microchip/sam9x7.dtsi +++ b/dts/upstream/src/arm/microchip/sam9x7.dtsi @@ -45,11 +45,13 @@  	clocks {  		slow_xtal: clock-slowxtal {  			compatible = "fixed-clock"; +			clock-output-names = "slow_xtal";  			#clock-cells = <0>;  		};  		main_xtal: clock-mainxtal {  			compatible = "fixed-clock"; +			clock-output-names = "main_xtal";  			#clock-cells = <0>;  		};  	}; @@ -983,6 +985,32 @@  			status = "disabled";  		}; +		hlcdc: hlcdc@f8038000 { +			compatible = "microchip,sam9x75-xlcdc"; +			reg = <0xf8038000 0x4000>; +			interrupts = <25 IRQ_TYPE_LEVEL_HIGH 0>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 25>, <&pmc PMC_TYPE_GCK 25>, <&clk32k 1>; +			clock-names = "periph_clk", "sys_clk", "slow_clk"; +			status = "disabled"; + +			display-controller { +				compatible = "atmel,hlcdc-display-controller"; +				#address-cells = <1>; +				#size-cells = <0>; + +				port@0 { +					reg = <0>; +					#address-cells = <1>; +					#size-cells = <0>; +				}; +			}; + +			pwm { +				compatible = "atmel,hlcdc-pwm"; +				#pwm-cells = <3>; +			}; +		}; +  		flx9: flexcom@f8040000 {  			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";  			reg = <0xf8040000 0x200>; @@ -1087,6 +1115,15 @@  			};  		}; +		lvds_controller: lvds-controller@f8060000 { +			compatible = "microchip,sam9x75-lvds"; +			reg = <0xf8060000 0x100>; +			interrupts = <56 IRQ_TYPE_LEVEL_HIGH 0>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 56>; +			clock-names = "pclk"; +			status = "disabled"; +		}; +  		matrix: matrix@ffffde00 {  			compatible = "microchip,sam9x7-matrix", "atmel,at91sam9x5-matrix", "syscon";  			reg = <0xffffde00 0x200>; diff --git a/dts/upstream/src/arm/microchip/sama5d2.dtsi b/dts/upstream/src/arm/microchip/sama5d2.dtsi index dc22fb67933..17430d7f205 100644 --- a/dts/upstream/src/arm/microchip/sama5d2.dtsi +++ b/dts/upstream/src/arm/microchip/sama5d2.dtsi @@ -32,6 +32,8 @@  			device_type = "cpu";  			compatible = "arm,cortex-a5";  			reg = <0>; +			d-cache-size = <0x8000>;	// L1, 32 KB +			i-cache-size = <0x8000>;	// L1, 32 KB  			next-level-cache = <&L2>;  		};  	}; @@ -160,6 +162,7 @@  			interrupts = <63 IRQ_TYPE_LEVEL_HIGH 4>;  			cache-unified;  			cache-level = <2>; +			cache-size = <0x20000>;		// L2, 128 KB  		};  		ebi: ebi@10000000 { diff --git a/dts/upstream/src/arm/microchip/sama5d3.dtsi b/dts/upstream/src/arm/microchip/sama5d3.dtsi index e95799c17fd..00ba59ac196 100644 --- a/dts/upstream/src/arm/microchip/sama5d3.dtsi +++ b/dts/upstream/src/arm/microchip/sama5d3.dtsi @@ -48,6 +48,8 @@  			device_type = "cpu";  			compatible = "arm,cortex-a5";  			reg = <0x0>; +			d-cache-size = <0x8000>;	// L1, 32 KB +			i-cache-size = <0x8000>;	// L1, 32 KB  		};  	}; diff --git a/dts/upstream/src/arm/microchip/sama5d4.dtsi b/dts/upstream/src/arm/microchip/sama5d4.dtsi index 59a7d557c7c..ec1d68c640d 100644 --- a/dts/upstream/src/arm/microchip/sama5d4.dtsi +++ b/dts/upstream/src/arm/microchip/sama5d4.dtsi @@ -50,6 +50,8 @@  			device_type = "cpu";  			compatible = "arm,cortex-a5";  			reg = <0>; +			d-cache-size = <0x8000>;	// L1, 32 KB +			i-cache-size = <0x8000>;	// L1, 32 KB  			next-level-cache = <&L2>;  		};  	}; @@ -143,6 +145,7 @@  			interrupts = <67 IRQ_TYPE_LEVEL_HIGH 4>;  			cache-unified;  			cache-level = <2>; +			cache-size = <0x20000>;		// L2, 128 KB  		};  		ebi: ebi@10000000 { diff --git a/dts/upstream/src/arm/microchip/sama7d65.dtsi b/dts/upstream/src/arm/microchip/sama7d65.dtsi index b6710ccd4c3..c191acc2c89 100644 --- a/dts/upstream/src/arm/microchip/sama7d65.dtsi +++ b/dts/upstream/src/arm/microchip/sama7d65.dtsi @@ -32,27 +32,64 @@  			device_type = "cpu";  			clocks = <&pmc PMC_TYPE_CORE PMC_CPUPLL>;  			clock-names = "cpu"; +			d-cache-size = <0x8000>;	// L1, 32 KB +			i-cache-size = <0x8000>;	// L1, 32 KB +			next-level-cache = <&L2>; + +			L2: l2-cache { +				compatible = "cache"; +				cache-level = <2>; +				cache-size = <0x40000>; // L2, 256 KB +				cache-unified; +			};  		};  	};  	clocks {  		main_xtal: clock-mainxtal {  			compatible = "fixed-clock"; +			clock-output-names = "main_xtal";  			#clock-cells = <0>;  		};  		slow_xtal: clock-slowxtal {  			compatible = "fixed-clock"; +			clock-output-names = "slow_xtal";  			#clock-cells = <0>;  		};  	}; +	ns_sram: sram@100000 { +		compatible = "mmio-sram"; +		reg = <0x100000 0x20000>; +		ranges; +		#address-cells = <1>; +		#size-cells = <1>; +	}; +  	soc {  		compatible = "simple-bus";  		ranges;  		#address-cells = <1>;  		#size-cells = <1>; +		securam: sram@e0000800 { +			compatible = "microchip,sama7d65-securam", "atmel,sama5d2-securam", "mmio-sram"; +			reg = <0xe0000800 0x4000>; +			ranges = <0 0xe0000800 0x4000>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 17>; +			#address-cells = <1>; +			#size-cells = <1>; +			no-memory-wc; +		}; + +		secumod: security-module@e0004000 { +			compatible = "microchip,sama7d65-secumod", "atmel,sama5d2-secumod", "syscon"; +			reg = <0xe0004000 0x4000>; +			gpio-controller; +			#gpio-cells = <2>; +		}; +  		sfrbu: sfr@e0008000 {  			compatible ="microchip,sama7d65-sfrbu", "atmel,sama5d2-sfrbu", "syscon";  			reg = <0xe0008000 0x20>; @@ -107,6 +144,13 @@  			status = "disabled";  		}; +		rtt: rtc@e001d300 { +			compatible = "microchip,sama7d65-rtt", "atmel,at91sam9260-rtt"; +			reg = <0xe001d300 0x30>; +			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&clk32k 0>; +		}; +  		clk32k: clock-controller@e001d500 {  			compatible = "microchip,sama7d65-sckc", "microchip,sam9x60-sckc";  			reg = <0xe001d500 0x4>; @@ -114,6 +158,11 @@  			#clock-cells = <1>;  		}; +		gpbr: syscon@e001d700 { +			compatible = "microchip,sama7d65-gpbr", "syscon"; +			reg = <0xe001d700 0x48>; +		}; +  		rtc: rtc@e001d800 {  			compatible = "microchip,sama7d65-rtc", "microchip,sam9x60-rtc";  			reg = <0xe001d800 0x30>; @@ -126,6 +175,86 @@  			reg = <0xe0020000 0x8>;  		}; +		can0: can@e0828000 { +			compatible = "bosch,m_can"; +			reg = <0xe0828000 0x200>, <0x100000 0x7800>; +			reg-names = "m_can", "message_ram"; +			interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; +			interrupt-names = "int0", "int1"; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 58>, <&pmc PMC_TYPE_GCK 58>; +			clock-names = "hclk", "cclk"; +			assigned-clocks = <&pmc PMC_TYPE_GCK 58>; +			assigned-clock-rates = <40000000>; +			assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>; +			bosch,mram-cfg = <0x3400 0 0 64 0 0 32 32>; +			status = "disabled"; +		}; + +		can1: can@e082c000 { +			compatible = "bosch,m_can"; +			reg = <0xe082c000 0x200>, <0x100000 0xbc00>; +			reg-names = "m_can", "message_ram"; +			interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; +			interrupt-names = "int0", "int1"; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 59>, <&pmc PMC_TYPE_GCK 59>; +			clock-names = "hclk", "cclk"; +			assigned-clocks = <&pmc PMC_TYPE_GCK 59>; +			assigned-clock-rates = <40000000>; +			assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>; +			bosch,mram-cfg = <0x7800 0 0 64 0 0 32 32>; +			status = "disabled"; +		}; + +		can2: can@e0830000 { +			compatible = "bosch,m_can"; +			reg = <0xe0830000 0x200>, <0x100000 0x10000>; +			reg-names = "m_can", "message_ram"; +			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; +			interrupt-names = "int0", "int1"; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 60>, <&pmc PMC_TYPE_GCK 60>; +			clock-names = "hclk", "cclk"; +			assigned-clocks = <&pmc PMC_TYPE_GCK 60>; +			assigned-clock-rates = <40000000>; +			assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>; +			bosch,mram-cfg = <0xbc00 0 0 64 0 0 32 32>; +			status = "disabled"; +		}; + +		can3: can@e0834000 { +			compatible = "bosch,m_can"; +			reg = <0xe0834000 0x200>, <0x110000 0x4400>; +			reg-names = "m_can", "message_ram"; +			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; +			interrupt-names = "int0", "int1"; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 61>, <&pmc PMC_TYPE_GCK 61>; +			clock-names = "hclk", "cclk"; +			assigned-clocks = <&pmc PMC_TYPE_GCK 61>; +			assigned-clock-rates = <40000000>; +			assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>; +			bosch,mram-cfg = <0x0 0 0 64 0 0 32 32>; +			status = "disabled"; +		}; + +		can4: can@e0838000 { +			compatible = "bosch,m_can"; +			reg = <0xe0838000 0x200>, <0x110000 0x8800>; +			reg-names = "m_can", "message_ram"; +			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; +			interrupt-names = "int0", "int1"; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 62>, <&pmc PMC_TYPE_GCK 62>; +			clock-names = "hclk", "cclk"; +			assigned-clocks = <&pmc PMC_TYPE_GCK 62>; +			assigned-clock-rates = <40000000>; +			assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>; +			bosch,mram-cfg = <0x4400 0 0 64 0 0 32 32>; +			status = "disabled"; +		}; +  		dma2: dma-controller@e1200000 {  			compatible = "microchip,sama7d65-dma", "microchip,sama7g5-dma";  			reg = <0xe1200000 0x1000>; @@ -149,6 +278,45 @@  			status = "disabled";  		}; +		aes: crypto@e1600000 { +			compatible = "microchip,sama7d65-aes", "atmel,at91sam9g46-aes"; +			reg = <0xe1600000 0x100>; +			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 26>; +			clock-names = "aes_clk"; +			dmas = <&dma0 AT91_XDMAC_DT_PERID(1)>, +			       <&dma0 AT91_XDMAC_DT_PERID(2)>; +			dma-names = "tx", "rx"; +		}; + +		sha: crypto@e1604000 { +			compatible = "microchip,sama7d65-sha", "atmel,at91sam9g46-sha"; +			reg = <0xe1604000 0x100>; +			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 78>; +			clock-names = "sha_clk"; +			dmas = <&dma0 AT91_XDMAC_DT_PERID(48)>; +			dma-names = "tx"; +		}; + +		tdes: crypto@e1608000 { +			compatible = "microchip,sama7d65-tdes", "atmel,at91sam9g46-tdes"; +			reg = <0xe1608000 0x100>; +			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 91>; +			clock-names = "tdes_clk"; +			dmas = <&dma0 AT91_XDMAC_DT_PERID(54)>, +			       <&dma0 AT91_XDMAC_DT_PERID(53)>; +			dma-names = "tx", "rx"; +		}; + +		trng: rng@e160c000 { +			compatible = "microchip,sama7d65-trng", "microchip,sam9x60-trng"; +			reg = <0xe160c000 0x100>; +			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 92>; +		}; +  		dma0: dma-controller@e1610000 {  			compatible = "microchip,sama7d65-dma", "microchip,sama7g5-dma";  			reg = <0xe1610000 0x1000>; @@ -169,6 +337,38 @@  			status = "disabled";  		}; +		gmac0: ethernet@e1618000 { +			compatible = "microchip,sama7d65-gem", "microchip,sama7g5-gem"; +			reg = <0xe1618000 0x2000>; +			interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 46>, <&pmc PMC_TYPE_PERIPHERAL 46>, <&pmc PMC_TYPE_GCK 46>, <&pmc PMC_TYPE_GCK 49>; +			clock-names = "pclk", "hclk", "tx_clk", "tsu_clk"; +			assigned-clocks = <&pmc PMC_TYPE_GCK 46>, <&pmc PMC_TYPE_GCK 49>; +			assigned-clock-rates = <125000000>, <200000000>; +			status = "disabled"; +		}; + +		gmac1: ethernet@e161c000 { +			compatible = "microchip,sama7d65-gem", "microchip,sama7g5-gem"; +			reg = <0xe161c000 0x2000>; +			interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 47>, <&pmc PMC_TYPE_PERIPHERAL 47>,<&pmc PMC_TYPE_GCK 47>, <&pmc PMC_TYPE_GCK 50>; +			clock-names = "pclk", "hclk", "tx_clk", "tsu_clk"; +			assigned-clocks = <&pmc PMC_TYPE_GCK 47>, <&pmc PMC_TYPE_GCK 50>; +			assigned-clock-rates = <125000000>, <200000000>; +			status = "disabled"; +		}; +  		pit64b0: timer@e1800000 {  			compatible = "microchip,sama7d65-pit64b", "microchip,sam9x60-pit64b";  			reg = <0xe1800000 0x100>; @@ -185,6 +385,208 @@  			clock-names = "pclk", "gclk";  		}; +		pwm: pwm@e1818000 { +			compatible = "microchip,sama7d65-pwm", "atmel,sama5d2-pwm"; +			reg = <0xe1818000 0x500>; +			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 72>; +			#pwm-cells = <3>; +			status = "disabled"; +		}; + +		flx0: flexcom@e1820000 { +			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom"; +			reg = <0xe1820000 0x200>; +			ranges = <0x0 0xe1820000 0x800>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 34>; +			#address-cells = <1>; +			#size-cells = <1>; +			status = "disabled"; + +			uart0: serial@200 { +				compatible = "microchip,sama7d65-usart", "atmel,at91sam9260-usart"; +				reg = <0x200 0x200>; +				interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 34>; +				clock-names = "usart"; +				dmas = <&dma1 AT91_XDMAC_DT_PERID(6)>, +				       <&dma1 AT91_XDMAC_DT_PERID(5)>; +				dma-names = "tx", "rx"; +				atmel,use-dma-rx; +				atmel,use-dma-tx; +				atmel,usart-mode = <AT91_USART_MODE_SERIAL>; +				status = "disabled"; +			}; + +			i2c0: i2c@600 { +				compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c"; +				reg = <0x600 0x200>; +				interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 34>; +				#address-cells = <1>; +				#size-cells = <0>; +				atmel,fifo-size = <32>; +				dmas = <&dma0 AT91_XDMAC_DT_PERID(6)>, +				       <&dma0 AT91_XDMAC_DT_PERID(5)>; +				dma-names = "tx", "rx"; +				status = "disabled"; +			}; +		}; + +		flx1: flexcom@e1824000 { +			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom"; +			reg = <0xe1824000 0x200>; +			ranges = <0x0 0xe1824000 0x800>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 35>; +			#address-cells = <1>; +			#size-cells = <1>; +			status = "disabled"; + +			spi1: spi@400 { +				compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi"; +				reg = <0x400 0x200>; +				interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 35>; +				clock-names = "spi_clk"; +				#address-cells = <1>; +				#size-cells = <0>; +				dmas = <&dma0 AT91_XDMAC_DT_PERID(8)>, +				       <&dma0 AT91_XDMAC_DT_PERID(7)>; +				dma-names = "tx", "rx"; +				atmel,fifo-size = <32>; +				status = "disabled"; +			}; + +			i2c1: i2c@600 { +				compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c"; +				reg = <0x600 0x200>; +				interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 35>; +				#address-cells = <1>; +				#size-cells = <0>; +				dmas = <&dma0 AT91_XDMAC_DT_PERID(8)>, +				       <&dma0 AT91_XDMAC_DT_PERID(7)>; +				dma-names = "tx", "rx"; +				atmel,fifo-size = <32>; +				status = "disabled"; +			}; +		}; + +		flx2: flexcom@e1828000 { +			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom"; +			reg = <0xe1828000 0x200>; +			ranges = <0x0 0xe1828000 0x800>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 36>; +			#address-cells = <1>; +			#size-cells = <1>; +			status = "disabled"; + +			uart2: serial@200 { +				compatible = "microchip,sama7d65-usart", "atmel,at91sam9260-usart"; +				reg = <0x200 0x200>; +				interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 36>; +				clock-names = "usart"; +				dmas = <&dma1 AT91_XDMAC_DT_PERID(10)>, +				       <&dma1 AT91_XDMAC_DT_PERID(9)>; +				dma-names = "tx", "rx"; +				atmel,use-dma-rx; +				atmel,use-dma-tx; +				atmel,usart-mode = <AT91_USART_MODE_SERIAL>; +				status = "disabled"; +			}; +		}; + +		flx3: flexcom@e182c000 { +			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom"; +			reg = <0xe182c000 0x200>; +			ranges = <0x0 0xe182c000 0x800>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 37>; +			#address-cells = <1>; +			#size-cells = <1>; +			status = "disabled"; + +			i2c3: i2c@600 { +				compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c"; +				reg = <0x600 0x200>; +				interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 37>; +				#address-cells = <1>; +				#size-cells = <1>; +				dmas = <&dma0 AT91_XDMAC_DT_PERID(12)>, +				       <&dma0 AT91_XDMAC_DT_PERID(11)>; +				dma-names = "tx", "rx"; +				atmel,fifo-size = <32>; +				status = "disabled"; +			}; + +		}; + +		flx4: flexcom@e2018000 { +			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom"; +			reg = <0xe2018000 0x200>; +			ranges = <0x0 0xe2018000 0x800>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 38>; +			#address-cells = <1>; +			#size-cells = <1>; +			status = "disabled"; + +			uart4: serial@200 { +				compatible = "microchip,sama7d65-usart", "atmel,at91sam9260-usart"; +				reg = <0x200 0x200>; +				interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 38>; +				clock-names = "usart"; +				dmas = <&dma1 AT91_XDMAC_DT_PERID(14)>, +				       <&dma1 AT91_XDMAC_DT_PERID(13)>; +				dma-names = "tx", "rx"; +				atmel,use-dma-rx; +				atmel,use-dma-tx; +				atmel,fifo-size = <16>; +				atmel,usart-mode = <AT91_USART_MODE_SERIAL>; +				status = "disabled"; +			}; + +			spi4: spi@400 { +				compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi"; +				reg = <0x400 0x200>; +				interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 38>; +				clock-names = "spi_clk"; +				#address-cells = <1>; +				#size-cells = <0>; +				dmas = <&dma0 AT91_XDMAC_DT_PERID(14)>, +				       <&dma0 AT91_XDMAC_DT_PERID(13)>; +				dma-names = "tx", "rx"; +				atmel,fifo-size = <32>; +				status = "disabled"; +			}; +		}; + +		flx5: flexcom@e201c000 { +			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom"; +			reg = <0xe201c000 0x200>; +			ranges = <0x0 0xe201c000 0x800>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 39>; +			#address-cells = <1>; +			#size-cells = <1>; +			status = "disabled"; + +			i2c5: i2c@600 { +				compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c"; +				reg = <0x600 0x200>; +				interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 39>; +				#address-cells = <1>; +				#size-cells = <0>; +				dmas = <&dma0 AT91_XDMAC_DT_PERID(16)>, +				       <&dma0 AT91_XDMAC_DT_PERID(15)>; +				dma-names = "tx", "rx"; +				atmel,fifo-size = <32>; +				status = "disabled"; +			}; +		}; +  		flx6: flexcom@e2020000 {  			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom";  			reg = <0xe2020000 0x200>; @@ -206,6 +608,80 @@  			};  		}; +		flx7: flexcom@e2024000 { +			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom"; +			reg = <0xe2024000 0x200>; +			ranges = <0x0 0xe2024000 0x800>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 41>; +			#address-cells = <1>; +			#size-cells = <1>; +			status = "disabled"; + +			uart7: serial@200 { +				compatible = "microchip,sama7d65-usart", "atmel,at91sam9260-usart"; +				reg = <0x200 0x200>; +				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 41>; +				clock-names = "usart"; +				dmas = <&dma1 AT91_XDMAC_DT_PERID(20)>, +				       <&dma1 AT91_XDMAC_DT_PERID(19)>; +				dma-names = "tx", "rx"; +				atmel,use-dma-rx; +				atmel,use-dma-tx; +				atmel,fifo-size = <16>; +				atmel,usart-mode = <AT91_USART_MODE_SERIAL>; +				status = "disabled"; +			}; +		}; + +		flx8: flexcom@e281c000 { +			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom"; +			reg = <0xe281c000 0x200>; +			ranges = <0x0 0xe281c000 0x800>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 42>; +			#address-cells = <1>; +			#size-cells = <1>; +			status = "disabled"; + +			i2c8: i2c@600 { +				compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c"; +				reg = <0x600 0x200>; +				interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 42>; +				#address-cells = <1>; +				#size-cells = <0>; +				dmas = <&dma0 AT91_XDMAC_DT_PERID(22)>, +				       <&dma0 AT91_XDMAC_DT_PERID(21)>; +				dma-names = "tx", "rx"; +				atmel,fifo-size = <32>; +				status = "disabled"; +			}; +		}; + +		flx9: flexcom@e2820000 { +			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom"; +			reg = <0xe2820000 0x200>; +			ranges = <0x0 0xe281c000 0x800>; +			clocks = <&pmc PMC_TYPE_PERIPHERAL 43>; +			#address-cells = <1>; +			#size-cells = <1>; +			status = "disabled"; + +			i2c9: i2c@600 { +				compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c"; +				reg = <0x600 0x200>; +				interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&pmc PMC_TYPE_PERIPHERAL 43>; +				#address-cells = <1>; +				#size-cells = <0>; +				dmas = <&dma0 AT91_XDMAC_DT_PERID(24)>, +				       <&dma0 AT91_XDMAC_DT_PERID(23)>; +				dma-names = "tx", "rx"; +				atmel,fifo-size = <32>; +				status = "disabled"; +			}; +		}; +  		flx10: flexcom@e2824000 {  			compatible = "microchip,sama7d65-flexcom", "atmel,sama5d2-flexcom";  			reg = <0xe2824000 0x200>; @@ -227,6 +703,16 @@  			};  		}; +		uddrc: uddrc@e3800000 { +			compatible = "microchip,sama7d65-uddrc", "microchip,sama7g5-uddrc"; +			reg = <0xe3800000 0x4000>; +		}; + +		ddr3phy: ddr3phy@e3804000 { +			compatible = "microchip,sama7d65-ddr3phy", "microchip,sama7g5-ddr3phy"; +			reg = <0xe3804000 0x1000>; +		}; +  		gic: interrupt-controller@e8c11000 {  			compatible = "arm,cortex-a7-gic";  			reg = <0xe8c11000 0x1000>, diff --git a/dts/upstream/src/arm/microchip/sama7g5.dtsi b/dts/upstream/src/arm/microchip/sama7g5.dtsi index 17bcdcf0cf4..381cbcfcb34 100644 --- a/dts/upstream/src/arm/microchip/sama7g5.dtsi +++ b/dts/upstream/src/arm/microchip/sama7g5.dtsi @@ -38,6 +38,16 @@  			clock-names = "cpu";  			operating-points-v2 = <&cpu_opp_table>;  			#cooling-cells = <2>; /* min followed by max */ +			d-cache-size = <0x8000>;	// L1, 32 KB +			i-cache-size = <0x8000>;	// L1, 32 KB +			next-level-cache = <&L2>; + +			L2: l2-cache { +				compatible = "cache"; +				cache-level = <2>; +				cache-size = <0x40000>; // L2, 256 KB +				cache-unified; +			};  		};  	}; @@ -117,19 +127,22 @@  	};  	clocks { -		slow_xtal: slow_xtal { +		slow_xtal: clock-slowxtal {  			compatible = "fixed-clock"; +			clock-output-names = "slow_xtal";  			#clock-cells = <0>;  		}; -		main_xtal: main_xtal { +		main_xtal: clock-mainxtal {  			compatible = "fixed-clock"; +			clock-output-names = "main_xtal";  			#clock-cells = <0>;  		}; -		usb_clk: usb_clk { +		usb_clk: clock-usbclk {  			compatible = "fixed-clock";  			#clock-cells = <0>; +			clock-output-names = "usb_clk";  			clock-frequency = <48000000>;  		};  	}; diff --git a/dts/upstream/src/arm/microchip/tny_a9263.dts b/dts/upstream/src/arm/microchip/tny_a9263.dts index 3dd48b3e06d..fd8244b56e0 100644 --- a/dts/upstream/src/arm/microchip/tny_a9263.dts +++ b/dts/upstream/src/arm/microchip/tny_a9263.dts @@ -64,7 +64,7 @@  				nand@3 {  					reg = <0x3 0x0 0x800000>;  					rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>; -					cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>; +					cs-gpios = <&pioD 15 GPIO_ACTIVE_HIGH>;  					nand-bus-width = <8>;  					nand-ecc-mode = "soft";  					nand-on-flash-bbt; diff --git a/dts/upstream/src/arm/microchip/usb_a9260.dts b/dts/upstream/src/arm/microchip/usb_a9260.dts index e7f7b259ccf..3b61e714506 100644 --- a/dts/upstream/src/arm/microchip/usb_a9260.dts +++ b/dts/upstream/src/arm/microchip/usb_a9260.dts @@ -12,14 +12,6 @@  	model = "Calao USB A9260";  	compatible = "calao,usb-a9260", "atmel,at91sam9260", "atmel,at91sam9"; -	chosen { -		bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock5 rw rootfstype=ubifs"; -	}; - -	memory@20000000 { -		reg = <0x20000000 0x4000000>; -	}; -  	ahb {  		apb {  			shdwc: poweroff@fffffd10 { diff --git a/dts/upstream/src/arm/microchip/usb_a9260_common.dtsi b/dts/upstream/src/arm/microchip/usb_a9260_common.dtsi index 8c3530638c6..da32c5fdcc4 100644 --- a/dts/upstream/src/arm/microchip/usb_a9260_common.dtsi +++ b/dts/upstream/src/arm/microchip/usb_a9260_common.dtsi @@ -6,6 +6,11 @@   */  / { +	chosen { +		bootargs = "mem=64M root=/dev/mtdblock5 rw rootfstype=ubifs"; +		stdout-path = "serial0:115200n8"; +	}; +  	clocks {  		slow_xtal {  			clock-frequency = <32768>; @@ -16,6 +21,10 @@  		};  	}; +	memory@20000000 { +		reg = <0x20000000 0x4000000>; +	}; +  	ahb {  		apb {  			dbgu: serial@fffff200 { diff --git a/dts/upstream/src/arm/microchip/usb_a9263.dts b/dts/upstream/src/arm/microchip/usb_a9263.dts index 60d7936dc56..8e1a3fb6108 100644 --- a/dts/upstream/src/arm/microchip/usb_a9263.dts +++ b/dts/upstream/src/arm/microchip/usb_a9263.dts @@ -58,7 +58,7 @@  			};  			spi0: spi@fffa4000 { -				cs-gpios = <&pioB 15 GPIO_ACTIVE_HIGH>; +				cs-gpios = <&pioA 5 GPIO_ACTIVE_LOW>;  				status = "okay";  				flash@0 {  					compatible = "atmel,at45", "atmel,dataflash"; @@ -84,7 +84,7 @@  				nand@3 {  					reg = <0x3 0x0 0x800000>;  					rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>; -					cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>; +					cs-gpios = <&pioD 15 GPIO_ACTIVE_HIGH>;  					nand-bus-width = <8>;  					nand-ecc-mode = "soft";  					nand-on-flash-bbt; diff --git a/dts/upstream/src/arm/microchip/usb_a9g20.dts b/dts/upstream/src/arm/microchip/usb_a9g20.dts index a2f748141d4..555291cd30b 100644 --- a/dts/upstream/src/arm/microchip/usb_a9g20.dts +++ b/dts/upstream/src/arm/microchip/usb_a9g20.dts @@ -5,9 +5,24 @@   *  Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>   */  /dts-v1/; -#include "usb_a9g20_common.dtsi" +#include "at91sam9g20.dtsi" +#include "usb_a9260_common.dtsi"  / {  	model = "Calao USB A9G20";  	compatible = "calao,usb-a9g20", "atmel,at91sam9g20", "atmel,at91sam9";  }; + +&spi0 { +	cs-gpios = <&pioC 11 GPIO_ACTIVE_LOW>; +	status = "okay"; +	/* TODO: Some revisions might have a dataflash here instead of an EEPROM */ +	eeprom@0 { +		compatible = "st,m95640", "atmel,at25"; +		reg = <0>; +		spi-max-frequency = <2000000>; +		size = <8192>; +		pagesize = <32>; +		address-width = <16>; +	}; +}; diff --git a/dts/upstream/src/arm/microchip/usb_a9g20_common.dtsi b/dts/upstream/src/arm/microchip/usb_a9g20_common.dtsi deleted file mode 100644 index f1946e0996b..00000000000 --- a/dts/upstream/src/arm/microchip/usb_a9g20_common.dtsi +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/* - * usb_a9g20.dts - Device Tree file for Calao USB A9G20 board - * - *  Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> - */ - -#include "at91sam9g20.dtsi" -#include "usb_a9260_common.dtsi" - -/ { -	chosen { -		bootargs = "mem=64M root=/dev/mtdblock5 rw rootfstype=ubifs"; -		stdout-path = "serial0:115200n8"; -	}; - -	memory@20000000 { -		reg = <0x20000000 0x4000000>; -	}; - -	i2c-gpio-0 { -		rtc@56 { -			compatible = "microcrystal,rv3029"; -			reg = <0x56>; -		}; -	}; -}; diff --git a/dts/upstream/src/arm/microchip/usb_a9g20_lpw.dts b/dts/upstream/src/arm/microchip/usb_a9g20_lpw.dts index 4d104797176..2eda00477bc 100644 --- a/dts/upstream/src/arm/microchip/usb_a9g20_lpw.dts +++ b/dts/upstream/src/arm/microchip/usb_a9g20_lpw.dts @@ -5,7 +5,8 @@   *  Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>   */  /dts-v1/; -#include "usb_a9g20_common.dtsi" +#include "at91sam9g20.dtsi" +#include "usb_a9260_common.dtsi"  / {  	model = "Calao USB A9G20 Low Power"; @@ -27,4 +28,11 @@  			};  		};  	}; + +	i2c-gpio-0 { +		rtc@56 { +			compatible = "microcrystal,rv3029"; +			reg = <0x56>; +		}; +	};  }; | 
