diff options
Diffstat (limited to 'arch/arm/boot')
75 files changed, 4388 insertions, 287 deletions
diff --git a/arch/arm/boot/dts/aks-cdu.dts b/arch/arm/boot/dts/aks-cdu.dts new file mode 100644 index 00000000000..29b9f15e759 --- /dev/null +++ b/arch/arm/boot/dts/aks-cdu.dts @@ -0,0 +1,113 @@ +/* + * aks-cdu.dts - Device Tree file for AK signal CDU + * + * Copyright (C) 2012 AK signal Brno a.s. + *               2012 Jiri Prchal <jiri.prchal@aksignal.cz> + * + * Licensed under GPLv2 or later. + */ + +/dts-v1/; + +/include/ "ge863-pro3.dtsi" + +/ { +	chosen { +		bootargs = "console=ttyS0,115200 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs"; +	}; + +	ahb { +		apb { +			usart0: serial@fffb0000 { +				status = "okay"; +			}; + +			usart1: serial@fffb4000 { +				status = "okay"; +				linux,rs485-enabled-at-boot-time; +				rs485-rts-delay = <0 0>; +				}; + +			usart2: serial@fffb8000 { +				status = "okay"; +				linux,rs485-enabled-at-boot-time; +				rs485-rts-delay = <0 0>; +			}; + +			usart3: serial@fffd0000 { +				status = "okay"; +				linux,rs485-enabled-at-boot-time; +				rs485-rts-delay = <0 0>; +			}; + +			macb0: ethernet@fffc4000 { +				phy-mode = "rmii"; +				status = "okay"; +			}; + +			usb1: gadget@fffa4000 { +				atmel,vbus-gpio = <&pioC 15 0>; +				status = "okay"; +			}; +		}; + +		usb0: ohci@00500000 { +			num-ports = <2>; +			status = "okay"; +		}; + +		nand0: nand@40000000 { +			nand-bus-width = <8>; +			nand-ecc-mode = "soft"; +			nand-on-flash-bbt; +			status = "okay"; + +			bootstrap@0 { +				label = "bootstrap"; +				reg = <0x0 0x40000>; +			}; + +			uboot@40000 { +				label = "uboot"; +				reg = <0x40000 0x80000>; +			}; +			ubootenv@c0000 { +				label = "ubootenv"; +				reg = <0xc0000 0x40000>; +			}; +			kernel@100000 { +				label = "kernel"; +				reg = <0x100000 0x400000>; +			}; +			rootfs@500000 { +				label = "rootfs"; +				reg = <0x500000 0x7b00000>; +			}; +		}; +	}; + +	leds { +		compatible = "gpio-leds"; + +		red { +			gpios = <&pioC 10 0>; +			linux,default-trigger = "none"; +		}; + +		green { +			gpios = <&pioA 5 1>; +			linux,default-trigger = "none"; +			default-state = "on"; +		}; + +		yellow { +			gpios = <&pioB 20 1>; +			linux,default-trigger = "none"; +		}; + +		blue { +			gpios = <&pioB 21 1>; +			linux,default-trigger = "none"; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts new file mode 100644 index 00000000000..a9af4db7234 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +/dts-v1/; + +/include/ "am33xx.dtsi" + +/ { +	model = "TI AM335x BeagleBone"; +	compatible = "ti,am335x-bone", "ti,am33xx"; + +	memory { +		device_type = "memory"; +		reg = <0x80000000 0x10000000>; /* 256 MB */ +	}; +}; diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts new file mode 100644 index 00000000000..d6a97d9eff7 --- /dev/null +++ b/arch/arm/boot/dts/am335x-evm.dts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +/dts-v1/; + +/include/ "am33xx.dtsi" + +/ { +	model = "TI AM335x EVM"; +	compatible = "ti,am335x-evm", "ti,am33xx"; + +	memory { +		device_type = "memory"; +		reg = <0x80000000 0x10000000>; /* 256 MB */ +	}; +}; diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi new file mode 100644 index 00000000000..59509c48d7e --- /dev/null +++ b/arch/arm/boot/dts/am33xx.dtsi @@ -0,0 +1,158 @@ +/* + * Device Tree Source for AM33XX SoC + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * This file is licensed under the terms of the GNU General Public License + * version 2.  This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +/include/ "skeleton.dtsi" + +/ { +	compatible = "ti,am33xx"; + +	aliases { +		serial0 = &uart1; +		serial1 = &uart2; +		serial2 = &uart3; +		serial3 = &uart4; +		serial4 = &uart5; +		serial5 = &uart6; +	}; + +	cpus { +		cpu@0 { +			compatible = "arm,cortex-a8"; +		}; +	}; + +	/* +	 * The soc node represents the soc top level view. It is uses for IPs +	 * that are not memory mapped in the MPU view or for the MPU itself. +	 */ +	soc { +		compatible = "ti,omap-infra"; +		mpu { +			compatible = "ti,omap3-mpu"; +			ti,hwmods = "mpu"; +		}; +	}; + +	/* +	 * XXX: Use a flat representation of the AM33XX interconnect. +	 * The real AM33XX interconnect network is quite complex.Since +	 * that will not bring real advantage to represent that in DT +	 * for the moment, just use a fake OCP bus entry to represent +	 * the whole bus hierarchy. +	 */ +	ocp { +		compatible = "simple-bus"; +		#address-cells = <1>; +		#size-cells = <1>; +		ranges; +		ti,hwmods = "l3_main"; + +		intc: interrupt-controller@48200000 { +			compatible = "ti,omap2-intc"; +			interrupt-controller; +			#interrupt-cells = <1>; +			ti,intc-size = <128>; +			reg = <0x48200000 0x1000>; +		}; + +		gpio1: gpio@44e07000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio1"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		gpio2: gpio@4804C000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio2"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		gpio3: gpio@481AC000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio3"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		gpio4: gpio@481AE000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio4"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		uart1: serial@44E09000 { +			compatible = "ti,omap3-uart"; +			ti,hwmods = "uart1"; +			clock-frequency = <48000000>; +		}; + +		uart2: serial@48022000 { +			compatible = "ti,omap3-uart"; +			ti,hwmods = "uart2"; +			clock-frequency = <48000000>; +		}; + +		uart3: serial@48024000 { +			compatible = "ti,omap3-uart"; +			ti,hwmods = "uart3"; +			clock-frequency = <48000000>; +		}; + +		uart4: serial@481A6000 { +			compatible = "ti,omap3-uart"; +			ti,hwmods = "uart4"; +			clock-frequency = <48000000>; +		}; + +		uart5: serial@481A8000 { +			compatible = "ti,omap3-uart"; +			ti,hwmods = "uart5"; +			clock-frequency = <48000000>; +		}; + +		uart6: serial@481AA000 { +			compatible = "ti,omap3-uart"; +			ti,hwmods = "uart6"; +			clock-frequency = <48000000>; +		}; + +		i2c1: i2c@44E0B000 { +			compatible = "ti,omap4-i2c"; +			#address-cells = <1>; +			#size-cells = <0>; +			ti,hwmods = "i2c1"; +		}; + +		i2c2: i2c@4802A000 { +			compatible = "ti,omap4-i2c"; +			#address-cells = <1>; +			#size-cells = <0>; +			ti,hwmods = "i2c2"; +		}; + +		i2c3: i2c@4819C000 { +			compatible = "ti,omap4-i2c"; +			#address-cells = <1>; +			#size-cells = <0>; +			ti,hwmods = "i2c3"; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/am3517-evm.dts b/arch/arm/boot/dts/am3517-evm.dts new file mode 100644 index 00000000000..474f760ecad --- /dev/null +++ b/arch/arm/boot/dts/am3517-evm.dts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +/dts-v1/; + +/include/ "omap3.dtsi" + +/ { +	model = "TI AM3517 EVM (AM3517/05)"; +	compatible = "ti,am3517-evm", "ti,omap3"; + +	memory { +		device_type = "memory"; +		reg = <0x80000000 0x10000000>; /* 256 MB */ +	}; +}; + +&i2c1 { +	clock-frequency = <400000>; +}; + +&i2c2 { +	clock-frequency = <400000>; +}; + +&i2c3 { +	clock-frequency = <400000>; +}; diff --git a/arch/arm/boot/dts/armada-370-db.dts b/arch/arm/boot/dts/armada-370-db.dts new file mode 100644 index 00000000000..fffd5c2a304 --- /dev/null +++ b/arch/arm/boot/dts/armada-370-db.dts @@ -0,0 +1,42 @@ +/* + * Device Tree file for Marvell Armada 370 evaluation board + * (DB-88F6710-BP-DDR3) + * + *  Copyright (C) 2012 Marvell + * + * Lior Amsalem <alior@marvell.com> + * Gregory CLEMENT <gregory.clement@free-electrons.com> + * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + * + * This file is licensed under the terms of the GNU General Public + * License version 2.  This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; +/include/ "armada-370.dtsi" + +/ { +	model = "Marvell Armada 370 Evaluation Board"; +	compatible = "marvell,a370-db", "marvell,armada370", "marvell,armada-370-xp"; + +	chosen { +		bootargs = "console=ttyS0,115200 earlyprintk"; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x00000000 0x20000000>; /* 512 MB */ +	}; + +	soc { +		serial@d0012000 { +			clock-frequency = <200000000>; +			status = "okay"; +		}; +		timer@d0020300 { +			clock-frequency = <600000000>; +			status = "okay"; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi new file mode 100644 index 00000000000..6b6b932a5a7 --- /dev/null +++ b/arch/arm/boot/dts/armada-370-xp.dtsi @@ -0,0 +1,68 @@ +/* + * Device Tree Include file for Marvell Armada 370 and Armada XP SoC + * + * Copyright (C) 2012 Marvell + * + * Lior Amsalem <alior@marvell.com> + * Gregory CLEMENT <gregory.clement@free-electrons.com> + * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + * Ben Dooks <ben.dooks@codethink.co.uk> + * + * This file is licensed under the terms of the GNU General Public + * License version 2.  This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * This file contains the definitions that are common to the Armada + * 370 and Armada XP SoC. + */ + +/include/ "skeleton.dtsi" + +/ { +	model = "Marvell Armada 370 and XP SoC"; +	compatible = "marvell,armada_370_xp"; + +	cpus { +		cpu@0 { +			compatible = "marvell,sheeva-v7"; +		}; +	}; + +	mpic: interrupt-controller@d0020000 { +	      compatible = "marvell,mpic"; +	      #interrupt-cells = <1>; +	      #address-cells = <1>; +	      #size-cells = <1>; +	      interrupt-controller; +	}; + +	soc { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "simple-bus"; +		interrupt-parent = <&mpic>; +		ranges; + +		serial@d0012000 { +				compatible = "ns16550"; +				reg = <0xd0012000 0x100>; +				reg-shift = <2>; +				interrupts = <41>; +				status = "disabled"; +		}; +		serial@d0012100 { +				compatible = "ns16550"; +				reg = <0xd0012100 0x100>; +				reg-shift = <2>; +				interrupts = <42>; +				status = "disabled"; +		}; + +		timer@d0020300 { +			       compatible = "marvell,armada-370-xp-timer"; +			       reg = <0xd0020300 0x30>; +			       interrupts = <37>, <38>, <39>, <40>; +		}; +	}; +}; + diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi new file mode 100644 index 00000000000..3228ccc8333 --- /dev/null +++ b/arch/arm/boot/dts/armada-370.dtsi @@ -0,0 +1,35 @@ +/* + * Device Tree Include file for Marvell Armada 370 family SoC + * + * Copyright (C) 2012 Marvell + * + * Lior Amsalem <alior@marvell.com> + * Gregory CLEMENT <gregory.clement@free-electrons.com> + * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + * + * This file is licensed under the terms of the GNU General Public + * License version 2.  This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * Contains definitions specific to the Armada 370 SoC that are not + * common to all Armada SoCs. + */ + +/include/ "armada-370-xp.dtsi" + +/ { +	model = "Marvell Armada 370 family SoC"; +	compatible = "marvell,armada370", "marvell,armada-370-xp"; + +	mpic: interrupt-controller@d0020000 { +	      reg = <0xd0020a00 0x1d0>, +		    <0xd0021870 0x58>; +	}; + +	soc { +		system-controller@d0018200 { +				compatible = "marvell,armada-370-xp-system-controller"; +				reg = <0xd0018200 0x100>; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/armada-xp-db.dts b/arch/arm/boot/dts/armada-xp-db.dts new file mode 100644 index 00000000000..f97040d4258 --- /dev/null +++ b/arch/arm/boot/dts/armada-xp-db.dts @@ -0,0 +1,50 @@ +/* + * Device Tree file for Marvell Armada XP evaluation board + * (DB-78460-BP) + * + * Copyright (C) 2012 Marvell + * + * Lior Amsalem <alior@marvell.com> + * Gregory CLEMENT <gregory.clement@free-electrons.com> + * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + * + * This file is licensed under the terms of the GNU General Public + * License version 2.  This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; +/include/ "armada-xp.dtsi" + +/ { +	model = "Marvell Armada XP Evaluation Board"; +	compatible = "marvell,axp-db", "marvell,armadaxp", "marvell,armada-370-xp"; + +	chosen { +		bootargs = "console=ttyS0,115200 earlyprintk"; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x00000000 0x80000000>; /* 2 GB */ +	}; + +	soc { +		serial@d0012000 { +			clock-frequency = <250000000>; +			status = "okay"; +		}; +		serial@d0012100 { +			clock-frequency = <250000000>; +			status = "okay"; +		}; +		serial@d0012200 { +			clock-frequency = <250000000>; +			status = "okay"; +		}; +		serial@d0012300 { +			clock-frequency = <250000000>; +			status = "okay"; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi new file mode 100644 index 00000000000..e1fa7e6edfe --- /dev/null +++ b/arch/arm/boot/dts/armada-xp.dtsi @@ -0,0 +1,55 @@ +/* + * Device Tree Include file for Marvell Armada XP family SoC + * + * Copyright (C) 2012 Marvell + * + * Lior Amsalem <alior@marvell.com> + * Gregory CLEMENT <gregory.clement@free-electrons.com> + * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + * Ben Dooks <ben.dooks@codethink.co.uk> + * + * This file is licensed under the terms of the GNU General Public + * License version 2.  This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * Contains definitions specific to the Armada 370 SoC that are not + * common to all Armada SoCs. + */ + +/include/ "armada-370-xp.dtsi" + +/ { +	model = "Marvell Armada XP family SoC"; +	compatible = "marvell,armadaxp", "marvell,armada-370-xp"; + +	mpic: interrupt-controller@d0020000 { +	      reg = <0xd0020a00 0x1d0>, +		    <0xd0021870 0x58>; +	}; + +	soc { +		serial@d0012200 { +				compatible = "ns16550"; +				reg = <0xd0012200 0x100>; +				reg-shift = <2>; +				interrupts = <43>; +				status = "disabled"; +		}; +		serial@d0012300 { +				compatible = "ns16550"; +				reg = <0xd0012300 0x100>; +				reg-shift = <2>; +				interrupts = <44>; +				status = "disabled"; +		}; + +		timer@d0020300 { +				marvell,timer-25Mhz; +		}; + +		system-controller@d0018200 { +				compatible = "marvell,armada-370-xp-system-controller"; +				reg = <0xd0018200 0x500>; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi index f449efc9825..66389c1c6f6 100644 --- a/arch/arm/boot/dts/at91sam9260.dtsi +++ b/arch/arm/boot/dts/at91sam9260.dtsi @@ -52,10 +52,11 @@  			ranges;  			aic: interrupt-controller@fffff000 { -				#interrupt-cells = <2>; +				#interrupt-cells = <3>;  				compatible = "atmel,at91rm9200-aic";  				interrupt-controller;  				reg = <0xfffff000 0x200>; +				atmel,external-irqs = <29 30 31>;  			};  			ramc0: ramc@ffffea00 { @@ -81,25 +82,25 @@  			pit: timer@fffffd30 {  				compatible = "atmel,at91sam9260-pit";  				reg = <0xfffffd30 0xf>; -				interrupts = <1 4>; +				interrupts = <1 4 7>;  			};  			tcb0: timer@fffa0000 {  				compatible = "atmel,at91rm9200-tcb";  				reg = <0xfffa0000 0x100>; -				interrupts = <17 4 18 4 19 4>; +				interrupts = <17 4 0 18 4 0 19 4 0>;  			};  			tcb1: timer@fffdc000 {  				compatible = "atmel,at91rm9200-tcb";  				reg = <0xfffdc000 0x100>; -				interrupts = <26 4 27 4 28 4>; +				interrupts = <26 4 0 27 4 0 28 4 0>;  			};  			pioA: gpio@fffff400 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff400 0x100>; -				interrupts = <2 4>; +				interrupts = <2 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -108,7 +109,7 @@  			pioB: gpio@fffff600 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff600 0x100>; -				interrupts = <3 4>; +				interrupts = <3 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -117,7 +118,7 @@  			pioC: gpio@fffff800 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff800 0x100>; -				interrupts = <4 4>; +				interrupts = <4 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -126,14 +127,14 @@  			dbgu: serial@fffff200 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfffff200 0x200>; -				interrupts = <1 4>; +				interrupts = <1 4 7>;  				status = "disabled";  			};  			usart0: serial@fffb0000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfffb0000 0x200>; -				interrupts = <6 4>; +				interrupts = <6 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -142,7 +143,7 @@  			usart1: serial@fffb4000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfffb4000 0x200>; -				interrupts = <7 4>; +				interrupts = <7 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -151,7 +152,7 @@  			usart2: serial@fffb8000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfffb8000 0x200>; -				interrupts = <8 4>; +				interrupts = <8 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -160,7 +161,7 @@  			usart3: serial@fffd0000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfffd0000 0x200>; -				interrupts = <23 4>; +				interrupts = <23 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -169,7 +170,7 @@  			usart4: serial@fffd4000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfffd4000 0x200>; -				interrupts = <24 4>; +				interrupts = <24 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -178,7 +179,7 @@  			usart5: serial@fffd8000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfffd8000 0x200>; -				interrupts = <25 4>; +				interrupts = <25 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -187,21 +188,21 @@  			macb0: ethernet@fffc4000 {  				compatible = "cdns,at32ap7000-macb", "cdns,macb";  				reg = <0xfffc4000 0x100>; -				interrupts = <21 4>; +				interrupts = <21 4 3>;  				status = "disabled";  			};  			usb1: gadget@fffa4000 {  				compatible = "atmel,at91rm9200-udc";  				reg = <0xfffa4000 0x4000>; -				interrupts = <10 4>; +				interrupts = <10 4 2>;  				status = "disabled";  			};  			adc0: adc@fffe0000 {  				compatible = "atmel,at91sam9260-adc";  				reg = <0xfffe0000 0x100>; -				interrupts = <5 4>; +				interrupts = <5 4 0>;  				atmel,adc-use-external-triggers;  				atmel,adc-channels-used = <0xf>;  				atmel,adc-vref = <3300>; @@ -253,7 +254,7 @@  		usb0: ohci@00500000 {  			compatible = "atmel,at91rm9200-ohci", "usb-ohci";  			reg = <0x00500000 0x100000>; -			interrupts = <20 4>; +			interrupts = <20 4 2>;  			status = "disabled";  		};  	}; diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi index 0209913a65a..b460d6ce9eb 100644 --- a/arch/arm/boot/dts/at91sam9263.dtsi +++ b/arch/arm/boot/dts/at91sam9263.dtsi @@ -48,10 +48,11 @@  			ranges;  			aic: interrupt-controller@fffff000 { -				#interrupt-cells = <2>; +				#interrupt-cells = <3>;  				compatible = "atmel,at91rm9200-aic";  				interrupt-controller;  				reg = <0xfffff000 0x200>; +				atmel,external-irqs = <30 31>;  			};  			pmc: pmc@fffffc00 { @@ -68,13 +69,13 @@  			pit: timer@fffffd30 {  				compatible = "atmel,at91sam9260-pit";  				reg = <0xfffffd30 0xf>; -				interrupts = <1 4>; +				interrupts = <1 4 7>;  			};  			tcb0: timer@fff7c000 {  				compatible = "atmel,at91rm9200-tcb";  				reg = <0xfff7c000 0x100>; -				interrupts = <19 4>; +				interrupts = <19 4 0>;  			};  			rstc@fffffd00 { @@ -90,7 +91,7 @@  			pioA: gpio@fffff200 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff200 0x100>; -				interrupts = <2 4>; +				interrupts = <2 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -99,7 +100,7 @@  			pioB: gpio@fffff400 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff400 0x100>; -				interrupts = <3 4>; +				interrupts = <3 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -108,7 +109,7 @@  			pioC: gpio@fffff600 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff600 0x100>; -				interrupts = <4 4>; +				interrupts = <4 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -117,7 +118,7 @@  			pioD: gpio@fffff800 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff800 0x100>; -				interrupts = <4 4>; +				interrupts = <4 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -126,7 +127,7 @@  			pioE: gpio@fffffa00 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffffa00 0x100>; -				interrupts = <4 4>; +				interrupts = <4 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -135,14 +136,14 @@  			dbgu: serial@ffffee00 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xffffee00 0x200>; -				interrupts = <1 4>; +				interrupts = <1 4 7>;  				status = "disabled";  			};  			usart0: serial@fff8c000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfff8c000 0x200>; -				interrupts = <7 4>; +				interrupts = <7 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -151,7 +152,7 @@  			usart1: serial@fff90000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfff90000 0x200>; -				interrupts = <8 4>; +				interrupts = <8 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -160,7 +161,7 @@  			usart2: serial@fff94000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfff94000 0x200>; -				interrupts = <9 4>; +				interrupts = <9 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -169,14 +170,14 @@  			macb0: ethernet@fffbc000 {  				compatible = "cdns,at32ap7000-macb", "cdns,macb";  				reg = <0xfffbc000 0x100>; -				interrupts = <21 4>; +				interrupts = <21 4 3>;  				status = "disabled";  			};  			usb1: gadget@fff78000 {  				compatible = "atmel,at91rm9200-udc";  				reg = <0xfff78000 0x4000>; -				interrupts = <24 4>; +				interrupts = <24 4 2>;  				status = "disabled";  			};  		}; @@ -200,7 +201,7 @@  		usb0: ohci@00a00000 {  			compatible = "atmel,at91rm9200-ohci", "usb-ohci";  			reg = <0x00a00000 0x100000>; -			interrupts = <29 4>; +			interrupts = <29 4 2>;  			status = "disabled";  		};  	}; diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi index 7dbccaf199f..bafa8806fc1 100644 --- a/arch/arm/boot/dts/at91sam9g45.dtsi +++ b/arch/arm/boot/dts/at91sam9g45.dtsi @@ -53,10 +53,11 @@  			ranges;  			aic: interrupt-controller@fffff000 { -				#interrupt-cells = <2>; +				#interrupt-cells = <3>;  				compatible = "atmel,at91rm9200-aic";  				interrupt-controller;  				reg = <0xfffff000 0x200>; +				atmel,external-irqs = <31>;  			};  			ramc0: ramc@ffffe400 { @@ -78,7 +79,7 @@  			pit: timer@fffffd30 {  				compatible = "atmel,at91sam9260-pit";  				reg = <0xfffffd30 0xf>; -				interrupts = <1 4>; +				interrupts = <1 4 7>;  			}; @@ -90,25 +91,25 @@  			tcb0: timer@fff7c000 {  				compatible = "atmel,at91rm9200-tcb";  				reg = <0xfff7c000 0x100>; -				interrupts = <18 4>; +				interrupts = <18 4 0>;  			};  			tcb1: timer@fffd4000 {  				compatible = "atmel,at91rm9200-tcb";  				reg = <0xfffd4000 0x100>; -				interrupts = <18 4>; +				interrupts = <18 4 0>;  			};  			dma: dma-controller@ffffec00 {  				compatible = "atmel,at91sam9g45-dma";  				reg = <0xffffec00 0x200>; -				interrupts = <21 4>; +				interrupts = <21 4 0>;  			};  			pioA: gpio@fffff200 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff200 0x100>; -				interrupts = <2 4>; +				interrupts = <2 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -117,7 +118,7 @@  			pioB: gpio@fffff400 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff400 0x100>; -				interrupts = <3 4>; +				interrupts = <3 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -126,7 +127,7 @@  			pioC: gpio@fffff600 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff600 0x100>; -				interrupts = <4 4>; +				interrupts = <4 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -135,7 +136,7 @@  			pioD: gpio@fffff800 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffff800 0x100>; -				interrupts = <5 4>; +				interrupts = <5 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -144,7 +145,7 @@  			pioE: gpio@fffffa00 {  				compatible = "atmel,at91rm9200-gpio";  				reg = <0xfffffa00 0x100>; -				interrupts = <5 4>; +				interrupts = <5 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -153,14 +154,14 @@  			dbgu: serial@ffffee00 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xffffee00 0x200>; -				interrupts = <1 4>; +				interrupts = <1 4 7>;  				status = "disabled";  			};  			usart0: serial@fff8c000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfff8c000 0x200>; -				interrupts = <7 4>; +				interrupts = <7 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -169,7 +170,7 @@  			usart1: serial@fff90000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfff90000 0x200>; -				interrupts = <8 4>; +				interrupts = <8 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -178,7 +179,7 @@  			usart2: serial@fff94000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfff94000 0x200>; -				interrupts = <9 4>; +				interrupts = <9 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -187,7 +188,7 @@  			usart3: serial@fff98000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfff98000 0x200>; -				interrupts = <10 4>; +				interrupts = <10 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -196,14 +197,14 @@  			macb0: ethernet@fffbc000 {  				compatible = "cdns,at32ap7000-macb", "cdns,macb";  				reg = <0xfffbc000 0x100>; -				interrupts = <25 4>; +				interrupts = <25 4 3>;  				status = "disabled";  			};  			adc0: adc@fffb0000 {  				compatible = "atmel,at91sam9260-adc";  				reg = <0xfffb0000 0x100>; -				interrupts = <20 4>; +				interrupts = <20 4 0>;  				atmel,adc-use-external-triggers;  				atmel,adc-channels-used = <0xff>;  				atmel,adc-vref = <3300>; @@ -257,14 +258,14 @@  		usb0: ohci@00700000 {  			compatible = "atmel,at91rm9200-ohci", "usb-ohci";  			reg = <0x00700000 0x100000>; -			interrupts = <22 4>; +			interrupts = <22 4 2>;  			status = "disabled";  		};  		usb1: ehci@00800000 {  			compatible = "atmel,at91sam9g45-ehci", "usb-ehci";  			reg = <0x00800000 0x100000>; -			interrupts = <22 4>; +			interrupts = <22 4 2>;  			status = "disabled";  		};  	}; diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi index cb84de791b5..bfac0dfc332 100644 --- a/arch/arm/boot/dts/at91sam9n12.dtsi +++ b/arch/arm/boot/dts/at91sam9n12.dtsi @@ -50,7 +50,7 @@  			ranges;  			aic: interrupt-controller@fffff000 { -				#interrupt-cells = <2>; +				#interrupt-cells = <3>;  				compatible = "atmel,at91rm9200-aic";  				interrupt-controller;  				reg = <0xfffff000 0x200>; @@ -74,7 +74,7 @@  			pit: timer@fffffe30 {  				compatible = "atmel,at91sam9260-pit";  				reg = <0xfffffe30 0xf>; -				interrupts = <1 4>; +				interrupts = <1 4 7>;  			};  			shdwc@fffffe10 { @@ -85,25 +85,25 @@  			tcb0: timer@f8008000 {  				compatible = "atmel,at91sam9x5-tcb";  				reg = <0xf8008000 0x100>; -				interrupts = <17 4>; +				interrupts = <17 4 0>;  			};  			tcb1: timer@f800c000 {  				compatible = "atmel,at91sam9x5-tcb";  				reg = <0xf800c000 0x100>; -				interrupts = <17 4>; +				interrupts = <17 4 0>;  			};  			dma: dma-controller@ffffec00 {  				compatible = "atmel,at91sam9g45-dma";  				reg = <0xffffec00 0x200>; -				interrupts = <20 4>; +				interrupts = <20 4 0>;  			};  			pioA: gpio@fffff400 {  				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";  				reg = <0xfffff400 0x100>; -				interrupts = <2 4>; +				interrupts = <2 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -112,7 +112,7 @@  			pioB: gpio@fffff600 {  				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";  				reg = <0xfffff600 0x100>; -				interrupts = <2 4>; +				interrupts = <2 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -121,7 +121,7 @@  			pioC: gpio@fffff800 {  				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";  				reg = <0xfffff800 0x100>; -				interrupts = <3 4>; +				interrupts = <3 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -130,7 +130,7 @@  			pioD: gpio@fffffa00 {  				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";  				reg = <0xfffffa00 0x100>; -				interrupts = <3 4>; +				interrupts = <3 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -139,14 +139,14 @@  			dbgu: serial@fffff200 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfffff200 0x200>; -				interrupts = <1 4>; +				interrupts = <1 4 7>;  				status = "disabled";  			};  			usart0: serial@f801c000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xf801c000 0x4000>; -				interrupts = <5 4>; +				interrupts = <5 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -155,7 +155,7 @@  			usart1: serial@f8020000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xf8020000 0x4000>; -				interrupts = <6 4>; +				interrupts = <6 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -164,7 +164,7 @@  			usart2: serial@f8024000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xf8024000 0x4000>; -				interrupts = <7 4>; +				interrupts = <7 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -173,7 +173,7 @@  			usart3: serial@f8028000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xf8028000 0x4000>; -				interrupts = <8 4>; +				interrupts = <8 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -201,7 +201,7 @@  		usb0: ohci@00500000 {  			compatible = "atmel,at91rm9200-ohci", "usb-ohci";  			reg = <0x00500000 0x00100000>; -			interrupts = <22 4>; +			interrupts = <22 4 2>;  			status = "disabled";  		};  	}; diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index 6b3ef4339ae..4a18c393b13 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi @@ -51,10 +51,11 @@  			ranges;  			aic: interrupt-controller@fffff000 { -				#interrupt-cells = <2>; +				#interrupt-cells = <3>;  				compatible = "atmel,at91rm9200-aic";  				interrupt-controller;  				reg = <0xfffff000 0x200>; +				atmel,external-irqs = <31>;  			};  			ramc0: ramc@ffffe800 { @@ -80,37 +81,37 @@  			pit: timer@fffffe30 {  				compatible = "atmel,at91sam9260-pit";  				reg = <0xfffffe30 0xf>; -				interrupts = <1 4>; +				interrupts = <1 4 7>;  			};  			tcb0: timer@f8008000 {  				compatible = "atmel,at91sam9x5-tcb";  				reg = <0xf8008000 0x100>; -				interrupts = <17 4>; +				interrupts = <17 4 0>;  			};  			tcb1: timer@f800c000 {  				compatible = "atmel,at91sam9x5-tcb";  				reg = <0xf800c000 0x100>; -				interrupts = <17 4>; +				interrupts = <17 4 0>;  			};  			dma0: dma-controller@ffffec00 {  				compatible = "atmel,at91sam9g45-dma";  				reg = <0xffffec00 0x200>; -				interrupts = <20 4>; +				interrupts = <20 4 0>;  			};  			dma1: dma-controller@ffffee00 {  				compatible = "atmel,at91sam9g45-dma";  				reg = <0xffffee00 0x200>; -				interrupts = <21 4>; +				interrupts = <21 4 0>;  			};  			pioA: gpio@fffff400 {  				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";  				reg = <0xfffff400 0x100>; -				interrupts = <2 4>; +				interrupts = <2 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -119,7 +120,7 @@  			pioB: gpio@fffff600 {  				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";  				reg = <0xfffff600 0x100>; -				interrupts = <2 4>; +				interrupts = <2 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -128,7 +129,7 @@  			pioC: gpio@fffff800 {  				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";  				reg = <0xfffff800 0x100>; -				interrupts = <3 4>; +				interrupts = <3 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -137,7 +138,7 @@  			pioD: gpio@fffffa00 {  				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";  				reg = <0xfffffa00 0x100>; -				interrupts = <3 4>; +				interrupts = <3 4 1>;  				#gpio-cells = <2>;  				gpio-controller;  				interrupt-controller; @@ -146,14 +147,14 @@  			dbgu: serial@fffff200 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xfffff200 0x200>; -				interrupts = <1 4>; +				interrupts = <1 4 7>;  				status = "disabled";  			};  			usart0: serial@f801c000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xf801c000 0x200>; -				interrupts = <5 4>; +				interrupts = <5 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -162,7 +163,7 @@  			usart1: serial@f8020000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xf8020000 0x200>; -				interrupts = <6 4>; +				interrupts = <6 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -171,7 +172,7 @@  			usart2: serial@f8024000 {  				compatible = "atmel,at91sam9260-usart";  				reg = <0xf8024000 0x200>; -				interrupts = <7 4>; +				interrupts = <7 4 5>;  				atmel,use-dma-rx;  				atmel,use-dma-tx;  				status = "disabled"; @@ -180,21 +181,21 @@  			macb0: ethernet@f802c000 {  				compatible = "cdns,at32ap7000-macb", "cdns,macb";  				reg = <0xf802c000 0x100>; -				interrupts = <24 4>; +				interrupts = <24 4 3>;  				status = "disabled";  			};  			macb1: ethernet@f8030000 {  				compatible = "cdns,at32ap7000-macb", "cdns,macb";  				reg = <0xf8030000 0x100>; -				interrupts = <27 4>; +				interrupts = <27 4 3>;  				status = "disabled";  			};  			adc0: adc@f804c000 {  				compatible = "atmel,at91sam9260-adc";  				reg = <0xf804c000 0x100>; -				interrupts = <19 4>; +				interrupts = <19 4 0>;  				atmel,adc-use-external;  				atmel,adc-channels-used = <0xffff>;  				atmel,adc-vref = <3300>; @@ -248,14 +249,14 @@  		usb0: ohci@00600000 {  			compatible = "atmel,at91rm9200-ohci", "usb-ohci";  			reg = <0x00600000 0x100000>; -			interrupts = <22 4>; +			interrupts = <22 4 2>;  			status = "disabled";  		};  		usb1: ehci@00700000 {  			compatible = "atmel,at91sam9g45-ehci", "usb-ehci";  			reg = <0x00700000 0x100000>; -			interrupts = <22 4>; +			interrupts = <22 4 2>;  			status = "disabled";  		};  	}; diff --git a/arch/arm/boot/dts/db8500.dtsi b/arch/arm/boot/dts/db8500.dtsi index 4ad5160018c..3180a9c588b 100644 --- a/arch/arm/boot/dts/db8500.dtsi +++ b/arch/arm/boot/dts/db8500.dtsi @@ -48,7 +48,7 @@  		};  		rtc@80154000 { -			compatible = "stericsson,db8500-rtc"; +			compatible = "arm,rtc-pl031", "arm,primecell";  			reg = <0x80154000 0x1000>;  			interrupts = <0 18 0x4>;  		}; @@ -60,7 +60,7 @@  			interrupts = <0 119 0x4>;  			interrupt-controller;  			#interrupt-cells = <2>; -			supports-sleepmode; +			st,supports-sleepmode;  			gpio-controller;  			#gpio-cells = <2>;  			gpio-bank = <0>; @@ -73,7 +73,7 @@  			interrupts = <0 120 0x4>;  			interrupt-controller;  			#interrupt-cells = <2>; -			supports-sleepmode; +			st,supports-sleepmode;  			gpio-controller;  			#gpio-cells = <2>;  			gpio-bank = <1>; @@ -86,7 +86,7 @@  			interrupts = <0 121 0x4>;  			interrupt-controller;  			#interrupt-cells = <2>; -			supports-sleepmode; +			st,supports-sleepmode;  			gpio-controller;  			#gpio-cells = <2>;  			gpio-bank = <2>; @@ -99,7 +99,7 @@  			interrupts = <0 122 0x4>;  			interrupt-controller;  			#interrupt-cells = <2>; -			supports-sleepmode; +			st,supports-sleepmode;  			gpio-controller;  			#gpio-cells = <2>;  			gpio-bank = <3>; @@ -112,7 +112,7 @@  			interrupts = <0 123 0x4>;  			interrupt-controller;  			#interrupt-cells = <2>; -			supports-sleepmode; +			st,supports-sleepmode;  			gpio-controller;  			#gpio-cells = <2>;  			gpio-bank = <4>; @@ -125,7 +125,7 @@  			interrupts = <0 124 0x4>;  			interrupt-controller;  			#interrupt-cells = <2>; -			supports-sleepmode; +			st,supports-sleepmode;  			gpio-controller;  			#gpio-cells = <2>;  			gpio-bank = <5>; @@ -138,7 +138,7 @@  			interrupts = <0 125 0x4>;  			interrupt-controller;  			#interrupt-cells = <2>; -			supports-sleepmode; +			st,supports-sleepmode;  			gpio-controller;  			#gpio-cells = <2>;  			gpio-bank = <6>; @@ -151,7 +151,7 @@  			interrupts = <0 126 0x4>;  			interrupt-controller;  			#interrupt-cells = <2>; -			supports-sleepmode; +			st,supports-sleepmode;  			gpio-controller;  			#gpio-cells = <2>;  			gpio-bank = <7>; @@ -164,7 +164,7 @@  			interrupts = <0 127 0x4>;  			interrupt-controller;  			#interrupt-cells = <2>; -			supports-sleepmode; +			st,supports-sleepmode;  			gpio-controller;  			#gpio-cells = <2>;  			gpio-bank = <8>; @@ -206,62 +206,74 @@  				// DB8500_REGULATOR_VAPE  				db8500_vape_reg: db8500_vape { +					regulator-compatible = "db8500_vape";  					regulator-name = "db8500-vape";  					regulator-always-on;  				};  				// DB8500_REGULATOR_VARM  				db8500_varm_reg: db8500_varm { +					regulator-compatible = "db8500_varm";  					regulator-name = "db8500-varm";  				};  				// DB8500_REGULATOR_VMODEM  				db8500_vmodem_reg: db8500_vmodem { +					regulator-compatible = "db8500_vmodem";  					regulator-name = "db8500-vmodem";  				};  				// DB8500_REGULATOR_VPLL  				db8500_vpll_reg: db8500_vpll { +					regulator-compatible = "db8500_vpll";  					regulator-name = "db8500-vpll";  				};  				// DB8500_REGULATOR_VSMPS1  				db8500_vsmps1_reg: db8500_vsmps1 { +					regulator-compatible = "db8500_vsmps1";  					regulator-name = "db8500-vsmps1";  				};  				// DB8500_REGULATOR_VSMPS2  				db8500_vsmps2_reg: db8500_vsmps2 { +					regulator-compatible = "db8500_vsmps2";  					regulator-name = "db8500-vsmps2";  				};  				// DB8500_REGULATOR_VSMPS3  				db8500_vsmps3_reg: db8500_vsmps3 { +					regulator-compatible = "db8500_vsmps3";  					regulator-name = "db8500-vsmps3";  				};  				// DB8500_REGULATOR_VRF1  				db8500_vrf1_reg: db8500_vrf1 { +					regulator-compatible = "db8500_vrf1";  					regulator-name = "db8500-vrf1";  				};  				// DB8500_REGULATOR_SWITCH_SVAMMDSP  				db8500_sva_mmdsp_reg: db8500_sva_mmdsp { +					regulator-compatible = "db8500_sva_mmdsp";  					regulator-name = "db8500-sva-mmdsp";  				};  				// DB8500_REGULATOR_SWITCH_SVAMMDSPRET  				db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret { +					regulator-compatible = "db8500_sva_mmdsp_ret";  					regulator-name = "db8500-sva-mmdsp-ret";  				};  				// DB8500_REGULATOR_SWITCH_SVAPIPE  				db8500_sva_pipe_reg: db8500_sva_pipe { +					regulator-compatible = "db8500_sva_pipe";  					regulator-name = "db8500_sva_pipe";  				};  				// DB8500_REGULATOR_SWITCH_SIAMMDSP  				db8500_sia_mmdsp_reg: db8500_sia_mmdsp { +					regulator-compatible = "db8500_sia_mmdsp";  					regulator-name = "db8500_sia_mmdsp";  				}; @@ -272,38 +284,45 @@  				// DB8500_REGULATOR_SWITCH_SIAPIPE  				db8500_sia_pipe_reg: db8500_sia_pipe { +					regulator-compatible = "db8500_sia_pipe";  					regulator-name = "db8500-sia-pipe";  				};  				// DB8500_REGULATOR_SWITCH_SGA  				db8500_sga_reg: db8500_sga { +					regulator-compatible = "db8500_sga";  					regulator-name = "db8500-sga";  					vin-supply = <&db8500_vape_reg>;  				};  				// DB8500_REGULATOR_SWITCH_B2R2_MCDE  				db8500_b2r2_mcde_reg: db8500_b2r2_mcde { +					regulator-compatible = "db8500_b2r2_mcde";  					regulator-name = "db8500-b2r2-mcde";  					vin-supply = <&db8500_vape_reg>;  				};  				// DB8500_REGULATOR_SWITCH_ESRAM12  				db8500_esram12_reg: db8500_esram12 { +					regulator-compatible = "db8500_esram12";  					regulator-name = "db8500-esram12";  				};  				// DB8500_REGULATOR_SWITCH_ESRAM12RET  				db8500_esram12_ret_reg: db8500_esram12_ret { +					regulator-compatible = "db8500_esram12_ret";  					regulator-name = "db8500-esram12-ret";  				};  				// DB8500_REGULATOR_SWITCH_ESRAM34  				db8500_esram34_reg: db8500_esram34 { +					regulator-compatible = "db8500_esram34";  					regulator-name = "db8500-esram34";  				};  				// DB8500_REGULATOR_SWITCH_ESRAM34RET  				db8500_esram34_ret_reg: db8500_esram34_ret { +					regulator-compatible = "db8500_esram34_ret";  					regulator-name = "db8500-esram34-ret";  				};  			}; @@ -312,12 +331,70 @@  				compatible = "stericsson,ab8500";  				reg = <5>; /* mailbox 5 is i2c */  				interrupts = <0 40 0x4>; +				interrupt-controller; +				#interrupt-cells = <2>; + +				ab8500-rtc { +					compatible = "stericsson,ab8500-rtc"; +					interrupts = <17 0x4 +					              18 0x4>; +					interrupt-names = "60S", "ALARM"; +				}; + +				ab8500-gpadc { +					compatible = "stericsson,ab8500-gpadc"; +					interrupts = <32 0x4 +						      39 0x4>; +					interrupt-names = "HW_CONV_END", "SW_CONV_END"; +					vddadc-supply = <&ab8500_ldo_tvout_reg>; +				}; + +				ab8500-usb { +					compatible = "stericsson,ab8500-usb"; +					interrupts = < 90 0x4 +						       96 0x4 +						       14 0x4 +						       15 0x4 +						       79 0x4 +						       74 0x4 +						       75 0x4>; +					interrupt-names = "ID_WAKEUP_R", +							  "ID_WAKEUP_F", +							  "VBUS_DET_F", +							  "VBUS_DET_R", +							  "USB_LINK_STATUS", +							  "USB_ADP_PROBE_PLUG", +							  "USB_ADP_PROBE_UNPLUG"; +					vddulpivio18-supply = <&ab8500_ldo_initcore_reg>; +					v-ape-supply = <&db8500_vape_reg>; +					musb_1v8-supply = <&db8500_vsmps2_reg>; +				}; + +				ab8500-ponkey { +					compatible = "stericsson,ab8500-ponkey"; +					interrupts = <6 0x4 +						      7 0x4>; +					interrupt-names = "ONKEY_DBF", "ONKEY_DBR"; +				}; + +				ab8500-sysctrl { +					compatible = "stericsson,ab8500-sysctrl"; +				}; + +				ab8500-pwm { +					compatible = "stericsson,ab8500-pwm"; +				}; + +				ab8500-debugfs { +					compatible = "stericsson,ab8500-debug"; +				};  				ab8500-regulators {  					compatible = "stericsson,ab8500-regulator";  					// supplies to the display/camera  					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { +						regulator-compatible = "ab8500_ldo_aux1";  						regulator-name = "V-DISPLAY";  						regulator-min-microvolt = <2500000>;  						regulator-max-microvolt = <2900000>; @@ -328,6 +405,7 @@  					// supplies to the on-board eMMC  					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 { +						regulator-compatible = "ab8500_ldo_aux2";  						regulator-name = "V-eMMC1";  						regulator-min-microvolt = <1100000>;  						regulator-max-microvolt = <3300000>; @@ -335,6 +413,7 @@  					// supply for VAUX3; SDcard slots  					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 { +						regulator-compatible = "ab8500_ldo_aux3";  						regulator-name = "V-MMC-SD";  						regulator-min-microvolt = <1100000>;  						regulator-max-microvolt = <3300000>; @@ -342,41 +421,49 @@  					// supply for v-intcore12; VINTCORE12 LDO  					ab8500_ldo_initcore_reg: ab8500_ldo_initcore { +						regulator-compatible = "ab8500_ldo_initcore";  						regulator-name = "V-INTCORE";  					};  					// supply for tvout; gpadc; TVOUT LDO  					ab8500_ldo_tvout_reg: ab8500_ldo_tvout { +						regulator-compatible = "ab8500_ldo_tvout";  						regulator-name = "V-TVOUT";  					};  					// supply for ab8500-usb; USB LDO  					ab8500_ldo_usb_reg: ab8500_ldo_usb { +						regulator-compatible = "ab8500_ldo_usb";  						regulator-name = "dummy";  					};  					// supply for ab8500-vaudio; VAUDIO LDO  					ab8500_ldo_audio_reg: ab8500_ldo_audio { +						regulator-compatible = "ab8500_ldo_audio";  						regulator-name = "V-AUD";  					};  					// supply for v-anamic1 VAMic1-LDO  					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 { +						regulator-compatible = "ab8500_ldo_anamic1";  						regulator-name = "V-AMIC1";  					};  					// supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1  					ab8500_ldo_amamic2_reg: ab8500_ldo_amamic2 { +						regulator-compatible = "ab8500_ldo_amamic2";  						regulator-name = "V-AMIC2";  					};  					// supply for v-dmic; VDMIC LDO  					ab8500_ldo_dmic_reg: ab8500_ldo_dmic { +						regulator-compatible = "ab8500_ldo_dmic";  						regulator-name = "V-DMIC";  					};  					// supply for U8500 CSI/DSI; VANA LDO  					ab8500_ldo_ana_reg: ab8500_ldo_ana { +						regulator-compatible = "ab8500_ldo_ana";  						regulator-name = "V-CSI/DSI";  					};  				}; diff --git a/arch/arm/boot/dts/ea3250.dts b/arch/arm/boot/dts/ea3250.dts new file mode 100644 index 00000000000..d79b28d9c96 --- /dev/null +++ b/arch/arm/boot/dts/ea3250.dts @@ -0,0 +1,174 @@ +/* + * Embedded Artists LPC3250 board + * + * Copyright 2012 Roland Stigge <stigge@antcom.de> + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +/dts-v1/; +/include/ "lpc32xx.dtsi" + +/ { +	model = "Embedded Artists LPC3250 board based on NXP LPC3250"; +	compatible = "ea,ea3250", "nxp,lpc3250"; +	#address-cells = <1>; +	#size-cells = <1>; + +	memory { +		device_type = "memory"; +		reg = <0 0x4000000>; +	}; + +	ahb { +		mac: ethernet@31060000 { +			phy-mode = "rmii"; +			use-iram; +		}; + +		/* Here, choose exactly one from: ohci, usbd */ +		ohci@31020000 { +			transceiver = <&isp1301>; +			status = "okay"; +		}; + +/* +		usbd@31020000 { +			transceiver = <&isp1301>; +			status = "okay"; +		}; +*/ + +		/* 128MB Flash via SLC NAND controller */ +		slc: flash@20020000 { +			status = "okay"; +			#address-cells = <1>; +			#size-cells = <1>; + +			nxp,wdr-clks = <14>; +			nxp,wwidth = <260000000>; +			nxp,whold = <104000000>; +			nxp,wsetup = <200000000>; +			nxp,rdr-clks = <14>; +			nxp,rwidth = <34666666>; +			nxp,rhold = <104000000>; +			nxp,rsetup = <200000000>; +			nand-on-flash-bbt; +			gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */ + +			mtd0@00000000 { +				label = "ea3250-boot"; +				reg = <0x00000000 0x00080000>; +				read-only; +			}; + +			mtd1@00080000 { +				label = "ea3250-uboot"; +				reg = <0x00080000 0x000c0000>; +				read-only; +			}; + +			mtd2@00140000 { +				label = "ea3250-kernel"; +				reg = <0x00140000 0x00400000>; +			}; + +			mtd3@00540000 { +				label = "ea3250-rootfs"; +				reg = <0x00540000 0x07ac0000>; +			}; +		}; + +		apb { +			uart5: serial@40090000 { +				status = "okay"; +			}; + +			uart3: serial@40080000 { +				status = "okay"; +			}; + +			uart6: serial@40098000 { +				status = "okay"; +			}; + +			i2c1: i2c@400A0000 { +				clock-frequency = <100000>; + +				eeprom@50 { +					compatible = "at,24c256"; +					reg = <0x50>; +				}; + +				eeprom@57 { +					compatible = "at,24c64"; +					reg = <0x57>; +				}; + +				uda1380: uda1380@18 { +					compatible = "nxp,uda1380"; +					reg = <0x18>; +					power-gpio = <&gpio 0x59 0>; +					reset-gpio = <&gpio 0x51 0>; +					dac-clk = "wspll"; +				}; + +				pca9532: pca9532@60 { +					compatible = "nxp,pca9532"; +					gpio-controller; +					#gpio-cells = <2>; +					reg = <0x60>; +				}; +			}; + +			i2c2: i2c@400A8000 { +				clock-frequency = <100000>; +			}; + +			i2cusb: i2c@31020300 { +				clock-frequency = <100000>; + +				isp1301: usb-transceiver@2d { +					compatible = "nxp,isp1301"; +					reg = <0x2d>; +				}; +			}; + +			sd@20098000 { +				wp-gpios = <&pca9532 5 0>; +				cd-gpios = <&pca9532 4 0>; +				cd-inverted; +				bus-width = <4>; +				status = "okay"; +			}; +		}; + +		fab { +			uart1: serial@40014000 { +				status = "okay"; +			}; + +			/* 3-axis accelerometer X,Y,Z (or AD-IN instead of Z) */ +			adc@40048000 { +				status = "okay"; +			}; +		}; +	}; + +	gpio_keys { +		compatible = "gpio-keys"; +		#address-cells = <1>; +		#size-cells = <0>; +		autorepeat; +		button@21 { +			label = "GPIO Key UP"; +			linux,code = <103>; +			gpios = <&gpio 4 1 0>; /* GPI_P3 1 */ +		}; +	}; +}; diff --git a/arch/arm/boot/dts/evk-pro3.dts b/arch/arm/boot/dts/evk-pro3.dts new file mode 100644 index 00000000000..b7354e6506d --- /dev/null +++ b/arch/arm/boot/dts/evk-pro3.dts @@ -0,0 +1,41 @@ +/* + * evk-pro3.dts - Device Tree file for Telit EVK-PRO3 with Telit GE863-PRO3 + * + * Copyright (C) 2012 Telit, + *               2012 Fabio Porcedda <fabio.porcedda@gmail.com> + * + * Licensed under GPLv2 or later. + */ + +/dts-v1/; + +/include/ "ge863-pro3.dtsi" + +/ { +	model = "Telit EVK-PRO3 for Telit GE863-PRO3"; +	compatible = "telit,evk-pro3", "atmel,at91sam9260", "atmel,at91sam9"; + +	ahb { +		apb { +			macb0: ethernet@fffc4000 { +				phy-mode = "rmii"; +				status = "okay"; +			}; + +			usb1: gadget@fffa4000 { +				atmel,vbus-gpio = <&pioC 5 0>; +				status = "okay"; +			}; +		}; + +		usb0: ohci@00500000 { +			num-ports = <2>; +			status = "okay"; +		}; +	}; + +	i2c@0 { +		status = "okay"; +	}; + +};
\ No newline at end of file diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts index b8c476384ee..0c49caa0997 100644 --- a/arch/arm/boot/dts/exynos4210-origen.dts +++ b/arch/arm/boot/dts/exynos4210-origen.dts @@ -134,4 +134,16 @@  	i2c@138D0000 {  		status = "disabled";  	}; + +	spi_0: spi@13920000 { +		status = "disabled"; +	}; + +	spi_1: spi@13930000 { +		status = "disabled"; +	}; + +	spi_2: spi@13940000 { +		status = "disabled"; +	};  }; diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts index 27afc8e535c..1beccc8f14f 100644 --- a/arch/arm/boot/dts/exynos4210-smdkv310.dts +++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts @@ -179,4 +179,42 @@  	i2c@138D0000 {  		status = "disabled";  	}; + +	spi_0: spi@13920000 { +		status = "disabled"; +	}; + +	spi_1: spi@13930000 { +		status = "disabled"; +	}; + +	spi_2: spi@13940000 { +		gpios = <&gpc1 1 5 3 0>, +			<&gpc1 3 5 3 0>, +			<&gpc1 4 5 3 0>; + +		w25x80@0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "w25x80"; +			reg = <0>; +			spi-max-frequency = <1000000>; + +			controller-data { +				cs-gpio = <&gpc1 2 1 0 3>; +				samsung,spi-feedback-delay = <0>; +			}; + +			partition@0 { +				label = "U-Boot"; +				reg = <0x0 0x40000>; +				read-only; +			}; + +			partition@40000 { +				label = "Kernel"; +				reg = <0x40000 0xc0000>; +			}; +		}; +	};  }; diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi index a1dd2ee8375..02891fe876e 100644 --- a/arch/arm/boot/dts/exynos4210.dtsi +++ b/arch/arm/boot/dts/exynos4210.dtsi @@ -25,6 +25,12 @@  	compatible = "samsung,exynos4210";  	interrupt-parent = <&gic>; +	aliases { +		spi0 = &spi_0; +		spi1 = &spi_1; +		spi2 = &spi_2; +	}; +  	gic:interrupt-controller@10490000 {  		compatible = "arm,cortex-a9-gic";  		#interrupt-cells = <3>; @@ -33,6 +39,17 @@  		reg = <0x10490000 0x1000>, <0x10480000 0x100>;  	}; +	combiner:interrupt-controller@10440000 { +		compatible = "samsung,exynos4210-combiner"; +		#interrupt-cells = <2>; +		interrupt-controller; +		reg = <0x10440000 0x1000>; +		interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, +			     <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, +			     <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, +			     <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>; +	}; +  	watchdog@10060000 {  		compatible = "samsung,s3c2410-wdt";  		reg = <0x10060000 0x100>; @@ -147,6 +164,36 @@  		interrupts = <0 65 0>;  	}; +	spi_0: spi@13920000 { +		compatible = "samsung,exynos4210-spi"; +		reg = <0x13920000 0x100>; +		interrupts = <0 66 0>; +		tx-dma-channel = <&pdma0 7>; /* preliminary */ +		rx-dma-channel = <&pdma0 6>; /* preliminary */ +		#address-cells = <1>; +		#size-cells = <0>; +	}; + +	spi_1: spi@13930000 { +		compatible = "samsung,exynos4210-spi"; +		reg = <0x13930000 0x100>; +		interrupts = <0 67 0>; +		tx-dma-channel = <&pdma1 7>; /* preliminary */ +		rx-dma-channel = <&pdma1 6>; /* preliminary */ +		#address-cells = <1>; +		#size-cells = <0>; +	}; + +	spi_2: spi@13940000 { +		compatible = "samsung,exynos4210-spi"; +		reg = <0x13940000 0x100>; +		interrupts = <0 68 0>; +		tx-dma-channel = <&pdma0 9>; /* preliminary */ +		rx-dma-channel = <&pdma0 8>; /* preliminary */ +		#address-cells = <1>; +		#size-cells = <0>; +	}; +  	amba {  		#address-cells = <1>;  		#size-cells = <1>; diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 49945cc1bc7..8a5e348793c 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts @@ -71,4 +71,42 @@  	i2c@12CD0000 {  		status = "disabled";  	}; + +	spi_0: spi@12d20000 { +		status = "disabled"; +	}; + +	spi_1: spi@12d30000 { +		gpios = <&gpa2 4 2 3 0>, +			<&gpa2 6 2 3 0>, +			<&gpa2 7 2 3 0>; + +		w25q80bw@0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "w25x80"; +			reg = <0>; +			spi-max-frequency = <1000000>; + +			controller-data { +				cs-gpio = <&gpa2 5 1 0 3>; +				samsung,spi-feedback-delay = <0>; +			}; + +			partition@0 { +				label = "U-Boot"; +				reg = <0x0 0x40000>; +				read-only; +			}; + +			partition@40000 { +				label = "Kernel"; +				reg = <0x40000 0xc0000>; +			}; +		}; +	}; + +	spi_2: spi@12d40000 { +		status = "disabled"; +	};  }; diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index 4272b294922..004aaa8d123 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi @@ -23,6 +23,12 @@  	compatible = "samsung,exynos5250";  	interrupt-parent = <&gic>; +	aliases { +		spi0 = &spi_0; +		spi1 = &spi_1; +		spi2 = &spi_2; +	}; +  	gic:interrupt-controller@10481000 {  		compatible = "arm,cortex-a9-gic";  		#interrupt-cells = <3>; @@ -146,6 +152,36 @@  		#size-cells = <0>;  	}; +	spi_0: spi@12d20000 { +		compatible = "samsung,exynos4210-spi"; +		reg = <0x12d20000 0x100>; +		interrupts = <0 66 0>; +		tx-dma-channel = <&pdma0 5>; /* preliminary */ +		rx-dma-channel = <&pdma0 4>; /* preliminary */ +		#address-cells = <1>; +		#size-cells = <0>; +	}; + +	spi_1: spi@12d30000 { +		compatible = "samsung,exynos4210-spi"; +		reg = <0x12d30000 0x100>; +		interrupts = <0 67 0>; +		tx-dma-channel = <&pdma1 5>; /* preliminary */ +		rx-dma-channel = <&pdma1 4>; /* preliminary */ +		#address-cells = <1>; +		#size-cells = <0>; +	}; + +	spi_2: spi@12d40000 { +		compatible = "samsung,exynos4210-spi"; +		reg = <0x12d40000 0x100>; +		interrupts = <0 68 0>; +		tx-dma-channel = <&pdma0 7>; /* preliminary */ +		rx-dma-channel = <&pdma0 6>; /* preliminary */ +		#address-cells = <1>; +		#size-cells = <0>; +	}; +  	amba {  		#address-cells = <1>;  		#size-cells = <1>; diff --git a/arch/arm/boot/dts/ge863-pro3.dtsi b/arch/arm/boot/dts/ge863-pro3.dtsi new file mode 100644 index 00000000000..17136fc7a51 --- /dev/null +++ b/arch/arm/boot/dts/ge863-pro3.dtsi @@ -0,0 +1,52 @@ +/* + * ge863_pro3.dtsi - Device Tree file for Telit GE863-PRO3 + * + * Copyright (C) 2012 Telit, + *               2012 Fabio Porcedda <fabio.porcedda@gmail.com> + * + * Licensed under GPLv2 or later. + */ + +/include/ "at91sam9260.dtsi" + +/ { +	clocks { +		#address-cells = <1>; +		#size-cells = <1>; +		ranges; + +		main_clock: clock@0 { +			compatible = "atmel,osc", "fixed-clock"; +			clock-frequency = <6000000>; +		}; +	}; + +	ahb { +		apb { +			dbgu: serial@fffff200 { +				status = "okay"; +			}; +		}; + +		nand0: nand@40000000 { +			nand-bus-width = <8>; +			nand-ecc-mode = "soft"; +			nand-on-flash-bbt; +			status = "okay"; + +			boot@0 { +				label = "boot"; +				reg = <0x0 0x7c0000>; +			}; + +			root@07c0000 { +				label = "root"; +				reg = <0x7c0000 0x7840000>; +			}; +		}; +	}; + +	chosen { +		bootargs = "console=ttyS0,115200 root=ubi0:rootfs ubi.mtd=1 rootfstype=ubifs"; +	}; +}; diff --git a/arch/arm/boot/dts/imx23-evk.dts b/arch/arm/boot/dts/imx23-evk.dts index 70bffa929b6..e3486f486b4 100644 --- a/arch/arm/boot/dts/imx23-evk.dts +++ b/arch/arm/boot/dts/imx23-evk.dts @@ -22,17 +22,60 @@  	apb@80000000 {  		apbh@80000000 { +			gpmi-nand@8000c000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&gpmi_pins_a &gpmi_pins_fixup>; +				status = "okay"; +			}; +  			ssp0: ssp@80010000 {  				compatible = "fsl,imx23-mmc";  				pinctrl-names = "default"; -				pinctrl-0 = <&mmc0_8bit_pins_a &mmc0_pins_fixup>; -				bus-width = <8>; +				pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>; +				bus-width = <4>;  				wp-gpios = <&gpio1 30 0>; +				vmmc-supply = <®_vddio_sd0>; +				status = "okay"; +			}; + +			pinctrl@80018000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&hog_pins_a>; + +				hog_pins_a: hog-gpios@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x1123 /* MX23_PAD_LCD_RESET__GPIO_1_18 */ +						0x11d3 /* MX23_PAD_PWM3__GPIO_1_29 */ +						0x11e3 /* MX23_PAD_PWM4__GPIO_1_30 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; +			}; + +			lcdif@80030000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&lcdif_24bit_pins_a>; +				panel-enable-gpios = <&gpio1 18 0>;  				status = "okay";  			};  		};  		apbx@80040000 { +			pwm: pwm@80064000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&pwm2_pins_a>; +				status = "okay"; +			}; + +			auart0: serial@8006c000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&auart0_pins_a>; +				status = "okay"; +			}; +  			duart: serial@80070000 {  				pinctrl-names = "default";  				pinctrl-0 = <&duart_pins_a>; @@ -40,4 +83,23 @@  			};  		};  	}; + +	regulators { +		compatible = "simple-bus"; + +		reg_vddio_sd0: vddio-sd0 { +			compatible = "regulator-fixed"; +			regulator-name = "vddio-sd0"; +			regulator-min-microvolt = <3300000>; +			regulator-max-microvolt = <3300000>; +			gpio = <&gpio1 29 0>; +		}; +	}; + +	backlight { +		compatible = "pwm-backlight"; +		pwms = <&pwm 2 5000000>; +		brightness-levels = <0 4 8 16 32 64 128 255>; +		default-brightness-level = <6>; +	};  }; diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts new file mode 100644 index 00000000000..20912b1d889 --- /dev/null +++ b/arch/arm/boot/dts/imx23-olinuxino.dts @@ -0,0 +1,44 @@ +/* + * Copyright 2012 Freescale Semiconductor, Inc. + * + * Author: Fabio Estevam <fabio.estevam@freescale.com> + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +/dts-v1/; +/include/ "imx23.dtsi" + +/ { +	model = "i.MX23 Olinuxino Low Cost Board"; +	compatible = "olimex,imx23-olinuxino", "fsl,imx23"; + +	memory { +		reg = <0x40000000 0x04000000>; +	}; + +	apb@80000000 { +		apbh@80000000 { +			ssp0: ssp@80010000 { +				compatible = "fsl,imx23-mmc"; +				pinctrl-names = "default"; +				pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>; +				bus-width = <4>; +				status = "okay"; +			}; +		}; + +		apbx@80040000 { +			duart: serial@80070000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&duart_pins_a>; +				status = "okay"; +			}; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/imx23-stmp378x_devb.dts b/arch/arm/boot/dts/imx23-stmp378x_devb.dts new file mode 100644 index 00000000000..757a327ff3e --- /dev/null +++ b/arch/arm/boot/dts/imx23-stmp378x_devb.dts @@ -0,0 +1,78 @@ +/* + * Copyright 2012 Freescale Semiconductor, Inc. + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +/dts-v1/; +/include/ "imx23.dtsi" + +/ { +	model = "Freescale STMP378x Development Board"; +	compatible = "fsl,stmp378x-devb", "fsl,imx23"; + +	memory { +		reg = <0x40000000 0x04000000>; +	}; + +	apb@80000000 { +		apbh@80000000 { +			ssp0: ssp@80010000 { +				compatible = "fsl,imx23-mmc"; +				pinctrl-names = "default"; +				pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>; +				bus-width = <4>; +				wp-gpios = <&gpio1 30 0>; +				vmmc-supply = <®_vddio_sd0>; +				status = "okay"; +			}; + +			pinctrl@80018000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&hog_pins_a>; + +				hog_pins_a: hog-gpios@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x11d3 /* MX23_PAD_PWM3__GPIO_1_29 */ +						0x11e3 /* MX23_PAD_PWM4__GPIO_1_30 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; +			}; +		}; + +		apbx@80040000 { +			auart0: serial@8006c000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&auart0_pins_a>; +				status = "okay"; +			}; + +			duart: serial@80070000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&duart_pins_a>; +				status = "okay"; +			}; +		}; +	}; + +	regulators { +		compatible = "simple-bus"; + +		reg_vddio_sd0: vddio-sd0 { +			compatible = "regulator-fixed"; +			regulator-name = "vddio-sd0"; +			regulator-min-microvolt = <3300000>; +			regulator-max-microvolt = <3300000>; +			gpio = <&gpio1 29 0>; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi index 8c5f9994f3f..a874dbfb5ae 100644 --- a/arch/arm/boot/dts/imx23.dtsi +++ b/arch/arm/boot/dts/imx23.dtsi @@ -18,6 +18,8 @@  		gpio0 = &gpio0;  		gpio1 = &gpio1;  		gpio2 = &gpio2; +		serial0 = &auart0; +		serial1 = &auart1;  	};  	cpus { @@ -57,13 +59,15 @@  				status = "disabled";  			}; -			bch@8000a000 { -				reg = <0x8000a000 2000>; -				status = "disabled"; -			}; - -			gpmi@8000c000 { -				reg = <0x8000c000 2000>; +			gpmi-nand@8000c000 { +				compatible = "fsl,imx23-gpmi-nand"; +				#address-cells = <1>; +				#size-cells = <1>; +				reg = <0x8000c000 2000>, <0x8000a000 2000>; +				reg-names = "gpmi-nand", "bch"; +				interrupts = <13>, <56>; +				interrupt-names = "gpmi-dma", "bch"; +				fsl,gpmi-dma-channel = <4>;  				status = "disabled";  			}; @@ -114,24 +118,151 @@  				duart_pins_a: duart@0 {  					reg = <0>; -					fsl,pinmux-ids = <0x11a2 0x11b2>; +					fsl,pinmux-ids = < +						0x11a2 /* MX23_PAD_PWM0__DUART_RX */ +						0x11b2 /* MX23_PAD_PWM1__DUART_TX */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				auart0_pins_a: auart0@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x01c0 /* MX23_PAD_AUART1_RX__AUART1_RX */ +						0x01d0 /* MX23_PAD_AUART1_TX__AUART1_TX */ +						0x01a0 /* MX23_PAD_AUART1_CTS__AUART1_CTS */ +						0x01b0 /* MX23_PAD_AUART1_RTS__AUART1_RTS */ +					>;  					fsl,drive-strength = <0>;  					fsl,voltage = <1>;  					fsl,pull-up = <0>;  				}; +				gpmi_pins_a: gpmi-nand@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x0000 /* MX23_PAD_GPMI_D00__GPMI_D00 */ +						0x0010 /* MX23_PAD_GPMI_D01__GPMI_D01 */ +						0x0020 /* MX23_PAD_GPMI_D02__GPMI_D02 */ +						0x0030 /* MX23_PAD_GPMI_D03__GPMI_D03 */ +						0x0040 /* MX23_PAD_GPMI_D04__GPMI_D04 */ +						0x0050 /* MX23_PAD_GPMI_D05__GPMI_D05 */ +						0x0060 /* MX23_PAD_GPMI_D06__GPMI_D06 */ +						0x0070 /* MX23_PAD_GPMI_D07__GPMI_D07 */ +						0x0100 /* MX23_PAD_GPMI_CLE__GPMI_CLE */ +						0x0110 /* MX23_PAD_GPMI_ALE__GPMI_ALE */ +						0x0130 /* MX23_PAD_GPMI_RDY0__GPMI_RDY0 */ +						0x0140 /* MX23_PAD_GPMI_RDY1__GPMI_RDY1 */ +						0x0170 /* MX23_PAD_GPMI_WPN__GPMI_WPN */ +						0x0180 /* MX23_PAD_GPMI_WRN__GPMI_WRN */ +						0x0190 /* MX23_PAD_GPMI_RDN__GPMI_RDN */ +						0x21b0 /* MX23_PAD_GPMI_CE1N__GPMI_CE1N */ +						0x21c0 /* MX23_PAD_GPMI_CE0N__GPMI_CE0N	*/ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				gpmi_pins_fixup: gpmi-pins-fixup { +					fsl,pinmux-ids = < +						0x0170 /* MX23_PAD_GPMI_WPN__GPMI_WPN */ +						0x0180 /* MX23_PAD_GPMI_WRN__GPMI_WRN */ +						0x0190 /* MX23_PAD_GPMI_RDN__GPMI_RDN */ +					>; +					fsl,drive-strength = <2>; +				}; + +				mmc0_4bit_pins_a: mmc0-4bit@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x2020 /* MX23_PAD_SSP1_DATA0__SSP1_DATA0 */ +						0x2030 /* MX23_PAD_SSP1_DATA1__SSP1_DATA1 */ +						0x2040 /* MX23_PAD_SSP1_DATA2__SSP1_DATA2 */ +						0x2050 /* MX23_PAD_SSP1_DATA3__SSP1_DATA3 */ +						0x2000 /* MX23_PAD_SSP1_CMD__SSP1_CMD */ +						0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */ +						0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */ +					>; +					fsl,drive-strength = <1>; +					fsl,voltage = <1>; +					fsl,pull-up = <1>; +				}; +  				mmc0_8bit_pins_a: mmc0-8bit@0 {  					reg = <0>; -					fsl,pinmux-ids = <0x2020 0x2030 0x2040 -						0x2050 0x0082 0x0092 0x00a2 -						0x00b2 0x2000 0x2010 0x2060>; +					fsl,pinmux-ids = < +						0x2020 /* MX23_PAD_SSP1_DATA0__SSP1_DATA0 */ +						0x2030 /* MX23_PAD_SSP1_DATA1__SSP1_DATA1 */ +						0x2040 /* MX23_PAD_SSP1_DATA2__SSP1_DATA2 */ +						0x2050 /* MX23_PAD_SSP1_DATA3__SSP1_DATA3 */ +						0x0082 /* MX23_PAD_GPMI_D08__SSP1_DATA4 */ +						0x0092 /* MX23_PAD_GPMI_D09__SSP1_DATA5 */ +						0x00a2 /* MX23_PAD_GPMI_D10__SSP1_DATA6 */ +						0x00b2 /* MX23_PAD_GPMI_D11__SSP1_DATA7 */ +						0x2000 /* MX23_PAD_SSP1_CMD__SSP1_CMD */ +						0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */ +						0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */ +					>;  					fsl,drive-strength = <1>;  					fsl,voltage = <1>;  					fsl,pull-up = <1>;  				};  				mmc0_pins_fixup: mmc0-pins-fixup { -					fsl,pinmux-ids = <0x2010 0x2060>; +					fsl,pinmux-ids = < +						0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */ +						0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */ +					>; +					fsl,pull-up = <0>; +				}; + +				pwm2_pins_a: pwm2@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x11c0 /* MX23_PAD_PWM2__PWM2 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				lcdif_24bit_pins_a: lcdif-24bit@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x1000 /* MX23_PAD_LCD_D00__LCD_D0 */ +						0x1010 /* MX23_PAD_LCD_D01__LCD_D1 */ +						0x1020 /* MX23_PAD_LCD_D02__LCD_D2 */ +						0x1030 /* MX23_PAD_LCD_D03__LCD_D3 */ +						0x1040 /* MX23_PAD_LCD_D04__LCD_D4 */ +						0x1050 /* MX23_PAD_LCD_D05__LCD_D5 */ +						0x1060 /* MX23_PAD_LCD_D06__LCD_D6 */ +						0x1070 /* MX23_PAD_LCD_D07__LCD_D7 */ +						0x1080 /* MX23_PAD_LCD_D08__LCD_D8 */ +						0x1090 /* MX23_PAD_LCD_D09__LCD_D9 */ +						0x10a0 /* MX23_PAD_LCD_D10__LCD_D10 */ +						0x10b0 /* MX23_PAD_LCD_D11__LCD_D11 */ +						0x10c0 /* MX23_PAD_LCD_D12__LCD_D12 */ +						0x10d0 /* MX23_PAD_LCD_D13__LCD_D13 */ +						0x10e0 /* MX23_PAD_LCD_D14__LCD_D14 */ +						0x10f0 /* MX23_PAD_LCD_D15__LCD_D15 */ +						0x1100 /* MX23_PAD_LCD_D16__LCD_D16 */ +						0x1110 /* MX23_PAD_LCD_D17__LCD_D17 */ +						0x0081 /* MX23_PAD_GPMI_D08__LCD_D18 */ +						0x0091 /* MX23_PAD_GPMI_D09__LCD_D19 */ +						0x00a1 /* MX23_PAD_GPMI_D10__LCD_D20 */ +						0x00b1 /* MX23_PAD_GPMI_D11__LCD_D21 */ +						0x00c1 /* MX23_PAD_GPMI_D12__LCD_D22 */ +						0x00d1 /* MX23_PAD_GPMI_D13__LCD_D23 */ +						0x1160 /* MX23_PAD_LCD_DOTCK__LCD_DOTCK */ +						0x1170 /* MX23_PAD_LCD_ENABLE__LCD_ENABLE */ +						0x1180 /* MX23_PAD_LCD_HSYNC__LCD_HSYNC */ +						0x1190 /* MX23_PAD_LCD_VSYNC__LCD_VSYNC */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>;  					fsl,pull-up = <0>;  				};  			}; @@ -172,7 +303,9 @@  			};  			lcdif@80030000 { +				compatible = "fsl,imx23-lcdif";  				reg = <0x80030000 2000>; +				interrupts = <46 45>;  				status = "disabled";  			}; @@ -242,12 +375,16 @@  			};  			rtc@8005c000 { +				compatible = "fsl,imx23-rtc", "fsl,stmp3xxx-rtc";  				reg = <0x8005c000 2000>; -				status = "disabled"; +				interrupts = <22>;  			}; -			pwm@80064000 { +			pwm: pwm@80064000 { +				compatible = "fsl,imx23-pwm";  				reg = <0x80064000 2000>; +				#pwm-cells = <2>; +				fsl,pwm-number = <5>;  				status = "disabled";  			}; @@ -257,12 +394,16 @@  			};  			auart0: serial@8006c000 { +				compatible = "fsl,imx23-auart";  				reg = <0x8006c000 0x2000>; +				interrupts = <24 25 23>;  				status = "disabled";  			};  			auart1: serial@8006e000 { +				compatible = "fsl,imx23-auart";  				reg = <0x8006e000 0x2000>; +				interrupts = <59 60 58>;  				status = "disabled";  			}; diff --git a/arch/arm/boot/dts/imx27-3ds.dts b/arch/arm/boot/dts/imx27-3ds.dts new file mode 100644 index 00000000000..d3f8296e19e --- /dev/null +++ b/arch/arm/boot/dts/imx27-3ds.dts @@ -0,0 +1,41 @@ +/* + * Copyright 2012 Sascha Hauer, Pengutronix + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +/dts-v1/; +/include/ "imx27.dtsi" + +/ { +	model = "mx27_3ds"; +	compatible = "freescale,imx27-3ds", "fsl,imx27"; + +	memory { +		reg = <0x0 0x0>; +	}; + +	soc { +		aipi@10000000 { /* aipi */ + +			wdog@10002000 { +				status = "okay"; +			}; + +			uart@1000a000 { +				fsl,uart-has-rtscts; +				status = "okay"; +			}; + +			fec@1002b000 { +				status = "okay"; +			}; +		}; +	}; + +}; diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi index 386c769c38d..00bae3aad5a 100644 --- a/arch/arm/boot/dts/imx27.dtsi +++ b/arch/arm/boot/dts/imx27.dtsi @@ -121,7 +121,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio2: gpio@10015100 { @@ -131,7 +131,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio3: gpio@10015200 { @@ -141,7 +141,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio4: gpio@10015300 { @@ -151,7 +151,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio5: gpio@10015400 { @@ -161,7 +161,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio6: gpio@10015500 { @@ -171,7 +171,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			cspi3: cspi@10017000 { diff --git a/arch/arm/boot/dts/imx28-apx4devkit.dts b/arch/arm/boot/dts/imx28-apx4devkit.dts new file mode 100644 index 00000000000..b383417a558 --- /dev/null +++ b/arch/arm/boot/dts/imx28-apx4devkit.dts @@ -0,0 +1,198 @@ +/dts-v1/; +/include/ "imx28.dtsi" + +/ { +	model = "Bluegiga APX4 Development Kit"; +	compatible = "bluegiga,apx4devkit", "fsl,imx28"; + +	memory { +		reg = <0x40000000 0x04000000>; +	}; + +	apb@80000000 { +		apbh@80000000 { +			gpmi-nand@8000c000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>; +				status = "okay"; +			}; + +			ssp0: ssp@80010000 { +				compatible = "fsl,imx28-mmc"; +				pinctrl-names = "default"; +				pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>; +				bus-width = <4>; +				status = "okay"; +			}; + +			ssp2: ssp@80014000 { +				compatible = "fsl,imx28-mmc"; +				pinctrl-names = "default"; +				pinctrl-0 = <&mmc2_4bit_pins_apx4 &mmc2_sck_cfg_apx4>; +				bus-width = <4>; +				status = "okay"; +			}; + +			pinctrl@80018000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&hog_pins_a>; + +				hog_pins_a: hog-gpios@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x0113 /* MX28_PAD_GPMI_CE1N__GPIO_0_17 */ +						0x0153 /* MX28_PAD_GPMI_RDY1__GPIO_0_21 */ +						0x2123 /* MX28_PAD_SSP2_MISO__GPIO_2_18 */ +						0x2131 /* MX28_PAD_SSP2_SS0__GPIO_2_19 */ +						0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */ +						0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */ +						0x4143 /* MX28_PAD_JTAG_RTCK__GPIO_4_20 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				lcdif_pins_apx4: lcdif-apx4@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ +						0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ +						0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ +						0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				mmc2_4bit_pins_apx4: mmc2-4bit-apx4@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x2041 /* MX28_PAD_SSP0_DATA4__SSP2_D0 */ +						0x2051 /* MX28_PAD_SSP0_DATA5__SSP2_D3 */ +						0x2061 /* MX28_PAD_SSP0_DATA6__SSP2_CMD */ +						0x2071 /* MX28_PAD_SSP0_DATA7__SSP2_SCK */ +						0x2141 /* MX28_PAD_SSP2_SS1__SSP2_D1 */ +						0x2151 /* MX28_PAD_SSP2_SS2__SSP2_D2 */ +					>; +					fsl,drive-strength = <1>; +					fsl,voltage = <1>; +					fsl,pull-up = <1>; +				}; + +				mmc2_sck_cfg_apx4: mmc2-sck-cfg-apx4 { +					fsl,pinmux-ids = < +						0x2071 /* MX28_PAD_SSP0_DATA7__SSP2_SCK */ +					>; +					fsl,drive-strength = <2>; +					fsl,pull-up = <0>; +				}; +			}; + +			lcdif@80030000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&lcdif_24bit_pins_a +					     &lcdif_pins_apx4>; +				status = "okay"; +			}; +		}; + +		apbx@80040000 { +			saif0: saif@80042000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&saif0_pins_a>; +				status = "okay"; +			}; + +			saif1: saif@80046000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&saif1_pins_a>; +				fsl,saif-master = <&saif0>; +				status = "okay"; +			}; + +			i2c0: i2c@80058000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&i2c0_pins_a>; +				status = "okay"; + +				sgtl5000: codec@0a { +					compatible = "fsl,sgtl5000"; +					reg = <0x0a>; +					VDDA-supply = <®_3p3v>; +					VDDIO-supply = <®_3p3v>; + +				}; + +				pcf8563: rtc@51 { +					compatible = "phg,pcf8563"; +					reg = <0x51>; +				}; +			}; + +			duart: serial@80074000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&duart_pins_a>; +				status = "okay"; +			}; + +			auart0: serial@8006a000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&auart0_pins_a>; +				status = "okay"; +			}; + +			auart1: serial@8006c000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&auart1_2pins_a>; +				status = "okay"; +			}; + +			auart2: serial@8006e000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&auart2_2pins_a>; +				status = "okay"; +			}; +		}; +	}; + +	ahb@80080000 { +		mac0: ethernet@800f0000 { +			phy-mode = "rmii"; +			pinctrl-names = "default"; +			pinctrl-0 = <&mac0_pins_a>; +			status = "okay"; +		}; +	}; + +	regulators { +		compatible = "simple-bus"; + +		reg_3p3v: 3p3v { +			compatible = "regulator-fixed"; +			regulator-name = "3P3V"; +			regulator-min-microvolt = <3300000>; +			regulator-max-microvolt = <3300000>; +			regulator-always-on; +		}; +	}; + +	sound { +		compatible = "bluegiga,apx4devkit-sgtl5000", +			     "fsl,mxs-audio-sgtl5000"; +		model = "apx4devkit-sgtl5000"; +		saif-controllers = <&saif0 &saif1>; +		audio-codec = <&sgtl5000>; +	}; + +	leds { +		compatible = "gpio-leds"; + +		user { +			label = "Heartbeat"; +			gpios = <&gpio3 28 0>; +			linux,default-trigger = "heartbeat"; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/imx28-cfa10036.dts b/arch/arm/boot/dts/imx28-cfa10036.dts new file mode 100644 index 00000000000..c03a577beca --- /dev/null +++ b/arch/arm/boot/dts/imx28-cfa10036.dts @@ -0,0 +1,52 @@ +/* + * Copyright 2012 Free Electrons + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +/dts-v1/; +/include/ "imx28.dtsi" + +/ { +	model = "Crystalfontz CFA-10036 Board"; +	compatible = "crystalfontz,cfa10036", "fsl,imx28"; + +	memory { +		reg = <0x40000000 0x08000000>; +	}; + +	apb@80000000 { +		apbh@80000000 { +			ssp0: ssp@80010000 { +				compatible = "fsl,imx28-mmc"; +				pinctrl-names = "default"; +				pinctrl-0 = <&mmc0_4bit_pins_a +					&mmc0_cd_cfg &mmc0_sck_cfg>; +				bus-width = <4>; +				status = "okay"; +			}; +		}; + +		apbx@80040000 { +			duart: serial@80074000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&duart_pins_b>; +				status = "okay"; +			}; +		}; +	}; + +	leds { +		compatible = "gpio-leds"; + +		power { +			gpios = <&gpio3 4 1>; +			default-state = "on"; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts index ee520a529cb..773c0e84d1f 100644 --- a/arch/arm/boot/dts/imx28-evk.dts +++ b/arch/arm/boot/dts/imx28-evk.dts @@ -22,6 +22,13 @@  	apb@80000000 {  		apbh@80000000 { +			gpmi-nand@8000c000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg +					     &gpmi_pins_evk>; +				status = "okay"; +			}; +  			ssp0: ssp@80010000 {  				compatible = "fsl,imx28-mmc";  				pinctrl-names = "default"; @@ -29,6 +36,7 @@  					&mmc0_cd_cfg &mmc0_sck_cfg>;  				bus-width = <8>;  				wp-gpios = <&gpio2 12 0>; +				vmmc-supply = <®_vddio_sd0>;  				status = "okay";  			}; @@ -36,6 +44,72 @@  				compatible = "fsl,imx28-mmc";  				bus-width = <8>;  				wp-gpios = <&gpio0 28 0>; +			}; + +			pinctrl@80018000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&hog_pins_a>; + +				hog_pins_a: hog-gpios@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x20d3 /* MX28_PAD_SSP1_CMD__GPIO_2_13 */ +						0x20f3 /* MX28_PAD_SSP1_DATA3__GPIO_2_15 */ +						0x40d3 /* MX28_PAD_ENET0_RX_CLK__GPIO_4_13 */ +						0x20c3 /* MX28_PAD_SSP1_SCK__GPIO_2_12 */ +						0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */ +						0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */ +						0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */ +						0x3083 /* MX28_PAD_AUART2_RX__GPIO_3_8 */ +						0x3093 /* MX28_PAD_AUART2_TX__GPIO_3_9 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				gpmi_pins_evk: gpmi-nand-evk@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x0110 /* MX28_PAD_GPMI_CE1N__GPMI_CE1N */ +						0x0150 /* MX28_PAD_GPMI_RDY1__GPMI_READY1 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				lcdif_pins_evk: lcdif-evk@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ +						0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ +						0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ +						0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; +			}; + +			lcdif@80030000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&lcdif_24bit_pins_a +					     &lcdif_pins_evk>; +				panel-enable-gpios = <&gpio3 30 0>; +				status = "okay"; +			}; + +			can0: can@80032000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&can0_pins_a>; +				status = "okay"; +			}; + +			can1: can@80034000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&can1_pins_a>;  				status = "okay";  			};  		}; @@ -68,19 +142,58 @@  				};  			}; +			pwm: pwm@80064000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&pwm2_pins_a>; +				status = "okay"; +			}; +  			duart: serial@80074000 {  				pinctrl-names = "default";  				pinctrl-0 = <&duart_pins_a>;  				status = "okay";  			}; + +			auart0: serial@8006a000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&auart0_pins_a>; +				status = "okay"; +			}; + +			auart3: serial@80070000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&auart3_pins_a>; +				status = "okay"; +			}; + +			usbphy0: usbphy@8007c000 { +				status = "okay"; +			}; + +			usbphy1: usbphy@8007e000 { +				status = "okay"; +			};  		};  	};  	ahb@80080000 { +		usb0: usb@80080000 { +			vbus-supply = <®_usb0_vbus>; +			status = "okay"; +		}; + +		usb1: usb@80090000 { +			vbus-supply = <®_usb1_vbus>; +			status = "okay"; +		}; +  		mac0: ethernet@800f0000 {  			phy-mode = "rmii";  			pinctrl-names = "default";  			pinctrl-0 = <&mac0_pins_a>; +			phy-supply = <®_fec_3v3>; +			phy-reset-gpios = <&gpio4 13 0>; +			phy-reset-duration = <100>;  			status = "okay";  		}; @@ -102,6 +215,40 @@  			regulator-max-microvolt = <3300000>;  			regulator-always-on;  		}; + +		reg_vddio_sd0: vddio-sd0 { +			compatible = "regulator-fixed"; +			regulator-name = "vddio-sd0"; +			regulator-min-microvolt = <3300000>; +			regulator-max-microvolt = <3300000>; +			gpio = <&gpio3 28 0>; +		}; + +		reg_fec_3v3: fec-3v3 { +			compatible = "regulator-fixed"; +			regulator-name = "fec-3v3"; +			regulator-min-microvolt = <3300000>; +			regulator-max-microvolt = <3300000>; +			gpio = <&gpio2 15 0>; +		}; + +		reg_usb0_vbus: usb0_vbus { +			compatible = "regulator-fixed"; +			regulator-name = "usb0_vbus"; +			regulator-min-microvolt = <5000000>; +			regulator-max-microvolt = <5000000>; +			gpio = <&gpio3 9 0>; +			enable-active-high; +		}; + +		reg_usb1_vbus: usb1_vbus { +			compatible = "regulator-fixed"; +			regulator-name = "usb1_vbus"; +			regulator-min-microvolt = <5000000>; +			regulator-max-microvolt = <5000000>; +			gpio = <&gpio3 8 0>; +			enable-active-high; +		};  	};  	sound { @@ -111,4 +258,21 @@  		saif-controllers = <&saif0 &saif1>;  		audio-codec = <&sgtl5000>;  	}; + +	leds { +		compatible = "gpio-leds"; + +		user { +			label = "Heartbeat"; +			gpios = <&gpio3 5 0>; +			linux,default-trigger = "heartbeat"; +		}; +	}; + +	backlight { +		compatible = "pwm-backlight"; +		pwms = <&pwm 2 5000000>; +		brightness-levels = <0 4 8 16 32 64 128 255>; +		default-brightness-level = <6>; +	};  }; diff --git a/arch/arm/boot/dts/imx28-m28evk.dts b/arch/arm/boot/dts/imx28-m28evk.dts new file mode 100644 index 00000000000..183a3fd2d85 --- /dev/null +++ b/arch/arm/boot/dts/imx28-m28evk.dts @@ -0,0 +1,210 @@ +/* + * Copyright (C) 2012 Marek Vasut <marex@denx.de> + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +/dts-v1/; +/include/ "imx28.dtsi" + +/ { +	model = "DENX M28EVK"; +	compatible = "denx,m28evk", "fsl,imx28"; + +	memory { +		reg = <0x40000000 0x08000000>; +	}; + +	apb@80000000 { +		apbh@80000000 { +			gpmi-nand@8000c000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>; +				status = "okay"; + +				partition@0 { +					label = "bootloader"; +					reg = <0x00000000 0x00300000>; +					read-only; +				}; + +				partition@1 { +					label = "environment"; +					reg = <0x00300000 0x00080000>; +				}; + +				partition@2 { +					label = "redundant-environment"; +					reg = <0x00380000 0x00080000>; +				}; + +				partition@3 { +					label = "kernel"; +					reg = <0x00400000 0x00400000>; +				}; + +				partition@4 { +					label = "filesystem"; +					reg = <0x00800000 0x0f800000>; +				}; +			}; + +			ssp0: ssp@80010000 { +				compatible = "fsl,imx28-mmc"; +				pinctrl-names = "default"; +				pinctrl-0 = <&mmc0_8bit_pins_a +					     &mmc0_cd_cfg +					     &mmc0_sck_cfg>; +				bus-width = <8>; +				wp-gpios = <&gpio3 10 1>; +				status = "okay"; +			}; + +			pinctrl@80018000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&hog_pins_a>; + +				hog_pins_a: hog-gpios@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x30a3 /* MX28_PAD_AUART2_CTS__GPIO_3_10 */ +						0x30b3 /* MX28_PAD_AUART2_RTS__GPIO_3_11 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				lcdif_pins_m28: lcdif-m28@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x11e0 /* MX28_PAD_LCD_DOTCLK__LCD_DOTCLK */ +						0x11f0 /* MX28_PAD_LCD_ENABLE__LCD_ENABLE */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; +			}; + +			lcdif@80030000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&lcdif_24bit_pins_a +					     &lcdif_pins_m28>; +				status = "okay"; +			}; + +			can0: can@80032000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&can0_pins_a>; +				status = "okay"; +			}; + +			can1: can@80034000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&can1_pins_a>; +				status = "okay"; +			}; +		}; + +		apbx@80040000 { +			saif0: saif@80042000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&saif0_pins_a>; +				status = "okay"; +			}; + +			saif1: saif@80046000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&saif1_pins_a>; +				fsl,saif-master = <&saif0>; +				status = "okay"; +			}; + +			i2c0: i2c@80058000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&i2c0_pins_a>; +				status = "okay"; + +				sgtl5000: codec@0a { +					compatible = "fsl,sgtl5000"; +					reg = <0x0a>; +					VDDA-supply = <®_3p3v>; +					VDDIO-supply = <®_3p3v>; + +				}; + +				eeprom: eeprom@51 { +					compatible = "atmel,24c128"; +					reg = <0x51>; +					pagesize = <32>; +				}; + +				rtc: rtc@68 { +					compatible = "stm,mt41t62"; +					reg = <0x68>; +				}; +			}; + +			duart: serial@80074000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&duart_pins_a>; +				status = "okay"; +			}; + +			auart0: serial@8006a000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&auart0_2pins_a>; +				status = "okay"; +			}; + +			auart3: serial@80070000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&auart3_pins_a>; +				status = "okay"; +			}; +		}; +	}; + +	ahb@80080000 { +		mac0: ethernet@800f0000 { +			phy-mode = "rmii"; +			pinctrl-names = "default"; +			pinctrl-0 = <&mac0_pins_a>; +			phy-reset-gpios = <&gpio3 11 0>; +			status = "okay"; +		}; + +		mac1: ethernet@800f4000 { +			phy-mode = "rmii"; +			pinctrl-names = "default"; +			pinctrl-0 = <&mac1_pins_a>; +			status = "okay"; +		}; +	}; + +	regulators { +		compatible = "simple-bus"; + +		reg_3p3v: 3p3v { +			compatible = "regulator-fixed"; +			regulator-name = "3P3V"; +			regulator-min-microvolt = <3300000>; +			regulator-max-microvolt = <3300000>; +			regulator-always-on; +		}; +	}; + +	sound { +		compatible = "denx,m28evk-sgtl5000", +			     "fsl,mxs-audio-sgtl5000"; +		model = "m28evk-sgtl5000"; +		saif-controllers = <&saif0 &saif1>; +		audio-codec = <&sgtl5000>; +	}; +}; diff --git a/arch/arm/boot/dts/imx28-tx28.dts b/arch/arm/boot/dts/imx28-tx28.dts new file mode 100644 index 00000000000..62bf767409a --- /dev/null +++ b/arch/arm/boot/dts/imx28-tx28.dts @@ -0,0 +1,97 @@ +/dts-v1/; +/include/ "imx28.dtsi" + +/ { +	model = "Ka-Ro electronics TX28 module"; +	compatible = "karo,tx28", "fsl,imx28"; + +	memory { +		reg = <0x40000000 0x08000000>; +	}; + +	apb@80000000 { +		apbh@80000000 { +			ssp0: ssp@80010000 { +				compatible = "fsl,imx28-mmc"; +				pinctrl-names = "default"; +				pinctrl-0 = <&mmc0_4bit_pins_a +					     &mmc0_cd_cfg +					     &mmc0_sck_cfg>; +				bus-width = <4>; +				status = "okay"; +			}; + +			pinctrl@80018000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&hog_pins_a>; + +				hog_pins_a: hog-gpios@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x40a3 /* MX28_PAD_ENET0_RXD3__GPIO_4_10 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; +			}; +		}; + +		apbx@80040000 { +			i2c0: i2c@80058000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&i2c0_pins_a>; +				status = "okay"; + +				ds1339: rtc@68 { +					compatible = "mxim,ds1339"; +					reg = <0x68>; +				}; +			}; + +			pwm: pwm@80064000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&pwm0_pins_a>; +				status = "okay"; +			}; + +			duart: serial@80074000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&duart_4pins_a>; +				status = "okay"; +			}; + +			auart1: serial@8006c000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&auart1_pins_a>; +				status = "okay"; +			}; +		}; +	}; + +	ahb@80080000 { +		mac0: ethernet@800f0000 { +			phy-mode = "rmii"; +			pinctrl-names = "default"; +			pinctrl-0 = <&mac0_pins_a>; +			status = "okay"; +		}; +	}; + +	leds { +		compatible = "gpio-leds"; + +		user { +			label = "Heartbeat"; +			gpios = <&gpio4 10 0>; +			linux,default-trigger = "heartbeat"; +		}; +	}; + +	backlight { +		compatible = "pwm-backlight"; +		pwms = <&pwm 0 5000000>; +		brightness-levels = <0 4 8 16 32 64 128 255>; +		default-brightness-level = <6>; +	}; +}; diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi index 4634cb861a5..915db89e364 100644 --- a/arch/arm/boot/dts/imx28.dtsi +++ b/arch/arm/boot/dts/imx28.dtsi @@ -22,6 +22,11 @@  		gpio4 = &gpio4;  		saif0 = &saif0;  		saif1 = &saif1; +		serial0 = &auart0; +		serial1 = &auart1; +		serial2 = &auart2; +		serial3 = &auart3; +		serial4 = &auart4;  	};  	cpus { @@ -68,15 +73,15 @@  				status = "disabled";  			}; -			bch@8000a000 { -				reg = <0x8000a000 2000>; -				interrupts = <41>; -				status = "disabled"; -			}; - -			gpmi@8000c000 { -				reg = <0x8000c000 2000>; -				interrupts = <42 88>; +			gpmi-nand@8000c000 { +				compatible = "fsl,imx28-gpmi-nand"; +				#address-cells = <1>; +				#size-cells = <1>; +				reg = <0x8000c000 2000>, <0x8000a000 2000>; +				reg-names = "gpmi-nand", "bch"; +				interrupts = <88>, <41>; +				interrupt-names = "gpmi-dma", "bch"; +				fsl,gpmi-dma-channel = <4>;  				status = "disabled";  			}; @@ -161,7 +166,150 @@  				duart_pins_a: duart@0 {  					reg = <0>; -					fsl,pinmux-ids = <0x3102 0x3112>; +					fsl,pinmux-ids = < +						0x3102 /* MX28_PAD_PWM0__DUART_RX */ +						0x3112 /* MX28_PAD_PWM1__DUART_TX */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				duart_pins_b: duart@1 { +					reg = <1>; +					fsl,pinmux-ids = < +						0x3022 /* MX28_PAD_AUART0_CTS__DUART_RX */ +						0x3032 /* MX28_PAD_AUART0_RTS__DUART_TX */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				duart_4pins_a: duart-4pins@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x3022 /* MX28_PAD_AUART0_CTS__DUART_RX */ +						0x3032 /* MX28_PAD_AUART0_RTS__DUART_TX */ +						0x3002 /* MX28_PAD_AUART0_RX__DUART_CTS */ +						0x3012 /* MX28_PAD_AUART0_TX__DUART_RTS */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				gpmi_pins_a: gpmi-nand@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x0000 /* MX28_PAD_GPMI_D00__GPMI_D0 */ +						0x0010 /* MX28_PAD_GPMI_D01__GPMI_D1 */ +						0x0020 /* MX28_PAD_GPMI_D02__GPMI_D2 */ +						0x0030 /* MX28_PAD_GPMI_D03__GPMI_D3 */ +						0x0040 /* MX28_PAD_GPMI_D04__GPMI_D4 */ +						0x0050 /* MX28_PAD_GPMI_D05__GPMI_D5 */ +						0x0060 /* MX28_PAD_GPMI_D06__GPMI_D6 */ +						0x0070 /* MX28_PAD_GPMI_D07__GPMI_D7 */ +						0x0100 /* MX28_PAD_GPMI_CE0N__GPMI_CE0N */ +						0x0140 /* MX28_PAD_GPMI_RDY0__GPMI_READY0 */ +						0x0180 /* MX28_PAD_GPMI_RDN__GPMI_RDN */ +						0x0190 /* MX28_PAD_GPMI_WRN__GPMI_WRN */ +						0x01a0 /* MX28_PAD_GPMI_ALE__GPMI_ALE */ +						0x01b0 /* MX28_PAD_GPMI_CLE__GPMI_CLE */ +						0x01c0 /* MX28_PAD_GPMI_RESETN__GPMI_RESETN */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				gpmi_status_cfg: gpmi-status-cfg { +					fsl,pinmux-ids = < +						0x0180 /* MX28_PAD_GPMI_RDN__GPMI_RDN */ +						0x0190 /* MX28_PAD_GPMI_WRN__GPMI_WRN */ +						0x01c0 /* MX28_PAD_GPMI_RESETN__GPMI_RESETN */ +					>; +					fsl,drive-strength = <2>; +				}; + +				auart0_pins_a: auart0@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x3000 /* MX28_PAD_AUART0_RX__AUART0_RX */ +						0x3010 /* MX28_PAD_AUART0_TX__AUART0_TX */ +						0x3020 /* MX28_PAD_AUART0_CTS__AUART0_CTS */ +						0x3030 /* MX28_PAD_AUART0_RTS__AUART0_RTS */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				auart0_2pins_a: auart0-2pins@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x3000 /* MX28_PAD_AUART0_RX__AUART0_RX */ +						0x3010 /* MX28_PAD_AUART0_TX__AUART0_TX */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				auart1_pins_a: auart1@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x3040 /* MX28_PAD_AUART1_RX__AUART1_RX */ +						0x3050 /* MX28_PAD_AUART1_TX__AUART1_TX */ +						0x3060 /* MX28_PAD_AUART1_CTS__AUART1_CTS */ +						0x3070 /* MX28_PAD_AUART1_RTS__AUART1_RTS */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				auart1_2pins_a: auart1-2pins@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x3040 /* MX28_PAD_AUART1_RX__AUART1_RX */ +						0x3050 /* MX28_PAD_AUART1_TX__AUART1_TX */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				auart2_2pins_a: auart2-2pins@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x2101 /* MX28_PAD_SSP2_SCK__AUART2_RX */ +						0x2111 /* MX28_PAD_SSP2_MOSI__AUART2_TX */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				auart3_pins_a: auart3@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x30c0 /* MX28_PAD_AUART3_RX__AUART3_RX */ +						0x30d0 /* MX28_PAD_AUART3_TX__AUART3_TX */ +						0x30e0 /* MX28_PAD_AUART3_CTS__AUART3_CTS */ +						0x30f0 /* MX28_PAD_AUART3_RTS__AUART3_RTS */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				auart3_2pins_a: auart3-2pins@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x2121 /* MX28_PAD_SSP2_MISO__AUART3_RX */ +						0x2131 /* MX28_PAD_SSP2_SS0__AUART3_TX */ +					>;  					fsl,drive-strength = <0>;  					fsl,voltage = <1>;  					fsl,pull-up = <0>; @@ -169,9 +317,17 @@  				mac0_pins_a: mac0@0 {  					reg = <0>; -					fsl,pinmux-ids = <0x4000 0x4010 0x4020 -						0x4030 0x4040 0x4060 0x4070 -						0x4080 0x4100>; +					fsl,pinmux-ids = < +						0x4000 /* MX28_PAD_ENET0_MDC__ENET0_MDC */ +						0x4010 /* MX28_PAD_ENET0_MDIO__ENET0_MDIO */ +						0x4020 /* MX28_PAD_ENET0_RX_EN__ENET0_RX_EN */ +						0x4030 /* MX28_PAD_ENET0_RXD0__ENET0_RXD0 */ +						0x4040 /* MX28_PAD_ENET0_RXD1__ENET0_RXD1 */ +						0x4060 /* MX28_PAD_ENET0_TX_EN__ENET0_TX_EN */ +						0x4070 /* MX28_PAD_ENET0_TXD0__ENET0_TXD0 */ +						0x4080 /* MX28_PAD_ENET0_TXD1__ENET0_TXD1 */ +						0x4100 /* MX28_PAD_ENET_CLK__CLKCTRL_ENET */ +					>;  					fsl,drive-strength = <1>;  					fsl,voltage = <1>;  					fsl,pull-up = <1>; @@ -179,8 +335,14 @@  				mac1_pins_a: mac1@0 {  					reg = <0>; -					fsl,pinmux-ids = <0x40f1 0x4091 0x40a1 -						0x40e1 0x40b1 0x40c1>; +					fsl,pinmux-ids = < +						0x40f1 /* MX28_PAD_ENET0_CRS__ENET1_RX_EN */ +						0x4091 /* MX28_PAD_ENET0_RXD2__ENET1_RXD0 */ +						0x40a1 /* MX28_PAD_ENET0_RXD3__ENET1_RXD1 */ +						0x40e1 /* MX28_PAD_ENET0_COL__ENET1_TX_EN */ +						0x40b1 /* MX28_PAD_ENET0_TXD2__ENET1_TXD0 */ +						0x40c1 /* MX28_PAD_ENET0_TXD3__ENET1_TXD1 */ +					>;  					fsl,drive-strength = <1>;  					fsl,voltage = <1>;  					fsl,pull-up = <1>; @@ -188,28 +350,61 @@  				mmc0_8bit_pins_a: mmc0-8bit@0 {  					reg = <0>; -					fsl,pinmux-ids = <0x2000 0x2010 0x2020 -						0x2030 0x2040 0x2050 0x2060 -						0x2070 0x2080 0x2090 0x20a0>; +					fsl,pinmux-ids = < +						0x2000 /* MX28_PAD_SSP0_DATA0__SSP0_D0 */ +						0x2010 /* MX28_PAD_SSP0_DATA1__SSP0_D1 */ +						0x2020 /* MX28_PAD_SSP0_DATA2__SSP0_D2 */ +						0x2030 /* MX28_PAD_SSP0_DATA3__SSP0_D3 */ +						0x2040 /* MX28_PAD_SSP0_DATA4__SSP0_D4 */ +						0x2050 /* MX28_PAD_SSP0_DATA5__SSP0_D5 */ +						0x2060 /* MX28_PAD_SSP0_DATA6__SSP0_D6 */ +						0x2070 /* MX28_PAD_SSP0_DATA7__SSP0_D7 */ +						0x2080 /* MX28_PAD_SSP0_CMD__SSP0_CMD */ +						0x2090 /* MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT */ +						0x20a0 /* MX28_PAD_SSP0_SCK__SSP0_SCK */ +					>; +					fsl,drive-strength = <1>; +					fsl,voltage = <1>; +					fsl,pull-up = <1>; +				}; + +				mmc0_4bit_pins_a: mmc0-4bit@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x2000 /* MX28_PAD_SSP0_DATA0__SSP0_D0 */ +						0x2010 /* MX28_PAD_SSP0_DATA1__SSP0_D1 */ +						0x2020 /* MX28_PAD_SSP0_DATA2__SSP0_D2 */ +						0x2030 /* MX28_PAD_SSP0_DATA3__SSP0_D3 */ +						0x2080 /* MX28_PAD_SSP0_CMD__SSP0_CMD */ +						0x2090 /* MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT */ +						0x20a0 /* MX28_PAD_SSP0_SCK__SSP0_SCK */ +					>;  					fsl,drive-strength = <1>;  					fsl,voltage = <1>;  					fsl,pull-up = <1>;  				};  				mmc0_cd_cfg: mmc0-cd-cfg { -					fsl,pinmux-ids = <0x2090>; +					fsl,pinmux-ids = < +						0x2090 /* MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT */ +					>;  					fsl,pull-up = <0>;  				};  				mmc0_sck_cfg: mmc0-sck-cfg { -					fsl,pinmux-ids = <0x20a0>; +					fsl,pinmux-ids = < +						0x20a0 /* MX28_PAD_SSP0_SCK__SSP0_SCK */ +					>;  					fsl,drive-strength = <2>;  					fsl,pull-up = <0>;  				};  				i2c0_pins_a: i2c0@0 {  					reg = <0>; -					fsl,pinmux-ids = <0x3180 0x3190>; +					fsl,pinmux-ids = < +						0x3180 /* MX28_PAD_I2C0_SCL__I2C0_SCL */ +						0x3190 /* MX28_PAD_I2C0_SDA__I2C0_SDA */ +					>;  					fsl,drive-strength = <1>;  					fsl,voltage = <1>;  					fsl,pull-up = <1>; @@ -217,8 +412,12 @@  				saif0_pins_a: saif0@0 {  					reg = <0>; -					fsl,pinmux-ids = -						<0x3140 0x3150 0x3160 0x3170>; +					fsl,pinmux-ids = < +						0x3140 /* MX28_PAD_SAIF0_MCLK__SAIF0_MCLK */ +						0x3150 /* MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK */ +						0x3160 /* MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK */ +						0x3170 /* MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0 */ +					>;  					fsl,drive-strength = <2>;  					fsl,voltage = <1>;  					fsl,pull-up = <1>; @@ -226,11 +425,88 @@  				saif1_pins_a: saif1@0 {  					reg = <0>; -					fsl,pinmux-ids = <0x31a0>; +					fsl,pinmux-ids = < +						0x31a0 /* MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0 */ +					>;  					fsl,drive-strength = <2>;  					fsl,voltage = <1>;  					fsl,pull-up = <1>;  				}; + +				pwm0_pins_a: pwm0@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x3100 /* MX28_PAD_PWM0__PWM_0 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				pwm2_pins_a: pwm2@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x3120 /* MX28_PAD_PWM2__PWM_2 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				lcdif_24bit_pins_a: lcdif-24bit@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */ +						0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */ +						0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */ +						0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */ +						0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */ +						0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */ +						0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */ +						0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */ +						0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */ +						0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */ +						0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */ +						0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */ +						0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */ +						0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */ +						0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */ +						0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */ +						0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */ +						0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */ +						0x1120 /* MX28_PAD_LCD_D18__LCD_D18 */ +						0x1130 /* MX28_PAD_LCD_D19__LCD_D19 */ +						0x1140 /* MX28_PAD_LCD_D20__LCD_D20 */ +						0x1150 /* MX28_PAD_LCD_D21__LCD_D21 */ +						0x1160 /* MX28_PAD_LCD_D22__LCD_D22 */ +						0x1170 /* MX28_PAD_LCD_D23__LCD_D23 */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				can0_pins_a: can0@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x0161 /* MX28_PAD_GPMI_RDY2__CAN0_TX */ +						0x0171 /* MX28_PAD_GPMI_RDY3__CAN0_RX */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				}; + +				can1_pins_a: can1@0 { +					reg = <0>; +					fsl,pinmux-ids = < +						0x0121 /* MX28_PAD_GPMI_CE2N__CAN1_TX */ +						0x0131 /* MX28_PAD_GPMI_CE3N__CAN1_RX */ +					>; +					fsl,drive-strength = <0>; +					fsl,voltage = <1>; +					fsl,pull-up = <0>; +				};  			};  			digctl@8001c000 { @@ -272,18 +548,21 @@  			};  			lcdif@80030000 { +				compatible = "fsl,imx28-lcdif";  				reg = <0x80030000 2000>;  				interrupts = <38 86>;  				status = "disabled";  			};  			can0: can@80032000 { +				compatible = "fsl,imx28-flexcan", "fsl,p1010-flexcan";  				reg = <0x80032000 2000>;  				interrupts = <8>;  				status = "disabled";  			};  			can1: can@80034000 { +				compatible = "fsl,imx28-flexcan", "fsl,p1010-flexcan";  				reg = <0x80034000 2000>;  				interrupts = <9>;  				status = "disabled"; @@ -370,9 +649,9 @@  			};  			rtc@80056000 { +				compatible = "fsl,imx28-rtc", "fsl,stmp3xxx-rtc";  				reg = <0x80056000 2000>; -				interrupts = <28 29>; -				status = "disabled"; +				interrupts = <29>;  			};  			i2c0: i2c@80058000 { @@ -393,8 +672,11 @@  				status = "disabled";  			}; -			pwm@80064000 { +			pwm: pwm@80064000 { +				compatible = "fsl,imx28-pwm", "fsl,imx23-pwm";  				reg = <0x80064000 2000>; +				#pwm-cells = <2>; +				fsl,pwm-number = <8>;  				status = "disabled";  			}; @@ -404,30 +686,35 @@  			};  			auart0: serial@8006a000 { +				compatible = "fsl,imx28-auart", "fsl,imx23-auart";  				reg = <0x8006a000 0x2000>;  				interrupts = <112 70 71>;  				status = "disabled";  			};  			auart1: serial@8006c000 { +				compatible = "fsl,imx28-auart", "fsl,imx23-auart";  				reg = <0x8006c000 0x2000>;  				interrupts = <113 72 73>;  				status = "disabled";  			};  			auart2: serial@8006e000 { +				compatible = "fsl,imx28-auart", "fsl,imx23-auart";  				reg = <0x8006e000 0x2000>;  				interrupts = <114 74 75>;  				status = "disabled";  			};  			auart3: serial@80070000 { +				compatible = "fsl,imx28-auart", "fsl,imx23-auart";  				reg = <0x80070000 0x2000>;  				interrupts = <115 76 77>;  				status = "disabled";  			};  			auart4: serial@80072000 { +				compatible = "fsl,imx28-auart", "fsl,imx23-auart";  				reg = <0x80072000 0x2000>;  				interrupts = <116 78 79>;  				status = "disabled"; @@ -441,11 +728,13 @@  			};  			usbphy0: usbphy@8007c000 { +				compatible = "fsl,imx28-usbphy", "fsl,imx23-usbphy";  				reg = <0x8007c000 0x2000>;  				status = "disabled";  			};  			usbphy1: usbphy@8007e000 { +				compatible = "fsl,imx28-usbphy", "fsl,imx23-usbphy";  				reg = <0x8007e000 0x2000>;  				status = "disabled";  			}; @@ -459,13 +748,19 @@  		reg = <0x80080000 0x80000>;  		ranges; -		usbctrl0: usbctrl@80080000 { +		usb0: usb@80080000 { +			compatible = "fsl,imx28-usb", "fsl,imx27-usb";  			reg = <0x80080000 0x10000>; +			interrupts = <93>; +			fsl,usbphy = <&usbphy0>;  			status = "disabled";  		}; -		usbctrl1: usbctrl@80090000 { +		usb1: usb@80090000 { +			compatible = "fsl,imx28-usb", "fsl,imx27-usb";  			reg = <0x80090000 0x10000>; +			interrupts = <92>; +			fsl,usbphy = <&usbphy1>;  			status = "disabled";  		}; diff --git a/arch/arm/boot/dts/imx31-bug.dts b/arch/arm/boot/dts/imx31-bug.dts new file mode 100644 index 00000000000..24731cb78e8 --- /dev/null +++ b/arch/arm/boot/dts/imx31-bug.dts @@ -0,0 +1,31 @@ +/* + * Copyright 2012 Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +/dts-v1/; +/include/ "imx31.dtsi" + +/ { +	model = "Buglabs i.MX31 Bug 1.x"; +	compatible = "fsl,imx31-bug", "fsl,imx31"; + +	memory { +		reg = <0x80000000 0x8000000>; /* 128M */ +	}; + +	soc { +		aips@43f00000 { /* AIPS1 */ +			uart5: serial@43fb4000 { +				fsl,uart-has-rtscts; +				status = "okay"; +			}; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/imx31.dtsi b/arch/arm/boot/dts/imx31.dtsi new file mode 100644 index 00000000000..eef7099f3e3 --- /dev/null +++ b/arch/arm/boot/dts/imx31.dtsi @@ -0,0 +1,88 @@ +/* + * Copyright 2012 Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +/include/ "skeleton.dtsi" + +/ { +	aliases { +		serial0 = &uart1; +		serial1 = &uart2; +		serial2 = &uart3; +		serial3 = &uart4; +		serial4 = &uart5; +	}; + +	avic: avic-interrupt-controller@60000000 { +		compatible = "fsl,imx31-avic", "fsl,avic"; +		interrupt-controller; +		#interrupt-cells = <1>; +		reg = <0x60000000 0x100000>; +	}; + +	soc { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "simple-bus"; +		interrupt-parent = <&avic>; +		ranges; + +		aips@43f00000 { /* AIPS1 */ +			compatible = "fsl,aips-bus", "simple-bus"; +			#address-cells = <1>; +			#size-cells = <1>; +			reg = <0x43f00000 0x100000>; +			ranges; + +			uart1: serial@43f90000 { +				compatible = "fsl,imx31-uart", "fsl,imx21-uart"; +				reg = <0x43f90000 0x4000>; +				interrupts = <45>; +				status = "disabled"; +			}; + +			uart2: serial@43f94000 { +				compatible = "fsl,imx31-uart", "fsl,imx21-uart"; +				reg = <0x43f94000 0x4000>; +				interrupts = <32>; +				status = "disabled"; +			}; + +			uart4: serial@43fb0000 { +				compatible = "fsl,imx31-uart", "fsl,imx21-uart"; +				reg = <0x43fb0000 0x4000>; +				interrupts = <46>; +				status = "disabled"; +			}; + +			uart5: serial@43fb4000 { +				compatible = "fsl,imx31-uart", "fsl,imx21-uart"; +				reg = <0x43fb4000 0x4000>; +				interrupts = <47>; +				status = "disabled"; +			}; +		}; + +		spba@50000000 { +			compatible = "fsl,spba-bus", "simple-bus"; +			#address-cells = <1>; +			#size-cells = <1>; +			reg = <0x50000000 0x100000>; +			ranges; + +			uart3: serial@5000c000 { +				compatible = "fsl,imx31-uart", "fsl,imx21-uart"; +				reg = <0x5000c000 0x4000>; +				interrupts = <18>; +				status = "disabled"; +			}; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/imx51.dtsi b/arch/arm/boot/dts/imx51.dtsi index bfa65abe8ef..922adefdd29 100644 --- a/arch/arm/boot/dts/imx51.dtsi +++ b/arch/arm/boot/dts/imx51.dtsi @@ -133,7 +133,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio2: gpio@73f88000 { @@ -143,7 +143,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio3: gpio@73f8c000 { @@ -153,7 +153,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio4: gpio@73f90000 { @@ -163,7 +163,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			wdog@73f98000 { /* WDOG1 */ diff --git a/arch/arm/boot/dts/imx53.dtsi b/arch/arm/boot/dts/imx53.dtsi index e3e869470cd..4e735edc78e 100644 --- a/arch/arm/boot/dts/imx53.dtsi +++ b/arch/arm/boot/dts/imx53.dtsi @@ -135,7 +135,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio2: gpio@53f88000 { @@ -145,7 +145,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio3: gpio@53f8c000 { @@ -155,7 +155,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio4: gpio@53f90000 { @@ -165,7 +165,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			wdog@53f98000 { /* WDOG1 */ @@ -203,7 +203,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio6: gpio@53fe0000 { @@ -213,7 +213,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio7: gpio@53fe4000 { @@ -223,7 +223,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			i2c@53fec000 { /* I2C3 */ diff --git a/arch/arm/boot/dts/imx6q-arm2.dts b/arch/arm/boot/dts/imx6q-arm2.dts index db4c6096c56..d792581672c 100644 --- a/arch/arm/boot/dts/imx6q-arm2.dts +++ b/arch/arm/boot/dts/imx6q-arm2.dts @@ -22,6 +22,12 @@  	};  	soc { +		gpmi-nand@00112000 { +			pinctrl-names = "default"; +			pinctrl-0 = <&pinctrl_gpmi_nand_1>; +			status = "disabled"; /* gpmi nand conflicts with SD */ +		}; +  		aips-bus@02100000 { /* AIPS2 */  			ethernet@02188000 {  				phy-mode = "rgmii"; diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts index e0ec92973e7..d42e851ceb9 100644 --- a/arch/arm/boot/dts/imx6q-sabrelite.dts +++ b/arch/arm/boot/dts/imx6q-sabrelite.dts @@ -27,6 +27,8 @@  				ecspi@02008000 { /* eCSPI1 */  					fsl,spi-num-chipselects = <1>;  					cs-gpios = <&gpio3 19 0>; +					pinctrl-names = "default"; +					pinctrl-0 = <&pinctrl_ecspi1_1>;  					status = "okay";  					flash: m25p80@0 { @@ -42,9 +44,31 @@  				};  			}; +			iomuxc@020e0000 { +				pinctrl-names = "default"; +				pinctrl-0 = <&pinctrl_gpio_hog>; + +				gpios { +					pinctrl_gpio_hog: gpiohog { +						fsl,pins = < +							   144  0x80000000	/* MX6Q_PAD_EIM_D22__GPIO_3_22 */ +							   121  0x80000000	/* MX6Q_PAD_EIM_D19__GPIO_3_19 */ +							   >; +					}; +				}; +			};  		};  		aips-bus@02100000 { /* AIPS2 */ +			usb@02184000 { /* USB OTG */ +				vbus-supply = <®_usb_otg_vbus>; +				status = "okay"; +			}; + +			usb@02184200 { /* USB1 */ +				status = "okay"; +			}; +  			ethernet@02188000 {  				phy-mode = "rgmii";  				phy-reset-gpios = <&gpio3 23 0>; @@ -111,6 +135,15 @@  			regulator-max-microvolt = <3300000>;  			regulator-always-on;  		}; + +		reg_usb_otg_vbus: usb_otg_vbus { +			compatible = "regulator-fixed"; +			regulator-name = "usb_otg_vbus"; +			regulator-min-microvolt = <5000000>; +			regulator-max-microvolt = <5000000>; +			gpio = <&gpio3 22 0>; +			enable-active-high; +		};  	};  	sound { diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi index 8c90cbac945..c25d4958481 100644 --- a/arch/arm/boot/dts/imx6q.dtsi +++ b/arch/arm/boot/dts/imx6q.dtsi @@ -87,6 +87,23 @@  		interrupt-parent = <&intc>;  		ranges; +		dma-apbh@00110000 { +			compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh"; +			reg = <0x00110000 0x2000>; +		}; + +		gpmi-nand@00112000 { +		       compatible = "fsl,imx6q-gpmi-nand"; +		       #address-cells = <1>; +		       #size-cells = <1>; +		       reg = <0x00112000 0x2000>, <0x00114000 0x2000>; +		       reg-names = "gpmi-nand", "bch"; +		       interrupts = <0 13 0x04>, <0 15 0x04>; +		       interrupt-names = "gpmi-dma", "bch"; +		       fsl,gpmi-dma-channel = <0>; +		       status = "disabled"; +		}; +  		timer@00a00600 {  			compatible = "arm,cortex-a9-twd-timer";  			reg = <0x00a00600 0x20>; @@ -266,7 +283,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio2: gpio@020a0000 { @@ -276,7 +293,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio3: gpio@020a4000 { @@ -286,7 +303,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio4: gpio@020a8000 { @@ -296,7 +313,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio5: gpio@020ac000 { @@ -306,7 +323,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio6: gpio@020b0000 { @@ -316,7 +333,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			gpio7: gpio@020b4000 { @@ -326,7 +343,7 @@  				gpio-controller;  				#gpio-cells = <2>;  				interrupt-controller; -				#interrupt-cells = <1>; +				#interrupt-cells = <2>;  			};  			kpp@020b8000 { @@ -444,12 +461,14 @@  				};  			}; -			usbphy@020c9000 { /* USBPHY1 */ +			usbphy1: usbphy@020c9000 { +				compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";  				reg = <0x020c9000 0x1000>;  				interrupts = <0 44 0x04>;  			}; -			usbphy@020ca000 { /* USBPHY2 */ +			usbphy2: usbphy@020ca000 { +				compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";  				reg = <0x020ca000 0x1000>;  				interrupts = <0 45 0x04>;  			}; @@ -495,6 +514,30 @@  					};  				}; +				gpmi-nand { +					pinctrl_gpmi_nand_1: gpmi-nand-1 { +						fsl,pins = <1328 0xb0b1		/* MX6Q_PAD_NANDF_CLE__RAWNAND_CLE */ +							    1336 0xb0b1		/* MX6Q_PAD_NANDF_ALE__RAWNAND_ALE */ +							    1344 0xb0b1		/* MX6Q_PAD_NANDF_WP_B__RAWNAND_RESETN */ +							    1352 0xb000		/* MX6Q_PAD_NANDF_RB0__RAWNAND_READY0 */ +							    1360 0xb0b1		/* MX6Q_PAD_NANDF_CS0__RAWNAND_CE0N */ +							    1365 0xb0b1		/* MX6Q_PAD_NANDF_CS1__RAWNAND_CE1N */ +							    1371 0xb0b1		/* MX6Q_PAD_NANDF_CS2__RAWNAND_CE2N */ +							    1378 0xb0b1		/* MX6Q_PAD_NANDF_CS3__RAWNAND_CE3N */ +							    1387 0xb0b1		/* MX6Q_PAD_SD4_CMD__RAWNAND_RDN */ +							    1393 0xb0b1		/* MX6Q_PAD_SD4_CLK__RAWNAND_WRN */ +							    1397 0xb0b1		/* MX6Q_PAD_NANDF_D0__RAWNAND_D0 */ +							    1405 0xb0b1		/* MX6Q_PAD_NANDF_D1__RAWNAND_D1 */ +							    1413 0xb0b1		/* MX6Q_PAD_NANDF_D2__RAWNAND_D2 */ +							    1421 0xb0b1		/* MX6Q_PAD_NANDF_D3__RAWNAND_D3 */ +							    1429 0xb0b1		/* MX6Q_PAD_NANDF_D4__RAWNAND_D4 */ +							    1437 0xb0b1		/* MX6Q_PAD_NANDF_D5__RAWNAND_D5 */ +							    1445 0xb0b1		/* MX6Q_PAD_NANDF_D6__RAWNAND_D6 */ +							    1453 0xb0b1		/* MX6Q_PAD_NANDF_D7__RAWNAND_D7 */ +							    1463 0x00b1>;	/* MX6Q_PAD_SD4_DAT0__RAWNAND_DQS */ +					}; +				}; +  				i2c1 {  					pinctrl_i2c1_1: i2c1grp-1 {  						fsl,pins = <137 0x4001b8b1	/* MX6Q_PAD_EIM_D21__I2C1_SCL */ @@ -538,6 +581,14 @@  							    1517 0x17059>;	/* MX6Q_PAD_SD4_DAT7__USDHC4_DAT7 */  					};  				}; + +				ecspi1 { +					pinctrl_ecspi1_1: ecspi1grp-1 { +						fsl,pins = <101 0x100b1		/* MX6Q_PAD_EIM_D17__ECSPI1_MISO */ +							    109 0x100b1		/* MX6Q_PAD_EIM_D18__ECSPI1_MOSI */ +							    94  0x100b1>;	/* MX6Q_PAD_EIM_D16__ECSPI1_SCLK */ +					}; +				};  			};  			dcic@020e4000 { /* DCIC1 */ @@ -573,6 +624,36 @@  				reg = <0x0217c000 0x4000>;  			}; +			usb@02184000 { /* USB OTG */ +				compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; +				reg = <0x02184000 0x200>; +				interrupts = <0 43 0x04>; +				fsl,usbphy = <&usbphy1>; +				status = "disabled"; +			}; + +			usb@02184200 { /* USB1 */ +				compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; +				reg = <0x02184200 0x200>; +				interrupts = <0 40 0x04>; +				fsl,usbphy = <&usbphy2>; +				status = "disabled"; +			}; + +			usb@02184400 { /* USB2 */ +				compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; +				reg = <0x02184400 0x200>; +				interrupts = <0 41 0x04>; +				status = "disabled"; +			}; + +			usb@02184600 { /* USB3 */ +				compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; +				reg = <0x02184600 0x200>; +				interrupts = <0 42 0x04>; +				status = "disabled"; +			}; +  			ethernet@02188000 {  				compatible = "fsl,imx6q-fec";  				reg = <0x02188000 0x4000>; diff --git a/arch/arm/boot/dts/lpc32xx.dtsi b/arch/arm/boot/dts/lpc32xx.dtsi index 3f5dad801a9..e5ffe960dbf 100644 --- a/arch/arm/boot/dts/lpc32xx.dtsi +++ b/arch/arm/boot/dts/lpc32xx.dtsi @@ -35,13 +35,14 @@  		slc: flash@20020000 {  			compatible = "nxp,lpc3220-slc";  			reg = <0x20020000 0x1000>; -			status = "disable"; +			status = "disabled";  		}; -		mlc: flash@200B0000 { +		mlc: flash@200a8000 {  			compatible = "nxp,lpc3220-mlc"; -			reg = <0x200B0000 0x1000>; -			status = "disable"; +			reg = <0x200a8000 0x11000>; +			interrupts = <11 0>; +			status = "disabled";  		};  		dma@31000000 { @@ -57,21 +58,21 @@  			compatible = "nxp,ohci-nxp", "usb-ohci";  			reg = <0x31020000 0x300>;  			interrupts = <0x3b 0>; -			status = "disable"; +			status = "disabled";  		};  		usbd@31020000 {  			compatible = "nxp,lpc3220-udc";  			reg = <0x31020000 0x300>;  			interrupts = <0x3d 0>, <0x3e 0>, <0x3c 0>, <0x3a 0>; -			status = "disable"; +			status = "disabled";  		};  		clcd@31040000 {  			compatible = "arm,pl110", "arm,primecell";  			reg = <0x31040000 0x1000>;  			interrupts = <0x0e 0>; -			status = "disable"; +			status = "disabled";  		};  		mac: ethernet@31060000 { @@ -114,9 +115,10 @@  			};  			sd@20098000 { -				compatible = "arm,pl180", "arm,primecell"; +				compatible = "arm,pl18x", "arm,primecell";  				reg = <0x20098000 0x1000>;  				interrupts = <0x0f 0>, <0x0d 0>; +				status = "disabled";  			};  			i2s1: i2s@2009C000 { @@ -124,24 +126,42 @@  				reg = <0x2009C000 0x1000>;  			}; +			/* UART5 first since it is the default console, ttyS0 */ +			uart5: serial@40090000 { +				/* actually, ns16550a w/ 64 byte fifos! */ +				compatible = "nxp,lpc3220-uart"; +				reg = <0x40090000 0x1000>; +				interrupts = <9 0>; +				clock-frequency = <13000000>; +				reg-shift = <2>; +				status = "disabled"; +			}; +  			uart3: serial@40080000 { -				compatible = "nxp,serial"; +				compatible = "nxp,lpc3220-uart";  				reg = <0x40080000 0x1000>; +				interrupts = <7 0>; +				clock-frequency = <13000000>; +				reg-shift = <2>; +				status = "disabled";  			};  			uart4: serial@40088000 { -				compatible = "nxp,serial"; +				compatible = "nxp,lpc3220-uart";  				reg = <0x40088000 0x1000>; -			}; - -			uart5: serial@40090000 { -				compatible = "nxp,serial"; -				reg = <0x40090000 0x1000>; +				interrupts = <8 0>; +				clock-frequency = <13000000>; +				reg-shift = <2>; +				status = "disabled";  			};  			uart6: serial@40098000 { -				compatible = "nxp,serial"; +				compatible = "nxp,lpc3220-uart";  				reg = <0x40098000 0x1000>; +				interrupts = <10 0>; +				clock-frequency = <13000000>; +				reg-shift = <2>; +				status = "disabled";  			};  			i2c1: i2c@400A0000 { @@ -192,18 +212,24 @@  			};  			uart1: serial@40014000 { -				compatible = "nxp,serial"; +				compatible = "nxp,lpc3220-hsuart";  				reg = <0x40014000 0x1000>; +				interrupts = <26 0>; +				status = "disabled";  			};  			uart2: serial@40018000 { -				compatible = "nxp,serial"; +				compatible = "nxp,lpc3220-hsuart";  				reg = <0x40018000 0x1000>; +				interrupts = <25 0>; +				status = "disabled";  			}; -			uart7: serial@4001C000 { -				compatible = "nxp,serial"; -				reg = <0x4001C000 0x1000>; +			uart7: serial@4001c000 { +				compatible = "nxp,lpc3220-hsuart"; +				reg = <0x4001c000 0x1000>; +				interrupts = <24 0>; +				status = "disabled";  			};  			rtc@40024000 { @@ -235,21 +261,28 @@  				compatible = "nxp,lpc3220-adc";  				reg = <0x40048000 0x1000>;  				interrupts = <0x27 0>; -				status = "disable"; +				status = "disabled";  			};  			tsc@40048000 {  				compatible = "nxp,lpc3220-tsc";  				reg = <0x40048000 0x1000>;  				interrupts = <0x27 0>; -				status = "disable"; +				status = "disabled";  			};  			key@40050000 {  				compatible = "nxp,lpc3220-key";  				reg = <0x40050000 0x1000>; +				interrupts = <54 0>; +				status = "disabled";  			}; +			pwm: pwm@4005C000 { +				compatible = "nxp,lpc3220-pwm"; +				reg = <0x4005C000 0x8>; +				status = "disabled"; +			};  		};  	};  }; diff --git a/arch/arm/boot/dts/omap2420-h4.dts b/arch/arm/boot/dts/omap2420-h4.dts new file mode 100644 index 00000000000..25b50b759de --- /dev/null +++ b/arch/arm/boot/dts/omap2420-h4.dts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +/dts-v1/; + +/include/ "omap2.dtsi" + +/ { +	model = "TI OMAP2420 H4 board"; +	compatible = "ti,omap2420-h4", "ti,omap2420", "ti,omap2"; + +	memory { +		device_type = "memory"; +		reg = <0x80000000 0x84000000>; /* 64 MB */ +	}; +}; diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts index 5b4506c0a8c..cdcb98c7e07 100644 --- a/arch/arm/boot/dts/omap3-beagle.dts +++ b/arch/arm/boot/dts/omap3-beagle.dts @@ -61,9 +61,9 @@  };  &mmc2 { -	status = "disable"; +	status = "disabled";  };  &mmc3 { -	status = "disable"; +	status = "disabled";  }; diff --git a/arch/arm/boot/dts/omap3-evm.dts b/arch/arm/boot/dts/omap3-evm.dts index 2eee16ec59b..f349ee9182c 100644 --- a/arch/arm/boot/dts/omap3-evm.dts +++ b/arch/arm/boot/dts/omap3-evm.dts @@ -18,3 +18,31 @@  		reg = <0x80000000 0x10000000>; /* 256 MB */  	};  }; + +&i2c1 { +	clock-frequency = <2600000>; + +	twl: twl@48 { +		reg = <0x48>; +		interrupts = <7>; /* SYS_NIRQ cascaded to intc */ +		interrupt-parent = <&intc>; +	}; +}; + +/include/ "twl4030.dtsi" + +&i2c2 { +	clock-frequency = <400000>; +}; + +&i2c3 { +	clock-frequency = <400000>; + +	/* +	 * TVP5146 Video decoder-in for analog input support. +	 */ +	tvp5146@5c { +		compatible = "ti,tvp5146m2"; +		reg = <0x5c>; +	}; +}; diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index 99474fa5fac..81094719820 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi @@ -215,5 +215,10 @@  			compatible = "ti,omap3-hsmmc";  			ti,hwmods = "mmc3";  		}; + +		wdt2: wdt@48314000 { +			compatible = "ti,omap3-wdt"; +			ti,hwmods = "wd_timer2"; +		};  	};  }; diff --git a/arch/arm/boot/dts/omap4-panda.dts b/arch/arm/boot/dts/omap4-panda.dts index 1efe0c58798..9880c12877b 100644 --- a/arch/arm/boot/dts/omap4-panda.dts +++ b/arch/arm/boot/dts/omap4-panda.dts @@ -32,6 +32,30 @@  			linux,default-trigger = "mmc0";  		};  	}; + +	sound: sound { +		compatible = "ti,abe-twl6040"; +		ti,model = "PandaBoard"; + +		ti,mclk-freq = <38400000>; + +		ti,mcpdm = <&mcpdm>; + +		ti,twl6040 = <&twl6040>; + +		/* Audio routing */ +		ti,audio-routing = +			"Headset Stereophone", "HSOL", +			"Headset Stereophone", "HSOR", +			"Ext Spk", "HFL", +			"Ext Spk", "HFR", +			"Line Out", "AUXL", +			"Line Out", "AUXR", +			"HSMIC", "Headset Mic", +			"Headset Mic", "Headset Mic Bias", +			"AFML", "Line In", +			"AFMR", "Line In"; +	};  };  &i2c1 { @@ -43,6 +67,19 @@  		interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */  		interrupt-parent = <&gic>;  	}; + +	twl6040: twl@4b { +		compatible = "ti,twl6040"; +		reg = <0x4b>; +		/* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */ +		interrupts = <0 119 4>; /* IRQ_SYS_2N cascaded to gic */ +		interrupt-parent = <&gic>; +		ti,audpwron-gpio = <&gpio4 31 0>;  /* gpio line 127 */ + +		vio-supply = <&v1v8>; +		v2v1-supply = <&v2v1>; +		enable-active-high; +	};  };  /include/ "twl6030.dtsi" @@ -74,15 +111,15 @@  };  &mmc2 { -	status = "disable"; +	status = "disabled";  };  &mmc3 { -	status = "disable"; +	status = "disabled";  };  &mmc4 { -	status = "disable"; +	status = "disabled";  };  &mmc5 { diff --git a/arch/arm/boot/dts/omap4-pandaES.dts b/arch/arm/boot/dts/omap4-pandaES.dts new file mode 100644 index 00000000000..d4ba43a48d9 --- /dev/null +++ b/arch/arm/boot/dts/omap4-pandaES.dts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +/include/ "omap4-panda.dts" + +/* Audio routing is differnet between PandaBoard4430 and PandaBoardES */ +&sound { +	ti,model = "PandaBoardES"; + +	/* Audio routing */ +	ti,audio-routing = +		"Headset Stereophone", "HSOL", +		"Headset Stereophone", "HSOR", +		"Ext Spk", "HFL", +		"Ext Spk", "HFR", +		"Line Out", "AUXL", +		"Line Out", "AUXR", +		"AFML", "Line In", +		"AFMR", "Line In"; +}; diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts index d08c4d13728..72216e932fc 100644 --- a/arch/arm/boot/dts/omap4-sdp.dts +++ b/arch/arm/boot/dts/omap4-sdp.dts @@ -28,6 +28,14 @@  		regulator-boot-on;  	}; +	vbat: fixedregulator@2 { +		compatible = "regulator-fixed"; +		regulator-name = "VBAT"; +		regulator-min-microvolt = <3750000>; +		regulator-max-microvolt = <3750000>; +		regulator-boot-on; +	}; +  	leds {  		compatible = "gpio-leds";  		debug0 { @@ -70,6 +78,41 @@  			gpios = <&gpio5 11 0>; /* 139 */  		};  	}; + +	sound { +		compatible = "ti,abe-twl6040"; +		ti,model = "SDP4430"; + +		ti,jack-detection = <1>; +		ti,mclk-freq = <38400000>; + +		ti,mcpdm = <&mcpdm>; +		ti,dmic = <&dmic>; + +		ti,twl6040 = <&twl6040>; + +		/* Audio routing */ +		ti,audio-routing = +			"Headset Stereophone", "HSOL", +			"Headset Stereophone", "HSOR", +			"Earphone Spk", "EP", +			"Ext Spk", "HFL", +			"Ext Spk", "HFR", +			"Line Out", "AUXL", +			"Line Out", "AUXR", +			"Vibrator", "VIBRAL", +			"Vibrator", "VIBRAR", +			"HSMIC", "Headset Mic", +			"Headset Mic", "Headset Mic Bias", +			"MAINMIC", "Main Handset Mic", +			"Main Handset Mic", "Main Mic Bias", +			"SUBMIC", "Sub Handset Mic", +			"Sub Handset Mic", "Main Mic Bias", +			"AFML", "Line In", +			"AFMR", "Line In", +			"DMic", "Digital Mic", +			"Digital Mic", "Digital Mic1 Bias"; +	};  };  &i2c1 { @@ -81,6 +124,31 @@  		interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */  		interrupt-parent = <&gic>;  	}; + +	twl6040: twl@4b { +		compatible = "ti,twl6040"; +		reg = <0x4b>; +		/* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */ +		interrupts = <0 119 4>; /* IRQ_SYS_2N cascaded to gic */ +		interrupt-parent = <&gic>; +		ti,audpwron-gpio = <&gpio4 31 0>;  /* gpio line 127 */ + +		vio-supply = <&v1v8>; +		v2v1-supply = <&v2v1>; +		enable-active-high; + +		/* regulators for vibra motor */ +		vddvibl-supply = <&vbat>; +		vddvibr-supply = <&vbat>; + +		vibra { +			/* Vibra driver, motor resistance parameters */ +			ti,vibldrv-res = <8>; +			ti,vibrdrv-res = <3>; +			ti,viblmotor-res = <10>; +			ti,vibrmotor-res = <10>; +		}; +	};  };  /include/ "twl6030.dtsi" @@ -147,11 +215,11 @@  };  &mmc3 { -	status = "disable"; +	status = "disabled";  };  &mmc4 { -	status = "disable"; +	status = "disabled";  };  &mmc5 { diff --git a/arch/arm/boot/dts/omap4-var_som.dts b/arch/arm/boot/dts/omap4-var_som.dts new file mode 100644 index 00000000000..6601e6af609 --- /dev/null +++ b/arch/arm/boot/dts/omap4-var_som.dts @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2012 Variscite Ltd. - http://www.variscite.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +/dts-v1/; + +/include/ "omap4.dtsi" + +/ { +	model = "Variscite OMAP4 SOM"; +	compatible = "var,omap4-var_som", "ti,omap4430", "ti,omap4"; + +	memory { +		device_type = "memory"; +		reg = <0x80000000 0x40000000>; /* 1 GB */ +	}; + +	vdd_eth: fixedregulator@0 { +		compatible = "regulator-fixed"; +		regulator-name = "VDD_ETH"; +		regulator-min-microvolt = <3300000>; +		regulator-max-microvolt = <3300000>; +		enable-active-high; +		regulator-boot-on; +	}; +}; + +&i2c1 { +	clock-frequency = <400000>; + +	twl: twl@48 { +		reg = <0x48>; +		/* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */ +		interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */ +		interrupt-parent = <&gic>; +	}; +}; + +/include/ "twl6030.dtsi" + +&i2c2 { +	clock-frequency = <400000>; +}; + +&i2c3 { +	clock-frequency = <400000>; + +	/* +	 * Temperature Sensor +	 * http://www.ti.com/lit/ds/symlink/tmp105.pdf +	 */ +	tmp105@49 { +		compatible = "ti,tmp105"; +		reg = <0x49>; +	}; +}; + +&i2c4 { +	clock-frequency = <400000>; +}; + +&mcspi1 { +	eth@0 { +		compatible = "ks8851"; +		spi-max-frequency = <24000000>; +		reg = <0>; +		interrupt-parent = <&gpio6>; +		interrupts = <11>; /* gpio line 171 */ +		vdd-supply = <&vdd_eth>; +	}; +}; + +&mmc1 { +	vmmc-supply = <&vmmc>; +	ti,bus-width = <8>; +	ti,non-removable; +}; + +&mmc2 { +	status = "disabled"; +}; + +&mmc3 { +	status = "disabled"; +}; + +&mmc4 { +	status = "disabled"; +}; + +&mmc5 { +	ti,bus-width = <4>; +}; diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi index 359c4979c8a..04cbbcb6ff9 100644 --- a/arch/arm/boot/dts/omap4.dtsi +++ b/arch/arm/boot/dts/omap4.dtsi @@ -272,5 +272,28 @@  			ti,hwmods = "mmc5";  			ti,needs-special-reset;  		}; + +		wdt2: wdt@4a314000 { +			compatible = "ti,omap4-wdt", "ti,omap3-wdt"; +			ti,hwmods = "wd_timer2"; +		}; + +		mcpdm: mcpdm@40132000 { +			compatible = "ti,omap4-mcpdm"; +			reg = <0x40132000 0x7f>, /* MPU private access */ +			      <0x49032000 0x7f>; /* L3 Interconnect */ +			interrupts = <0 112 0x4>; +			interrupt-parent = <&gic>; +			ti,hwmods = "mcpdm"; +		}; + +		dmic: dmic@4012e000 { +			compatible = "ti,omap4-dmic"; +			reg = <0x4012e000 0x7f>, /* MPU private access */ +			      <0x4902e000 0x7f>; /* L3 Interconnect */ +			interrupts = <0 114 0x4>; +			interrupt-parent = <&gic>; +			ti,hwmods = "dmic"; +		};  	};  }; diff --git a/arch/arm/boot/dts/omap5-evm.dts b/arch/arm/boot/dts/omap5-evm.dts new file mode 100644 index 00000000000..200c39ad1c8 --- /dev/null +++ b/arch/arm/boot/dts/omap5-evm.dts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +/dts-v1/; + +/include/ "omap5.dtsi" + +/ { +	model = "TI OMAP5 EVM board"; +	compatible = "ti,omap5-evm", "ti,omap5"; + +	memory { +		device_type = "memory"; +		reg = <0x80000000 0x40000000>; /* 1 GB */ +	}; +}; diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi new file mode 100644 index 00000000000..57e52708374 --- /dev/null +++ b/arch/arm/boot/dts/omap5.dtsi @@ -0,0 +1,184 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * Based on "omap4.dtsi" + */ + +/* + * Carveout for multimedia usecases + * It should be the last 48MB of the first 512MB memory part + * In theory, it should not even exist. That zone should be reserved + * dynamically during the .reserve callback. + */ +/memreserve/ 0x9d000000 0x03000000; + +/include/ "skeleton.dtsi" + +/ { +	compatible = "ti,omap5"; +	interrupt-parent = <&gic>; + +	aliases { +		serial0 = &uart1; +		serial1 = &uart2; +		serial2 = &uart3; +		serial3 = &uart4; +		serial4 = &uart5; +		serial5 = &uart6; +	}; + +	cpus { +		cpu@0 { +			compatible = "arm,cortex-a15"; +		}; +		cpu@1 { +			compatible = "arm,cortex-a15"; +		}; +	}; + +	/* +	 * The soc node represents the soc top level view. It is uses for IPs +	 * that are not memory mapped in the MPU view or for the MPU itself. +	 */ +	soc { +		compatible = "ti,omap-infra"; +		mpu { +			compatible = "ti,omap5-mpu"; +			ti,hwmods = "mpu"; +		}; +	}; + +	/* +	 * XXX: Use a flat representation of the OMAP3 interconnect. +	 * The real OMAP interconnect network is quite complex. +	 * Since that will not bring real advantage to represent that in DT for +	 * the moment, just use a fake OCP bus entry to represent the whole bus +	 * hierarchy. +	 */ +	ocp { +		compatible = "ti,omap4-l3-noc", "simple-bus"; +		#address-cells = <1>; +		#size-cells = <1>; +		ranges; +		ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; + +		gic: interrupt-controller@48211000 { +			compatible = "arm,cortex-a15-gic"; +			interrupt-controller; +			#interrupt-cells = <3>; +			reg = <0x48211000 0x1000>, +			      <0x48212000 0x1000>; +		}; + +		gpio1: gpio@4ae10000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio1"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		gpio2: gpio@48055000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio2"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		gpio3: gpio@48057000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio3"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		gpio4: gpio@48059000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio4"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		gpio5: gpio@4805b000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio5"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		gpio6: gpio@4805d000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio6"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		gpio7: gpio@48051000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio7"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		gpio8: gpio@48053000 { +			compatible = "ti,omap4-gpio"; +			ti,hwmods = "gpio8"; +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <1>; +		}; + +		uart1: serial@4806a000 { +			compatible = "ti,omap4-uart"; +			ti,hwmods = "uart1"; +			clock-frequency = <48000000>; +		}; + +		uart2: serial@4806c000 { +			compatible = "ti,omap4-uart"; +			ti,hwmods = "uart2"; +			clock-frequency = <48000000>; +		}; + +		uart3: serial@48020000 { +			compatible = "ti,omap4-uart"; +			ti,hwmods = "uart3"; +			clock-frequency = <48000000>; +		}; + +		uart4: serial@4806e000 { +			compatible = "ti,omap4-uart"; +			ti,hwmods = "uart4"; +			clock-frequency = <48000000>; +		}; + +		uart5: serial@48066000 { +			compatible = "ti,omap5-uart"; +			ti,hwmods = "uart5"; +			clock-frequency = <48000000>; +		}; + +		uart6: serial@48068000 { +			compatible = "ti,omap6-uart"; +			ti,hwmods = "uart6"; +			clock-frequency = <48000000>; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/phy3250.dts b/arch/arm/boot/dts/phy3250.dts index c4ff6d1a018..802ec5b2fd0 100644 --- a/arch/arm/boot/dts/phy3250.dts +++ b/arch/arm/boot/dts/phy3250.dts @@ -54,6 +54,17 @@  			#address-cells = <1>;  			#size-cells = <1>; +			nxp,wdr-clks = <14>; +			nxp,wwidth = <40000000>; +			nxp,whold = <100000000>; +			nxp,wsetup = <100000000>; +			nxp,rdr-clks = <14>; +			nxp,rwidth = <40000000>; +			nxp,rhold = <66666666>; +			nxp,rsetup = <100000000>; +			nand-on-flash-bbt; +			gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */ +  			mtd0@00000000 {  				label = "phy3250-boot";  				reg = <0x00000000 0x00064000>; @@ -83,6 +94,14 @@  		};  		apb { +			uart5: serial@40090000 { +				status = "okay"; +			}; + +			uart3: serial@40080000 { +				status = "okay"; +			}; +  			i2c1: i2c@400A0000 {  				clock-frequency = <100000>; @@ -114,16 +133,58 @@  			};  			ssp0: ssp@20084000 { +				#address-cells = <1>; +				#size-cells = <0>; +				pl022,num-chipselects = <1>; +				cs-gpios = <&gpio 3 5 0>; +  				eeprom: at25@0 { +					pl022,hierarchy = <0>; +					pl022,interface = <0>; +					pl022,slave-tx-disable = <0>; +					pl022,com-mode = <0>; +					pl022,rx-level-trig = <1>; +					pl022,tx-level-trig = <1>; +					pl022,ctrl-len = <11>; +					pl022,wait-state = <0>; +					pl022,duplex = <0>; + +					at25,byte-len = <0x8000>; +					at25,addr-mode = <2>; +					at25,page-size = <64>; +  					compatible = "atmel,at25"; +					reg = <0>; +					spi-max-frequency = <5000000>;  				};  			}; + +			sd@20098000 { +				wp-gpios = <&gpio 3 0 0>; +				cd-gpios = <&gpio 3 1 0>; +				cd-inverted; +				bus-width = <4>; +				status = "okay"; +			};  		};  		fab { +			uart2: serial@40018000 { +				status = "okay"; +			}; +  			tsc@40048000 {  				status = "okay";  			}; + +			key@40050000 { +				status = "okay"; +				keypad,num-rows = <1>; +				keypad,num-columns = <1>; +				nxp,debounce-delay-ms = <3>; +				nxp,scan-delay-ms = <34>; +				linux,keymap = <0x00000002>; +			};  		};  	}; diff --git a/arch/arm/boot/dts/snowball.dts b/arch/arm/boot/dts/snowball.dts index ec3c3397511..7e334d4cae2 100644 --- a/arch/arm/boot/dts/snowball.dts +++ b/arch/arm/boot/dts/snowball.dts @@ -77,6 +77,8 @@  		used-led {  			label = "user_led";  			gpios = <&gpio4 14 0x4>; +			default-state = "on"; +			linux,default-trigger = "heartbeat";  		};  	}; @@ -101,15 +103,30 @@  			};  		}; +		// External Micro SD slot  		sdi@80126000 { -			status = "enabled"; +			arm,primecell-periphid = <0x10480180>; +			max-frequency = <50000000>; +			bus-width = <8>; +			mmc-cap-mmc-highspeed;  			vmmc-supply = <&ab8500_ldo_aux3_reg>; + +			#gpio-cells = <1>;  			cd-gpios  = <&gpio6 26 0x4>; // 218 +			cd-inverted; + +			status = "okay";  		}; +		// On-board eMMC  		sdi@80114000 { -			status = "enabled"; +			arm,primecell-periphid = <0x10480180>; +		        max-frequency = <50000000>; +			bus-width = <8>; +			mmc-cap-mmc-highspeed;  			vmmc-supply = <&ab8500_ldo_aux2_reg>; + +			status = "okay";  		};  		uart@80120000 { diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi new file mode 100644 index 00000000000..0772f5739f5 --- /dev/null +++ b/arch/arm/boot/dts/socfpga.dtsi @@ -0,0 +1,147 @@ +/* + *  Copyright (C) 2012 Altera <www.altera.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +/include/ "skeleton.dtsi" + +/ { +	#address-cells = <1>; +	#size-cells = <1>; + +	aliases { +		ethernet0 = &gmac0; +		serial0 = &uart0; +		serial1 = &uart1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu@0 { +			compatible = "arm,cortex-a9"; +			device_type = "cpu"; +			reg = <0>; +			next-level-cache = <&L2>; +		}; +		cpu@1 { +			compatible = "arm,cortex-a9"; +			device_type = "cpu"; +			reg = <1>; +			next-level-cache = <&L2>; +		}; +	}; + +	intc: intc@fffed000 { +		compatible = "arm,cortex-a9-gic"; +		#interrupt-cells = <3>; +		interrupt-controller; +		reg = <0xfffed000 0x1000>, +		      <0xfffec100 0x100>; +	}; + +	soc { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "simple-bus"; +		device_type = "soc"; +		interrupt-parent = <&intc>; +		ranges; + +		amba { +			compatible = "arm,amba-bus"; +			#address-cells = <1>; +			#size-cells = <1>; +			ranges; + +			pdma: pdma@ffe01000 { +				compatible = "arm,pl330", "arm,primecell"; +				reg = <0xffe01000 0x1000>; +				interrupts = <0 180 4>; +			}; +		}; + +		gmac0: stmmac@ff700000 { +			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; +			reg = <0xff700000 0x2000>; +			interrupts = <0 115 4>; +			interrupt-names = "macirq"; +			mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */ +			phy-mode = "gmii"; +		}; + +		L2: l2-cache@fffef000 { +			compatible = "arm,pl310-cache"; +			reg = <0xfffef000 0x1000>; +			interrupts = <0 38 0x04>; +			cache-unified; +			cache-level = <2>; +		}; + +		/* Local timer */ +		timer@fffec600 { +			compatible = "arm,cortex-a9-twd-timer"; +			reg = <0xfffec600 0x100>; +			interrupts = <1 13 0xf04>; +		}; + +		timer0: timer@ffc08000 { +			compatible = "snps,dw-apb-timer-sp"; +			interrupts = <0 167 4>; +			clock-frequency = <200000000>; +			reg = <0xffc08000 0x1000>; +		}; + +		timer1: timer@ffc09000 { +			compatible = "snps,dw-apb-timer-sp"; +			interrupts = <0 168 4>; +			clock-frequency = <200000000>; +			reg = <0xffc09000 0x1000>; +		}; + +		timer2: timer@ffd00000 { +			compatible = "snps,dw-apb-timer-osc"; +			interrupts = <0 169 4>; +			clock-frequency = <200000000>; +			reg = <0xffd00000 0x1000>; +		}; + +		timer3: timer@ffd01000 { +			compatible = "snps,dw-apb-timer-osc"; +			interrupts = <0 170 4>; +			clock-frequency = <200000000>; +			reg = <0xffd01000 0x1000>; +		}; + +		uart0: uart@ffc02000 { +			compatible = "snps,dw-apb-uart"; +			reg = <0xffc02000 0x1000>; +			clock-frequency = <7372800>; +			interrupts = <0 162 4>; +			reg-shift = <2>; +			reg-io-width = <4>; +		}; + +		uart1: uart@ffc03000 { +			compatible = "snps,dw-apb-uart"; +			reg = <0xffc03000 0x1000>; +			clock-frequency = <7372800>; +			interrupts = <0 163 4>; +			reg-shift = <2>; +			reg-io-width = <4>; +		}; +	}; +}; diff --git a/arch/arm/boot/dts/socfpga_cyclone5.dts b/arch/arm/boot/dts/socfpga_cyclone5.dts new file mode 100644 index 00000000000..ab7e4a94299 --- /dev/null +++ b/arch/arm/boot/dts/socfpga_cyclone5.dts @@ -0,0 +1,34 @@ +/* + *  Copyright (C) 2012 Altera Corporation <www.altera.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +/dts-v1/; +/include/ "socfpga.dtsi" + +/ { +	model = "Altera SOCFPGA Cyclone V"; +	compatible = "altr,socfpga-cyclone5"; + +	chosen { +		bootargs = "console=ttyS0,57600"; +	}; + +	memory { +		name = "memory"; +		device_type = "memory"; +		reg = <0x0 0x10000000>; /* 256MB */ +	}; +}; diff --git a/arch/arm/boot/dts/spear13xx.dtsi b/arch/arm/boot/dts/spear13xx.dtsi index 10dcec7e732..f7b84aced65 100644 --- a/arch/arm/boot/dts/spear13xx.dtsi +++ b/arch/arm/boot/dts/spear13xx.dtsi @@ -43,8 +43,8 @@  	pmu {  		compatible = "arm,cortex-a9-pmu"; -		interrupts = <0 8 0x04 -			      0 9 0x04>; +		interrupts = <0 6 0x04 +			      0 7 0x04>;  	};  	L2: l2-cache { @@ -119,8 +119,8 @@  		gmac0: eth@e2000000 {  			compatible = "st,spear600-gmac";  			reg = <0xe2000000 0x8000>; -			interrupts = <0 23 0x4 -				      0 24 0x4>; +			interrupts = <0 33 0x4 +				      0 34 0x4>;  			interrupt-names = "macirq", "eth_wake_irq";  			status = "disabled";  		}; @@ -202,6 +202,7 @@  			kbd@e0300000 {  				compatible = "st,spear300-kbd";  				reg = <0xe0300000 0x1000>; +				interrupts = <0 52 0x4>;  				status = "disabled";  			}; @@ -224,7 +225,7 @@  			serial@e0000000 {  				compatible = "arm,pl011", "arm,primecell";  				reg = <0xe0000000 0x1000>; -				interrupts = <0 36 0x4>; +				interrupts = <0 35 0x4>;  				status = "disabled";  			}; diff --git a/arch/arm/boot/dts/spear320-evb.dts b/arch/arm/boot/dts/spear320-evb.dts index c13fd1f3b09..e4e912f9502 100644 --- a/arch/arm/boot/dts/spear320-evb.dts +++ b/arch/arm/boot/dts/spear320-evb.dts @@ -15,8 +15,8 @@  /include/ "spear320.dtsi"  / { -	model = "ST SPEAr300 Evaluation Board"; -	compatible = "st,spear300-evb", "st,spear300"; +	model = "ST SPEAr320 Evaluation Board"; +	compatible = "st,spear320-evb", "st,spear320";  	#address-cells = <1>;  	#size-cells = <1>; @@ -26,7 +26,7 @@  	ahb {  		pinmux@b3000000 { -			st,pinmux-mode = <3>; +			st,pinmux-mode = <4>;  			pinctrl-names = "default";  			pinctrl-0 = <&state_default>; diff --git a/arch/arm/boot/dts/spear600.dtsi b/arch/arm/boot/dts/spear600.dtsi index 089f0a42c50..a3c36e47d7e 100644 --- a/arch/arm/boot/dts/spear600.dtsi +++ b/arch/arm/boot/dts/spear600.dtsi @@ -181,6 +181,7 @@  			timer@f0000000 {  				compatible = "st,spear-timer";  				reg = <0xf0000000 0x400>; +				interrupt-parent = <&vic0>;  				interrupts = <16>;  			};  		}; diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra20-harmony.dts index 7de701365fc..f146dbf6f7f 100644 --- a/arch/arm/boot/dts/tegra-harmony.dts +++ b/arch/arm/boot/dts/tegra20-harmony.dts @@ -307,7 +307,6 @@  		cd-gpios = <&gpio 58 0>; /* gpio PH2 */  		wp-gpios = <&gpio 59 0>; /* gpio PH3 */  		power-gpios = <&gpio 70 0>; /* gpio PI6 */ -		support-8bit;  		bus-width = <8>;  	}; diff --git a/arch/arm/boot/dts/tegra-paz00.dts b/arch/arm/boot/dts/tegra20-paz00.dts index bfeb117d5ae..684a9e1ff7e 100644 --- a/arch/arm/boot/dts/tegra-paz00.dts +++ b/arch/arm/boot/dts/tegra20-paz00.dts @@ -301,7 +301,6 @@  	sdhci@c8000600 {  		status = "okay"; -		support-8bit;  		bus-width = <8>;  	}; diff --git a/arch/arm/boot/dts/tegra-seaboard.dts b/arch/arm/boot/dts/tegra20-seaboard.dts index 89cb7f2acd9..85e621ab296 100644 --- a/arch/arm/boot/dts/tegra-seaboard.dts +++ b/arch/arm/boot/dts/tegra20-seaboard.dts @@ -64,11 +64,6 @@  				nvidia,pins = "dap4";  				nvidia,function = "dap4";  			}; -			ddc { -				nvidia,pins = "ddc", "owc", "spdi", "spdo", -					"uac"; -				nvidia,function = "rsvd2"; -			};  			dta {  				nvidia,pins = "dta", "dtb", "dtc", "dtd", "dte";  				nvidia,function = "vi"; @@ -129,14 +124,14 @@  					"lspi", "lvp1", "lvs";  				nvidia,function = "displaya";  			}; +			owc { +				nvidia,pins = "owc", "spdi", "spdo", "uac"; +				nvidia,function = "rsvd2"; +			};  			pmc {  				nvidia,pins = "pmc";  				nvidia,function = "pwr_on";  			}; -			pta { -				nvidia,pins = "pta"; -				nvidia,function = "i2c2"; -			};  			rm {  				nvidia,pins = "rm";  				nvidia,function = "i2c1"; @@ -176,7 +171,7 @@  			conf_ata {  				nvidia,pins = "ata", "atb", "atc", "atd",  					"cdev1", "cdev2", "dap1", "dap2", -					"dap4", "dtf", "gma", "gmc", "gmd", +					"dap4", "ddc", "dtf", "gma", "gmc", "gmd",  					"gme", "gpu", "gpu7", "i2cp", "irrx",  					"irtx", "pta", "rm", "sdc", "sdd",  					"slxd", "slxk", "spdi", "spdo", "uac", @@ -185,7 +180,7 @@  				nvidia,tristate = <0>;  			};  			conf_ate { -				nvidia,pins = "ate", "csus", "dap3", "ddc", +				nvidia,pins = "ate", "csus", "dap3",  					"gpv", "owc", "slxc", "spib", "spid",  					"spie";  				nvidia,pull = <0>; @@ -255,6 +250,39 @@  				nvidia,slew-rate-falling = <3>;  			};  		}; + +		state_i2cmux_ddc: pinmux_i2cmux_ddc { +			ddc { +				nvidia,pins = "ddc"; +				nvidia,function = "i2c2"; +			}; +			pta { +				nvidia,pins = "pta"; +				nvidia,function = "rsvd4"; +			}; +		}; + +		state_i2cmux_pta: pinmux_i2cmux_pta { +			ddc { +				nvidia,pins = "ddc"; +				nvidia,function = "rsvd4"; +			}; +			pta { +				nvidia,pins = "pta"; +				nvidia,function = "i2c2"; +			}; +		}; + +		state_i2cmux_idle: pinmux_i2cmux_idle { +			ddc { +				nvidia,pins = "ddc"; +				nvidia,function = "rsvd4"; +			}; +			pta { +				nvidia,pins = "pta"; +				nvidia,function = "rsvd4"; +			}; +		};  	};  	i2s@70002800 { @@ -303,12 +331,37 @@  	i2c@7000c400 {  		status = "okay";  		clock-frequency = <100000>; +	}; + +	i2cmux { +		compatible = "i2c-mux-pinctrl"; +		#address-cells = <1>; +		#size-cells = <0>; + +		i2c-parent = <&{/i2c@7000c400}>; -		smart-battery@b { -			compatible = "ti,bq20z75", "smart-battery-1.1"; -			reg = <0xb>; -			ti,i2c-retry-count = <2>; -			ti,poll-retry-count = <10>; +		pinctrl-names = "ddc", "pta", "idle"; +		pinctrl-0 = <&state_i2cmux_ddc>; +		pinctrl-1 = <&state_i2cmux_pta>; +		pinctrl-2 = <&state_i2cmux_idle>; + +		i2c@0 { +			reg = <0>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		i2c@1 { +			reg = <1>; +			#address-cells = <1>; +			#size-cells = <0>; + +			smart-battery@b { +				compatible = "ti,bq20z75", "smart-battery-1.1"; +				reg = <0xb>; +				ti,i2c-retry-count = <2>; +				ti,poll-retry-count = <10>; +			};  		};  	}; @@ -334,7 +387,7 @@  		};  	}; -	emc { +	memory-controller@0x7000f400 {  		emc-table@190000 {  			reg = <190000>;  			compatible = "nvidia,tegra20-emc-table"; @@ -397,7 +450,6 @@  	sdhci@c8000600 {  		status = "okay"; -		support-8bit;  		bus-width = <8>;  	}; diff --git a/arch/arm/boot/dts/tegra-trimslice.dts b/arch/arm/boot/dts/tegra20-trimslice.dts index 9de5636023f..9de5636023f 100644 --- a/arch/arm/boot/dts/tegra-trimslice.dts +++ b/arch/arm/boot/dts/tegra20-trimslice.dts diff --git a/arch/arm/boot/dts/tegra-ventana.dts b/arch/arm/boot/dts/tegra20-ventana.dts index 445343b0fbd..be90544e6b5 100644 --- a/arch/arm/boot/dts/tegra-ventana.dts +++ b/arch/arm/boot/dts/tegra20-ventana.dts @@ -314,7 +314,6 @@  	sdhci@c8000600 {  		status = "okay"; -		support-8bit;  		bus-width = <8>;  	}; diff --git a/arch/arm/boot/dts/tegra20-whistler.dts b/arch/arm/boot/dts/tegra20-whistler.dts new file mode 100644 index 00000000000..6916310bf58 --- /dev/null +++ b/arch/arm/boot/dts/tegra20-whistler.dts @@ -0,0 +1,301 @@ +/dts-v1/; + +/include/ "tegra20.dtsi" + +/ { +	model = "NVIDIA Tegra2 Whistler evaluation board"; +	compatible = "nvidia,whistler", "nvidia,tegra20"; + +	memory { +		reg = <0x00000000 0x20000000>; +	}; + +	pinmux { +		pinctrl-names = "default"; +		pinctrl-0 = <&state_default>; + +		state_default: pinmux { +			ata { +				nvidia,pins = "ata", "atb", "ate", "gma", "gmb", +					"gmc", "gmd", "gpu"; +				nvidia,function = "gmi"; +			}; +			atc { +				nvidia,pins = "atc", "atd"; +				nvidia,function = "sdio4"; +			}; +			cdev1 { +				nvidia,pins = "cdev1"; +				nvidia,function = "plla_out"; +			}; +			cdev2 { +				nvidia,pins = "cdev2"; +				nvidia,function = "osc"; +			}; +			crtp { +				nvidia,pins = "crtp"; +				nvidia,function = "crt"; +			}; +			csus { +				nvidia,pins = "csus"; +				nvidia,function = "vi_sensor_clk"; +			}; +			dap1 { +				nvidia,pins = "dap1"; +				nvidia,function = "dap1"; +			}; +			dap2 { +				nvidia,pins = "dap2"; +				nvidia,function = "dap2"; +			}; +			dap3 { +				nvidia,pins = "dap3"; +				nvidia,function = "dap3"; +			}; +			dap4 { +				nvidia,pins = "dap4"; +				nvidia,function = "dap4"; +			}; +			ddc { +				nvidia,pins = "ddc"; +				nvidia,function = "i2c2"; +			}; +			dta { +				nvidia,pins = "dta", "dtb", "dtc", "dtd"; +				nvidia,function = "vi"; +			}; +			dte { +				nvidia,pins = "dte"; +				nvidia,function = "rsvd1"; +			}; +			dtf { +				nvidia,pins = "dtf"; +				nvidia,function = "i2c3"; +			}; +			gme { +				nvidia,pins = "gme"; +				nvidia,function = "dap5"; +			}; +			gpu7 { +				nvidia,pins = "gpu7"; +				nvidia,function = "rtck"; +			}; +			gpv { +				nvidia,pins = "gpv"; +				nvidia,function = "pcie"; +			}; +			hdint { +				nvidia,pins = "hdint", "pta"; +				nvidia,function = "hdmi"; +			}; +			i2cp { +				nvidia,pins = "i2cp"; +				nvidia,function = "i2cp"; +			}; +			irrx { +				nvidia,pins = "irrx", "irtx"; +				nvidia,function = "uartb"; +			}; +			kbca { +				nvidia,pins = "kbca", "kbcc", "kbce", "kbcf"; +				nvidia,function = "kbc"; +			}; +			kbcb { +				nvidia,pins = "kbcb", "kbcd"; +				nvidia,function = "sdio2"; +			}; +			lcsn { +				nvidia,pins = "lcsn", "lsck", "lsda", "lsdi", +					"spia", "spib", "spic"; +				nvidia,function = "spi3"; +			}; +			ld0 { +				nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", +					"ld5", "ld6", "ld7", "ld8", "ld9", +					"ld10", "ld11", "ld12", "ld13", "ld14", +					"ld15", "ld16", "ld17", "ldc", "ldi", +					"lhp0", "lhp1", "lhp2", "lhs", "lm0", +					"lm1", "lpp", "lpw0", "lpw1", "lpw2", +					"lsc0", "lsc1", "lspi", "lvp0", "lvp1", +					"lvs"; +				nvidia,function = "displaya"; +			}; +			owc { +				nvidia,pins = "owc", "uac"; +				nvidia,function = "owr"; +			}; +			pmc { +				nvidia,pins = "pmc"; +				nvidia,function = "pwr_on"; +			}; +			rm { +				nvidia,pins = "rm"; +				nvidia,function = "i2c1"; +			}; +			sdb { +				nvidia,pins = "sdb", "sdc", "sdd", "slxa", +					"slxc", "slxd", "slxk"; +				nvidia,function = "sdio3"; +			}; +			sdio1 { +				nvidia,pins = "sdio1"; +				nvidia,function = "sdio1"; +			}; +			spdi { +				nvidia,pins = "spdi", "spdo"; +				nvidia,function = "rsvd2"; +			}; +			spid { +				nvidia,pins = "spid", "spie", "spig", "spih"; +				nvidia,function = "spi2_alt"; +			}; +			spif { +				nvidia,pins = "spif"; +				nvidia,function = "spi2"; +			}; +			uaa { +				nvidia,pins = "uaa", "uab"; +				nvidia,function = "uarta"; +			}; +			uad { +				nvidia,pins = "uad"; +				nvidia,function = "irda"; +			}; +			uca { +				nvidia,pins = "uca", "ucb"; +				nvidia,function = "uartc"; +			}; +			uda { +				nvidia,pins = "uda"; +				nvidia,function = "spi1"; +			}; +			conf_ata { +				nvidia,pins = "ata", "atb", "atc", "ddc", "gma", +					"gmb", "gmc", "gmd", "irrx", "irtx", +					"kbca", "kbcb", "kbcc", "kbcd", "kbce", +					"kbcf", "sdc", "sdd", "spie", "spig", +					"spih", "uaa", "uab", "uad", "uca", +					"ucb"; +				nvidia,pull = <2>; +				nvidia,tristate = <0>; +			}; +			conf_atd { +				nvidia,pins = "atd", "ate", "cdev1", "csus", +					"dap1", "dap2", "dap3", "dap4", "dte", +					"dtf", "gpu", "gpu7", "gpv", "i2cp", +					"rm", "sdio1", "slxa", "slxc", "slxd", +					"slxk", "spdi", "spdo", "uac", "uda"; +				nvidia,pull = <0>; +				nvidia,tristate = <0>; +			}; +			conf_cdev2 { +				nvidia,pins = "cdev2", "spia", "spib"; +				nvidia,pull = <1>; +				nvidia,tristate = <1>; +			}; +			conf_ck32 { +				nvidia,pins = "ck32", "ddrc", "lc", "pmca", +					"pmcb", "pmcc", "pmcd", "xm2c", +					"xm2d"; +				nvidia,pull = <0>; +			}; +			conf_crtp { +				nvidia,pins = "crtp"; +				nvidia,pull = <0>; +				nvidia,tristate = <1>; +			}; +			conf_dta { +				nvidia,pins = "dta", "dtb", "dtc", "dtd", +					"spid", "spif"; +				nvidia,pull = <1>; +				nvidia,tristate = <0>; +			}; +			conf_gme { +				nvidia,pins = "gme", "owc", "pta", "spic"; +				nvidia,pull = <2>; +				nvidia,tristate = <1>; +			}; +			conf_ld17_0 { +				nvidia,pins = "ld17_0", "ld19_18", "ld21_20", +					"ld23_22"; +				nvidia,pull = <1>; +			}; +			conf_ls { +				nvidia,pins = "ls", "pmce"; +				nvidia,pull = <2>; +			}; +			drive_dap1 { +				nvidia,pins = "drive_dap1"; +				nvidia,high-speed-mode = <0>; +				nvidia,schmitt = <1>; +				nvidia,low-power-mode = <0>; +				nvidia,pull-down-strength = <0>; +				nvidia,pull-up-strength = <0>; +				nvidia,slew-rate-rising = <0>; +				nvidia,slew-rate-falling = <0>; +			}; +		}; +	}; + +	i2s@70002800 { +		status = "okay"; +	}; + +	serial@70006000 { +		status = "okay"; +		clock-frequency = <216000000>; +	}; + +	i2c@7000d000 { +		status = "okay"; +		clock-frequency = <100000>; + +		codec: codec@1a { +			compatible = "wlf,wm8753"; +			reg = <0x1a>; +		}; + +		tca6416: gpio@20 { +			compatible = "ti,tca6416"; +			reg = <0x20>; +			gpio-controller; +			#gpio-cells = <2>; +		}; +	}; + +	usb@c5000000 { +		status = "okay"; +		nvidia,vbus-gpio = <&tca6416 0 0>; /* GPIO_PMU0 */ +	}; + +	usb@c5008000 { +		status = "okay"; +		nvidia,vbus-gpio = <&tca6416 1 0>; /* GPIO_PMU1 */ +	}; + +	sdhci@c8000400 { +		status = "okay"; +		wp-gpios = <&gpio 173 0>; /* gpio PV5 */ +		bus-width = <8>; +	}; + +	sdhci@c8000600 { +		status = "okay"; +		bus-width = <8>; +	}; + +	sound { +		compatible = "nvidia,tegra-audio-wm8753-whistler", +			     "nvidia,tegra-audio-wm8753"; +		nvidia,model = "NVIDIA Tegra Whistler"; + +		nvidia,audio-routing = +			"Headphone Jack", "LOUT1", +			"Headphone Jack", "ROUT1", +			"MIC2", "Mic Jack", +			"MIC2N", "Mic Jack"; + +		nvidia,i2s-controller = <&tegra_i2s1>; +		nvidia,audio-codec = <&codec>; +	}; +}; diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi index c417d67e902..9f1921634eb 100644 --- a/arch/arm/boot/dts/tegra20.dtsi +++ b/arch/arm/boot/dts/tegra20.dtsi @@ -72,7 +72,7 @@  		reg = <0x70002800 0x200>;  		interrupts = <0 13 0x04>;  		nvidia,dma-request-selector = <&apbdma 2>; -		status = "disable"; +		status = "disabled";  	};  	tegra_i2s2: i2s@70002a00 { @@ -80,7 +80,7 @@  		reg = <0x70002a00 0x200>;  		interrupts = <0 3 0x04>;  		nvidia,dma-request-selector = <&apbdma 1>; -		status = "disable"; +		status = "disabled";  	};  	serial@70006000 { @@ -88,7 +88,7 @@  		reg = <0x70006000 0x40>;  		reg-shift = <2>;  		interrupts = <0 36 0x04>; -		status = "disable"; +		status = "disabled";  	};  	serial@70006040 { @@ -96,7 +96,7 @@  		reg = <0x70006040 0x40>;  		reg-shift = <2>;  		interrupts = <0 37 0x04>; -		status = "disable"; +		status = "disabled";  	};  	serial@70006200 { @@ -104,7 +104,7 @@  		reg = <0x70006200 0x100>;  		reg-shift = <2>;  		interrupts = <0 46 0x04>; -		status = "disable"; +		status = "disabled";  	};  	serial@70006300 { @@ -112,7 +112,7 @@  		reg = <0x70006300 0x100>;  		reg-shift = <2>;  		interrupts = <0 90 0x04>; -		status = "disable"; +		status = "disabled";  	};  	serial@70006400 { @@ -120,7 +120,7 @@  		reg = <0x70006400 0x100>;  		reg-shift = <2>;  		interrupts = <0 91 0x04>; -		status = "disable"; +		status = "disabled";  	};  	i2c@7000c000 { @@ -129,7 +129,7 @@  		interrupts = <0 38 0x04>;  		#address-cells = <1>;  		#size-cells = <0>; -		status = "disable"; +		status = "disabled";  	};  	i2c@7000c400 { @@ -138,7 +138,7 @@  		interrupts = <0 84 0x04>;  		#address-cells = <1>;  		#size-cells = <0>; -		status = "disable"; +		status = "disabled";  	};  	i2c@7000c500 { @@ -147,7 +147,7 @@  		interrupts = <0 92 0x04>;  		#address-cells = <1>;  		#size-cells = <0>; -		status = "disable"; +		status = "disabled";  	};  	i2c@7000d000 { @@ -156,7 +156,7 @@  		interrupts = <0 53 0x04>;  		#address-cells = <1>;  		#size-cells = <0>; -		status = "disable"; +		status = "disabled";  	};  	pmc { @@ -164,7 +164,7 @@  		reg = <0x7000e400 0x400>;  	}; -	mc { +	memory-controller@0x7000f000 {  		compatible = "nvidia,tegra20-mc";  		reg = <0x7000f000 0x024  		       0x7000f03c 0x3c4>; @@ -177,7 +177,7 @@  		       0x58000000 0x02000000>;	/* GART aperture */  	}; -	emc { +	memory-controller@0x7000f400 {  		compatible = "nvidia,tegra20-emc";  		reg = <0x7000f400 0x200>;  		#address-cells = <1>; @@ -190,7 +190,7 @@  		interrupts = <0 20 0x04>;  		phy_type = "utmi";  		nvidia,has-legacy-mode; -		status = "disable"; +		status = "disabled";  	};  	usb@c5004000 { @@ -198,7 +198,7 @@  		reg = <0xc5004000 0x4000>;  		interrupts = <0 21 0x04>;  		phy_type = "ulpi"; -		status = "disable"; +		status = "disabled";  	};  	usb@c5008000 { @@ -206,35 +206,35 @@  		reg = <0xc5008000 0x4000>;  		interrupts = <0 97 0x04>;  		phy_type = "utmi"; -		status = "disable"; +		status = "disabled";  	};  	sdhci@c8000000 {  		compatible = "nvidia,tegra20-sdhci";  		reg = <0xc8000000 0x200>;  		interrupts = <0 14 0x04>; -		status = "disable"; +		status = "disabled";  	};  	sdhci@c8000200 {  		compatible = "nvidia,tegra20-sdhci";  		reg = <0xc8000200 0x200>;  		interrupts = <0 15 0x04>; -		status = "disable"; +		status = "disabled";  	};  	sdhci@c8000400 {  		compatible = "nvidia,tegra20-sdhci";  		reg = <0xc8000400 0x200>;  		interrupts = <0 19 0x04>; -		status = "disable"; +		status = "disabled";  	};  	sdhci@c8000600 {  		compatible = "nvidia,tegra20-sdhci";  		reg = <0xc8000600 0x200>;  		interrupts = <0 31 0x04>; -		status = "disable"; +		status = "disabled";  	};  	pmu { diff --git a/arch/arm/boot/dts/tegra-cardhu.dts b/arch/arm/boot/dts/tegra30-cardhu.dts index 36321bceec4..c169bced131 100644 --- a/arch/arm/boot/dts/tegra-cardhu.dts +++ b/arch/arm/boot/dts/tegra30-cardhu.dts @@ -144,7 +144,6 @@  	sdhci@78000600 {  		status = "okay"; -		support-8bit;  		bus-width = <8>;  	}; diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi index 2dcc09e784b..da740191771 100644 --- a/arch/arm/boot/dts/tegra30.dtsi +++ b/arch/arm/boot/dts/tegra30.dtsi @@ -82,7 +82,7 @@  		reg = <0x70006000 0x40>;  		reg-shift = <2>;  		interrupts = <0 36 0x04>; -		status = "disable"; +		status = "disabled";  	};  	serial@70006040 { @@ -90,7 +90,7 @@  		reg = <0x70006040 0x40>;  		reg-shift = <2>;  		interrupts = <0 37 0x04>; -		status = "disable"; +		status = "disabled";  	};  	serial@70006200 { @@ -98,7 +98,7 @@  		reg = <0x70006200 0x100>;  		reg-shift = <2>;  		interrupts = <0 46 0x04>; -		status = "disable"; +		status = "disabled";  	};  	serial@70006300 { @@ -106,7 +106,7 @@  		reg = <0x70006300 0x100>;  		reg-shift = <2>;  		interrupts = <0 90 0x04>; -		status = "disable"; +		status = "disabled";  	};  	serial@70006400 { @@ -114,7 +114,7 @@  		reg = <0x70006400 0x100>;  		reg-shift = <2>;  		interrupts = <0 91 0x04>; -		status = "disable"; +		status = "disabled";  	};  	i2c@7000c000 { @@ -123,7 +123,7 @@  		interrupts = <0 38 0x04>;  		#address-cells = <1>;  		#size-cells = <0>; -		status = "disable"; +		status = "disabled";  	};  	i2c@7000c400 { @@ -132,7 +132,7 @@  		interrupts = <0 84 0x04>;  		#address-cells = <1>;  		#size-cells = <0>; -		status = "disable"; +		status = "disabled";  	};  	i2c@7000c500 { @@ -141,7 +141,7 @@  		interrupts = <0 92 0x04>;  		#address-cells = <1>;  		#size-cells = <0>; -		status = "disable"; +		status = "disabled";  	};  	i2c@7000c700 { @@ -150,7 +150,7 @@  		interrupts = <0 120 0x04>;  		#address-cells = <1>;  		#size-cells = <0>; -		status = "disable"; +		status = "disabled";  	};  	i2c@7000d000 { @@ -159,7 +159,7 @@  		interrupts = <0 53 0x04>;  		#address-cells = <1>;  		#size-cells = <0>; -		status = "disable"; +		status = "disabled";  	};  	pmc { @@ -167,7 +167,7 @@  		reg = <0x7000e400 0x400>;  	}; -	mc { +	memory-controller {  		compatible = "nvidia,tegra30-mc";  		reg = <0x7000f000 0x010  		       0x7000f03c 0x1b4 @@ -201,35 +201,35 @@  			compatible = "nvidia,tegra30-i2s";  			reg = <0x70080300 0x100>;  			nvidia,ahub-cif-ids = <4 4>; -			status = "disable"; +			status = "disabled";  		};  		tegra_i2s1: i2s@70080400 {  			compatible = "nvidia,tegra30-i2s";  			reg = <0x70080400 0x100>;  			nvidia,ahub-cif-ids = <5 5>; -			status = "disable"; +			status = "disabled";  		};  		tegra_i2s2: i2s@70080500 {  			compatible = "nvidia,tegra30-i2s";  			reg = <0x70080500 0x100>;  			nvidia,ahub-cif-ids = <6 6>; -			status = "disable"; +			status = "disabled";  		};  		tegra_i2s3: i2s@70080600 {  			compatible = "nvidia,tegra30-i2s";  			reg = <0x70080600 0x100>;  			nvidia,ahub-cif-ids = <7 7>; -			status = "disable"; +			status = "disabled";  		};  		tegra_i2s4: i2s@70080700 {  			compatible = "nvidia,tegra30-i2s";  			reg = <0x70080700 0x100>;  			nvidia,ahub-cif-ids = <8 8>; -			status = "disable"; +			status = "disabled";  		};  	}; @@ -237,28 +237,28 @@  		compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";  		reg = <0x78000000 0x200>;  		interrupts = <0 14 0x04>; -		status = "disable"; +		status = "disabled";  	};  	sdhci@78000200 {  		compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";  		reg = <0x78000200 0x200>;  		interrupts = <0 15 0x04>; -		status = "disable"; +		status = "disabled";  	};  	sdhci@78000400 {  		compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";  		reg = <0x78000400 0x200>;  		interrupts = <0 19 0x04>; -		status = "disable"; +		status = "disabled";  	};  	sdhci@78000600 {  		compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";  		reg = <0x78000600 0x200>;  		interrupts = <0 31 0x04>; -		status = "disable"; +		status = "disabled";  	};  	pmu { diff --git a/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi b/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi index 16076e2d093..d8a827bd2bf 100644 --- a/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi +++ b/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi @@ -55,6 +55,8 @@  			reg-io-width = <4>;  			smsc,irq-active-high;  			smsc,irq-push-pull; +			vdd33a-supply = <&v2m_fixed_3v3>; +			vddvario-supply = <&v2m_fixed_3v3>;  		};  		usb@2,03000000 { @@ -157,6 +159,7 @@  			v2m_timer23: timer@120000 {  				compatible = "arm,sp804", "arm,primecell";  				reg = <0x120000 0x1000>; +				interrupts = <3>;  			};  			/* DVI I2C bus */ @@ -197,5 +200,13 @@  				interrupts = <14>;  			};  		}; + +		v2m_fixed_3v3: fixedregulator@0 { +			compatible = "regulator-fixed"; +			regulator-name = "3V3"; +			regulator-min-microvolt = <3300000>; +			regulator-max-microvolt = <3300000>; +			regulator-always-on; +		};  	};  }; diff --git a/arch/arm/boot/dts/vexpress-v2m.dtsi b/arch/arm/boot/dts/vexpress-v2m.dtsi index a6c9c7c82d5..dba53fd026b 100644 --- a/arch/arm/boot/dts/vexpress-v2m.dtsi +++ b/arch/arm/boot/dts/vexpress-v2m.dtsi @@ -54,6 +54,8 @@  			reg-io-width = <4>;  			smsc,irq-active-high;  			smsc,irq-push-pull; +			vdd33a-supply = <&v2m_fixed_3v3>; +			vddvario-supply = <&v2m_fixed_3v3>;  		};  		usb@3,03000000 { @@ -156,6 +158,7 @@  			v2m_timer23: timer@12000 {  				compatible = "arm,sp804", "arm,primecell";  				reg = <0x12000 0x1000>; +				interrupts = <3>;  			};  			/* DVI I2C bus */ @@ -196,5 +199,13 @@  				interrupts = <14>;  			};  		}; + +		v2m_fixed_3v3: fixedregulator@0 { +			compatible = "regulator-fixed"; +			regulator-name = "3V3"; +			regulator-min-microvolt = <3300000>; +			regulator-max-microvolt = <3300000>; +			regulator-always-on; +		};  	};  }; diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts index 7e1091d91af..d12b34ca056 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts @@ -14,8 +14,8 @@  	arm,hbi = <0x237>;  	compatible = "arm,vexpress,v2p-ca15,tc1", "arm,vexpress,v2p-ca15", "arm,vexpress";  	interrupt-parent = <&gic>; -	#address-cells = <1>; -	#size-cells = <1>; +	#address-cells = <2>; +	#size-cells = <2>;  	chosen { }; @@ -47,23 +47,23 @@  	memory@80000000 {  		device_type = "memory"; -		reg = <0x80000000 0x40000000>; +		reg = <0 0x80000000 0 0x40000000>;  	};  	hdlcd@2b000000 {  		compatible = "arm,hdlcd"; -		reg = <0x2b000000 0x1000>; +		reg = <0 0x2b000000 0 0x1000>;  		interrupts = <0 85 4>;  	};  	memory-controller@2b0a0000 {  		compatible = "arm,pl341", "arm,primecell"; -		reg = <0x2b0a0000 0x1000>; +		reg = <0 0x2b0a0000 0 0x1000>;  	};  	wdt@2b060000 {  		compatible = "arm,sp805", "arm,primecell"; -		reg = <0x2b060000 0x1000>; +		reg = <0 0x2b060000 0 0x1000>;  		interrupts = <98>;  	}; @@ -72,23 +72,23 @@  		#interrupt-cells = <3>;  		#address-cells = <0>;  		interrupt-controller; -		reg = <0x2c001000 0x1000>, -		      <0x2c002000 0x1000>, -		      <0x2c004000 0x2000>, -		      <0x2c006000 0x2000>; +		reg = <0 0x2c001000 0 0x1000>, +		      <0 0x2c002000 0 0x1000>, +		      <0 0x2c004000 0 0x2000>, +		      <0 0x2c006000 0 0x2000>;  		interrupts = <1 9 0xf04>;  	};  	memory-controller@7ffd0000 {  		compatible = "arm,pl354", "arm,primecell"; -		reg = <0x7ffd0000 0x1000>; +		reg = <0 0x7ffd0000 0 0x1000>;  		interrupts = <0 86 4>,  			     <0 87 4>;  	};  	dma@7ffb0000 {  		compatible = "arm,pl330", "arm,primecell"; -		reg = <0x7ffb0000 0x1000>; +		reg = <0 0x7ffb0000 0 0x1000>;  		interrupts = <0 92 4>,  			     <0 88 4>,  			     <0 89 4>, @@ -111,12 +111,12 @@  	};  	motherboard { -		ranges = <0 0 0x08000000 0x04000000>, -			 <1 0 0x14000000 0x04000000>, -			 <2 0 0x18000000 0x04000000>, -			 <3 0 0x1c000000 0x04000000>, -			 <4 0 0x0c000000 0x04000000>, -			 <5 0 0x10000000 0x04000000>; +		ranges = <0 0 0 0x08000000 0x04000000>, +			 <1 0 0 0x14000000 0x04000000>, +			 <2 0 0 0x18000000 0x04000000>, +			 <3 0 0 0x1c000000 0x04000000>, +			 <4 0 0 0x0c000000 0x04000000>, +			 <5 0 0 0x10000000 0x04000000>;  		interrupt-map-mask = <0 0 63>;  		interrupt-map = <0 0  0 &gic 0  0 4>, diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts new file mode 100644 index 00000000000..4890a81c546 --- /dev/null +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts @@ -0,0 +1,188 @@ +/* + * ARM Ltd. Versatile Express + * + * CoreTile Express A15x2 A7x3 + * Cortex-A15_A7 MPCore (V2P-CA15_A7) + * + * HBI-0249A + */ + +/dts-v1/; + +/ { +	model = "V2P-CA15_CA7"; +	arm,hbi = <0x249>; +	compatible = "arm,vexpress,v2p-ca15_a7", "arm,vexpress"; +	interrupt-parent = <&gic>; +	#address-cells = <2>; +	#size-cells = <2>; + +	chosen { }; + +	aliases { +		serial0 = &v2m_serial0; +		serial1 = &v2m_serial1; +		serial2 = &v2m_serial2; +		serial3 = &v2m_serial3; +		i2c0 = &v2m_i2c_dvi; +		i2c1 = &v2m_i2c_pcie; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: cpu@0 { +			device_type = "cpu"; +			compatible = "arm,cortex-a15"; +			reg = <0>; +		}; + +		cpu1: cpu@1 { +			device_type = "cpu"; +			compatible = "arm,cortex-a15"; +			reg = <1>; +		}; + +/* A7s disabled till big.LITTLE patches are available... +		cpu2: cpu@2 { +			device_type = "cpu"; +			compatible = "arm,cortex-a7"; +			reg = <0x100>; +		}; + +		cpu3: cpu@3 { +			device_type = "cpu"; +			compatible = "arm,cortex-a7"; +			reg = <0x101>; +		}; + +		cpu4: cpu@4 { +			device_type = "cpu"; +			compatible = "arm,cortex-a7"; +			reg = <0x102>; +		}; +*/ +	}; + +	memory@80000000 { +		device_type = "memory"; +		reg = <0 0x80000000 0 0x40000000>; +	}; + +	wdt@2a490000 { +		compatible = "arm,sp805", "arm,primecell"; +		reg = <0 0x2a490000 0 0x1000>; +		interrupts = <98>; +	}; + +	hdlcd@2b000000 { +		compatible = "arm,hdlcd"; +		reg = <0 0x2b000000 0 0x1000>; +		interrupts = <0 85 4>; +	}; + +	memory-controller@2b0a0000 { +		compatible = "arm,pl341", "arm,primecell"; +		reg = <0 0x2b0a0000 0 0x1000>; +	}; + +	gic: interrupt-controller@2c001000 { +		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; +		#interrupt-cells = <3>; +		#address-cells = <0>; +		interrupt-controller; +		reg = <0 0x2c001000 0 0x1000>, +		      <0 0x2c002000 0 0x1000>, +		      <0 0x2c004000 0 0x2000>, +		      <0 0x2c006000 0 0x2000>; +		interrupts = <1 9 0xf04>; +	}; + +	memory-controller@7ffd0000 { +		compatible = "arm,pl354", "arm,primecell"; +		reg = <0 0x7ffd0000 0 0x1000>; +		interrupts = <0 86 4>, +			     <0 87 4>; +	}; + +	dma@7ff00000 { +		compatible = "arm,pl330", "arm,primecell"; +		reg = <0 0x7ff00000 0 0x1000>; +		interrupts = <0 92 4>, +			     <0 88 4>, +			     <0 89 4>, +			     <0 90 4>, +			     <0 91 4>; +	}; + +	timer { +		compatible = "arm,armv7-timer"; +		interrupts = <1 13 0xf08>, +			     <1 14 0xf08>, +			     <1 11 0xf08>, +			     <1 10 0xf08>; +	}; + +	pmu { +		compatible = "arm,cortex-a15-pmu", "arm,cortex-a9-pmu"; +		interrupts = <0 68 4>, +			     <0 69 4>; +	}; + +	motherboard { +		ranges = <0 0 0 0x08000000 0x04000000>, +			 <1 0 0 0x14000000 0x04000000>, +			 <2 0 0 0x18000000 0x04000000>, +			 <3 0 0 0x1c000000 0x04000000>, +			 <4 0 0 0x0c000000 0x04000000>, +			 <5 0 0 0x10000000 0x04000000>; + +		interrupt-map-mask = <0 0 63>; +		interrupt-map = <0 0  0 &gic 0  0 4>, +				<0 0  1 &gic 0  1 4>, +				<0 0  2 &gic 0  2 4>, +				<0 0  3 &gic 0  3 4>, +				<0 0  4 &gic 0  4 4>, +				<0 0  5 &gic 0  5 4>, +				<0 0  6 &gic 0  6 4>, +				<0 0  7 &gic 0  7 4>, +				<0 0  8 &gic 0  8 4>, +				<0 0  9 &gic 0  9 4>, +				<0 0 10 &gic 0 10 4>, +				<0 0 11 &gic 0 11 4>, +				<0 0 12 &gic 0 12 4>, +				<0 0 13 &gic 0 13 4>, +				<0 0 14 &gic 0 14 4>, +				<0 0 15 &gic 0 15 4>, +				<0 0 16 &gic 0 16 4>, +				<0 0 17 &gic 0 17 4>, +				<0 0 18 &gic 0 18 4>, +				<0 0 19 &gic 0 19 4>, +				<0 0 20 &gic 0 20 4>, +				<0 0 21 &gic 0 21 4>, +				<0 0 22 &gic 0 22 4>, +				<0 0 23 &gic 0 23 4>, +				<0 0 24 &gic 0 24 4>, +				<0 0 25 &gic 0 25 4>, +				<0 0 26 &gic 0 26 4>, +				<0 0 27 &gic 0 27 4>, +				<0 0 28 &gic 0 28 4>, +				<0 0 29 &gic 0 29 4>, +				<0 0 30 &gic 0 30 4>, +				<0 0 31 &gic 0 31 4>, +				<0 0 32 &gic 0 32 4>, +				<0 0 33 &gic 0 33 4>, +				<0 0 34 &gic 0 34 4>, +				<0 0 35 &gic 0 35 4>, +				<0 0 36 &gic 0 36 4>, +				<0 0 37 &gic 0 37 4>, +				<0 0 38 &gic 0 38 4>, +				<0 0 39 &gic 0 39 4>, +				<0 0 40 &gic 0 40 4>, +				<0 0 41 &gic 0 41 4>, +				<0 0 42 &gic 0 42 4>; +	}; +}; + +/include/ "vexpress-v2m-rs1.dtsi"  |