Merge remote-tracking branch 'kumar/next' into next
This commit is contained in:
		
						commit
						4286f84ef6
					
				
							
								
								
									
										63
									
								
								Documentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								Documentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,63 @@ | ||||
| * FSL MPIC Message Registers | ||||
| 
 | ||||
| This binding specifies what properties must be available in the device tree | ||||
| representation of the message register blocks found in some FSL MPIC | ||||
| implementations. | ||||
| 
 | ||||
| Required properties: | ||||
| 
 | ||||
|     - compatible: Specifies the compatibility list for the message register | ||||
|       block.  The type shall be <string-list> and the value shall be of the form | ||||
|       "fsl,mpic-v<version>-msgr", where <version> is the version number of | ||||
|       the MPIC containing the message registers. | ||||
| 
 | ||||
|     - reg: Specifies the base physical address(s) and size(s) of the | ||||
|       message register block's addressable register space.  The type shall be | ||||
|       <prop-encoded-array>. | ||||
| 
 | ||||
|     - interrupts: Specifies a list of interrupt-specifiers which are available | ||||
|       for receiving interrupts. Interrupt-specifier consists of two cells: first | ||||
|       cell is interrupt-number and second cell is level-sense. The type shall be | ||||
|       <prop-encoded-array>. | ||||
| 
 | ||||
| Optional properties: | ||||
| 
 | ||||
|     - mpic-msgr-receive-mask: Specifies what registers in the containing block | ||||
|       are allowed to receive interrupts. The value is a bit mask where a set | ||||
|       bit at bit 'n' indicates that message register 'n' can receive interrupts. | ||||
|       Note that "bit 'n'" is numbered from LSB for PPC hardware. The type shall | ||||
|       be <u32>. If not present, then all of the message registers in the block | ||||
|       are available. | ||||
| 
 | ||||
| Aliases: | ||||
| 
 | ||||
|     An alias should be created for every message register block.  They are not | ||||
|     required, though.  However, a particular implementation of this binding | ||||
|     may require aliases to be present.  Aliases are of the form | ||||
|     'mpic-msgr-block<n>', where <n> is an integer specifying the block's number. | ||||
|     Numbers shall start at 0. | ||||
| 
 | ||||
| Example: | ||||
| 
 | ||||
| 	aliases { | ||||
| 		mpic-msgr-block0 = &mpic_msgr_block0; | ||||
| 		mpic-msgr-block1 = &mpic_msgr_block1; | ||||
| 	}; | ||||
| 
 | ||||
| 	mpic_msgr_block0: mpic-msgr-block@41400 { | ||||
| 		compatible = "fsl,mpic-v3.1-msgr"; | ||||
| 		reg = <0x41400 0x200>; | ||||
| 		// Message registers 0 and 2 in this block can receive interrupts on | ||||
| 		// sources 0xb0 and 0xb2, respectively. | ||||
| 		interrupts = <0xb0 2 0xb2 2>; | ||||
| 		mpic-msgr-receive-mask = <0x5>; | ||||
| 	}; | ||||
| 
 | ||||
| 	mpic_msgr_block1: mpic-msgr-block@42400 { | ||||
| 		compatible = "fsl,mpic-v3.1-msgr"; | ||||
| 		reg = <0x42400 0x200>; | ||||
| 		// Message registers 0 and 2 in this block can receive interrupts on | ||||
| 		// sources 0xb4 and 0xb6, respectively. | ||||
| 		interrupts = <0xb4 2 0xb6 2>; | ||||
| 		mpic-msgr-receive-mask = <0x5>; | ||||
| 	}; | ||||
| @ -6,8 +6,10 @@ Required properties: | ||||
|   etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" depending on | ||||
|   the parent type. | ||||
| 
 | ||||
| - reg : should contain the address and the length of the shared message | ||||
|   interrupt register set. | ||||
| - reg : It may contain one or two regions. The first region should contain | ||||
|   the address and the length of the shared message interrupt register set. | ||||
|   The second region should contain the address of aliased MSIIR register for | ||||
|   platforms that have such an alias. | ||||
| 
 | ||||
| - msi-available-ranges: use <start count> style section to define which | ||||
|   msi interrupt can be used in the 256 msi interrupts. This property is | ||||
|  | ||||
| @ -247,7 +247,7 @@ image-$(CONFIG_ASP834x)			+= dtbImage.asp834x-redboot | ||||
| image-$(CONFIG_MPC8540_ADS)		+= cuImage.mpc8540ads | ||||
| image-$(CONFIG_MPC8560_ADS)		+= cuImage.mpc8560ads | ||||
| image-$(CONFIG_MPC85xx_CDS)		+= cuImage.mpc8541cds \
 | ||||
| 					   cuImage.mpc8548cds \
 | ||||
| 					   cuImage.mpc8548cds_32b \
 | ||||
| 					   cuImage.mpc8555cds | ||||
| image-$(CONFIG_MPC85xx_MDS)		+= cuImage.mpc8568mds | ||||
| image-$(CONFIG_MPC85xx_DS)		+= cuImage.mpc8544ds \
 | ||||
|  | ||||
| @ -202,7 +202,7 @@ | ||||
| /include/ "pq3-etsec1-timer-0.dtsi" | ||||
| 
 | ||||
| 	usb@22000 { | ||||
| 		compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph"; | ||||
| 		compatible = "fsl-usb2-mph-v1.2", "fsl,mpc8536-usb2-mph", "fsl-usb2-mph"; | ||||
| 		reg = <0x22000 0x1000>; | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <0>; | ||||
| @ -210,7 +210,7 @@ | ||||
| 	}; | ||||
| 
 | ||||
| 	usb@23000 { | ||||
| 		compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph"; | ||||
| 		compatible = "fsl-usb2-mph-v1.2", "fsl,mpc8536-usb2-mph", "fsl-usb2-mph"; | ||||
| 		reg = <0x23000 0x1000>; | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <0>; | ||||
|  | ||||
| @ -89,6 +89,21 @@ | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| &rio { | ||||
| 	compatible = "fsl,srio"; | ||||
| 	interrupts = <48 2 0 0>; | ||||
| 	#address-cells = <2>; | ||||
| 	#size-cells = <2>; | ||||
| 	fsl,srio-rmu-handle = <&rmu>; | ||||
| 	ranges; | ||||
| 
 | ||||
| 	port1 { | ||||
| 		#address-cells = <2>; | ||||
| 		#size-cells = <2>; | ||||
| 		cell-index = <1>; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| &soc { | ||||
| 	#address-cells = <1>; | ||||
| 	#size-cells = <1>; | ||||
| @ -134,6 +149,7 @@ | ||||
| 
 | ||||
| /include/ "pq3-sec2.1-0.dtsi" | ||||
| /include/ "pq3-mpic.dtsi" | ||||
| /include/ "pq3-rmu-0.dtsi" | ||||
| 
 | ||||
| 	global-utilities@e0000 { | ||||
| 		compatible = "fsl,mpc8548-guts"; | ||||
|  | ||||
| @ -43,7 +43,9 @@ | ||||
| 		serial0 = &serial0; | ||||
| 		serial1 = &serial1; | ||||
| 		ethernet0 = &enet0; | ||||
| 		ethernet1 = &enet2; | ||||
| 		ethernet1 = &enet1; | ||||
| 		ethernet2 = &enet2; | ||||
| 		ethernet3 = &enet3; | ||||
| 		pci0 = &pci0; | ||||
| 		pci1 = &pci1; | ||||
| 		pci2 = &pci2; | ||||
|  | ||||
| @ -156,6 +156,9 @@ | ||||
| 
 | ||||
| /include/ "pq3-dma-0.dtsi" | ||||
| /include/ "pq3-usb2-dr-0.dtsi" | ||||
| 	usb@22000 { | ||||
| 		compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr"; | ||||
| 	}; | ||||
| /include/ "pq3-esdhc-0.dtsi" | ||||
| 	sdhc@2e000 { | ||||
| 		compatible = "fsl,p1010-esdhc", "fsl,esdhc"; | ||||
|  | ||||
| @ -142,7 +142,13 @@ | ||||
| 
 | ||||
| /include/ "pq3-dma-0.dtsi" | ||||
| /include/ "pq3-usb2-dr-0.dtsi" | ||||
| 	usb@22000 { | ||||
| 		compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr"; | ||||
| 	}; | ||||
| /include/ "pq3-usb2-dr-1.dtsi" | ||||
| 	usb@23000 { | ||||
| 		compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr"; | ||||
| 	}; | ||||
| 
 | ||||
| /include/ "pq3-esdhc-0.dtsi" | ||||
| 	sdhc@2e000 { | ||||
|  | ||||
| @ -142,8 +142,15 @@ | ||||
| 
 | ||||
| /include/ "pq3-dma-0.dtsi" | ||||
| /include/ "pq3-usb2-dr-0.dtsi" | ||||
| 	usb@22000 { | ||||
| 		compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr"; | ||||
| 	}; | ||||
| 
 | ||||
| /include/ "pq3-esdhc-0.dtsi" | ||||
| 	sdhc@2e000 { | ||||
| 		sdhci,auto-cmd12; | ||||
| 	}; | ||||
| 
 | ||||
| /include/ "pq3-sec3.3-0.dtsi" | ||||
| 
 | ||||
| /include/ "pq3-mpic.dtsi" | ||||
|  | ||||
| @ -35,7 +35,11 @@ | ||||
| &lbc { | ||||
| 	#address-cells = <2>; | ||||
| 	#size-cells = <1>; | ||||
| 	compatible = "fsl,p1022-elbc", "fsl,elbc", "simple-bus"; | ||||
| 	/* | ||||
| 	 * The localbus on the P1022 is not a simple-bus because of the eLBC | ||||
| 	 * pin muxing when the DIU is enabled. | ||||
| 	 */ | ||||
| 	compatible = "fsl,p1022-elbc", "fsl,elbc"; | ||||
| 	interrupts = <19 2 0 0>; | ||||
| }; | ||||
| 
 | ||||
| @ -199,7 +203,13 @@ | ||||
| 
 | ||||
| /include/ "pq3-dma-0.dtsi" | ||||
| /include/ "pq3-usb2-dr-0.dtsi" | ||||
| 	usb@22000 { | ||||
| 		compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr"; | ||||
| 	}; | ||||
| /include/ "pq3-usb2-dr-1.dtsi" | ||||
| 	usb@23000 { | ||||
| 		compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr"; | ||||
| 	}; | ||||
| 
 | ||||
| /include/ "pq3-esdhc-0.dtsi" | ||||
| 	sdhc@2e000 { | ||||
|  | ||||
| @ -142,6 +142,9 @@ | ||||
| 
 | ||||
| /include/ "pq3-dma-0.dtsi" | ||||
| /include/ "pq3-usb2-dr-0.dtsi" | ||||
| 	usb@22000 { | ||||
| 		compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr"; | ||||
| 	}; | ||||
| 
 | ||||
| 	crypto: crypto@300000 { | ||||
| 		compatible = "fsl,sec-v4.2", "fsl,sec-v4.0"; | ||||
|  | ||||
| @ -171,6 +171,9 @@ | ||||
| 
 | ||||
| /include/ "pq3-dma-0.dtsi" | ||||
| /include/ "pq3-usb2-dr-0.dtsi" | ||||
| 	usb@22000 { | ||||
| 		compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr"; | ||||
| 	}; | ||||
| /include/ "pq3-etsec1-0.dtsi" | ||||
| /include/ "pq3-etsec1-timer-0.dtsi" | ||||
| 
 | ||||
|  | ||||
| @ -309,12 +309,14 @@ | ||||
| /include/ "qoriq-gpio-0.dtsi" | ||||
| /include/ "qoriq-usb2-mph-0.dtsi" | ||||
| 		usb0: usb@210000 { | ||||
| 			compatible = "fsl-usb2-mph-v1.6", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph"; | ||||
| 			phy_type = "utmi"; | ||||
| 			port0; | ||||
| 		}; | ||||
| 
 | ||||
| /include/ "qoriq-usb2-dr-0.dtsi" | ||||
| 		usb1: usb@211000 { | ||||
| 			compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr"; | ||||
| 			dr_mode = "host"; | ||||
| 			phy_type = "utmi"; | ||||
| 		}; | ||||
|  | ||||
| @ -336,12 +336,14 @@ | ||||
| /include/ "qoriq-gpio-0.dtsi" | ||||
| /include/ "qoriq-usb2-mph-0.dtsi" | ||||
| 		usb0: usb@210000 { | ||||
| 			compatible = "fsl-usb2-mph-v1.6", "fsl-usb2-mph"; | ||||
| 			phy_type = "utmi"; | ||||
| 			port0; | ||||
| 		}; | ||||
| 
 | ||||
| /include/ "qoriq-usb2-dr-0.dtsi" | ||||
| 		usb1: usb@211000 { | ||||
| 			compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr"; | ||||
| 			dr_mode = "host"; | ||||
| 			phy_type = "utmi"; | ||||
| 		}; | ||||
|  | ||||
| @ -291,6 +291,12 @@ | ||||
| /include/ "qoriq-duart-1.dtsi" | ||||
| /include/ "qoriq-gpio-0.dtsi" | ||||
| /include/ "qoriq-usb2-mph-0.dtsi" | ||||
| 	usb@210000 { | ||||
| 		compatible = "fsl-usb2-mph-v2.2", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph"; | ||||
| 	}; | ||||
| /include/ "qoriq-usb2-dr-0.dtsi" | ||||
| 	usb@211000 { | ||||
| 		compatible = "fsl-usb2-dr-v2.2", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr"; | ||||
| 	}; | ||||
| /include/ "qoriq-sec4.1-0.dtsi" | ||||
| }; | ||||
|  | ||||
| @ -339,12 +339,14 @@ | ||||
| /include/ "qoriq-gpio-0.dtsi" | ||||
| /include/ "qoriq-usb2-mph-0.dtsi" | ||||
| 		usb0: usb@210000 { | ||||
| 			compatible = "fsl-usb2-mph-v1.6", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph"; | ||||
| 			phy_type = "utmi"; | ||||
| 			port0; | ||||
| 		}; | ||||
| 
 | ||||
| /include/ "qoriq-usb2-dr-0.dtsi" | ||||
| 		usb1: usb@211000 { | ||||
| 			compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr"; | ||||
| 			dr_mode = "host"; | ||||
| 			phy_type = "utmi"; | ||||
| 		}; | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * PQ3 eTSEC device tree stub [ @ offsets 0x24000 ] | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * Copyright 2011-2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
| @ -41,6 +41,7 @@ ethernet@24000 { | ||||
| 	compatible = "gianfar"; | ||||
| 	reg = <0x24000 0x1000>; | ||||
| 	ranges = <0x0 0x24000 0x1000>; | ||||
| 	fsl,magic-packet; | ||||
| 	local-mac-address = [ 00 00 00 00 00 00 ]; | ||||
| 	interrupts = <29 2 0 0 30 2 0 0 34 2 0 0>; | ||||
| }; | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * PQ3 eTSEC device tree stub [ @ offsets 0x25000 ] | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * Copyright 2011-2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
| @ -41,6 +41,7 @@ ethernet@25000 { | ||||
| 	compatible = "gianfar"; | ||||
| 	reg = <0x25000 0x1000>; | ||||
| 	ranges = <0x0 0x25000 0x1000>; | ||||
| 	fsl,magic-packet; | ||||
| 	local-mac-address = [ 00 00 00 00 00 00 ]; | ||||
| 	interrupts = <35 2 0 0 36 2 0 0 40 2 0 0>; | ||||
| }; | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * PQ3 eTSEC device tree stub [ @ offsets 0x26000 ] | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * Copyright 2011-2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
| @ -41,6 +41,7 @@ ethernet@26000 { | ||||
| 	compatible = "gianfar"; | ||||
| 	reg = <0x26000 0x1000>; | ||||
| 	ranges = <0x0 0x26000 0x1000>; | ||||
| 	fsl,magic-packet; | ||||
| 	local-mac-address = [ 00 00 00 00 00 00 ]; | ||||
| 	interrupts = <31 2 0 0 32 2 0 0 33 2 0 0>; | ||||
| }; | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * PQ3 eTSEC device tree stub [ @ offsets 0x27000 ] | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * Copyright 2011-2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
| @ -41,6 +41,7 @@ ethernet@27000 { | ||||
| 	compatible = "gianfar"; | ||||
| 	reg = <0x27000 0x1000>; | ||||
| 	ranges = <0x0 0x27000 0x1000>; | ||||
| 	fsl,magic-packet; | ||||
| 	local-mac-address = [ 00 00 00 00 00 00 ]; | ||||
| 	interrupts = <37 2 0 0 38 2 0 0 39 2 0 0>; | ||||
| }; | ||||
|  | ||||
| @ -33,32 +33,32 @@ | ||||
|  */ | ||||
| 
 | ||||
| crypto@30000 { | ||||
| 	compatible = "fsl,sec4.4", "fsl,sec4.0"; | ||||
| 	compatible = "fsl,sec-v4.4", "fsl,sec-v4.0"; | ||||
| 	#address-cells = <1>; | ||||
| 	#size-cells = <1>; | ||||
| 	reg		 = <0x30000 0x10000>; | ||||
| 	interrupts	 = <58 2 0 0>; | ||||
| 
 | ||||
| 	sec_jr0: jr@1000 { | ||||
| 		compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring"; | ||||
| 		compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring"; | ||||
| 		reg	   = <0x1000 0x1000>; | ||||
| 		interrupts	 = <45 2 0 0>; | ||||
| 	}; | ||||
| 
 | ||||
| 	sec_jr1: jr@2000 { | ||||
| 		compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring"; | ||||
| 		compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring"; | ||||
| 		reg	   = <0x2000 0x1000>; | ||||
| 		interrupts	 = <45 2 0 0>; | ||||
| 	}; | ||||
| 
 | ||||
| 	sec_jr2: jr@3000 { | ||||
| 		compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring"; | ||||
| 		compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring"; | ||||
| 		reg	   = <0x3000 0x1000>; | ||||
| 		interrupts	 = <45 2 0 0>; | ||||
| 	}; | ||||
| 
 | ||||
| 	sec_jr3: jr@4000 { | ||||
| 		compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring"; | ||||
| 		compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring"; | ||||
| 		reg	   = <0x4000 0x1000>; | ||||
| 		interrupts	 = <45 2 0 0>; | ||||
| 	}; | ||||
|  | ||||
| @ -53,7 +53,7 @@ timer@41100 { | ||||
| 
 | ||||
| msi0: msi@41600 { | ||||
| 	compatible = "fsl,mpic-msi"; | ||||
| 	reg = <0x41600 0x200>; | ||||
| 	reg = <0x41600 0x200 0x44140 4>; | ||||
| 	msi-available-ranges = <0 0x100>; | ||||
| 	interrupts = < | ||||
| 		0xe0 0 0 0 | ||||
| @ -68,7 +68,7 @@ msi0: msi@41600 { | ||||
| 
 | ||||
| msi1: msi@41800 { | ||||
| 	compatible = "fsl,mpic-msi"; | ||||
| 	reg = <0x41800 0x200>; | ||||
| 	reg = <0x41800 0x200 0x45140 4>; | ||||
| 	msi-available-ranges = <0 0x100>; | ||||
| 	interrupts = < | ||||
| 		0xe8 0 0 0 | ||||
| @ -83,7 +83,7 @@ msi1: msi@41800 { | ||||
| 
 | ||||
| msi2: msi@41a00 { | ||||
| 	compatible = "fsl,mpic-msi"; | ||||
| 	reg = <0x41a00 0x200>; | ||||
| 	reg = <0x41a00 0x200 0x46140 4>; | ||||
| 	msi-available-ranges = <0 0x100>; | ||||
| 	interrupts = < | ||||
| 		0xf0 0 0 0 | ||||
|  | ||||
							
								
								
									
										255
									
								
								arch/powerpc/boot/dts/ge_imp3a.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										255
									
								
								arch/powerpc/boot/dts/ge_imp3a.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,255 @@ | ||||
| /* | ||||
|  * GE IMP3A Device Tree Source | ||||
|  * | ||||
|  * Copyright 2010-2011 GE Intelligent Platforms Embedded Systems, Inc. | ||||
|  * | ||||
|  * 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. | ||||
|  * | ||||
|  * Based on: P2020 DS Device Tree Source | ||||
|  * Copyright 2009 Freescale Semiconductor Inc. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p2020si-pre.dtsi" | ||||
| 
 | ||||
| / { | ||||
| 	model = "GE_IMP3A"; | ||||
| 	compatible = "ge,imp3a"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@fef05000 { | ||||
| 		reg = <0 0xfef05000 0 0x1000>; | ||||
| 
 | ||||
| 		ranges = <0x0 0x0 0x0 0xff000000 0x01000000 | ||||
| 			  0x1 0x0 0x0 0xe0000000 0x08000000 | ||||
| 			  0x2 0x0 0x0 0xe8000000 0x08000000 | ||||
| 			  0x3 0x0 0x0 0xfc100000 0x00020000 | ||||
| 			  0x4 0x0 0x0 0xfc000000 0x00008000 | ||||
| 			  0x5 0x0 0x0 0xfc008000 0x00008000 | ||||
| 			  0x6 0x0 0x0 0xfee00000 0x00040000 | ||||
| 			  0x7 0x0 0x0 0xfee80000 0x00040000>; | ||||
| 
 | ||||
| 		/* nor@0,0 is a mirror of part of the memory in nor@1,0 | ||||
| 		nor@0,0 { | ||||
| 			#address-cells = <1>; | ||||
| 			#size-cells = <1>; | ||||
| 			compatible = "ge,imp3a-firmware-mirror", "cfi-flash"; | ||||
| 			reg = <0x0 0x0 0x1000000>; | ||||
| 			bank-width = <2>; | ||||
| 			device-width = <1>; | ||||
| 
 | ||||
| 			partition@0 { | ||||
| 				label = "firmware"; | ||||
| 				reg = <0x0 0x1000000>; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 		}; | ||||
| 		*/ | ||||
| 
 | ||||
| 		nor@1,0 { | ||||
| 			#address-cells = <1>; | ||||
| 			#size-cells = <1>; | ||||
| 			compatible = "ge,imp3a-paged-flash", "cfi-flash"; | ||||
| 			reg = <0x1 0x0 0x8000000>; | ||||
| 			bank-width = <2>; | ||||
| 			device-width = <1>; | ||||
| 
 | ||||
| 			partition@0 { | ||||
| 				label = "user"; | ||||
| 				reg = <0x0 0x7800000>; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@7800000 { | ||||
| 				label = "firmware"; | ||||
| 				reg = <0x7800000 0x800000>; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		nvram@3,0 { | ||||
| 			device_type = "nvram"; | ||||
| 			compatible = "simtek,stk14ca8"; | ||||
| 			reg = <0x3 0x0 0x20000>; | ||||
| 		}; | ||||
| 
 | ||||
| 		fpga@4,0 { | ||||
| 			compatible = "ge,imp3a-fpga-regs"; | ||||
| 			reg = <0x4 0x0 0x20>; | ||||
| 		}; | ||||
| 
 | ||||
| 		gef_pic: pic@4,20 { | ||||
| 			#interrupt-cells = <1>; | ||||
| 			interrupt-controller; | ||||
| 			device_type = "interrupt-controller"; | ||||
| 			compatible = "ge,imp3a-fpga-pic", "gef,fpga-pic-1.00"; | ||||
| 			reg = <0x4 0x20 0x20>; | ||||
| 			interrupts = <6 7 0 0>; | ||||
| 		}; | ||||
| 
 | ||||
| 		gef_gpio: gpio@4,400 { | ||||
| 			#gpio-cells = <2>; | ||||
| 			compatible = "ge,imp3a-gpio"; | ||||
| 			reg = <0x4 0x400 0x24>; | ||||
| 			gpio-controller; | ||||
| 		}; | ||||
| 
 | ||||
| 		wdt@4,800 { | ||||
| 			compatible = "ge,imp3a-fpga-wdt", "gef,fpga-wdt-1.00", | ||||
| 				"gef,fpga-wdt"; | ||||
| 			reg = <0x4 0x800 0x8>; | ||||
| 			interrupts = <10 4>; | ||||
| 			interrupt-parent = <&gef_pic>; | ||||
| 		}; | ||||
| 
 | ||||
| 		/* Second watchdog available, driver currently supports one. | ||||
| 		wdt@4,808 { | ||||
| 			compatible = "gef,imp3a-fpga-wdt", "gef,fpga-wdt-1.00", | ||||
| 				"gef,fpga-wdt"; | ||||
| 			reg = <0x4 0x808 0x8>; | ||||
| 			interrupts = <9 4>; | ||||
| 			interrupt-parent = <&gef_pic>; | ||||
| 		}; | ||||
| 		*/ | ||||
| 
 | ||||
| 		nand@6,0 { | ||||
| 			compatible = "fsl,elbc-fcm-nand"; | ||||
| 			reg = <0x6 0x0 0x40000>; | ||||
| 		}; | ||||
| 
 | ||||
| 		nand@7,0 { | ||||
| 			compatible = "fsl,elbc-fcm-nand"; | ||||
| 			reg = <0x7 0x0 0x40000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc@fef00000 { | ||||
| 		ranges = <0x0 0 0xfef00000 0x100000>; | ||||
| 
 | ||||
| 		i2c@3000 { | ||||
| 			hwmon@48 { | ||||
| 				compatible = "national,lm92"; | ||||
| 				reg = <0x48>; | ||||
| 			}; | ||||
| 
 | ||||
| 			hwmon@4c { | ||||
| 				compatible = "adi,adt7461"; | ||||
| 				reg = <0x4c>; | ||||
| 			}; | ||||
| 
 | ||||
| 			rtc@51 { | ||||
| 				compatible = "epson,rx8581"; | ||||
| 				reg = <0x51>; | ||||
| 			}; | ||||
| 
 | ||||
| 			eti@6b { | ||||
| 				compatible = "dallas,ds1682"; | ||||
| 				reg = <0x6b>; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		usb@22000 { | ||||
| 			phy_type = "ulpi"; | ||||
| 			dr_mode = "host"; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@24520 { | ||||
| 			phy0: ethernet-phy@0 { | ||||
| 				interrupt-parent = <&gef_pic>; | ||||
| 				interrupts = <0xc 0x4>; | ||||
| 				reg = <0x1>; | ||||
| 			}; | ||||
| 			phy1: ethernet-phy@1 { | ||||
| 				interrupt-parent = <&gef_pic>; | ||||
| 				interrupts = <0xb 0x4>; | ||||
| 				reg = <0x2>; | ||||
| 			}; | ||||
| 			tbi0: tbi-phy@11 { | ||||
| 				reg = <0x11>; | ||||
| 				device_type = "tbi-phy"; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@25520 { | ||||
| 			tbi1: tbi-phy@11 { | ||||
| 				reg = <0x11>; | ||||
| 				device_type = "tbi-phy"; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@26520 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet0: ethernet@24000 { | ||||
| 			tbi-handle = <&tbi0>; | ||||
| 			phy-handle = <&phy0>; | ||||
| 			phy-connection-type = "gmii"; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet1: ethernet@25000 { | ||||
| 			tbi-handle = <&tbi1>; | ||||
| 			phy-handle = <&phy1>; | ||||
| 			phy-connection-type = "gmii"; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet2: ethernet@26000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@fef08000 { | ||||
| 		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xfe020000 0x0 0x10000>; | ||||
| 		reg = <0 0xfef08000 0 0x1000>; | ||||
| 
 | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xc0000000 | ||||
| 				  0x2000000 0x0 0xc0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x10000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@fef09000 { | ||||
| 		reg = <0 0xfef09000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xfe010000 0x0 0x10000>; | ||||
| 
 | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xa0000000 | ||||
| 				  0x2000000 0x0 0xa0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x10000>; | ||||
| 		}; | ||||
| 
 | ||||
| 	}; | ||||
| 
 | ||||
| 	pci2: pcie@fef0a000 { | ||||
| 		reg = <0 0xfef0a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xfe000000 0x0 0x10000>; | ||||
| 
 | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0x80000000 | ||||
| 				  0x2000000 0x0 0x80000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x10000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "fsl/p2020si-post.dtsi" | ||||
| @ -405,6 +405,10 @@ | ||||
| 				reg = <0x1>; | ||||
| 				device_type = "ethernet-phy"; | ||||
| 			}; | ||||
| 			tbi-phy@2 { | ||||
| 				device_type = "tbi-phy"; | ||||
| 				reg = <0x2>; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		qeic: interrupt-controller@80 { | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * MPC8536 DS Device Tree Source | ||||
|  * | ||||
|  * Copyright 2008 Freescale Semiconductor, Inc. | ||||
|  * Copyright 2008, 2011 Freescale Semiconductor, Inc. | ||||
|  * | ||||
|  * 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 | ||||
| @ -34,6 +34,10 @@ | ||||
| 
 | ||||
| 	lbc: localbus@ffe05000 { | ||||
| 		reg = <0 0xffe05000 0 0x1000>; | ||||
| 
 | ||||
| 		ranges = <0x0 0x0 0x0 0xe8000000 0x08000000 | ||||
| 			  0x2 0x0 0x0 0xffa00000 0x00040000 | ||||
| 			  0x3 0x0 0x0 0xffdf0000 0x00008000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	board_soc: soc: soc@ffe00000 { | ||||
|  | ||||
| @ -32,6 +32,99 @@ | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| &lbc { | ||||
| 	nor@0,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "cfi-flash"; | ||||
| 		reg = <0x0 0x0 0x8000000>; | ||||
| 		bank-width = <2>; | ||||
| 		device-width = <1>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			reg = <0x0 0x03000000>; | ||||
| 			label = "ramdisk-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@3000000 { | ||||
| 			reg = <0x03000000 0x00e00000>; | ||||
| 			label = "diagnostic-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@3e00000 { | ||||
| 			reg = <0x03e00000 0x00200000>; | ||||
| 			label = "dink-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@4000000 { | ||||
| 			reg = <0x04000000 0x00400000>; | ||||
| 			label = "kernel-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@4400000 { | ||||
| 			reg = <0x04400000 0x03b00000>; | ||||
| 			label = "fs-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@7f00000 { | ||||
| 			reg = <0x07f00000 0x00080000>; | ||||
| 			label = "dtb-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@7f80000 { | ||||
| 			reg = <0x07f80000 0x00080000>; | ||||
| 			label = "u-boot-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	nand@2,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "fsl,mpc8536-fcm-nand", | ||||
| 			     "fsl,elbc-fcm-nand"; | ||||
| 		reg = <0x2 0x0 0x40000>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			reg = <0x0 0x02000000>; | ||||
| 			label = "u-boot-nand"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@2000000 { | ||||
| 			reg = <0x02000000 0x10000000>; | ||||
| 			label = "fs-nand"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@12000000 { | ||||
| 			reg = <0x12000000 0x08000000>; | ||||
| 			label = "ramdisk-nand"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@1a000000 { | ||||
| 			reg = <0x1a000000 0x04000000>; | ||||
| 			label = "kernel-nand"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@1e000000 { | ||||
| 			reg = <0x1e000000 0x01000000>; | ||||
| 			label = "dtb-nand"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@1f000000 { | ||||
| 			reg = <0x1f000000 0x21000000>; | ||||
| 			label = "empty-nand"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	board-control@3,0 { | ||||
| 		compatible = "fsl,mpc8536ds-fpga-pixis"; | ||||
| 		reg = <0x3 0x0 0x8000>; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| &board_soc { | ||||
| 	i2c@3100 { | ||||
| 		rtc@68 { | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * MPC8536DS Device Tree Source (36-bit address map) | ||||
|  * | ||||
|  * Copyright 2008-2009 Freescale Semiconductor, Inc. | ||||
|  * Copyright 2008-2009, 2011 Freescale Semiconductor, Inc. | ||||
|  * | ||||
|  * 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 | ||||
| @ -33,7 +33,11 @@ | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@ffe05000 { | ||||
| 		reg = <0 0xffe05000 0 0x1000>; | ||||
| 		reg = <0xf 0xffe05000 0 0x1000>; | ||||
| 
 | ||||
| 		ranges = <0x0 0x0 0xf 0xe8000000 0x08000000 | ||||
| 			  0x2 0x0 0xf 0xffa00000 0x00040000 | ||||
| 			  0x3 0x0 0xf 0xffdf0000 0x00008000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	board_soc: soc: soc@fffe00000 { | ||||
|  | ||||
| @ -1,306 +0,0 @@ | ||||
| /* | ||||
|  * MPC8548 CDS Device Tree Source | ||||
|  * | ||||
|  * Copyright 2006, 2008 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * 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. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/mpc8548si-pre.dtsi" | ||||
| 
 | ||||
| / { | ||||
| 	model = "MPC8548CDS"; | ||||
| 	compatible = "MPC8548CDS", "MPC85xxCDS"; | ||||
| 
 | ||||
| 	aliases { | ||||
| 		ethernet0 = &enet0; | ||||
| 		ethernet1 = &enet1; | ||||
| 		ethernet2 = &enet2; | ||||
| 		ethernet3 = &enet3; | ||||
| 		serial0 = &serial0; | ||||
| 		serial1 = &serial1; | ||||
| 		pci0 = &pci0; | ||||
| 		pci1 = &pci1; | ||||
| 		pci2 = &pci2; | ||||
| 	}; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 		reg = <0 0 0x0 0x8000000>;	// 128M at 0x0 | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@e0005000 { | ||||
| 		reg = <0 0xe0005000 0 0x1000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc8548@e0000000 { | ||||
| 		ranges = <0 0x0 0xe0000000 0x100000>; | ||||
| 
 | ||||
| 		i2c@3000 { | ||||
| 			eeprom@50 { | ||||
| 				compatible = "atmel,24c64"; | ||||
| 				reg = <0x50>; | ||||
| 			}; | ||||
| 
 | ||||
| 			eeprom@56 { | ||||
| 				compatible = "atmel,24c64"; | ||||
| 				reg = <0x56>; | ||||
| 			}; | ||||
| 
 | ||||
| 			eeprom@57 { | ||||
| 				compatible = "atmel,24c64"; | ||||
| 				reg = <0x57>; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		i2c@3100 { | ||||
| 			eeprom@50 { | ||||
| 				compatible = "atmel,24c64"; | ||||
| 				reg = <0x50>; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet0: ethernet@24000 { | ||||
| 			tbi-handle = <&tbi0>; | ||||
| 			phy-handle = <&phy0>; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@24520 { | ||||
| 			phy0: ethernet-phy@0 { | ||||
| 				interrupts = <5 1 0 0>; | ||||
| 				reg = <0x0>; | ||||
| 				device_type = "ethernet-phy"; | ||||
| 			}; | ||||
| 			phy1: ethernet-phy@1 { | ||||
| 				interrupts = <5 1 0 0>; | ||||
| 				reg = <0x1>; | ||||
| 				device_type = "ethernet-phy"; | ||||
| 			}; | ||||
| 			phy2: ethernet-phy@2 { | ||||
| 				interrupts = <5 1 0 0>; | ||||
| 				reg = <0x2>; | ||||
| 				device_type = "ethernet-phy"; | ||||
| 			}; | ||||
| 			phy3: ethernet-phy@3 { | ||||
| 				interrupts = <5 1 0 0>; | ||||
| 				reg = <0x3>; | ||||
| 				device_type = "ethernet-phy"; | ||||
| 			}; | ||||
| 			tbi0: tbi-phy@11 { | ||||
| 				reg = <0x11>; | ||||
| 				device_type = "tbi-phy"; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet1: ethernet@25000 { | ||||
| 			tbi-handle = <&tbi1>; | ||||
| 			phy-handle = <&phy1>; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@25520 { | ||||
| 			tbi1: tbi-phy@11 { | ||||
| 				reg = <0x11>; | ||||
| 				device_type = "tbi-phy"; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet2: ethernet@26000 { | ||||
| 			tbi-handle = <&tbi2>; | ||||
| 			phy-handle = <&phy2>; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@26520 { | ||||
| 			tbi2: tbi-phy@11 { | ||||
| 				reg = <0x11>; | ||||
| 				device_type = "tbi-phy"; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet3: ethernet@27000 { | ||||
| 			tbi-handle = <&tbi3>; | ||||
| 			phy-handle = <&phy3>; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@27520 { | ||||
| 			tbi3: tbi-phy@11 { | ||||
| 				reg = <0x11>; | ||||
| 				device_type = "tbi-phy"; | ||||
| 			}; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pci@e0008000 { | ||||
| 		reg = <0 0xe0008000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x10000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xe2000000 0x0 0x800000>; | ||||
| 		clock-frequency = <66666666>; | ||||
| 		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||||
| 		interrupt-map = < | ||||
| 			/* IDSEL 0x4 (PCIX Slot 2) */ | ||||
| 			0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 			0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x5 (PCIX Slot 3) */ | ||||
| 			0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0 | ||||
| 			0x2800 0x0 0x0 0x2 &mpic 0x2 0x1 0 0 | ||||
| 			0x2800 0x0 0x0 0x3 &mpic 0x3 0x1 0 0 | ||||
| 			0x2800 0x0 0x0 0x4 &mpic 0x0 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x6 (PCIX Slot 4) */ | ||||
| 			0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 | ||||
| 			0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 | ||||
| 			0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0 | ||||
| 			0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x8 (PCIX Slot 5) */ | ||||
| 			0x4000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 			0x4000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0x4000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0x4000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0xC (Tsi310 bridge) */ | ||||
| 			0x6000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 			0x6000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0x6000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0x6000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x14 (Slot 2) */ | ||||
| 			0xa000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 			0xa000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0xa000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0xa000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x15 (Slot 3) */ | ||||
| 			0xa800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x2 &mpic 0x2 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x3 &mpic 0x3 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x4 &mpic 0x0 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x16 (Slot 4) */ | ||||
| 			0xb000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 | ||||
| 			0xb000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 | ||||
| 			0xb000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0 | ||||
| 			0xb000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x18 (Slot 5) */ | ||||
| 			0xc000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 			0xc000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0xc000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0xc000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x1C (Tsi310 bridge PCI primary) */ | ||||
| 			0xe000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 			0xe000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0xe000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0xe000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>; | ||||
| 
 | ||||
| 		pci_bridge@1c { | ||||
| 			interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||||
| 			interrupt-map = < | ||||
| 
 | ||||
| 				/* IDSEL 0x00 (PrPMC Site) */ | ||||
| 				0000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 				0000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 				0000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 				0000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 				/* IDSEL 0x04 (VIA chip) */ | ||||
| 				0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 				0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 				0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 				0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 				/* IDSEL 0x05 (8139) */ | ||||
| 				0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0 | ||||
| 
 | ||||
| 				/* IDSEL 0x06 (Slot 6) */ | ||||
| 				0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 | ||||
| 				0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 | ||||
| 				0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0 | ||||
| 				0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 | ||||
| 
 | ||||
| 				/* IDESL 0x07 (Slot 7) */ | ||||
| 				0x3800 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 | ||||
| 				0x3800 0x0 0x0 0x2 &mpic 0x0 0x1 0 0 | ||||
| 				0x3800 0x0 0x0 0x3 &mpic 0x1 0x1 0 0 | ||||
| 				0x3800 0x0 0x0 0x4 &mpic 0x2 0x1 0 0>; | ||||
| 
 | ||||
| 			reg = <0xe000 0x0 0x0 0x0 0x0>; | ||||
| 			#interrupt-cells = <1>; | ||||
| 			#size-cells = <2>; | ||||
| 			#address-cells = <3>; | ||||
| 			ranges = <0x2000000 0x0 0x80000000 | ||||
| 				  0x2000000 0x0 0x80000000 | ||||
| 				  0x0 0x20000000 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x80000>; | ||||
| 			clock-frequency = <33333333>; | ||||
| 
 | ||||
| 			isa@4 { | ||||
| 				device_type = "isa"; | ||||
| 				#interrupt-cells = <2>; | ||||
| 				#size-cells = <1>; | ||||
| 				#address-cells = <2>; | ||||
| 				reg = <0x2000 0x0 0x0 0x0 0x0>; | ||||
| 				ranges = <0x1 0x0 0x1000000 0x0 0x0 0x1000>; | ||||
| 				interrupt-parent = <&i8259>; | ||||
| 
 | ||||
| 				i8259: interrupt-controller@20 { | ||||
| 					interrupt-controller; | ||||
| 					device_type = "interrupt-controller"; | ||||
| 					reg = <0x1 0x20 0x2 | ||||
| 					       0x1 0xa0 0x2 | ||||
| 					       0x1 0x4d0 0x2>; | ||||
| 					#address-cells = <0>; | ||||
| 					#interrupt-cells = <2>; | ||||
| 					compatible = "chrp,iic"; | ||||
| 					interrupts = <0 1 0 0>; | ||||
| 					interrupt-parent = <&mpic>; | ||||
| 				}; | ||||
| 
 | ||||
| 				rtc@70 { | ||||
| 					compatible = "pnpPNP,b00"; | ||||
| 					reg = <0x1 0x70 0x2>; | ||||
| 				}; | ||||
| 			}; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pci@e0009000 { | ||||
| 		reg = <0 0xe0009000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0x90000000 0 0x90000000 0x0 0x10000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xe2800000 0x0 0x800000>; | ||||
| 		clock-frequency = <66666666>; | ||||
| 		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||||
| 		interrupt-map = < | ||||
| 
 | ||||
| 			/* IDSEL 0x15 */ | ||||
| 			0xa800 0x0 0x0 0x1 &mpic 0xb 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci2: pcie@e000a000 { | ||||
| 		reg = <0 0xe000a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xe3000000 0x0 0x100000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xa0000000 | ||||
| 				  0x2000000 0x0 0xa0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "fsl/mpc8548si-post.dtsi" | ||||
							
								
								
									
										306
									
								
								arch/powerpc/boot/dts/mpc8548cds.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										306
									
								
								arch/powerpc/boot/dts/mpc8548cds.dtsi
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,306 @@ | ||||
| /* | ||||
|  * MPC8548CDS Device Tree Source stub (no addresses or top-level ranges) | ||||
|  * | ||||
|  * Copyright 2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| &board_lbc { | ||||
| 	nor@0,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "cfi-flash"; | ||||
| 		reg = <0x0 0x0 0x01000000>; | ||||
| 		bank-width = <2>; | ||||
| 		device-width = <2>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			reg = <0x0 0x0b00000>; | ||||
| 			label = "ramdisk-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@300000 { | ||||
| 			reg = <0x0b00000 0x0400000>; | ||||
| 			label = "kernel-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@700000 { | ||||
| 			reg = <0x0f00000 0x060000>; | ||||
| 			label = "dtb-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@760000 { | ||||
| 			reg = <0x0f60000 0x020000>; | ||||
| 			label = "env-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@780000 { | ||||
| 			reg = <0x0f80000 0x080000>; | ||||
| 			label = "u-boot-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	board-control@1,0 { | ||||
| 		compatible = "fsl,mpc8548cds-fpga"; | ||||
| 		reg = <0x1 0x0 0x1000>; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| &board_soc { | ||||
| 	i2c@3000 { | ||||
| 		eeprom@50 { | ||||
| 			compatible = "atmel,24c64"; | ||||
| 			reg = <0x50>; | ||||
| 		}; | ||||
| 
 | ||||
| 		eeprom@56 { | ||||
| 			compatible = "atmel,24c64"; | ||||
| 			reg = <0x56>; | ||||
| 		}; | ||||
| 
 | ||||
| 		eeprom@57 { | ||||
| 			compatible = "atmel,24c64"; | ||||
| 			reg = <0x57>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	i2c@3100 { | ||||
| 		eeprom@50 { | ||||
| 			compatible = "atmel,24c64"; | ||||
| 			reg = <0x50>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet0: ethernet@24000 { | ||||
| 		tbi-handle = <&tbi0>; | ||||
| 		phy-handle = <&phy0>; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@24520 { | ||||
| 		phy0: ethernet-phy@0 { | ||||
| 			interrupts = <5 1 0 0>; | ||||
| 			reg = <0x0>; | ||||
| 			device_type = "ethernet-phy"; | ||||
| 		}; | ||||
| 		phy1: ethernet-phy@1 { | ||||
| 			interrupts = <5 1 0 0>; | ||||
| 			reg = <0x1>; | ||||
| 			device_type = "ethernet-phy"; | ||||
| 		}; | ||||
| 		phy2: ethernet-phy@2 { | ||||
| 			interrupts = <5 1 0 0>; | ||||
| 			reg = <0x2>; | ||||
| 			device_type = "ethernet-phy"; | ||||
| 		}; | ||||
| 		phy3: ethernet-phy@3 { | ||||
| 			interrupts = <5 1 0 0>; | ||||
| 			reg = <0x3>; | ||||
| 			device_type = "ethernet-phy"; | ||||
| 		}; | ||||
| 		tbi0: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet1: ethernet@25000 { | ||||
| 		tbi-handle = <&tbi1>; | ||||
| 		phy-handle = <&phy1>; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@25520 { | ||||
| 		tbi1: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet2: ethernet@26000 { | ||||
| 		tbi-handle = <&tbi2>; | ||||
| 		phy-handle = <&phy2>; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@26520 { | ||||
| 		tbi2: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet3: ethernet@27000 { | ||||
| 		tbi-handle = <&tbi3>; | ||||
| 		phy-handle = <&phy3>; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@27520 { | ||||
| 		tbi3: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| &board_pci0 { | ||||
| 	interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||||
| 	interrupt-map = < | ||||
| 		/* IDSEL 0x4 (PCIX Slot 2) */ | ||||
| 		0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 		0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 		0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 		0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 		/* IDSEL 0x5 (PCIX Slot 3) */ | ||||
| 		0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0 | ||||
| 		0x2800 0x0 0x0 0x2 &mpic 0x2 0x1 0 0 | ||||
| 		0x2800 0x0 0x0 0x3 &mpic 0x3 0x1 0 0 | ||||
| 		0x2800 0x0 0x0 0x4 &mpic 0x0 0x1 0 0 | ||||
| 
 | ||||
| 		/* IDSEL 0x6 (PCIX Slot 4) */ | ||||
| 		0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 | ||||
| 		0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 | ||||
| 		0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0 | ||||
| 		0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 | ||||
| 
 | ||||
| 		/* IDSEL 0x8 (PCIX Slot 5) */ | ||||
| 		0x4000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 		0x4000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 		0x4000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 		0x4000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 		/* IDSEL 0xC (Tsi310 bridge) */ | ||||
| 		0x6000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 		0x6000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 		0x6000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 		0x6000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 		/* IDSEL 0x14 (Slot 2) */ | ||||
| 		0xa000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 		0xa000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 		0xa000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 		0xa000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 		/* IDSEL 0x15 (Slot 3) */ | ||||
| 		0xa800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0 | ||||
| 		0xa800 0x0 0x0 0x2 &mpic 0x2 0x1 0 0 | ||||
| 		0xa800 0x0 0x0 0x3 &mpic 0x3 0x1 0 0 | ||||
| 		0xa800 0x0 0x0 0x4 &mpic 0x0 0x1 0 0 | ||||
| 
 | ||||
| 		/* IDSEL 0x16 (Slot 4) */ | ||||
| 		0xb000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 | ||||
| 		0xb000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 | ||||
| 		0xb000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0 | ||||
| 		0xb000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 | ||||
| 
 | ||||
| 		/* IDSEL 0x18 (Slot 5) */ | ||||
| 		0xc000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 		0xc000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 		0xc000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 		0xc000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 		/* IDSEL 0x1C (Tsi310 bridge PCI primary) */ | ||||
| 		0xe000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 		0xe000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 		0xe000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 		0xe000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>; | ||||
| 
 | ||||
| 	pci_bridge@1c { | ||||
| 		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||||
| 		interrupt-map = < | ||||
| 
 | ||||
| 			/* IDSEL 0x00 (PrPMC Site) */ | ||||
| 			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x04 (VIA chip) */ | ||||
| 			0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0 | ||||
| 			0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x05 (8139) */ | ||||
| 			0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDSEL 0x06 (Slot 6) */ | ||||
| 			0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 | ||||
| 			0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 | ||||
| 			0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0 | ||||
| 			0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 | ||||
| 
 | ||||
| 			/* IDESL 0x07 (Slot 7) */ | ||||
| 			0x3800 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 | ||||
| 			0x3800 0x0 0x0 0x2 &mpic 0x0 0x1 0 0 | ||||
| 			0x3800 0x0 0x0 0x3 &mpic 0x1 0x1 0 0 | ||||
| 			0x3800 0x0 0x0 0x4 &mpic 0x2 0x1 0 0>; | ||||
| 
 | ||||
| 		reg = <0xe000 0x0 0x0 0x0 0x0>; | ||||
| 		#interrupt-cells = <1>; | ||||
| 		#size-cells = <2>; | ||||
| 		#address-cells = <3>; | ||||
| 		ranges = <0x2000000 0x0 0x80000000 | ||||
| 			  0x2000000 0x0 0x80000000 | ||||
| 			  0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x0 | ||||
| 			  0x1000000 0x0 0x0 | ||||
| 			  0x0 0x80000>; | ||||
| 		clock-frequency = <33333333>; | ||||
| 
 | ||||
| 		isa@4 { | ||||
| 			device_type = "isa"; | ||||
| 			#interrupt-cells = <2>; | ||||
| 			#size-cells = <1>; | ||||
| 			#address-cells = <2>; | ||||
| 			reg = <0x2000 0x0 0x0 0x0 0x0>; | ||||
| 			ranges = <0x1 0x0 0x1000000 0x0 0x0 0x1000>; | ||||
| 			interrupt-parent = <&i8259>; | ||||
| 
 | ||||
| 			i8259: interrupt-controller@20 { | ||||
| 				interrupt-controller; | ||||
| 				device_type = "interrupt-controller"; | ||||
| 				reg = <0x1 0x20 0x2 | ||||
| 				       0x1 0xa0 0x2 | ||||
| 				       0x1 0x4d0 0x2>; | ||||
| 				#address-cells = <0>; | ||||
| 				#interrupt-cells = <2>; | ||||
| 				compatible = "chrp,iic"; | ||||
| 				interrupts = <0 1 0 0>; | ||||
| 				interrupt-parent = <&mpic>; | ||||
| 			}; | ||||
| 
 | ||||
| 			rtc@70 { | ||||
| 				compatible = "pnpPNP,b00"; | ||||
| 				reg = <0x1 0x70 0x2>; | ||||
| 			}; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
							
								
								
									
										86
									
								
								arch/powerpc/boot/dts/mpc8548cds_32b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								arch/powerpc/boot/dts/mpc8548cds_32b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,86 @@ | ||||
| /* | ||||
|  * MPC8548 CDS Device Tree Source (32-bit address map) | ||||
|  * | ||||
|  * Copyright 2006, 2008, 2011-2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * 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. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/mpc8548si-pre.dtsi" | ||||
| 
 | ||||
| / { | ||||
| 	model = "MPC8548CDS"; | ||||
| 	compatible = "MPC8548CDS", "MPC85xxCDS"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 		reg = <0 0 0x0 0x8000000>;	// 128M at 0x0 | ||||
| 	}; | ||||
| 
 | ||||
| 	board_lbc: lbc: localbus@e0005000 { | ||||
| 		reg = <0 0xe0005000 0 0x1000>; | ||||
| 
 | ||||
| 		ranges = <0x0 0x0 0x0 0xff000000 0x01000000 | ||||
| 			  0x1 0x0 0x0 0xf8004000 0x00001000>; | ||||
| 
 | ||||
| 	}; | ||||
| 
 | ||||
| 	board_soc: soc: soc8548@e0000000 { | ||||
| 		ranges = <0 0x0 0xe0000000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	board_pci0: pci0: pci@e0008000 { | ||||
| 		reg = <0 0xe0008000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x10000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xe2000000 0x0 0x800000>; | ||||
| 		clock-frequency = <66666666>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pci@e0009000 { | ||||
| 		reg = <0 0xe0009000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0x90000000 0 0x90000000 0x0 0x10000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xe2800000 0x0 0x800000>; | ||||
| 		clock-frequency = <66666666>; | ||||
| 		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||||
| 		interrupt-map = < | ||||
| 
 | ||||
| 			/* IDSEL 0x15 */ | ||||
| 			0xa800 0x0 0x0 0x1 &mpic 0xb 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci2: pcie@e000a000 { | ||||
| 		reg = <0 0xe000a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xe3000000 0x0 0x100000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xa0000000 | ||||
| 				  0x2000000 0x0 0xa0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	rio: rapidio@e00c0000 { | ||||
| 		reg = <0x0 0xe00c0000 0x0 0x20000>; | ||||
| 		port1 { | ||||
| 			ranges = <0x0 0x0 0x0 0xc0000000 0x0 0x20000000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /* | ||||
|  * mpc8548cds.dtsi must be last to ensure board_pci0 overrides pci0 settings | ||||
|  * for interrupt-map & interrupt-map-mask. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/mpc8548si-post.dtsi" | ||||
| /include/ "mpc8548cds.dtsi" | ||||
							
								
								
									
										86
									
								
								arch/powerpc/boot/dts/mpc8548cds_36b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								arch/powerpc/boot/dts/mpc8548cds_36b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,86 @@ | ||||
| /* | ||||
|  * MPC8548 CDS Device Tree Source (36-bit address map) | ||||
|  * | ||||
|  * Copyright 2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * 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. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/mpc8548si-pre.dtsi" | ||||
| 
 | ||||
| / { | ||||
| 	model = "MPC8548CDS"; | ||||
| 	compatible = "MPC8548CDS", "MPC85xxCDS"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 		reg = <0 0 0x0 0x8000000>;	// 128M at 0x0 | ||||
| 	}; | ||||
| 
 | ||||
| 	board_lbc: lbc: localbus@fe0005000 { | ||||
| 		reg = <0xf 0xe0005000 0 0x1000>; | ||||
| 
 | ||||
| 		ranges = <0x0 0x0 0xf 0xff000000 0x01000000 | ||||
| 			  0x1 0x0 0xf 0xf8004000 0x00001000>; | ||||
| 
 | ||||
| 	}; | ||||
| 
 | ||||
| 	board_soc: soc: soc8548@fe0000000 { | ||||
| 		ranges = <0 0xf 0xe0000000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	board_pci0: pci0: pci@fe0008000 { | ||||
| 		reg = <0xf 0xe0008000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x10000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xe2000000 0x0 0x800000>; | ||||
| 		clock-frequency = <66666666>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pci@fe0009000 { | ||||
| 		reg = <0xf 0xe0009000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x10000000 0x0 0x10000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xe2800000 0x0 0x800000>; | ||||
| 		clock-frequency = <66666666>; | ||||
| 		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||||
| 		interrupt-map = < | ||||
| 
 | ||||
| 			/* IDSEL 0x15 */ | ||||
| 			0xa800 0x0 0x0 0x1 &mpic 0xb 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x2 &mpic 0x1 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 | ||||
| 			0xa800 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci2: pcie@fe000a000 { | ||||
| 		reg = <0xf 0xe000a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xe3000000 0x0 0x100000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xa0000000 | ||||
| 				  0x2000000 0x0 0xa0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	rio: rapidio@fe00c0000 { | ||||
| 		reg = <0xf 0xe00c0000 0x0 0x20000>; | ||||
| 		port1 { | ||||
| 			ranges = <0x0 0x0 0xc 0x40000000 0x0 0x20000000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /* | ||||
|  * mpc8548cds.dtsi must be last to ensure board_pci0 overrides pci0 settings | ||||
|  * for interrupt-map & interrupt-map-mask. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/mpc8548si-post.dtsi" | ||||
| /include/ "mpc8548cds.dtsi" | ||||
| @ -41,37 +41,47 @@ | ||||
| 		bank-width = <2>; | ||||
| 		device-width = <1>; | ||||
| 
 | ||||
| 		ramdisk@0 { | ||||
| 		partition@0 { | ||||
| 			reg = <0x0 0x03000000>; | ||||
| 			read-only; | ||||
| 			label = "ramdisk-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		diagnostic@3000000 { | ||||
| 		partition@3000000 { | ||||
| 			reg = <0x03000000 0x00e00000>; | ||||
| 			label = "diagnostic-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		dink@3e00000 { | ||||
| 		partition@3e00000 { | ||||
| 			reg = <0x03e00000 0x00200000>; | ||||
| 			label = "dink-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		kernel@4000000 { | ||||
| 		partition@4000000 { | ||||
| 			reg = <0x04000000 0x00400000>; | ||||
| 			read-only; | ||||
| 			label = "kernel-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		jffs2@4400000 { | ||||
| 		partition@4400000 { | ||||
| 			reg = <0x04400000 0x03b00000>; | ||||
| 			label = "fs-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		dtb@7f00000 { | ||||
| 			reg = <0x07f00000 0x00080000>; | ||||
| 		partition@7f00000 { | ||||
| 			reg = <0x07f00000 0x00060000>; | ||||
| 			label = "dtb-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@7f60000 { | ||||
| 			reg = <0x07f60000 0x00020000>; | ||||
| 			label = "env-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		u-boot@7f80000 { | ||||
| 		partition@7f80000 { | ||||
| 			reg = <0x07f80000 0x00080000>; | ||||
| 			label = "u-boot-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 	}; | ||||
| @ -83,31 +93,35 @@ | ||||
| 			     "fsl,elbc-fcm-nand"; | ||||
| 		reg = <0x2 0x0 0x40000>; | ||||
| 
 | ||||
| 		u-boot@0 { | ||||
| 		partition@0 { | ||||
| 			reg = <0x0 0x02000000>; | ||||
| 			label = "u-boot-nand"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		jffs2@2000000 { | ||||
| 		partition@2000000 { | ||||
| 			reg = <0x02000000 0x10000000>; | ||||
| 			label = "fs-nand"; | ||||
| 		}; | ||||
| 
 | ||||
| 		ramdisk@12000000 { | ||||
| 		partition@12000000 { | ||||
| 			reg = <0x12000000 0x08000000>; | ||||
| 			read-only; | ||||
| 			label = "ramdisk-nand"; | ||||
| 		}; | ||||
| 
 | ||||
| 		kernel@1a000000 { | ||||
| 		partition@1a000000 { | ||||
| 			reg = <0x1a000000 0x04000000>; | ||||
| 			label = "kernel-nand"; | ||||
| 		}; | ||||
| 
 | ||||
| 		dtb@1e000000 { | ||||
| 		partition@1e000000 { | ||||
| 			reg = <0x1e000000 0x01000000>; | ||||
| 			read-only; | ||||
| 			label = "dtb-nand"; | ||||
| 		}; | ||||
| 
 | ||||
| 		empty@1f000000 { | ||||
| 		partition@1f000000 { | ||||
| 			reg = <0x1f000000 0x21000000>; | ||||
| 			label = "empty-nand"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
|  | ||||
| @ -138,7 +138,7 @@ | ||||
| 			#size-cells = <1>; | ||||
| 			compatible = "spansion,s25sl12801"; | ||||
| 			reg = <0>; | ||||
| 			spi-max-frequency = <50000000>; | ||||
| 			spi-max-frequency = <40000000>; | ||||
| 
 | ||||
| 			partition@0 { | ||||
| 				/* 1MB for u-boot Bootloader Image */ | ||||
| @ -196,7 +196,7 @@ | ||||
| 		}; | ||||
| 
 | ||||
| 		tbi-phy@3 { | ||||
| 			device-type = "tbi-phy"; | ||||
| 			device_type = "tbi-phy"; | ||||
| 			reg = <0x3>; | ||||
| 		}; | ||||
| 	}; | ||||
|  | ||||
							
								
								
									
										247
									
								
								arch/powerpc/boot/dts/p1020rdb-pc.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										247
									
								
								arch/powerpc/boot/dts/p1020rdb-pc.dtsi
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,247 @@ | ||||
| /* | ||||
|  * P1020 RDB-PC Device Tree Source stub (no addresses or top-level ranges) | ||||
|  * | ||||
|  * Copyright 2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| &lbc { | ||||
| 	nor@0,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "cfi-flash"; | ||||
| 		reg = <0x0 0x0 0x1000000>; | ||||
| 		bank-width = <2>; | ||||
| 		device-width = <1>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 256KB for Vitesse 7385 Switch firmware */ | ||||
| 			reg = <0x0 0x00040000>; | ||||
| 			label = "NOR Vitesse-7385 Firmware"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@40000 { | ||||
| 			/* 256KB for DTB Image */ | ||||
| 			reg = <0x00040000 0x00040000>; | ||||
| 			label = "NOR DTB Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@80000 { | ||||
| 			/* 3.5 MB for Linux Kernel Image */ | ||||
| 			reg = <0x00080000 0x00380000>; | ||||
| 			label = "NOR Linux Kernel Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@400000 { | ||||
| 			/* 11MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x00400000 0x00b00000>; | ||||
| 			label = "NOR JFFS2 Root File System"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@f00000 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 512KB for u-boot Bootloader Image */ | ||||
| 			/* 512KB for u-boot Environment Variables */ | ||||
| 			reg = <0x00f00000 0x00100000>; | ||||
| 			label = "NOR U-Boot Image"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	nand@1,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "fsl,p1020-fcm-nand", | ||||
| 			     "fsl,elbc-fcm-nand"; | ||||
| 		reg = <0x1 0x0 0x40000>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 1MB for u-boot Bootloader Image */ | ||||
| 			reg = <0x0 0x00100000>; | ||||
| 			label = "NAND U-Boot Image"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@100000 { | ||||
| 			/* 1MB for DTB Image */ | ||||
| 			reg = <0x00100000 0x00100000>; | ||||
| 			label = "NAND DTB Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@200000 { | ||||
| 			/* 4MB for Linux Kernel Image */ | ||||
| 			reg = <0x00200000 0x00400000>; | ||||
| 			label = "NAND Linux Kernel Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@600000 { | ||||
| 			/* 4MB for Compressed Root file System Image */ | ||||
| 			reg = <0x00600000 0x00400000>; | ||||
| 			label = "NAND Compressed RFS Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@a00000 { | ||||
| 			/* 7MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x00a00000 0x00700000>; | ||||
| 			label = "NAND JFFS2 Root File System"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@1100000 { | ||||
| 			/* 15MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x01100000 0x00f00000>; | ||||
| 			label = "NAND Writable User area"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	L2switch@2,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "vitesse-7385"; | ||||
| 		reg = <0x2 0x0 0x20000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	cpld@3,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "cpld"; | ||||
| 		reg = <0x3 0x0 0x20000>; | ||||
| 		read-only; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| &soc { | ||||
| 	i2c@3000 { | ||||
| 		rtc@68 { | ||||
| 			compatible = "pericom,pt7c4338"; | ||||
| 			reg = <0x68>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	spi@7000 { | ||||
| 		flash@0 { | ||||
| 			#address-cells = <1>; | ||||
| 			#size-cells = <1>; | ||||
| 			compatible = "spansion,s25sl12801"; | ||||
| 			reg = <0>; | ||||
| 			spi-max-frequency = <40000000>; /* input clock */ | ||||
| 
 | ||||
| 			partition@u-boot { | ||||
| 				/* 512KB for u-boot Bootloader Image */ | ||||
| 				reg = <0x0 0x00080000>; | ||||
| 				label = "u-boot"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@dtb { | ||||
| 				/* 512KB for DTB Image*/ | ||||
| 				reg = <0x00080000 0x00080000>; | ||||
| 				label = "dtb"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@kernel { | ||||
| 				/* 4MB for Linux Kernel Image */ | ||||
| 				reg = <0x00100000 0x00400000>; | ||||
| 				label = "kernel"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@fs { | ||||
| 				/* 4MB for Compressed RFS Image */ | ||||
| 				reg = <0x00500000 0x00400000>; | ||||
| 				label = "file system"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@jffs-fs { | ||||
| 				/* 7MB for JFFS2 based RFS */ | ||||
| 				reg = <0x00900000 0x00700000>; | ||||
| 				label = "file system jffs2"; | ||||
| 			}; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	usb@22000 { | ||||
| 		phy_type = "ulpi"; | ||||
| 	}; | ||||
| 
 | ||||
| 	/* USB2 is shared with localbus, so it must be disabled | ||||
| 	   by default. We can't put 'status = "disabled";' here | ||||
| 	   since U-Boot doesn't clear the status property when | ||||
| 	   it enables USB2. OTOH, U-Boot does create a new node | ||||
| 	   when there isn't any. So, just comment it out. | ||||
| 	usb@23000 { | ||||
| 		phy_type = "ulpi"; | ||||
| 	}; | ||||
| 	*/ | ||||
| 
 | ||||
| 	mdio@24000 { | ||||
| 		phy0: ethernet-phy@0 { | ||||
| 			interrupt-parent = <&mpic>; | ||||
| 			interrupts = <3 1>; | ||||
| 			reg = <0x0>; | ||||
| 		}; | ||||
| 
 | ||||
| 		phy1: ethernet-phy@1 { | ||||
| 			interrupt-parent = <&mpic>; | ||||
| 			interrupts = <2 1>; | ||||
| 			reg = <0x1>; | ||||
| 		}; | ||||
| 
 | ||||
| 		tbi0: tbi-phy@11 { | ||||
| 			device_type = "tbi-phy"; | ||||
| 			reg = <0x11>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@25000 { | ||||
| 		tbi1: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet0: ethernet@b0000 { | ||||
| 		fixed-link = <1 1 1000 0 0>; | ||||
| 		phy-connection-type = "rgmii-id"; | ||||
| 
 | ||||
| 	}; | ||||
| 
 | ||||
| 	enet1: ethernet@b1000 { | ||||
| 		phy-handle = <&phy0>; | ||||
| 		tbi-handle = <&tbi1>; | ||||
| 		phy-connection-type = "sgmii"; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet2: ethernet@b2000 { | ||||
| 		phy-handle = <&phy1>; | ||||
| 		phy-connection-type = "rgmii-id"; | ||||
| 	}; | ||||
| }; | ||||
							
								
								
									
										90
									
								
								arch/powerpc/boot/dts/p1020rdb-pc_32b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								arch/powerpc/boot/dts/p1020rdb-pc_32b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,90 @@ | ||||
| /* | ||||
|  * P1020 RDB-PC Device Tree Source (32-bit address map) | ||||
|  * | ||||
|  * Copyright 2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p1020si-pre.dtsi" | ||||
| / { | ||||
| 	model = "fsl,P1020RDB-PC"; | ||||
| 	compatible = "fsl,P1020RDB-PC"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@ffe05000 { | ||||
| 		reg = <0 0xffe05000 0 0x1000>; | ||||
| 
 | ||||
| 		/* NOR, NAND Flashes and Vitesse 5 port L2 switch */ | ||||
| 		ranges = <0x0 0x0 0x0 0xef000000 0x01000000 | ||||
| 			  0x1 0x0 0x0 0xff800000 0x00040000 | ||||
| 			  0x2 0x0 0x0 0xffb00000 0x00020000 | ||||
| 			  0x3 0x0 0x0 0xffa00000 0x00020000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc@ffe00000 { | ||||
| 		ranges = <0x0 0x0 0xffe00000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@ffe09000 { | ||||
| 		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; | ||||
| 		reg = <0 0xffe09000 0 0x1000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xa0000000 | ||||
| 				  0x2000000 0x0 0xa0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@ffe0a000 { | ||||
| 		reg = <0 0xffe0a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0x80000000 | ||||
| 				  0x2000000 0x0 0x80000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "p1020rdb-pc.dtsi" | ||||
| /include/ "fsl/p1020si-post.dtsi" | ||||
							
								
								
									
										90
									
								
								arch/powerpc/boot/dts/p1020rdb-pc_36b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								arch/powerpc/boot/dts/p1020rdb-pc_36b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,90 @@ | ||||
| /* | ||||
|  * P1020 RDB-PC Device Tree Source (36-bit address map) | ||||
|  * | ||||
|  * Copyright 2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p1020si-pre.dtsi" | ||||
| / { | ||||
| 	model = "fsl,P1020RDB-PC"; | ||||
| 	compatible = "fsl,P1020RDB-PC"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@fffe05000 { | ||||
| 		reg = <0xf 0xffe05000 0 0x1000>; | ||||
| 
 | ||||
| 		/* NOR, NAND Flashes and Vitesse 5 port L2 switch */ | ||||
| 		ranges = <0x0 0x0 0xf 0xef000000 0x01000000 | ||||
| 			  0x1 0x0 0xf 0xff800000 0x00040000 | ||||
| 			  0x2 0x0 0xf 0xffb00000 0x00040000 | ||||
| 			  0x3 0x0 0xf 0xffa00000 0x00020000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc@fffe00000 { | ||||
| 		ranges = <0x0 0xf 0xffe00000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@fffe09000 { | ||||
| 		reg = <0xf 0xffe09000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xc0000000 0xc 0x20000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xc0000000 | ||||
| 				  0x2000000 0x0 0xc0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@fffe0a000 { | ||||
| 		reg = <0xf 0xffe0a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0x80000000 0xc 0x00000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0x80000000 | ||||
| 				  0x2000000 0x0 0x80000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "p1020rdb-pc.dtsi" | ||||
| /include/ "fsl/p1020si-post.dtsi" | ||||
							
								
								
									
										64
									
								
								arch/powerpc/boot/dts/p1020rdb-pc_camp_core0.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								arch/powerpc/boot/dts/p1020rdb-pc_camp_core0.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,64 @@ | ||||
| /* | ||||
|  * P1020 RDB-PC  Core0 Device Tree Source in CAMP mode. | ||||
|  * | ||||
|  * In CAMP mode, each core needs to have its own dts. Only mpic and L2 cache | ||||
|  * can be shared, all the other devices must be assigned to one core only. | ||||
|  * This dts file allows core0 to have memory, l2, i2c, spi, gpio, tdm, dma, usb, | ||||
|  * eth1, eth2, sdhc, crypto, global-util, message, pci0, pci1, msi. | ||||
|  * | ||||
|  * Please note to add "-b 0" for core0's dts compiling. | ||||
|  * | ||||
|  * Copyright 2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * 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. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "p1020rdb-pc_32b.dts" | ||||
| 
 | ||||
| / { | ||||
| 	model = "fsl,P1020RDB-PC"; | ||||
| 	compatible = "fsl,P1020RDB-PC"; | ||||
| 
 | ||||
| 	aliases { | ||||
| 		ethernet1 = &enet1; | ||||
| 		ethernet2 = &enet2; | ||||
| 		serial0 = &serial0; | ||||
| 		pci0 = &pci0; | ||||
| 		pci1 = &pci1; | ||||
| 	}; | ||||
| 
 | ||||
| 	cpus { | ||||
| 		PowerPC,P1020@1 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	localbus@ffe05000 { | ||||
| 		status = "disabled"; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc@ffe00000 { | ||||
| 		serial1: serial@4600 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet0: ethernet@b0000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		mpic: pic@40000 { | ||||
| 			protected-sources = < | ||||
| 			42 29 30 34	/* serial1, enet0-queue-group0 */ | ||||
| 			17 18 24 45	/* enet0-queue-group1, crypto */ | ||||
| 			>; | ||||
| 			pic-no-reset; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
							
								
								
									
										142
									
								
								arch/powerpc/boot/dts/p1020rdb-pc_camp_core1.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								arch/powerpc/boot/dts/p1020rdb-pc_camp_core1.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,142 @@ | ||||
| /* | ||||
|  * P1020 RDB-PC Core1 Device Tree Source in CAMP mode. | ||||
|  * | ||||
|  * In CAMP mode, each core needs to have its own dts. Only mpic and L2 cache | ||||
|  * can be shared, all the other devices must be assigned to one core only. | ||||
|  * This dts allows core1 to have l2, eth0, crypto. | ||||
|  * | ||||
|  * Please note to add "-b 1" for core1's dts compiling. | ||||
|  * | ||||
|  * Copyright 2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * 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. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "p1020rdb-pc_32b.dts" | ||||
| 
 | ||||
| / { | ||||
| 	model = "fsl,P1020RDB-PC"; | ||||
| 	compatible = "fsl,P1020RDB-PC"; | ||||
| 
 | ||||
| 	aliases { | ||||
| 		ethernet0 = &enet0; | ||||
| 		serial0 = &serial1; | ||||
| 		}; | ||||
| 
 | ||||
| 	cpus { | ||||
| 		PowerPC,P1020@0 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	localbus@ffe05000 { | ||||
| 		status = "disabled"; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc@ffe00000 { | ||||
| 		ecm-law@0 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		ecm@1000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		memory-controller@2000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		i2c@3000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		i2c@3100 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		serial0: serial@4500 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		spi@7000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		gpio: gpio-controller@f000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		dma@21300 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@24000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@25000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet1: ethernet@b1000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet2: ethernet@b2000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		usb@22000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		sdhci@2e000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		mpic: pic@40000 { | ||||
| 			protected-sources = < | ||||
| 			16 		/* ecm, mem, L2, pci0, pci1 */ | ||||
| 			43 42 59	/* i2c, serial0, spi */ | ||||
| 			47 63 62 	/* gpio, tdm */ | ||||
| 			20 21 22 23	/* dma */ | ||||
| 			03 02 		/* mdio */ | ||||
| 			35 36 40	/* enet1-queue-group0 */ | ||||
| 			51 52 67	/* enet1-queue-group1 */ | ||||
| 			31 32 33	/* enet2-queue-group0 */ | ||||
| 			25 26 27	/* enet2-queue-group1 */ | ||||
| 			28 72 58 	/* usb, sdhci, crypto */ | ||||
| 			0xb0 0xb1 0xb2	/* message */ | ||||
| 			0xb3 0xb4 0xb5 | ||||
| 			0xb6 0xb7 | ||||
| 			0xe0 0xe1 0xe2	/* msi */ | ||||
| 			0xe3 0xe4 0xe5 | ||||
| 			0xe6 0xe7		/* sdhci, crypto , pci */ | ||||
| 			>; | ||||
| 			pic-no-reset; | ||||
| 		}; | ||||
| 
 | ||||
| 		msi@41600 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		global-utilities@e0000 {	//global utilities block | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@ffe09000 { | ||||
| 		status = "disabled"; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@ffe0a000 { | ||||
| 		status = "disabled"; | ||||
| 	}; | ||||
| }; | ||||
							
								
								
									
										96
									
								
								arch/powerpc/boot/dts/p1021rdb.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								arch/powerpc/boot/dts/p1021rdb.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,96 @@ | ||||
| /* | ||||
|  * P1021 RDB Device Tree Source | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p1021si-pre.dtsi" | ||||
| / { | ||||
| 	model = "fsl,P1021RDB"; | ||||
| 	compatible = "fsl,P1021RDB-PC"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@ffe05000 { | ||||
| 		reg = <0 0xffe05000 0 0x1000>; | ||||
| 
 | ||||
| 		/* NOR, NAND Flashes and Vitesse 5 port L2 switch */ | ||||
| 		ranges = <0x0 0x0 0x0 0xef000000 0x01000000 | ||||
| 			  0x1 0x0 0x0 0xff800000 0x00040000 | ||||
| 			  0x2 0x0 0x0 0xffb00000 0x00020000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc@ffe00000 { | ||||
| 		ranges = <0x0 0x0 0xffe00000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@ffe09000 { | ||||
| 		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; | ||||
| 		reg = <0 0xffe09000 0 0x1000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xa0000000 | ||||
| 				  0x2000000 0x0 0xa0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@ffe0a000 { | ||||
| 		reg = <0 0xffe0a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0x80000000 | ||||
| 				  0x2000000 0x0 0x80000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	qe: qe@ffe80000 { | ||||
|                 ranges = <0x0 0x0 0xffe80000 0x40000>; | ||||
|                 reg = <0 0xffe80000 0 0x480>; | ||||
|                 brg-frequency = <0>; | ||||
|                 bus-frequency = <0>; | ||||
|         }; | ||||
| }; | ||||
| 
 | ||||
| /include/ "p1021rdb.dtsi" | ||||
| /include/ "fsl/p1021si-post.dtsi" | ||||
							
								
								
									
										236
									
								
								arch/powerpc/boot/dts/p1021rdb.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								arch/powerpc/boot/dts/p1021rdb.dtsi
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,236 @@ | ||||
| /* | ||||
|  * P1021 RDB Device Tree Source stub (no addresses or top-level ranges) | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| &lbc { | ||||
| 	nor@0,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "cfi-flash"; | ||||
| 		reg = <0x0 0x0 0x1000000>; | ||||
| 		bank-width = <2>; | ||||
| 		device-width = <1>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 256KB for Vitesse 7385 Switch firmware */ | ||||
| 			reg = <0x0 0x00040000>; | ||||
| 			label = "NOR Vitesse-7385 Firmware"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@40000 { | ||||
| 			/* 256KB for DTB Image */ | ||||
| 			reg = <0x00040000 0x00040000>; | ||||
| 			label = "NOR DTB Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@80000 { | ||||
| 			/* 3.5 MB for Linux Kernel Image */ | ||||
| 			reg = <0x00080000 0x00380000>; | ||||
| 			label = "NOR Linux Kernel Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@400000 { | ||||
| 			/* 11MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x00400000 0x00b00000>; | ||||
| 			label = "NOR JFFS2 Root File System"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@f00000 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 512KB for u-boot Bootloader Image */ | ||||
| 			/* 512KB for u-boot Environment Variables */ | ||||
| 			reg = <0x00f00000 0x00100000>; | ||||
| 			label = "NOR U-Boot Image"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	nand@1,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "fsl,p1021-fcm-nand", | ||||
| 			     "fsl,elbc-fcm-nand"; | ||||
| 		reg = <0x1 0x0 0x40000>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 1MB for u-boot Bootloader Image */ | ||||
| 			reg = <0x0 0x00100000>; | ||||
| 			label = "NAND U-Boot Image"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@100000 { | ||||
| 			/* 1MB for DTB Image */ | ||||
| 			reg = <0x00100000 0x00100000>; | ||||
| 			label = "NAND DTB Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@200000 { | ||||
| 			/* 4MB for Linux Kernel Image */ | ||||
| 			reg = <0x00200000 0x00400000>; | ||||
| 			label = "NAND Linux Kernel Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@600000 { | ||||
| 			/* 4MB for Compressed Root file System Image */ | ||||
| 			reg = <0x00600000 0x00400000>; | ||||
| 			label = "NAND Compressed RFS Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@a00000 { | ||||
| 			/* 7MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x00a00000 0x00700000>; | ||||
| 			label = "NAND JFFS2 Root File System"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@1100000 { | ||||
| 			/* 15MB for User Writable Area  */ | ||||
| 			reg = <0x01100000 0x00f00000>; | ||||
| 			label = "NAND Writable User area"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	L2switch@2,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "vitesse-7385"; | ||||
| 		reg = <0x2 0x0 0x20000>; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| &soc { | ||||
| 	i2c@3000 { | ||||
| 		rtc@68 { | ||||
| 			compatible = "pericom,pt7c4338"; | ||||
| 			reg = <0x68>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	spi@7000 { | ||||
| 		flash@0 { | ||||
| 			#address-cells = <1>; | ||||
| 			#size-cells = <1>; | ||||
| 			compatible = "spansion,s25sl12801"; | ||||
| 			reg = <0>; | ||||
| 			spi-max-frequency = <40000000>; /* input clock */ | ||||
| 
 | ||||
| 			partition@u-boot { | ||||
| 				/* 512KB for u-boot Bootloader Image */ | ||||
| 				reg = <0x0 0x00080000>; | ||||
| 				label = "SPI Flash U-Boot Image"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@dtb { | ||||
| 				/* 512KB for DTB Image */ | ||||
| 				reg = <0x00080000 0x00080000>; | ||||
| 				label = "SPI Flash DTB Image"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@kernel { | ||||
| 				/* 4MB for Linux Kernel Image */ | ||||
| 				reg = <0x00100000 0x00400000>; | ||||
| 				label = "SPI Flash Linux Kernel Image"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@fs { | ||||
| 				/* 4MB for Compressed RFS Image */ | ||||
| 				reg = <0x00500000 0x00400000>; | ||||
| 				label = "SPI Flash Compressed RFSImage"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@jffs-fs { | ||||
| 				/* 7MB for JFFS2 based RFS */ | ||||
| 				reg = <0x00900000 0x00700000>; | ||||
| 				label = "SPI Flash JFFS2 RFS"; | ||||
| 			}; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	usb@22000 { | ||||
| 		phy_type = "ulpi"; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@24000 { | ||||
| 		phy0: ethernet-phy@0 { | ||||
| 			interrupt-parent = <&mpic>; | ||||
| 			interrupts = <3 1 0 0>; | ||||
| 			reg = <0x0>; | ||||
| 		}; | ||||
| 
 | ||||
| 		phy1: ethernet-phy@1 { | ||||
| 			interrupt-parent = <&mpic>; | ||||
| 			interrupts = <2 1 0 0>; | ||||
| 			reg = <0x1>; | ||||
| 		}; | ||||
| 
 | ||||
| 		tbi0: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@25000 { | ||||
| 		tbi1: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@26000 { | ||||
| 		tbi2: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet0: ethernet@b0000 { | ||||
| 		fixed-link = <1 1 1000 0 0>; | ||||
| 		phy-connection-type = "rgmii-id"; | ||||
| 
 | ||||
| 	}; | ||||
| 
 | ||||
| 	enet1: ethernet@b1000 { | ||||
| 		phy-handle = <&phy0>; | ||||
| 		tbi-handle = <&tbi1>; | ||||
| 		phy-connection-type = "sgmii"; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet2: ethernet@b2000 { | ||||
| 		phy-handle = <&phy1>; | ||||
| 		tbi-handle = <&tbi2>; | ||||
| 		phy-connection-type = "rgmii-id"; | ||||
| 	}; | ||||
| }; | ||||
							
								
								
									
										96
									
								
								arch/powerpc/boot/dts/p1021rdb_36b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								arch/powerpc/boot/dts/p1021rdb_36b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,96 @@ | ||||
| /* | ||||
|  * P1021 RDB Device Tree Source (36-bit address map) | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p1021si-pre.dtsi" | ||||
| / { | ||||
| 	model = "fsl,P1021RDB"; | ||||
| 	compatible = "fsl,P1021RDB-PC"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@fffe05000 { | ||||
| 		reg = <0xf 0xffe05000 0 0x1000>; | ||||
| 
 | ||||
| 		/* NOR, NAND Flashes and Vitesse 5 port L2 switch */ | ||||
| 		ranges = <0x0 0x0 0xf 0xef000000 0x01000000 | ||||
| 			  0x1 0x0 0xf 0xff800000 0x00040000 | ||||
| 			  0x2 0x0 0xf 0xffb00000 0x00020000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc@fffe00000 { | ||||
| 		ranges = <0x0 0xf 0xffe00000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@fffe09000 { | ||||
| 		ranges = <0x2000000 0x0 0xc0000000 0xc 0x20000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>; | ||||
| 		reg = <0xf 0xffe09000 0 0x1000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xa0000000 | ||||
| 				  0x2000000 0x0 0xa0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@fffe0a000 { | ||||
| 		reg = <0xf 0xffe0a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0x80000000 0xc 0x00000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xc0000000 | ||||
| 				  0x2000000 0x0 0xc0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	qe: qe@fffe80000 { | ||||
|                 ranges = <0x0 0xf 0xffe80000 0x40000>; | ||||
|                 reg = <0xf 0xffe80000 0 0x480>; | ||||
|                 brg-frequency = <0>; | ||||
|                 bus-frequency = <0>; | ||||
|         }; | ||||
| }; | ||||
| 
 | ||||
| /include/ "p1021rdb.dtsi" | ||||
| /include/ "fsl/p1021si-post.dtsi" | ||||
| @ -1,274 +0,0 @@ | ||||
| /* | ||||
|  * P1022 DS 36Bit Physical Address Map Device Tree Source | ||||
|  * | ||||
|  * Copyright 2010 Freescale Semiconductor, Inc. | ||||
|  * | ||||
|  * 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/ "fsl/p1022si-pre.dtsi" | ||||
| / { | ||||
| 	model = "fsl,P1022DS"; | ||||
| 	compatible = "fsl,P1022DS"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@fffe05000 { | ||||
| 		reg = <0xf 0xffe05000 0 0x1000>; | ||||
| 		ranges = <0x0 0x0 0xf 0xe8000000 0x08000000 | ||||
| 			  0x1 0x0 0xf 0xe0000000 0x08000000 | ||||
| 			  0x2 0x0 0xf 0xff800000 0x00040000 | ||||
| 			  0x3 0x0 0xf 0xffdf0000 0x00008000>; | ||||
| 
 | ||||
| 		/* | ||||
| 		 * This node is used to access the pixis via "indirect" mode, | ||||
| 		 * which is done by writing the pixis register index to chip | ||||
| 		 * select 0 and the value to/from chip select 1.  Indirect | ||||
| 		 * mode is the only way to access the pixis when DIU video | ||||
| 		 * is enabled.  Note that this assumes that the first column | ||||
| 		 * of the 'ranges' property above is the chip select number. | ||||
| 		 */ | ||||
| 		board-control@0,0 { | ||||
| 			compatible = "fsl,p1022ds-indirect-pixis"; | ||||
| 			reg = <0x0 0x0 1	/* CS0 */ | ||||
| 			       0x1 0x0 1>;	/* CS1 */ | ||||
| 		}; | ||||
| 
 | ||||
| 		nor@0,0 { | ||||
| 			#address-cells = <1>; | ||||
| 			#size-cells = <1>; | ||||
| 			compatible = "cfi-flash"; | ||||
| 			reg = <0x0 0x0 0x8000000>; | ||||
| 			bank-width = <2>; | ||||
| 			device-width = <1>; | ||||
| 
 | ||||
| 			partition@0 { | ||||
| 				reg = <0x0 0x03000000>; | ||||
| 				label = "ramdisk-nor"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@3000000 { | ||||
| 				reg = <0x03000000 0x00e00000>; | ||||
| 				label = "diagnostic-nor"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@3e00000 { | ||||
| 				reg = <0x03e00000 0x00200000>; | ||||
| 				label = "dink-nor"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@4000000 { | ||||
| 				reg = <0x04000000 0x00400000>; | ||||
| 				label = "kernel-nor"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@4400000 { | ||||
| 				reg = <0x04400000 0x03b00000>; | ||||
| 				label = "jffs2-nor"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@7f00000 { | ||||
| 				reg = <0x07f00000 0x00080000>; | ||||
| 				label = "dtb-nor"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@7f80000 { | ||||
| 				reg = <0x07f80000 0x00080000>; | ||||
| 				label = "u-boot-nor"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		nand@2,0 { | ||||
| 			#address-cells = <1>; | ||||
| 			#size-cells = <1>; | ||||
| 			compatible = "fsl,elbc-fcm-nand"; | ||||
| 			reg = <0x2 0x0 0x40000>; | ||||
| 
 | ||||
| 			partition@0 { | ||||
| 				reg = <0x0 0x02000000>; | ||||
| 				label = "u-boot-nand"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@2000000 { | ||||
| 				reg = <0x02000000 0x10000000>; | ||||
| 				label = "jffs2-nand"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@12000000 { | ||||
| 				reg = <0x12000000 0x10000000>; | ||||
| 				label = "ramdisk-nand"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@22000000 { | ||||
| 				reg = <0x22000000 0x04000000>; | ||||
| 				label = "kernel-nand"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@26000000 { | ||||
| 				reg = <0x26000000 0x01000000>; | ||||
| 				label = "dtb-nand"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@27000000 { | ||||
| 				reg = <0x27000000 0x19000000>; | ||||
| 				label = "reserved-nand"; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		board-control@3,0 { | ||||
| 			compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis"; | ||||
| 			reg = <3 0 0x30>; | ||||
| 			interrupt-parent = <&mpic>; | ||||
| 			/* | ||||
| 			 * IRQ8 is generated if the "EVENT" switch is pressed | ||||
| 			 * and PX_CTL[EVESEL] is set to 00. | ||||
| 			 */ | ||||
| 			interrupts = <8 8 0 0>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc@fffe00000 { | ||||
| 		ranges = <0x0 0xf 0xffe00000 0x100000>; | ||||
| 
 | ||||
| 		i2c@3100 { | ||||
| 			wm8776:codec@1a { | ||||
| 				compatible = "wlf,wm8776"; | ||||
| 				reg = <0x1a>; | ||||
| 				/* | ||||
| 				 * clock-frequency will be set by U-Boot if | ||||
| 				 * the clock is enabled. | ||||
| 				 */ | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		spi@7000 { | ||||
| 			flash@0 { | ||||
| 				#address-cells = <1>; | ||||
| 				#size-cells = <1>; | ||||
| 				compatible = "spansion,s25sl12801"; | ||||
| 				reg = <0>; | ||||
| 				spi-max-frequency = <40000000>; /* input clock */ | ||||
| 
 | ||||
| 				partition@0 { | ||||
| 					label = "u-boot-spi"; | ||||
| 					reg = <0x00000000 0x00100000>; | ||||
| 					read-only; | ||||
| 				}; | ||||
| 				partition@100000 { | ||||
| 					label = "kernel-spi"; | ||||
| 					reg = <0x00100000 0x00500000>; | ||||
| 					read-only; | ||||
| 				}; | ||||
| 				partition@600000 { | ||||
| 					label = "dtb-spi"; | ||||
| 					reg = <0x00600000 0x00100000>; | ||||
| 					read-only; | ||||
| 				}; | ||||
| 				partition@700000 { | ||||
| 					label = "file system-spi"; | ||||
| 					reg = <0x00700000 0x00900000>; | ||||
| 				}; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		ssi@15000 { | ||||
| 			fsl,mode = "i2s-slave"; | ||||
| 			codec-handle = <&wm8776>; | ||||
| 			fsl,ssi-asynchronous; | ||||
| 		}; | ||||
| 
 | ||||
| 		usb@22000 { | ||||
| 			phy_type = "ulpi"; | ||||
| 		}; | ||||
| 
 | ||||
| 		usb@23000 { | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@24000 { | ||||
| 			phy0: ethernet-phy@0 { | ||||
| 				interrupts = <3 1 0 0>; | ||||
| 				reg = <0x1>; | ||||
| 			}; | ||||
| 			phy1: ethernet-phy@1 { | ||||
| 				interrupts = <9 1 0 0>; | ||||
| 				reg = <0x2>; | ||||
| 			}; | ||||
| 			tbi-phy@2 { | ||||
| 				device_type = "tbi-phy"; | ||||
| 				reg = <0x2>; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		ethernet@b0000 { | ||||
| 			phy-handle = <&phy0>; | ||||
| 			phy-connection-type = "rgmii-id"; | ||||
| 		}; | ||||
| 
 | ||||
| 		ethernet@b1000 { | ||||
| 			phy-handle = <&phy1>; | ||||
| 			phy-connection-type = "rgmii-id"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@fffe09000 { | ||||
| 		reg = <0xf 0xffe09000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@fffe0a000 { | ||||
| 		reg = <0xf 0xffe0a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x40000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc20000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			reg = <0x0 0x0 0x0 0x0 0x0>; | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci2: pcie@fffe0b000 { | ||||
| 		reg = <0xf 0xffe0b000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "fsl/p1022si-post.dtsi" | ||||
							
								
								
									
										234
									
								
								arch/powerpc/boot/dts/p1022ds.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										234
									
								
								arch/powerpc/boot/dts/p1022ds.dtsi
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,234 @@ | ||||
| /* | ||||
|  * P1022 DS Device Tree Source stub (no addresses or top-level ranges) | ||||
|  * | ||||
|  * Copyright 2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| &board_lbc { | ||||
| 	/* | ||||
| 	 * This node is used to access the pixis via "indirect" mode, | ||||
| 	 * which is done by writing the pixis register index to chip | ||||
| 	 * select 0 and the value to/from chip select 1.  Indirect | ||||
| 	 * mode is the only way to access the pixis when DIU video | ||||
| 	 * is enabled.  Note that this assumes that the first column | ||||
| 	 * of the 'ranges' property above is the chip select number. | ||||
| 	 */ | ||||
| 	board-control@0,0 { | ||||
| 		compatible = "fsl,p1022ds-indirect-pixis"; | ||||
| 		reg = <0x0 0x0 1	/* CS0 */ | ||||
| 		       0x1 0x0 1>;	/* CS1 */ | ||||
| 		interrupt-parent = <&mpic>; | ||||
| 		interrupts = <8 0 0 0>; | ||||
| 	}; | ||||
| 
 | ||||
| 	nor@0,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "cfi-flash"; | ||||
| 		reg = <0x0 0x0 0x8000000>; | ||||
| 		bank-width = <2>; | ||||
| 		device-width = <1>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			reg = <0x0 0x03000000>; | ||||
| 			label = "ramdisk-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@3000000 { | ||||
| 			reg = <0x03000000 0x00e00000>; | ||||
| 			label = "diagnostic-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@3e00000 { | ||||
| 			reg = <0x03e00000 0x00200000>; | ||||
| 			label = "dink-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@4000000 { | ||||
| 			reg = <0x04000000 0x00400000>; | ||||
| 			label = "kernel-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@4400000 { | ||||
| 			reg = <0x04400000 0x03b00000>; | ||||
| 			label = "jffs2-nor"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@7f00000 { | ||||
| 			reg = <0x07f00000 0x00080000>; | ||||
| 			label = "dtb-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@7f80000 { | ||||
| 			reg = <0x07f80000 0x00080000>; | ||||
| 			label = "u-boot-nor"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	nand@2,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "fsl,elbc-fcm-nand"; | ||||
| 		reg = <0x2 0x0 0x40000>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			reg = <0x0 0x02000000>; | ||||
| 			label = "u-boot-nand"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@2000000 { | ||||
| 			reg = <0x02000000 0x10000000>; | ||||
| 			label = "jffs2-nand"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@12000000 { | ||||
| 			reg = <0x12000000 0x10000000>; | ||||
| 			label = "ramdisk-nand"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@22000000 { | ||||
| 			reg = <0x22000000 0x04000000>; | ||||
| 			label = "kernel-nand"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@26000000 { | ||||
| 			reg = <0x26000000 0x01000000>; | ||||
| 			label = "dtb-nand"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@27000000 { | ||||
| 			reg = <0x27000000 0x19000000>; | ||||
| 			label = "reserved-nand"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	board-control@3,0 { | ||||
| 		compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis"; | ||||
| 		reg = <3 0 0x30>; | ||||
| 		interrupt-parent = <&mpic>; | ||||
| 		/* | ||||
| 		 * IRQ8 is generated if the "EVENT" switch is pressed | ||||
| 		 * and PX_CTL[EVESEL] is set to 00. | ||||
| 		 */ | ||||
| 		interrupts = <8 0 0 0>; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| &board_soc { | ||||
| 	i2c@3100 { | ||||
| 		wm8776:codec@1a { | ||||
| 			compatible = "wlf,wm8776"; | ||||
| 			reg = <0x1a>; | ||||
| 			/* | ||||
| 			 * clock-frequency will be set by U-Boot if | ||||
| 			 * the clock is enabled. | ||||
| 			 */ | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	spi@7000 { | ||||
| 		flash@0 { | ||||
| 			#address-cells = <1>; | ||||
| 			#size-cells = <1>; | ||||
| 			compatible = "spansion,s25sl12801"; | ||||
| 			reg = <0>; | ||||
| 			spi-max-frequency = <40000000>; /* input clock */ | ||||
| 
 | ||||
| 			partition@0 { | ||||
| 				label = "u-boot-spi"; | ||||
| 				reg = <0x00000000 0x00100000>; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 			partition@100000 { | ||||
| 				label = "kernel-spi"; | ||||
| 				reg = <0x00100000 0x00500000>; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 			partition@600000 { | ||||
| 				label = "dtb-spi"; | ||||
| 				reg = <0x00600000 0x00100000>; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 			partition@700000 { | ||||
| 				label = "file system-spi"; | ||||
| 				reg = <0x00700000 0x00900000>; | ||||
| 			}; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	ssi@15000 { | ||||
| 		fsl,mode = "i2s-slave"; | ||||
| 		codec-handle = <&wm8776>; | ||||
| 		fsl,ssi-asynchronous; | ||||
| 	}; | ||||
| 
 | ||||
| 	usb@22000 { | ||||
| 		phy_type = "ulpi"; | ||||
| 	}; | ||||
| 
 | ||||
| 	usb@23000 { | ||||
| 		status = "disabled"; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@24000 { | ||||
| 		phy0: ethernet-phy@0 { | ||||
| 			interrupts = <3 1 0 0>; | ||||
| 			reg = <0x1>; | ||||
| 		}; | ||||
| 		phy1: ethernet-phy@1 { | ||||
| 			interrupts = <9 1 0 0>; | ||||
| 			reg = <0x2>; | ||||
| 		}; | ||||
| 		tbi-phy@2 { | ||||
| 			device_type = "tbi-phy"; | ||||
| 			reg = <0x2>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	ethernet@b0000 { | ||||
| 		phy-handle = <&phy0>; | ||||
| 		phy-connection-type = "rgmii-id"; | ||||
| 	}; | ||||
| 
 | ||||
| 	ethernet@b1000 { | ||||
| 		phy-handle = <&phy1>; | ||||
| 		phy-connection-type = "rgmii-id"; | ||||
| 	}; | ||||
| }; | ||||
							
								
								
									
										103
									
								
								arch/powerpc/boot/dts/p1022ds_32b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								arch/powerpc/boot/dts/p1022ds_32b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,103 @@ | ||||
| /* | ||||
|  * P1022 DS 32-bit Physical Address Map Device Tree Source | ||||
|  * | ||||
|  * Copyright 2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p1022si-pre.dtsi" | ||||
| / { | ||||
| 	model = "fsl,P1022DS"; | ||||
| 	compatible = "fsl,P1022DS"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	board_lbc: lbc: localbus@ffe05000 { | ||||
| 		ranges = <0x0 0x0 0x0 0xe8000000 0x08000000 | ||||
| 			  0x1 0x0 0x0 0xe0000000 0x08000000 | ||||
| 			  0x2 0x0 0x0 0xff800000 0x00040000 | ||||
| 			  0x3 0x0 0x0 0xffdf0000 0x00008000>; | ||||
| 		reg = <0x0 0xffe05000 0 0x1000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	board_soc: soc: soc@ffe00000 { | ||||
| 		ranges = <0x0 0x0 0xffe00000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@ffe09000 { | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0 0xa0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; | ||||
| 		reg = <0x0 0xffe09000 0 0x1000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@ffe0a000 { | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0 0xc0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>; | ||||
| 		reg = <0 0xffe0a000 0 0x1000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci2: pcie@ffe0b000 { | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0 0x80000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; | ||||
| 		reg = <0 0xffe0b000 0 0x1000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "fsl/p1022si-post.dtsi" | ||||
| /include/ "p1022ds.dtsi" | ||||
							
								
								
									
										103
									
								
								arch/powerpc/boot/dts/p1022ds_36b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								arch/powerpc/boot/dts/p1022ds_36b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,103 @@ | ||||
| /* | ||||
|  * P1022 DS 36-bit Physical Address Map Device Tree Source | ||||
|  * | ||||
|  * Copyright 2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p1022si-pre.dtsi" | ||||
| / { | ||||
| 	model = "fsl,P1022DS"; | ||||
| 	compatible = "fsl,P1022DS"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	board_lbc: lbc: localbus@fffe05000 { | ||||
| 		ranges = <0x0 0x0 0xf 0xe8000000 0x08000000 | ||||
| 			  0x1 0x0 0xf 0xe0000000 0x08000000 | ||||
| 			  0x2 0x0 0xf 0xff800000 0x00040000 | ||||
| 			  0x3 0x0 0xf 0xffdf0000 0x00008000>; | ||||
| 		reg = <0xf 0xffe05000 0 0x1000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	board_soc: soc: soc@fffe00000 { | ||||
| 		ranges = <0x0 0xf 0xffe00000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@fffe09000 { | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>; | ||||
| 		reg = <0xf 0xffe09000 0 0x1000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@fffe0a000 { | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x40000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc20000 0x0 0x10000>; | ||||
| 		reg = <0xf 0xffe0a000 0 0x1000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci2: pcie@fffe0b000 { | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>; | ||||
| 		reg = <0xf 0xffe0b000 0 0x1000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "fsl/p1022si-post.dtsi" | ||||
| /include/ "p1022ds.dtsi" | ||||
							
								
								
									
										286
									
								
								arch/powerpc/boot/dts/p1025rdb.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										286
									
								
								arch/powerpc/boot/dts/p1025rdb.dtsi
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,286 @@ | ||||
| /* | ||||
|  * P1025 RDB Device Tree Source stub (no addresses or top-level ranges) | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| &lbc { | ||||
| 	nor@0,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "cfi-flash"; | ||||
| 		reg = <0x0 0x0 0x1000000>; | ||||
| 		bank-width = <2>; | ||||
| 		device-width = <1>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 256KB for Vitesse 7385 Switch firmware */ | ||||
| 			reg = <0x0 0x00040000>; | ||||
| 			label = "NOR Vitesse-7385 Firmware"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@40000 { | ||||
| 			/* 256KB for DTB Image */ | ||||
| 			reg = <0x00040000 0x00040000>; | ||||
| 			label = "NOR DTB Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@80000 { | ||||
| 			/* 3.5 MB for Linux Kernel Image */ | ||||
| 			reg = <0x00080000 0x00380000>; | ||||
| 			label = "NOR Linux Kernel Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@400000 { | ||||
| 			/* 11MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x00400000 0x00b00000>; | ||||
| 			label = "NOR JFFS2 Root File System"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@f00000 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 512KB for u-boot Bootloader Image */ | ||||
| 			/* 512KB for u-boot Environment Variables */ | ||||
| 			reg = <0x00f00000 0x00100000>; | ||||
| 			label = "NOR U-Boot Image"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	nand@1,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "fsl,p1025-fcm-nand", | ||||
| 			     "fsl,elbc-fcm-nand"; | ||||
| 		reg = <0x1 0x0 0x40000>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 1MB for u-boot Bootloader Image */ | ||||
| 			reg = <0x0 0x00100000>; | ||||
| 			label = "NAND U-Boot Image"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@100000 { | ||||
| 			/* 1MB for DTB Image */ | ||||
| 			reg = <0x00100000 0x00100000>; | ||||
| 			label = "NAND DTB Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@200000 { | ||||
| 			/* 4MB for Linux Kernel Image */ | ||||
| 			reg = <0x00200000 0x00400000>; | ||||
| 			label = "NAND Linux Kernel Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@600000 { | ||||
| 			/* 4MB for Compressed Root file System Image */ | ||||
| 			reg = <0x00600000 0x00400000>; | ||||
| 			label = "NAND Compressed RFS Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@a00000 { | ||||
| 			/* 7MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x00a00000 0x00700000>; | ||||
| 			label = "NAND JFFS2 Root File System"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@1100000 { | ||||
| 			/* 15MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x01100000 0x00f00000>; | ||||
| 			label = "NAND Writable User area"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| &soc { | ||||
| 	i2c@3000 { | ||||
| 		rtc@68 { | ||||
| 			compatible = "dallas,ds1339"; | ||||
| 			reg = <0x68>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	spi@7000 { | ||||
| 		flash@0 { | ||||
| 			#address-cells = <1>; | ||||
| 			#size-cells = <1>; | ||||
| 			compatible = "spansion,s25sl12801"; | ||||
| 			reg = <0>; | ||||
| 			spi-max-frequency = <40000000>; /* input clock */ | ||||
| 
 | ||||
| 			partition@u-boot { | ||||
| 				/* 512KB for u-boot Bootloader Image */ | ||||
| 				reg = <0x0 0x00080000>; | ||||
| 				label = "u-boot"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@dtb { | ||||
| 				/* 512KB for DTB Image */ | ||||
| 				reg = <0x00080000 0x00080000>; | ||||
| 				label = "dtb"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@kernel { | ||||
| 				/* 4MB for Linux Kernel Image */ | ||||
| 				reg = <0x00100000 0x00400000>; | ||||
| 				label = "kernel"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@fs { | ||||
| 				/* 4MB for Compressed RFS Image */ | ||||
| 				reg = <0x00500000 0x00400000>; | ||||
| 				label = "file system"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@jffs-fs { | ||||
| 				/* 7MB for JFFS2 based RFS */ | ||||
| 				reg = <0x00900000 0x00700000>; | ||||
| 				label = "file system jffs2"; | ||||
| 			}; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	usb@22000 { | ||||
| 		phy_type = "ulpi"; | ||||
| 	}; | ||||
| 
 | ||||
| 	/* USB2 is shared with localbus, so it must be disabled | ||||
| 	   by default. We can't put 'status = "disabled";' here | ||||
| 	   since U-Boot doesn't clear the status property when | ||||
| 	   it enables USB2. OTOH, U-Boot does create a new node | ||||
| 	   when there isn't any. So, just comment it out. | ||||
| 	usb@23000 { | ||||
| 		phy_type = "ulpi"; | ||||
| 	}; | ||||
| 	*/ | ||||
| 
 | ||||
| 	mdio@24000 { | ||||
| 		phy0: ethernet-phy@0 { | ||||
| 			interrupt-parent = <&mpic>; | ||||
| 			interrupts = <3 1>; | ||||
| 			reg = <0x0>; | ||||
| 		}; | ||||
| 
 | ||||
| 		phy1: ethernet-phy@1 { | ||||
| 			interrupt-parent = <&mpic>; | ||||
| 			interrupts = <2 1>; | ||||
| 			reg = <0x1>; | ||||
| 		}; | ||||
| 
 | ||||
| 		tbi0: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@25000 { | ||||
| 		tbi1: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@26000 { | ||||
| 		tbi2: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet0: ethernet@b0000 { | ||||
| 		fixed-link = <1 1 1000 0 0>; | ||||
| 		phy-connection-type = "rgmii-id"; | ||||
| 
 | ||||
| 	}; | ||||
| 
 | ||||
| 	enet1: ethernet@b1000 { | ||||
| 		phy-handle = <&phy0>; | ||||
| 		tbi-handle = <&tbi1>; | ||||
| 		phy-connection-type = "sgmii"; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet2: ethernet@b2000 { | ||||
| 		phy-handle = <&phy1>; | ||||
| 		phy-connection-type = "rgmii-id"; | ||||
| 	}; | ||||
| 
 | ||||
| 	par_io@e0100 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		reg = <0xe0100 0x60>; | ||||
| 		ranges = <0x0 0xe0100 0x60>; | ||||
| 		device_type = "par_io"; | ||||
| 		num-ports = <3>; | ||||
| 		pio1: ucc_pin@01 { | ||||
| 			pio-map = < | ||||
| 		/* port  pin  dir  open_drain  assignment  has_irq */ | ||||
| 				0x1  0x13 0x1  0x0  0x1  0x0    /* QE_MUX_MDC */ | ||||
| 				0x1  0x14 0x3  0x0  0x1  0x0    /* QE_MUX_MDIO */ | ||||
| 				0x0  0x17 0x2  0x0  0x2  0x0    /* CLK12 */ | ||||
| 				0x0  0x18 0x2  0x0  0x1  0x0    /* CLK9 */ | ||||
| 				0x0  0x7  0x1  0x0  0x2  0x0    /* ENET1_TXD0_SER1_TXD0 */ | ||||
| 				0x0  0x9  0x1  0x0  0x2  0x0    /* ENET1_TXD1_SER1_TXD1 */ | ||||
| 				0x0  0xb  0x1  0x0  0x2  0x0    /* ENET1_TXD2_SER1_TXD2 */ | ||||
| 				0x0  0xc  0x1  0x0  0x2  0x0    /* ENET1_TXD3_SER1_TXD3 */ | ||||
| 				0x0  0x6  0x2  0x0  0x2  0x0    /* ENET1_RXD0_SER1_RXD0 */ | ||||
| 				0x0  0xa  0x2  0x0  0x2  0x0    /* ENET1_RXD1_SER1_RXD1 */ | ||||
| 				0x0  0xe  0x2  0x0  0x2  0x0    /* ENET1_RXD2_SER1_RXD2 */ | ||||
| 				0x0  0xf  0x2  0x0  0x2  0x0    /* ENET1_RXD3_SER1_RXD3 */ | ||||
| 				0x0  0x5  0x1  0x0  0x2  0x0    /* ENET1_TX_EN_SER1_RTS_B */ | ||||
| 				0x0  0xd  0x1  0x0  0x2  0x0    /* ENET1_TX_ER */ | ||||
| 				0x0  0x4  0x2  0x0  0x2  0x0    /* ENET1_RX_DV_SER1_CTS_B */ | ||||
| 				0x0  0x8  0x2  0x0  0x2  0x0    /* ENET1_RX_ER_SER1_CD_B */ | ||||
| 				0x0  0x11 0x2  0x0  0x2  0x0    /* ENET1_CRS */ | ||||
| 				0x0  0x10 0x2  0x0  0x2  0x0>;    /* ENET1_COL */ | ||||
| 		}; | ||||
| 
 | ||||
| 		pio2: ucc_pin@02 { | ||||
| 			pio-map = < | ||||
| 		/* port  pin  dir  open_drain  assignment  has_irq */ | ||||
| 				0x1  0x13 0x1  0x0  0x1  0x0    /* QE_MUX_MDC */ | ||||
| 				0x1  0x14 0x3  0x0  0x1  0x0    /* QE_MUX_MDIO */ | ||||
| 				0x1  0xb  0x2  0x0  0x1  0x0    /* CLK13 */ | ||||
| 				0x1  0x7  0x1  0x0  0x2  0x0    /* ENET5_TXD0_SER5_TXD0 */ | ||||
| 				0x1  0xa  0x1  0x0  0x2  0x0    /* ENET5_TXD1_SER5_TXD1 */ | ||||
| 				0x1  0x6  0x2  0x0  0x2  0x0    /* ENET5_RXD0_SER5_RXD0 */ | ||||
| 				0x1  0x9  0x2  0x0  0x2  0x0    /* ENET5_RXD1_SER5_RXD1 */ | ||||
| 				0x1  0x5  0x1  0x0  0x2  0x0    /* ENET5_TX_EN_SER5_RTS_B */ | ||||
| 				0x1  0x4  0x2  0x0  0x2  0x0    /* ENET5_RX_DV_SER5_CTS_B */ | ||||
| 				0x1  0x8  0x2  0x0  0x2  0x0>;    /* ENET5_RX_ER_SER5_CD_B */ | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
							
								
								
									
										135
									
								
								arch/powerpc/boot/dts/p1025rdb_32b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								arch/powerpc/boot/dts/p1025rdb_32b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,135 @@ | ||||
| /* | ||||
|  * P1025 RDB Device Tree Source (32-bit address map) | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p1021si-pre.dtsi" | ||||
| / { | ||||
| 	model = "fsl,P1025RDB"; | ||||
| 	compatible = "fsl,P1025RDB"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@ffe05000 { | ||||
| 		reg = <0 0xffe05000 0 0x1000>; | ||||
| 
 | ||||
| 		/* NOR, NAND Flashes */ | ||||
| 		ranges = <0x0 0x0 0x0 0xef000000 0x01000000 | ||||
| 			  0x1 0x0 0x0 0xff800000 0x00040000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc@ffe00000 { | ||||
| 		ranges = <0x0 0x0 0xffe00000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@ffe09000 { | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0 0xe0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; | ||||
| 		reg = <0 0xffe09000 0 0x1000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@ffe0a000 { | ||||
| 		reg = <0 0xffe0a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0 0xe0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	qe: qe@ffe80000 { | ||||
| 		ranges = <0x0 0x0 0xffe80000 0x40000>; | ||||
| 		reg = <0 0xffe80000 0 0x480>; | ||||
| 		brg-frequency = <0>; | ||||
| 		bus-frequency = <0>; | ||||
| 		status = "disabled"; /* no firmware loaded */ | ||||
| 
 | ||||
| 		enet3: ucc@2000 { | ||||
| 			device_type = "network"; | ||||
| 			compatible = "ucc_geth"; | ||||
| 			rx-clock-name = "clk12"; | ||||
| 			tx-clock-name = "clk9"; | ||||
| 			pio-handle = <&pio1>; | ||||
| 			phy-handle = <&qe_phy0>; | ||||
| 			phy-connection-type = "mii"; | ||||
| 		}; | ||||
| 
 | ||||
| 		mdio@2120 { | ||||
| 			qe_phy0: ethernet-phy@0 { | ||||
| 				interrupt-parent = <&mpic>; | ||||
| 				interrupts = <4 1 0 0>; | ||||
| 				reg = <0x6>; | ||||
| 				device_type = "ethernet-phy"; | ||||
| 			}; | ||||
| 			qe_phy1: ethernet-phy@03 { | ||||
| 				interrupt-parent = <&mpic>; | ||||
| 				interrupts = <5 1 0 0>; | ||||
| 				reg = <0x3>; | ||||
| 				device_type = "ethernet-phy"; | ||||
| 			}; | ||||
| 			tbi-phy@11 { | ||||
| 				reg = <0x11>; | ||||
| 				device_type = "tbi-phy"; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		enet4: ucc@2400 { | ||||
| 			device_type = "network"; | ||||
| 			compatible = "ucc_geth"; | ||||
| 			rx-clock-name = "none"; | ||||
| 			tx-clock-name = "clk13"; | ||||
| 			pio-handle = <&pio2>; | ||||
| 			phy-handle = <&qe_phy1>; | ||||
| 			phy-connection-type = "rmii"; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "p1025rdb.dtsi" | ||||
| /include/ "fsl/p1021si-post.dtsi" | ||||
							
								
								
									
										88
									
								
								arch/powerpc/boot/dts/p1025rdb_36b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								arch/powerpc/boot/dts/p1025rdb_36b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,88 @@ | ||||
| /* | ||||
|  * P1025 RDB Device Tree Source (36-bit address map) | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p1021si-pre.dtsi" | ||||
| / { | ||||
| 	model = "fsl,P1025RDB"; | ||||
| 	compatible = "fsl,P1025RDB"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@fffe05000 { | ||||
| 		reg = <0xf 0xffe05000 0 0x1000>; | ||||
| 
 | ||||
| 		/* NOR, NAND Flashes */ | ||||
| 		ranges = <0x0 0x0 0xf 0xef000000 0x01000000 | ||||
| 			  0x1 0x0 0xf 0xff800000 0x00040000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc@fffe00000 { | ||||
| 		ranges = <0x0 0xf 0xffe00000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@fffe09000 { | ||||
| 		reg = <0xf 0xffe09000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xe 0x20000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@fffe0a000 { | ||||
| 		reg = <0xf 0xffe0a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "p1025rdb.dtsi" | ||||
| /include/ "fsl/p1021si-post.dtsi" | ||||
							
								
								
									
										241
									
								
								arch/powerpc/boot/dts/p2020rdb-pc.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										241
									
								
								arch/powerpc/boot/dts/p2020rdb-pc.dtsi
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,241 @@ | ||||
| /* | ||||
|  * P2020 RDB-PC Device Tree Source stub (no addresses or top-level ranges) | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| &lbc { | ||||
| 	nor@0,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "cfi-flash"; | ||||
| 		reg = <0x0 0x0 0x1000000>; | ||||
| 		bank-width = <2>; | ||||
| 		device-width = <1>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 256KB for Vitesse 7385 Switch firmware */ | ||||
| 			reg = <0x0 0x00040000>; | ||||
| 			label = "NOR Vitesse-7385 Firmware"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@40000 { | ||||
| 			/* 256KB for DTB Image */ | ||||
| 			reg = <0x00040000 0x00040000>; | ||||
| 			label = "NOR DTB Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@80000 { | ||||
| 			/* 3.5 MB for Linux Kernel Image */ | ||||
| 			reg = <0x00080000 0x00380000>; | ||||
| 			label = "NOR Linux Kernel Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@400000 { | ||||
| 			/* 11MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x00400000 0x00b00000>; | ||||
| 			label = "NOR JFFS2 Root File System"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@f00000 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 512KB for u-boot Bootloader Image */ | ||||
| 			/* 512KB for u-boot Environment Variables */ | ||||
| 			reg = <0x00f00000 0x00100000>; | ||||
| 			label = "NOR U-Boot Image"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	nand@1,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "fsl,p2020-fcm-nand", | ||||
| 				 "fsl,elbc-fcm-nand"; | ||||
| 		reg = <0x1 0x0 0x40000>; | ||||
| 
 | ||||
| 		partition@0 { | ||||
| 			/* This location must not be altered  */ | ||||
| 			/* 1MB for u-boot Bootloader Image */ | ||||
| 			reg = <0x0 0x00100000>; | ||||
| 			label = "NAND U-Boot Image"; | ||||
| 			read-only; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@100000 { | ||||
| 			/* 1MB for DTB Image */ | ||||
| 			reg = <0x00100000 0x00100000>; | ||||
| 			label = "NAND DTB Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@200000 { | ||||
| 			/* 4MB for Linux Kernel Image */ | ||||
| 			reg = <0x00200000 0x00400000>; | ||||
| 			label = "NAND Linux Kernel Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@600000 { | ||||
| 			/* 4MB for Compressed Root file System Image */ | ||||
| 			reg = <0x00600000 0x00400000>; | ||||
| 			label = "NAND Compressed RFS Image"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@a00000 { | ||||
| 			/* 7MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x00a00000 0x00700000>; | ||||
| 			label = "NAND JFFS2 Root File System"; | ||||
| 		}; | ||||
| 
 | ||||
| 		partition@1100000 { | ||||
| 			/* 15MB for JFFS2 based Root file System */ | ||||
| 			reg = <0x01100000 0x00f00000>; | ||||
| 			label = "NAND Writable User area"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	L2switch@2,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "vitesse-7385"; | ||||
| 		reg = <0x2 0x0 0x20000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	cpld@3,0 { | ||||
| 		#address-cells = <1>; | ||||
| 		#size-cells = <1>; | ||||
| 		compatible = "cpld"; | ||||
| 		reg = <0x3 0x0 0x20000>; | ||||
| 		read-only; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| &soc { | ||||
| 	i2c@3000 { | ||||
| 		rtc@68 { | ||||
| 			compatible = "pericom,pt7c4338"; | ||||
| 			reg = <0x68>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	spi@7000 { | ||||
| 		flash@0 { | ||||
| 			#address-cells = <1>; | ||||
| 			#size-cells = <1>; | ||||
| 			compatible = "spansion,m25p80"; | ||||
| 			reg = <0>; | ||||
| 			spi-max-frequency = <40000000>; | ||||
| 
 | ||||
| 			partition@0 { | ||||
| 				/* 512KB for u-boot Bootloader Image */ | ||||
| 				reg = <0x0 0x00080000>; | ||||
| 				label = "SPI U-Boot Image"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@80000 { | ||||
| 				/* 512KB for DTB Image */ | ||||
| 				reg = <0x00080000 0x00080000>; | ||||
| 				label = "SPI DTB Image"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@100000 { | ||||
| 				/* 4MB for Linux Kernel Image */ | ||||
| 				reg = <0x00100000 0x00400000>; | ||||
| 				label = "SPI Linux Kernel Image"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@500000 { | ||||
| 				/* 4MB for Compressed RFS Image */ | ||||
| 				reg = <0x00500000 0x00400000>; | ||||
| 				label = "SPI Compressed RFS Image"; | ||||
| 			}; | ||||
| 
 | ||||
| 			partition@900000 { | ||||
| 				/* 7MB for JFFS2 based RFS */ | ||||
| 				reg = <0x00900000 0x00700000>; | ||||
| 				label = "SPI JFFS2 RFS"; | ||||
| 			}; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	usb@22000 { | ||||
| 		phy_type = "ulpi"; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@24520 { | ||||
| 		phy0: ethernet-phy@0 { | ||||
| 			interrupts = <3 1 0 0>; | ||||
| 			reg = <0x0>; | ||||
| 			}; | ||||
| 		phy1: ethernet-phy@1 { | ||||
| 			interrupts = <2 1 0 0>; | ||||
| 			reg = <0x1>; | ||||
| 			}; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@25520 { | ||||
| 		tbi0: tbi-phy@11 { | ||||
| 			reg = <0x11>; | ||||
| 			device_type = "tbi-phy"; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	mdio@26520 { | ||||
| 		status = "disabled"; | ||||
| 	}; | ||||
| 
 | ||||
| 	ptp_clock@24e00 { | ||||
| 		fsl,tclk-period = <5>; | ||||
| 		fsl,tmr-prsc = <200>; | ||||
| 		fsl,tmr-add = <0xCCCCCCCD>; | ||||
| 		fsl,tmr-fiper1 = <0x3B9AC9FB>; | ||||
| 		fsl,tmr-fiper2 = <0x0001869B>; | ||||
| 		fsl,max-adj = <249999999>; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet0: ethernet@24000 { | ||||
| 		fixed-link = <1 1 1000 0 0>; | ||||
| 		phy-connection-type = "rgmii-id"; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet1: ethernet@25000 { | ||||
| 		tbi-handle = <&tbi0>; | ||||
| 		phy-handle = <&phy0>; | ||||
| 		phy-connection-type = "sgmii"; | ||||
| 	}; | ||||
| 
 | ||||
| 	enet2: ethernet@26000 { | ||||
| 		phy-handle = <&phy1>; | ||||
| 		phy-connection-type = "rgmii-id"; | ||||
| 	}; | ||||
| }; | ||||
							
								
								
									
										96
									
								
								arch/powerpc/boot/dts/p2020rdb-pc_32b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								arch/powerpc/boot/dts/p2020rdb-pc_32b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,96 @@ | ||||
| /* | ||||
|  * P2020 RDB-PC 32Bit Physical Address Map Device Tree Source | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p2020si-pre.dtsi" | ||||
| 
 | ||||
| / { | ||||
| 	model = "fsl,P2020RDB"; | ||||
| 	compatible = "fsl,P2020RDB-PC"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@ffe05000 { | ||||
| 		reg = <0 0xffe05000 0 0x1000>; | ||||
| 
 | ||||
| 		/* NOR and NAND Flashes */ | ||||
| 		ranges = <0x0 0x0 0x0 0xef000000 0x01000000 | ||||
| 			  0x1 0x0 0x0 0xff800000 0x00040000 | ||||
| 			  0x2 0x0 0x0 0xffb00000 0x00020000 | ||||
| 			  0x3 0x0 0x0 0xffa00000 0x00020000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc@ffe00000 { | ||||
| 		ranges = <0x0 0x0 0xffe00000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@ffe08000 { | ||||
| 		reg = <0 0xffe08000 0 0x1000>; | ||||
| 		status = "disabled"; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@ffe09000 { | ||||
| 		reg = <0 0xffe09000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0 0xa0000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci2: pcie@ffe0a000 { | ||||
| 		reg = <0 0xffe0a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0 0x80000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "p2020rdb-pc.dtsi" | ||||
| /include/ "fsl/p2020si-post.dtsi" | ||||
							
								
								
									
										96
									
								
								arch/powerpc/boot/dts/p2020rdb-pc_36b.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								arch/powerpc/boot/dts/p2020rdb-pc_36b.dts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,96 @@ | ||||
| /* | ||||
|  * P2020 RDB-PC 36Bit Physical Address Map Device Tree Source | ||||
|  * | ||||
|  * Copyright 2011 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| /include/ "fsl/p2020si-pre.dtsi" | ||||
| 
 | ||||
| / { | ||||
| 	model = "fsl,P2020RDB"; | ||||
| 	compatible = "fsl,P2020RDB-PC"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		device_type = "memory"; | ||||
| 	}; | ||||
| 
 | ||||
| 	lbc: localbus@fffe05000 { | ||||
| 		reg = <0xf 0xffe05000 0 0x1000>; | ||||
| 
 | ||||
| 		/* NOR and NAND Flashes */ | ||||
| 		ranges = <0x0 0x0 0xf 0xef000000 0x01000000 | ||||
| 			  0x1 0x0 0xf 0xff800000 0x00040000 | ||||
| 			  0x2 0x0 0xf 0xffb00000 0x00020000 | ||||
| 			  0x3 0x0 0xf 0xffa00000 0x00020000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	soc: soc@fffe00000 { | ||||
| 		ranges = <0x0 0xf 0xffe00000 0x100000>; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci0: pcie@fffe08000 { | ||||
| 		reg = <0xf 0xffe08000 0 0x1000>; | ||||
| 		status = "disabled"; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci1: pcie@fffe09000 { | ||||
| 		reg = <0xf 0xffe09000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	pci2: pcie@fffe0a000 { | ||||
| 		reg = <0xf 0xffe0a000 0 0x1000>; | ||||
| 		ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000 | ||||
| 			  0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>; | ||||
| 		pcie@0 { | ||||
| 			ranges = <0x2000000 0x0 0xe0000000 | ||||
| 				  0x2000000 0x0 0xe0000000 | ||||
| 				  0x0 0x20000000 | ||||
| 
 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x1000000 0x0 0x0 | ||||
| 				  0x0 0x100000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| /include/ "p2020rdb-pc.dtsi" | ||||
| /include/ "fsl/p2020si-post.dtsi" | ||||
| @ -34,7 +34,7 @@ | ||||
| 
 | ||||
| 		/* NOR and NAND Flashes */ | ||||
| 		ranges = <0x0 0x0 0x0 0xef000000 0x01000000 | ||||
| 			  0x1 0x0 0x0 0xffa00000 0x00040000 | ||||
| 			  0x1 0x0 0x0 0xff800000 0x00040000 | ||||
| 			  0x2 0x0 0x0 0xffb00000 0x00020000>; | ||||
| 
 | ||||
| 		nor@0,0 { | ||||
| @ -157,7 +157,7 @@ | ||||
| 				#size-cells = <1>; | ||||
| 				compatible = "spansion,s25sl12801"; | ||||
| 				reg = <0>; | ||||
| 				spi-max-frequency = <50000000>; | ||||
| 				spi-max-frequency = <40000000>; | ||||
| 
 | ||||
| 				partition@0 { | ||||
| 					/* 512KB for u-boot Bootloader Image */ | ||||
|  | ||||
							
								
								
									
										257
									
								
								arch/powerpc/configs/85xx/ge_imp3a_defconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										257
									
								
								arch/powerpc/configs/85xx/ge_imp3a_defconfig
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,257 @@ | ||||
| CONFIG_PPC_85xx=y | ||||
| CONFIG_SMP=y | ||||
| CONFIG_NR_CPUS=2 | ||||
| CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_POSIX_MQUEUE=y | ||||
| CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_BSD_PROCESS_ACCT_V3=y | ||||
| CONFIG_SPARSE_IRQ=y | ||||
| CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| # CONFIG_UTS_NS is not set | ||||
| # CONFIG_IPC_NS is not set | ||||
| # CONFIG_USER_NS is not set | ||||
| # CONFIG_PID_NS is not set | ||||
| # CONFIG_NET_NS is not set | ||||
| CONFIG_SYSFS_DEPRECATED=y | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_RELAY=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_PERF_EVENTS=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
| # CONFIG_BLK_DEV_BSG is not set | ||||
| CONFIG_GE_IMP3A=y | ||||
| CONFIG_QUICC_ENGINE=y | ||||
| CONFIG_QE_GPIO=y | ||||
| CONFIG_CPM2=y | ||||
| CONFIG_HIGHMEM=y | ||||
| CONFIG_HIGH_RES_TIMERS=y | ||||
| CONFIG_HZ_1000=y | ||||
| CONFIG_PREEMPT=y | ||||
| # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||||
| CONFIG_BINFMT_MISC=m | ||||
| CONFIG_MATH_EMULATION=y | ||||
| CONFIG_IRQ_ALL_CPUS=y | ||||
| CONFIG_FORCE_MAX_ZONEORDER=17 | ||||
| CONFIG_PCI=y | ||||
| CONFIG_PCIEPORTBUS=y | ||||
| CONFIG_PCI_MSI=y | ||||
| CONFIG_PCCARD=y | ||||
| # CONFIG_PCMCIA_LOAD_CIS is not set | ||||
| CONFIG_YENTA=y | ||||
| CONFIG_NET=y | ||||
| CONFIG_PACKET=y | ||||
| CONFIG_UNIX=y | ||||
| CONFIG_XFRM_USER=m | ||||
| CONFIG_NET_KEY=y | ||||
| CONFIG_INET=y | ||||
| CONFIG_IP_MULTICAST=y | ||||
| CONFIG_IP_ADVANCED_ROUTER=y | ||||
| CONFIG_IP_MULTIPLE_TABLES=y | ||||
| CONFIG_IP_ROUTE_MULTIPATH=y | ||||
| CONFIG_IP_ROUTE_VERBOSE=y | ||||
| CONFIG_IP_PNP=y | ||||
| CONFIG_IP_PNP_DHCP=y | ||||
| CONFIG_IP_PNP_BOOTP=y | ||||
| CONFIG_IP_PNP_RARP=y | ||||
| CONFIG_NET_IPIP=m | ||||
| CONFIG_IP_MROUTE=y | ||||
| CONFIG_IP_PIMSM_V1=y | ||||
| CONFIG_IP_PIMSM_V2=y | ||||
| CONFIG_SYN_COOKIES=y | ||||
| CONFIG_INET_AH=m | ||||
| CONFIG_INET_ESP=m | ||||
| CONFIG_INET_IPCOMP=m | ||||
| # CONFIG_INET_XFRM_MODE_BEET is not set | ||||
| CONFIG_INET6_AH=m | ||||
| CONFIG_INET6_IPCOMP=m | ||||
| CONFIG_IPV6_TUNNEL=m | ||||
| CONFIG_NET_PKTGEN=m | ||||
| CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||||
| CONFIG_MTD=y | ||||
| CONFIG_MTD_OF_PARTS=y | ||||
| CONFIG_MTD_CHAR=y | ||||
| CONFIG_MTD_BLOCK=y | ||||
| CONFIG_MTD_CFI=y | ||||
| CONFIG_MTD_JEDECPROBE=y | ||||
| CONFIG_MTD_CFI_INTELEXT=y | ||||
| CONFIG_MTD_CFI_AMDSTD=y | ||||
| CONFIG_MTD_PHYSMAP_OF=y | ||||
| CONFIG_MTD_NAND=y | ||||
| CONFIG_MTD_NAND_FSL_ELBC=y | ||||
| CONFIG_PROC_DEVICETREE=y | ||||
| CONFIG_BLK_DEV_LOOP=m | ||||
| CONFIG_BLK_DEV_CRYPTOLOOP=m | ||||
| CONFIG_BLK_DEV_NBD=m | ||||
| CONFIG_BLK_DEV_RAM=y | ||||
| CONFIG_BLK_DEV_RAM_SIZE=131072 | ||||
| CONFIG_MISC_DEVICES=y | ||||
| CONFIG_DS1682=y | ||||
| CONFIG_BLK_DEV_SD=y | ||||
| CONFIG_CHR_DEV_ST=y | ||||
| CONFIG_BLK_DEV_SR=y | ||||
| CONFIG_ATA=y | ||||
| CONFIG_SATA_AHCI=y | ||||
| CONFIG_SATA_SIL24=y | ||||
| # CONFIG_ATA_SFF is not set | ||||
| CONFIG_NETDEVICES=y | ||||
| CONFIG_BONDING=m | ||||
| CONFIG_DUMMY=m | ||||
| CONFIG_NETCONSOLE=y | ||||
| CONFIG_NETPOLL_TRAP=y | ||||
| CONFIG_TUN=m | ||||
| # CONFIG_NET_VENDOR_3COM is not set | ||||
| CONFIG_FS_ENET=y | ||||
| CONFIG_UCC_GETH=y | ||||
| CONFIG_GIANFAR=y | ||||
| CONFIG_PPP=m | ||||
| CONFIG_PPP_BSDCOMP=m | ||||
| CONFIG_PPP_DEFLATE=m | ||||
| CONFIG_PPP_FILTER=y | ||||
| CONFIG_PPP_MULTILINK=y | ||||
| CONFIG_PPPOE=m | ||||
| CONFIG_PPP_ASYNC=m | ||||
| CONFIG_PPP_SYNC_TTY=m | ||||
| CONFIG_SLIP=m | ||||
| CONFIG_SLIP_COMPRESSED=y | ||||
| CONFIG_SLIP_SMART=y | ||||
| CONFIG_SLIP_MODE_SLIP6=y | ||||
| # CONFIG_INPUT_KEYBOARD is not set | ||||
| # CONFIG_INPUT_MOUSE is not set | ||||
| # CONFIG_SERIO is not set | ||||
| # CONFIG_LEGACY_PTYS is not set | ||||
| CONFIG_SERIAL_8250=y | ||||
| CONFIG_SERIAL_8250_CONSOLE=y | ||||
| CONFIG_SERIAL_8250_NR_UARTS=2 | ||||
| CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||||
| CONFIG_SERIAL_8250_EXTENDED=y | ||||
| CONFIG_SERIAL_8250_MANY_PORTS=y | ||||
| CONFIG_SERIAL_8250_DETECT_IRQ=y | ||||
| CONFIG_SERIAL_8250_RSA=y | ||||
| CONFIG_SERIAL_QE=m | ||||
| CONFIG_NVRAM=y | ||||
| CONFIG_I2C=y | ||||
| CONFIG_I2C_CHARDEV=y | ||||
| CONFIG_I2C_CPM=m | ||||
| CONFIG_I2C_MPC=y | ||||
| CONFIG_GPIO_SYSFS=y | ||||
| CONFIG_GPIO_GE_FPGA=y | ||||
| CONFIG_SENSORS_LM90=y | ||||
| CONFIG_SENSORS_LM92=y | ||||
| CONFIG_WATCHDOG=y | ||||
| CONFIG_GEF_WDT=y | ||||
| CONFIG_VIDEO_OUTPUT_CONTROL=m | ||||
| CONFIG_HID_DRAGONRISE=y | ||||
| CONFIG_HID_GYRATION=y | ||||
| CONFIG_HID_TWINHAN=y | ||||
| CONFIG_HID_ORTEK=y | ||||
| CONFIG_HID_PANTHERLORD=y | ||||
| CONFIG_HID_PETALYNX=y | ||||
| CONFIG_HID_SAMSUNG=y | ||||
| CONFIG_HID_SONY=y | ||||
| CONFIG_HID_SUNPLUS=y | ||||
| CONFIG_HID_GREENASIA=y | ||||
| CONFIG_HID_SMARTJOYPLUS=y | ||||
| CONFIG_HID_TOPSEED=y | ||||
| CONFIG_HID_THRUSTMASTER=y | ||||
| CONFIG_HID_ZEROPLUS=y | ||||
| CONFIG_USB=y | ||||
| CONFIG_USB_DEVICEFS=y | ||||
| CONFIG_USB_EHCI_HCD=y | ||||
| # CONFIG_USB_EHCI_TT_NEWSCHED is not set | ||||
| CONFIG_USB_EHCI_FSL=y | ||||
| CONFIG_USB_OHCI_HCD=y | ||||
| CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | ||||
| CONFIG_USB_OHCI_HCD_PPC_OF_LE=y | ||||
| CONFIG_USB_STORAGE=y | ||||
| CONFIG_EDAC=y | ||||
| CONFIG_EDAC_MM_EDAC=y | ||||
| CONFIG_EDAC_MPC85XX=y | ||||
| CONFIG_RTC_CLASS=y | ||||
| # CONFIG_RTC_INTF_PROC is not set | ||||
| CONFIG_RTC_DRV_RX8581=y | ||||
| CONFIG_DMADEVICES=y | ||||
| CONFIG_FSL_DMA=y | ||||
| # CONFIG_NET_DMA is not set | ||||
| CONFIG_EXT2_FS=y | ||||
| CONFIG_EXT2_FS_XATTR=y | ||||
| CONFIG_EXT2_FS_POSIX_ACL=y | ||||
| CONFIG_EXT3_FS=y | ||||
| # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||||
| CONFIG_EXT3_FS_POSIX_ACL=y | ||||
| CONFIG_EXT4_FS=y | ||||
| CONFIG_FUSE_FS=y | ||||
| CONFIG_ISO9660_FS=y | ||||
| CONFIG_JOLIET=y | ||||
| CONFIG_ZISOFS=y | ||||
| CONFIG_UDF_FS=y | ||||
| CONFIG_MSDOS_FS=y | ||||
| CONFIG_VFAT_FS=y | ||||
| CONFIG_FAT_DEFAULT_CODEPAGE=850 | ||||
| CONFIG_FAT_DEFAULT_IOCHARSET="ascii" | ||||
| CONFIG_NTFS_FS=y | ||||
| CONFIG_PROC_KCORE=y | ||||
| CONFIG_TMPFS=y | ||||
| CONFIG_JFFS2_FS=y | ||||
| CONFIG_NFS_FS=y | ||||
| CONFIG_NFS_V3=y | ||||
| CONFIG_NFS_V4=y | ||||
| CONFIG_ROOT_NFS=y | ||||
| CONFIG_NFSD=y | ||||
| CONFIG_NFSD_V4=y | ||||
| CONFIG_CIFS=m | ||||
| CONFIG_CIFS_XATTR=y | ||||
| CONFIG_CIFS_POSIX=y | ||||
| CONFIG_NLS_CODEPAGE_437=y | ||||
| CONFIG_NLS_CODEPAGE_737=m | ||||
| CONFIG_NLS_CODEPAGE_775=m | ||||
| CONFIG_NLS_CODEPAGE_850=y | ||||
| CONFIG_NLS_CODEPAGE_852=m | ||||
| CONFIG_NLS_CODEPAGE_855=m | ||||
| CONFIG_NLS_CODEPAGE_857=m | ||||
| CONFIG_NLS_CODEPAGE_860=m | ||||
| CONFIG_NLS_CODEPAGE_861=m | ||||
| CONFIG_NLS_CODEPAGE_862=m | ||||
| CONFIG_NLS_CODEPAGE_863=m | ||||
| CONFIG_NLS_CODEPAGE_864=m | ||||
| CONFIG_NLS_CODEPAGE_865=m | ||||
| CONFIG_NLS_CODEPAGE_866=m | ||||
| CONFIG_NLS_CODEPAGE_869=m | ||||
| CONFIG_NLS_CODEPAGE_936=m | ||||
| CONFIG_NLS_CODEPAGE_950=m | ||||
| CONFIG_NLS_CODEPAGE_932=m | ||||
| CONFIG_NLS_CODEPAGE_949=m | ||||
| CONFIG_NLS_CODEPAGE_874=m | ||||
| CONFIG_NLS_ISO8859_8=m | ||||
| CONFIG_NLS_CODEPAGE_1250=m | ||||
| CONFIG_NLS_CODEPAGE_1251=m | ||||
| CONFIG_NLS_ASCII=y | ||||
| CONFIG_NLS_ISO8859_1=y | ||||
| CONFIG_NLS_ISO8859_2=m | ||||
| CONFIG_NLS_ISO8859_3=m | ||||
| CONFIG_NLS_ISO8859_4=m | ||||
| CONFIG_NLS_ISO8859_5=m | ||||
| CONFIG_NLS_ISO8859_6=m | ||||
| CONFIG_NLS_ISO8859_7=m | ||||
| CONFIG_NLS_ISO8859_9=m | ||||
| CONFIG_NLS_ISO8859_13=m | ||||
| CONFIG_NLS_ISO8859_14=m | ||||
| CONFIG_NLS_ISO8859_15=y | ||||
| CONFIG_NLS_KOI8_R=m | ||||
| CONFIG_NLS_KOI8_U=m | ||||
| CONFIG_NLS_UTF8=y | ||||
| CONFIG_CRC_CCITT=y | ||||
| CONFIG_CRC_T10DIF=y | ||||
| CONFIG_LIBCRC32C=y | ||||
| CONFIG_MAGIC_SYSRQ=y | ||||
| CONFIG_SYSCTL_SYSCALL_CHECK=y | ||||
| CONFIG_CRYPTO_CBC=y | ||||
| CONFIG_CRYPTO_MD5=y | ||||
| CONFIG_CRYPTO_SHA256=m | ||||
| CONFIG_CRYPTO_SHA512=m | ||||
| CONFIG_CRYPTO_DES=y | ||||
| # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||||
| CONFIG_CRYPTO_DEV_TALITOS=y | ||||
| @ -131,6 +131,7 @@ CONFIG_I2C=y | ||||
| CONFIG_I2C_CHARDEV=y | ||||
| CONFIG_I2C_MPC=y | ||||
| CONFIG_GPIO_SYSFS=y | ||||
| CONFIG_GPIO_GE_FPGA=y | ||||
| CONFIG_SENSORS_LM90=y | ||||
| CONFIG_SENSORS_LM92=y | ||||
| CONFIG_WATCHDOG=y | ||||
|  | ||||
| @ -132,6 +132,7 @@ CONFIG_I2C=y | ||||
| CONFIG_I2C_CHARDEV=y | ||||
| CONFIG_I2C_MPC=y | ||||
| CONFIG_GPIO_SYSFS=y | ||||
| CONFIG_GPIO_GE_FPGA=y | ||||
| CONFIG_SENSORS_LM90=y | ||||
| CONFIG_SENSORS_LM92=y | ||||
| CONFIG_WATCHDOG=y | ||||
|  | ||||
| @ -183,6 +183,8 @@ CONFIG_NVRAM=y | ||||
| CONFIG_I2C=y | ||||
| CONFIG_I2C_CHARDEV=y | ||||
| CONFIG_I2C_MPC=y | ||||
| CONFIG_GPIO_SYSFS=y | ||||
| CONFIG_GPIO_GE_FPGA=y | ||||
| CONFIG_SENSORS_LM90=y | ||||
| CONFIG_SENSORS_LM92=y | ||||
| CONFIG_WATCHDOG=y | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| CONFIG_PPC_85xx=y | ||||
| CONFIG_PHYS_64BIT=y | ||||
| CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_POSIX_MQUEUE=y | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| CONFIG_PPC_85xx=y | ||||
| CONFIG_PHYS_64BIT=y | ||||
| CONFIG_SMP=y | ||||
| CONFIG_NR_CPUS=8 | ||||
| CONFIG_EXPERIMENTAL=y | ||||
|  | ||||
| @ -390,6 +390,10 @@ extern const char *powerpc_base_platform; | ||||
| 	    CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \ | ||||
| 	    CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ | ||||
| 	    CPU_FTR_DEBUG_LVL_EXC) | ||||
| #define CPU_FTRS_E6500	(CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | \ | ||||
| 	    CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \ | ||||
| 	    CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ | ||||
| 	    CPU_FTR_DEBUG_LVL_EXC) | ||||
| #define CPU_FTRS_GENERIC_32	(CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN) | ||||
| 
 | ||||
| /* 64-bit CPUs */ | ||||
| @ -442,7 +446,7 @@ extern const char *powerpc_base_platform; | ||||
| 
 | ||||
| #ifdef __powerpc64__ | ||||
| #ifdef CONFIG_PPC_BOOK3E | ||||
| #define CPU_FTRS_POSSIBLE	(CPU_FTRS_E5500 | CPU_FTRS_A2) | ||||
| #define CPU_FTRS_POSSIBLE	(CPU_FTRS_E6500 | CPU_FTRS_E5500 | CPU_FTRS_A2) | ||||
| #else | ||||
| #define CPU_FTRS_POSSIBLE	\ | ||||
| 	    (CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 |	\ | ||||
| @ -483,7 +487,7 @@ enum { | ||||
| #endif | ||||
| #ifdef CONFIG_E500 | ||||
| 	    CPU_FTRS_E500 | CPU_FTRS_E500_2 | CPU_FTRS_E500MC | | ||||
| 	    CPU_FTRS_E5500 | | ||||
| 	    CPU_FTRS_E5500 | CPU_FTRS_E6500 | | ||||
| #endif | ||||
| 	    0, | ||||
| }; | ||||
| @ -491,7 +495,7 @@ enum { | ||||
| 
 | ||||
| #ifdef __powerpc64__ | ||||
| #ifdef CONFIG_PPC_BOOK3E | ||||
| #define CPU_FTRS_ALWAYS		(CPU_FTRS_E5500 & CPU_FTRS_A2) | ||||
| #define CPU_FTRS_ALWAYS		(CPU_FTRS_E6500 & CPU_FTRS_E5500 & CPU_FTRS_A2) | ||||
| #else | ||||
| #define CPU_FTRS_ALWAYS		\ | ||||
| 	    (CPU_FTRS_POWER3 & CPU_FTRS_RS64 & CPU_FTRS_POWER4 &	\ | ||||
| @ -528,7 +532,7 @@ enum { | ||||
| #endif | ||||
| #ifdef CONFIG_E500 | ||||
| 	    CPU_FTRS_E500 & CPU_FTRS_E500_2 & CPU_FTRS_E500MC & | ||||
| 	    CPU_FTRS_E5500 & | ||||
| 	    CPU_FTRS_E5500 & CPU_FTRS_E6500 & | ||||
| #endif | ||||
| 	    CPU_FTRS_POSSIBLE, | ||||
| }; | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * Authors: Jeff Brown | ||||
|  *          Timur Tabi <timur@freescale.com> | ||||
|  * | ||||
|  * Copyright 2004,2007 Freescale Semiconductor, Inc | ||||
|  * Copyright 2004,2007,2012 Freescale Semiconductor, Inc | ||||
|  * | ||||
|  * 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 | ||||
| @ -114,6 +114,10 @@ struct ccsr_guts_86xx { | ||||
| 	__be32	srds2cr1;	/* 0x.0f44 - SerDes2 Control Register 0 */ | ||||
| } __attribute__ ((packed)); | ||||
| 
 | ||||
| 
 | ||||
| /* Alternate function signal multiplex control */ | ||||
| #define MPC85xx_PMUXCR_QE(x) (0x8000 >> (x)) | ||||
| 
 | ||||
| #ifdef CONFIG_PPC_86xx | ||||
| 
 | ||||
| #define CCSR_GUTS_DMACR_DEV_SSI	0	/* DMA controller/channel set to SSI */ | ||||
|  | ||||
							
								
								
									
										132
									
								
								arch/powerpc/include/asm/mpic_msgr.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								arch/powerpc/include/asm/mpic_msgr.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,132 @@ | ||||
| /*
 | ||||
|  * Copyright 2011-2012, Meador Inge, Mentor Graphics Corporation. | ||||
|  * | ||||
|  * 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; version 2 of the | ||||
|  * License. | ||||
|  * | ||||
|  */ | ||||
| 
 | ||||
| #ifndef _ASM_MPIC_MSGR_H | ||||
| #define _ASM_MPIC_MSGR_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/spinlock.h> | ||||
| 
 | ||||
| struct mpic_msgr { | ||||
| 	u32 __iomem *base; | ||||
| 	u32 __iomem *mer; | ||||
| 	int irq; | ||||
| 	unsigned char in_use; | ||||
| 	raw_spinlock_t lock; | ||||
| 	int num; | ||||
| }; | ||||
| 
 | ||||
| /* Get a message register
 | ||||
|  * | ||||
|  * @reg_num:	the MPIC message register to get | ||||
|  * | ||||
|  * A pointer to the message register is returned.  If | ||||
|  * the message register asked for is already in use, then | ||||
|  * EBUSY is returned.  If the number given is not associated | ||||
|  * with an actual message register, then ENODEV is returned. | ||||
|  * Successfully getting the register marks it as in use. | ||||
|  */ | ||||
| extern struct mpic_msgr *mpic_msgr_get(unsigned int reg_num); | ||||
| 
 | ||||
| /* Relinquish a message register
 | ||||
|  * | ||||
|  * @msgr:	the message register to return | ||||
|  * | ||||
|  * Disables the given message register and marks it as free. | ||||
|  * After this call has completed successully the message | ||||
|  * register is available to be acquired by a call to | ||||
|  * mpic_msgr_get. | ||||
|  */ | ||||
| extern void mpic_msgr_put(struct mpic_msgr *msgr); | ||||
| 
 | ||||
| /* Enable a message register
 | ||||
|  * | ||||
|  * @msgr:	the message register to enable | ||||
|  * | ||||
|  * The given message register is enabled for sending | ||||
|  * messages. | ||||
|  */ | ||||
| extern void mpic_msgr_enable(struct mpic_msgr *msgr); | ||||
| 
 | ||||
| /* Disable a message register
 | ||||
|  * | ||||
|  * @msgr:	the message register to disable | ||||
|  * | ||||
|  * The given message register is disabled for sending | ||||
|  * messages. | ||||
|  */ | ||||
| extern void mpic_msgr_disable(struct mpic_msgr *msgr); | ||||
| 
 | ||||
| /* Write a message to a message register
 | ||||
|  * | ||||
|  * @msgr:	the message register to write to | ||||
|  * @message:	the message to write | ||||
|  * | ||||
|  * The given 32-bit message is written to the given message | ||||
|  * register.  Writing to an enabled message registers fires | ||||
|  * an interrupt. | ||||
|  */ | ||||
| static inline void mpic_msgr_write(struct mpic_msgr *msgr, u32 message) | ||||
| { | ||||
| 	out_be32(msgr->base, message); | ||||
| } | ||||
| 
 | ||||
| /* Read a message from a message register
 | ||||
|  * | ||||
|  * @msgr:	the message register to read from | ||||
|  * | ||||
|  * Returns the 32-bit value currently in the given message register. | ||||
|  * Upon reading the register any interrupts for that register are | ||||
|  * cleared. | ||||
|  */ | ||||
| static inline u32 mpic_msgr_read(struct mpic_msgr *msgr) | ||||
| { | ||||
| 	return in_be32(msgr->base); | ||||
| } | ||||
| 
 | ||||
| /* Clear a message register
 | ||||
|  * | ||||
|  * @msgr:	the message register to clear | ||||
|  * | ||||
|  * Clears any interrupts associated with the given message register. | ||||
|  */ | ||||
| static inline void mpic_msgr_clear(struct mpic_msgr *msgr) | ||||
| { | ||||
| 	(void) mpic_msgr_read(msgr); | ||||
| } | ||||
| 
 | ||||
| /* Set the destination CPU for the message register
 | ||||
|  * | ||||
|  * @msgr:	the message register whose destination is to be set | ||||
|  * @cpu_num:	the Linux CPU number to bind the message register to | ||||
|  * | ||||
|  * Note that the CPU number given is the CPU number used by the kernel | ||||
|  * and *not* the actual hardware CPU number. | ||||
|  */ | ||||
| static inline void mpic_msgr_set_destination(struct mpic_msgr *msgr, | ||||
| 					     u32 cpu_num) | ||||
| { | ||||
| 	out_be32(msgr->base, 1 << get_hard_smp_processor_id(cpu_num)); | ||||
| } | ||||
| 
 | ||||
| /* Get the IRQ number for the message register
 | ||||
|  * @msgr:	the message register whose IRQ is to be returned | ||||
|  * | ||||
|  * Returns the IRQ number associated with the given message register. | ||||
|  * NO_IRQ is returned if this message register is not capable of | ||||
|  * receiving interrupts.  What message register can and cannot receive | ||||
|  * interrupts is specified in the device tree for the system. | ||||
|  */ | ||||
| static inline int mpic_msgr_get_irq(struct mpic_msgr *msgr) | ||||
| { | ||||
| 	return msgr->irq; | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
| @ -62,6 +62,7 @@ | ||||
| #define SPRN_DVC2	0x13F	/* Data Value Compare Register 2 */ | ||||
| #define SPRN_MAS8	0x155	/* MMU Assist Register 8 */ | ||||
| #define SPRN_TLB0PS	0x158	/* TLB 0 Page Size Register */ | ||||
| #define SPRN_TLB1PS	0x159	/* TLB 1 Page Size Register */ | ||||
| #define SPRN_MAS5_MAS6	0x15c	/* MMU Assist Register 5 || 6 */ | ||||
| #define SPRN_MAS8_MAS1	0x15d	/* MMU Assist Register 8 || 1 */ | ||||
| #define SPRN_EPTCFG	0x15e	/* Embedded Page Table Config */ | ||||
|  | ||||
| @ -2019,6 +2019,24 @@ static struct cpu_spec __initdata cpu_specs[] = { | ||||
| 		.machine_check		= machine_check_e500mc, | ||||
| 		.platform		= "ppce5500", | ||||
| 	}, | ||||
| 	{	/* e6500 */ | ||||
| 		.pvr_mask		= 0xffff0000, | ||||
| 		.pvr_value		= 0x80400000, | ||||
| 		.cpu_name		= "e6500", | ||||
| 		.cpu_features		= CPU_FTRS_E6500, | ||||
| 		.cpu_user_features	= COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, | ||||
| 		.mmu_features		= MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | | ||||
| 			MMU_FTR_USE_TLBILX, | ||||
| 		.icache_bsize		= 64, | ||||
| 		.dcache_bsize		= 64, | ||||
| 		.num_pmcs		= 4, | ||||
| 		.oprofile_cpu_type	= "ppc/e6500", | ||||
| 		.oprofile_type		= PPC_OPROFILE_FSL_EMB, | ||||
| 		.cpu_setup		= __setup_cpu_e5500, | ||||
| 		.cpu_restore		= __restore_cpu_e5500, | ||||
| 		.machine_check		= machine_check_e500mc, | ||||
| 		.platform		= "ppce6500", | ||||
| 	}, | ||||
| #ifdef CONFIG_PPC32 | ||||
| 	{	/* default match */ | ||||
| 		.pvr_mask		= 0x00000000, | ||||
|  | ||||
| @ -149,12 +149,19 @@ static void settlbcam(int index, unsigned long virt, phys_addr_t phys, | ||||
| unsigned long calc_cam_sz(unsigned long ram, unsigned long virt, | ||||
| 			  phys_addr_t phys) | ||||
| { | ||||
| 	unsigned int camsize = __ilog2(ram) & ~1U; | ||||
| 	unsigned int align = __ffs(virt | phys) & ~1U; | ||||
| 	unsigned long max_cam = (mfspr(SPRN_TLB1CFG) >> 16) & 0xf; | ||||
| 	unsigned int camsize = __ilog2(ram); | ||||
| 	unsigned int align = __ffs(virt | phys); | ||||
| 	unsigned long max_cam; | ||||
| 
 | ||||
| 	/* Convert (4^max) kB to (2^max) bytes */ | ||||
| 	max_cam = max_cam * 2 + 10; | ||||
| 	if ((mfspr(SPRN_MMUCFG) & MMUCFG_MAVN) == MMUCFG_MAVN_V1) { | ||||
| 		/* Convert (4^max) kB to (2^max) bytes */ | ||||
| 		max_cam = ((mfspr(SPRN_TLB1CFG) >> 16) & 0xf) * 2 + 10; | ||||
| 		camsize &= ~1U; | ||||
| 		align &= ~1U; | ||||
| 	} else { | ||||
| 		/* Convert (2^max) kB to (2^max) bytes */ | ||||
| 		max_cam = __ilog2(mfspr(SPRN_TLB1PS)) + 10; | ||||
| 	} | ||||
| 
 | ||||
| 	if (camsize > align) | ||||
| 		camsize = align; | ||||
|  | ||||
| @ -6,6 +6,7 @@ menuconfig FSL_SOC_BOOKE | ||||
| 	select MPIC | ||||
| 	select PPC_PCI_CHOICE | ||||
| 	select FSL_PCI if PCI | ||||
| 	select SERIAL_8250_EXTENDED if SERIAL_8250 | ||||
| 	select SERIAL_8250_SHARE_IRQ if SERIAL_8250 | ||||
| 	default y | ||||
| 
 | ||||
| @ -13,6 +14,15 @@ if FSL_SOC_BOOKE | ||||
| 
 | ||||
| if PPC32 | ||||
| 
 | ||||
| config FSL_85XX_CACHE_SRAM | ||||
| 	bool | ||||
| 	select PPC_LIB_RHEAP | ||||
| 	help | ||||
| 	  When selected, this option enables cache-sram support | ||||
| 	  for memory allocation on P1/P2 QorIQ platforms. | ||||
| 	  cache-sram-size and cache-sram-offset kernel boot | ||||
| 	  parameters should be passed when this option is enabled. | ||||
| 
 | ||||
| config MPC8540_ADS | ||||
| 	bool "Freescale MPC8540 ADS" | ||||
| 	select DEFAULT_UIMAGE | ||||
| @ -30,6 +40,7 @@ config MPC85xx_CDS | ||||
| 	bool "Freescale MPC85xx CDS" | ||||
| 	select DEFAULT_UIMAGE | ||||
| 	select PPC_I8259 | ||||
| 	select HAS_RAPIDIO | ||||
| 	help | ||||
| 	  This option enables support for the MPC85xx CDS board | ||||
| 
 | ||||
| @ -80,7 +91,6 @@ config P1010_RDB | ||||
| config P1022_DS | ||||
| 	bool "Freescale P1022 DS" | ||||
| 	select DEFAULT_UIMAGE | ||||
| 	select PHYS_64BIT	# The DTS has 36-bit addresses | ||||
| 	select SWIOTLB | ||||
| 	help | ||||
| 	  This option enables support for the Freescale P1022DS reference board. | ||||
| @ -171,6 +181,21 @@ config SBC8560 | ||||
| 	help | ||||
| 	  This option enables support for the Wind River SBC8560 board | ||||
| 
 | ||||
| config GE_IMP3A | ||||
| 	bool "GE Intelligent Platforms IMP3A" | ||||
| 	select DEFAULT_UIMAGE | ||||
| 	select SWIOTLB | ||||
| 	select MMIO_NVRAM | ||||
| 	select GENERIC_GPIO | ||||
| 	select ARCH_REQUIRE_GPIOLIB | ||||
| 	select GE_FPGA | ||||
| 	help | ||||
| 	  This option enables support for the GE Intelligent Platforms IMP3A | ||||
| 	  board. | ||||
| 
 | ||||
| 	  This board is a 3U CompactPCI Single Board Computer with a Freescale | ||||
| 	  P2020 processor. | ||||
| 
 | ||||
| config P2041_RDB | ||||
| 	bool "Freescale P2041 RDB" | ||||
| 	select DEFAULT_UIMAGE | ||||
|  | ||||
| @ -27,3 +27,4 @@ obj-$(CONFIG_SBC8548)     += sbc8548.o | ||||
| obj-$(CONFIG_SOCRATES)    += socrates.o socrates_fpga_pic.o | ||||
| obj-$(CONFIG_KSI8560)	  += ksi8560.o | ||||
| obj-$(CONFIG_XES_MPC85xx) += xes_mpc85xx.o | ||||
| obj-$(CONFIG_GE_IMP3A)	  += ge_imp3a.o | ||||
|  | ||||
							
								
								
									
										246
									
								
								arch/powerpc/platforms/85xx/ge_imp3a.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										246
									
								
								arch/powerpc/platforms/85xx/ge_imp3a.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,246 @@ | ||||
| /*
 | ||||
|  * GE IMP3A Board Setup | ||||
|  * | ||||
|  * Author Martyn Welch <martyn.welch@ge.com> | ||||
|  * | ||||
|  * Copyright 2010 GE Intelligent Platforms Embedded Systems, Inc. | ||||
|  * | ||||
|  * 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. | ||||
|  * | ||||
|  * Based on: mpc85xx_ds.c (MPC85xx DS Board Setup) | ||||
|  * Copyright 2007 Freescale Semiconductor Inc. | ||||
|  */ | ||||
| 
 | ||||
| #include <linux/stddef.h> | ||||
| #include <linux/kernel.h> | ||||
| #include <linux/pci.h> | ||||
| #include <linux/kdev_t.h> | ||||
| #include <linux/delay.h> | ||||
| #include <linux/seq_file.h> | ||||
| #include <linux/interrupt.h> | ||||
| #include <linux/of_platform.h> | ||||
| #include <linux/memblock.h> | ||||
| 
 | ||||
| #include <asm/system.h> | ||||
| #include <asm/time.h> | ||||
| #include <asm/machdep.h> | ||||
| #include <asm/pci-bridge.h> | ||||
| #include <mm/mmu_decl.h> | ||||
| #include <asm/prom.h> | ||||
| #include <asm/udbg.h> | ||||
| #include <asm/mpic.h> | ||||
| #include <asm/swiotlb.h> | ||||
| #include <asm/nvram.h> | ||||
| 
 | ||||
| #include <sysdev/fsl_soc.h> | ||||
| #include <sysdev/fsl_pci.h> | ||||
| #include "smp.h" | ||||
| 
 | ||||
| #include "mpc85xx.h" | ||||
| #include <sysdev/ge/ge_pic.h> | ||||
| 
 | ||||
| void __iomem *imp3a_regs; | ||||
| 
 | ||||
| void __init ge_imp3a_pic_init(void) | ||||
| { | ||||
| 	struct mpic *mpic; | ||||
| 	struct device_node *np; | ||||
| 	struct device_node *cascade_node = NULL; | ||||
| 	unsigned long root = of_get_flat_dt_root(); | ||||
| 
 | ||||
| 	if (of_flat_dt_is_compatible(root, "fsl,MPC8572DS-CAMP")) { | ||||
| 		mpic = mpic_alloc(NULL, 0, | ||||
| 			MPIC_NO_RESET | | ||||
| 			MPIC_BIG_ENDIAN | | ||||
| 			MPIC_SINGLE_DEST_CPU, | ||||
| 			0, 256, " OpenPIC  "); | ||||
| 	} else { | ||||
| 		mpic = mpic_alloc(NULL, 0, | ||||
| 			  MPIC_BIG_ENDIAN | | ||||
| 			  MPIC_SINGLE_DEST_CPU, | ||||
| 			0, 256, " OpenPIC  "); | ||||
| 	} | ||||
| 
 | ||||
| 	BUG_ON(mpic == NULL); | ||||
| 	mpic_init(mpic); | ||||
| 	/*
 | ||||
| 	 * There is a simple interrupt handler in the main FPGA, this needs | ||||
| 	 * to be cascaded into the MPIC | ||||
| 	 */ | ||||
| 	for_each_node_by_type(np, "interrupt-controller") | ||||
| 		if (of_device_is_compatible(np, "gef,fpga-pic-1.00")) { | ||||
| 			cascade_node = np; | ||||
| 			break; | ||||
| 		} | ||||
| 
 | ||||
| 	if (cascade_node == NULL) { | ||||
| 		printk(KERN_WARNING "IMP3A: No FPGA PIC\n"); | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	gef_pic_init(cascade_node); | ||||
| 	of_node_put(cascade_node); | ||||
| } | ||||
| 
 | ||||
| #ifdef CONFIG_PCI | ||||
| static int primary_phb_addr; | ||||
| #endif	/* CONFIG_PCI */ | ||||
| 
 | ||||
| /*
 | ||||
|  * Setup the architecture | ||||
|  */ | ||||
| static void __init ge_imp3a_setup_arch(void) | ||||
| { | ||||
| 	struct device_node *regs; | ||||
| #ifdef CONFIG_PCI | ||||
| 	struct device_node *np; | ||||
| 	struct pci_controller *hose; | ||||
| #endif | ||||
| 	dma_addr_t max = 0xffffffff; | ||||
| 
 | ||||
| 	if (ppc_md.progress) | ||||
| 		ppc_md.progress("ge_imp3a_setup_arch()", 0); | ||||
| 
 | ||||
| #ifdef CONFIG_PCI | ||||
| 	for_each_node_by_type(np, "pci") { | ||||
| 		if (of_device_is_compatible(np, "fsl,mpc8540-pci") || | ||||
| 		    of_device_is_compatible(np, "fsl,mpc8548-pcie") || | ||||
| 		    of_device_is_compatible(np, "fsl,p2020-pcie")) { | ||||
| 			struct resource rsrc; | ||||
| 			of_address_to_resource(np, 0, &rsrc); | ||||
| 			if ((rsrc.start & 0xfffff) == primary_phb_addr) | ||||
| 				fsl_add_bridge(np, 1); | ||||
| 			else | ||||
| 				fsl_add_bridge(np, 0); | ||||
| 
 | ||||
| 			hose = pci_find_hose_for_OF_device(np); | ||||
| 			max = min(max, hose->dma_window_base_cur + | ||||
| 					hose->dma_window_size); | ||||
| 		} | ||||
| 	} | ||||
| #endif | ||||
| 
 | ||||
| 	mpc85xx_smp_init(); | ||||
| 
 | ||||
| #ifdef CONFIG_SWIOTLB | ||||
| 	if (memblock_end_of_DRAM() > max) { | ||||
| 		ppc_swiotlb_enable = 1; | ||||
| 		set_pci_dma_ops(&swiotlb_dma_ops); | ||||
| 		ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb; | ||||
| 	} | ||||
| #endif | ||||
| 
 | ||||
| 	/* Remap basic board registers */ | ||||
| 	regs = of_find_compatible_node(NULL, NULL, "ge,imp3a-fpga-regs"); | ||||
| 	if (regs) { | ||||
| 		imp3a_regs = of_iomap(regs, 0); | ||||
| 		if (imp3a_regs == NULL) | ||||
| 			printk(KERN_WARNING "Unable to map board registers\n"); | ||||
| 		of_node_put(regs); | ||||
| 	} | ||||
| 
 | ||||
| #if defined(CONFIG_MMIO_NVRAM) | ||||
| 	mmio_nvram_init(); | ||||
| #endif | ||||
| 
 | ||||
| 	printk(KERN_INFO "GE Intelligent Platforms IMP3A 3U cPCI SBC\n"); | ||||
| } | ||||
| 
 | ||||
| /* Return the PCB revision */ | ||||
| static unsigned int ge_imp3a_get_pcb_rev(void) | ||||
| { | ||||
| 	unsigned int reg; | ||||
| 
 | ||||
| 	reg = ioread16(imp3a_regs); | ||||
| 	return (reg >> 8) & 0xff; | ||||
| } | ||||
| 
 | ||||
| /* Return the board (software) revision */ | ||||
| static unsigned int ge_imp3a_get_board_rev(void) | ||||
| { | ||||
| 	unsigned int reg; | ||||
| 
 | ||||
| 	reg = ioread16(imp3a_regs + 0x2); | ||||
| 	return reg & 0xff; | ||||
| } | ||||
| 
 | ||||
| /* Return the FPGA revision */ | ||||
| static unsigned int ge_imp3a_get_fpga_rev(void) | ||||
| { | ||||
| 	unsigned int reg; | ||||
| 
 | ||||
| 	reg = ioread16(imp3a_regs + 0x2); | ||||
| 	return (reg >> 8) & 0xff; | ||||
| } | ||||
| 
 | ||||
| /* Return compactPCI Geographical Address */ | ||||
| static unsigned int ge_imp3a_get_cpci_geo_addr(void) | ||||
| { | ||||
| 	unsigned int reg; | ||||
| 
 | ||||
| 	reg = ioread16(imp3a_regs + 0x6); | ||||
| 	return (reg & 0x0f00) >> 8; | ||||
| } | ||||
| 
 | ||||
| /* Return compactPCI System Controller Status */ | ||||
| static unsigned int ge_imp3a_get_cpci_is_syscon(void) | ||||
| { | ||||
| 	unsigned int reg; | ||||
| 
 | ||||
| 	reg = ioread16(imp3a_regs + 0x6); | ||||
| 	return reg & (1 << 12); | ||||
| } | ||||
| 
 | ||||
| static void ge_imp3a_show_cpuinfo(struct seq_file *m) | ||||
| { | ||||
| 	seq_printf(m, "Vendor\t\t: GE Intelligent Platforms\n"); | ||||
| 
 | ||||
| 	seq_printf(m, "Revision\t: %u%c\n", ge_imp3a_get_pcb_rev(), | ||||
| 		('A' + ge_imp3a_get_board_rev() - 1)); | ||||
| 
 | ||||
| 	seq_printf(m, "FPGA Revision\t: %u\n", ge_imp3a_get_fpga_rev()); | ||||
| 
 | ||||
| 	seq_printf(m, "cPCI geo. addr\t: %u\n", ge_imp3a_get_cpci_geo_addr()); | ||||
| 
 | ||||
| 	seq_printf(m, "cPCI syscon\t: %s\n", | ||||
| 		ge_imp3a_get_cpci_is_syscon() ? "yes" : "no"); | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Called very early, device-tree isn't unflattened | ||||
|  */ | ||||
| static int __init ge_imp3a_probe(void) | ||||
| { | ||||
| 	unsigned long root = of_get_flat_dt_root(); | ||||
| 
 | ||||
| 	if (of_flat_dt_is_compatible(root, "ge,IMP3A")) { | ||||
| #ifdef CONFIG_PCI | ||||
| 		primary_phb_addr = 0x9000; | ||||
| #endif | ||||
| 		return 1; | ||||
| 	} | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| machine_device_initcall(ge_imp3a, mpc85xx_common_publish_devices); | ||||
| 
 | ||||
| machine_arch_initcall(ge_imp3a, swiotlb_setup_bus_notifier); | ||||
| 
 | ||||
| define_machine(ge_imp3a) { | ||||
| 	.name			= "GE_IMP3A", | ||||
| 	.probe			= ge_imp3a_probe, | ||||
| 	.setup_arch		= ge_imp3a_setup_arch, | ||||
| 	.init_IRQ		= ge_imp3a_pic_init, | ||||
| 	.show_cpuinfo		= ge_imp3a_show_cpuinfo, | ||||
| #ifdef CONFIG_PCI | ||||
| 	.pcibios_fixup_bus	= fsl_pcibios_fixup_bus, | ||||
| #endif | ||||
| 	.get_irq		= mpic_get_irq, | ||||
| 	.restart		= fsl_rstcr_restart, | ||||
| 	.calibrate_decr		= generic_calibrate_decr, | ||||
| 	.progress		= udbg_progress, | ||||
| }; | ||||
| @ -3,7 +3,7 @@ | ||||
|  * | ||||
|  * Maintained by Kumar Gala (see MAINTAINERS for contact information) | ||||
|  * | ||||
|  * Copyright 2005 Freescale Semiconductor Inc. | ||||
|  * Copyright 2005, 2011-2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * 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 | ||||
| @ -48,17 +48,24 @@ | ||||
| 
 | ||||
| #include "mpc85xx.h" | ||||
| 
 | ||||
| /* CADMUS info */ | ||||
| /* xxx - galak, move into device tree */ | ||||
| #define CADMUS_BASE (0xf8004000) | ||||
| #define CADMUS_SIZE (256) | ||||
| #define CM_VER	(0) | ||||
| #define CM_CSR	(1) | ||||
| #define CM_RST	(2) | ||||
| /*
 | ||||
|  * The CDS board contains an FPGA/CPLD called "Cadmus", which collects | ||||
|  * various logic and performs system control functions. | ||||
|  * Here is the FPGA/CPLD register map. | ||||
|  */ | ||||
| struct cadmus_reg { | ||||
| 	u8 cm_ver;		/* Board version */ | ||||
| 	u8 cm_csr;		/* General control/status */ | ||||
| 	u8 cm_rst;		/* Reset control */ | ||||
| 	u8 cm_hsclk;	/* High speed clock */ | ||||
| 	u8 cm_hsxclk;	/* High speed clock extended */ | ||||
| 	u8 cm_led;		/* LED data */ | ||||
| 	u8 cm_pci;		/* PCI control/status */ | ||||
| 	u8 cm_dma;		/* DMA control */ | ||||
| 	u8 res[248];	/* Total 256 bytes */ | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| static int cds_pci_slot = 2; | ||||
| static volatile u8 *cadmus; | ||||
| static struct cadmus_reg *cadmus; | ||||
| 
 | ||||
| #ifdef CONFIG_PCI | ||||
| 
 | ||||
| @ -158,6 +165,33 @@ DECLARE_PCI_FIXUP_EARLY(0x1957, 0x3fff, skip_fake_bridge); | ||||
| DECLARE_PCI_FIXUP_EARLY(0x3fff, 0x1957, skip_fake_bridge); | ||||
| DECLARE_PCI_FIXUP_EARLY(0xff3f, 0x5719, skip_fake_bridge); | ||||
| 
 | ||||
| #define PCI_DEVICE_ID_IDT_TSI310	0x01a7 | ||||
| 
 | ||||
| /*
 | ||||
|  * Fix Tsi310 PCI-X bridge resource. | ||||
|  * Force the bridge to open a window from 0x0000-0x1fff in PCI I/O space. | ||||
|  * This allows legacy I/O(i8259, etc) on the VIA southbridge to be accessed. | ||||
|  */ | ||||
| void mpc85xx_cds_fixup_bus(struct pci_bus *bus) | ||||
| { | ||||
| 	struct pci_dev *dev = bus->self; | ||||
| 	struct resource *res = bus->resource[0]; | ||||
| 
 | ||||
| 	if (dev != NULL && | ||||
| 	    dev->vendor == PCI_VENDOR_ID_IBM && | ||||
| 	    dev->device == PCI_DEVICE_ID_IDT_TSI310) { | ||||
| 		if (res) { | ||||
| 			res->start = 0; | ||||
| 			res->end   = 0x1fff; | ||||
| 			res->flags = IORESOURCE_IO; | ||||
| 			pr_info("mpc85xx_cds: PCI bridge resource fixup applied\n"); | ||||
| 			pr_info("mpc85xx_cds: %pR\n", res); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	fsl_pcibios_fixup_bus(bus); | ||||
| } | ||||
| 
 | ||||
| #ifdef CONFIG_PPC_I8259 | ||||
| static void mpc85xx_8259_cascade_handler(unsigned int irq, | ||||
| 					 struct irq_desc *desc) | ||||
| @ -248,20 +282,30 @@ machine_device_initcall(mpc85xx_cds, mpc85xx_cds_8259_attach); | ||||
|  */ | ||||
| static void __init mpc85xx_cds_setup_arch(void) | ||||
| { | ||||
| #ifdef CONFIG_PCI | ||||
| 	struct device_node *np; | ||||
| #endif | ||||
| 	int cds_pci_slot; | ||||
| 
 | ||||
| 	if (ppc_md.progress) | ||||
| 		ppc_md.progress("mpc85xx_cds_setup_arch()", 0); | ||||
| 
 | ||||
| 	cadmus = ioremap(CADMUS_BASE, CADMUS_SIZE); | ||||
| 	cds_pci_slot = ((cadmus[CM_CSR] >> 6) & 0x3) + 1; | ||||
| 	np = of_find_compatible_node(NULL, NULL, "fsl,mpc8548cds-fpga"); | ||||
| 	if (!np) { | ||||
| 		pr_err("Could not find FPGA node.\n"); | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	cadmus = of_iomap(np, 0); | ||||
| 	of_node_put(np); | ||||
| 	if (!cadmus) { | ||||
| 		pr_err("Fail to map FPGA area.\n"); | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	if (ppc_md.progress) { | ||||
| 		char buf[40]; | ||||
| 		cds_pci_slot = ((in_8(&cadmus->cm_csr) >> 6) & 0x3) + 1; | ||||
| 		snprintf(buf, 40, "CDS Version = 0x%x in slot %d\n", | ||||
| 				cadmus[CM_VER], cds_pci_slot); | ||||
| 				in_8(&cadmus->cm_ver), cds_pci_slot); | ||||
| 		ppc_md.progress(buf, 0); | ||||
| 	} | ||||
| 
 | ||||
| @ -291,7 +335,8 @@ static void mpc85xx_cds_show_cpuinfo(struct seq_file *m) | ||||
| 	svid = mfspr(SPRN_SVR); | ||||
| 
 | ||||
| 	seq_printf(m, "Vendor\t\t: Freescale Semiconductor\n"); | ||||
| 	seq_printf(m, "Machine\t\t: MPC85xx CDS (0x%x)\n", cadmus[CM_VER]); | ||||
| 	seq_printf(m, "Machine\t\t: MPC85xx CDS (0x%x)\n", | ||||
| 			in_8(&cadmus->cm_ver)); | ||||
| 	seq_printf(m, "PVR\t\t: 0x%x\n", pvid); | ||||
| 	seq_printf(m, "SVR\t\t: 0x%x\n", svid); | ||||
| 
 | ||||
| @ -322,7 +367,7 @@ define_machine(mpc85xx_cds) { | ||||
| 	.get_irq	= mpic_get_irq, | ||||
| #ifdef CONFIG_PCI | ||||
| 	.restart	= mpc85xx_cds_restart, | ||||
| 	.pcibios_fixup_bus	= fsl_pcibios_fixup_bus, | ||||
| 	.pcibios_fixup_bus	= mpc85xx_cds_fixup_bus, | ||||
| #else | ||||
| 	.restart	= fsl_rstcr_restart, | ||||
| #endif | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| /*
 | ||||
|  * Copyright (C) Freescale Semicondutor, Inc. 2006-2010. All rights reserved. | ||||
|  * Copyright (C) 2006-2010, 2012 Freescale Semicondutor, Inc. | ||||
|  * All rights reserved. | ||||
|  * | ||||
|  * Author: Andy Fleming <afleming@freescale.com> | ||||
|  * | ||||
| @ -51,6 +52,7 @@ | ||||
| #include <asm/qe_ic.h> | ||||
| #include <asm/mpic.h> | ||||
| #include <asm/swiotlb.h> | ||||
| #include <asm/fsl_guts.h> | ||||
| #include "smp.h" | ||||
| 
 | ||||
| #include "mpc85xx.h" | ||||
| @ -268,34 +270,27 @@ static void __init mpc85xx_mds_qe_init(void) | ||||
| 	mpc85xx_mds_reset_ucc_phys(); | ||||
| 
 | ||||
| 	if (machine_is(p1021_mds)) { | ||||
| #define MPC85xx_PMUXCR_OFFSET           0x60 | ||||
| #define MPC85xx_PMUXCR_QE0              0x00008000 | ||||
| #define MPC85xx_PMUXCR_QE3              0x00001000 | ||||
| #define MPC85xx_PMUXCR_QE9              0x00000040 | ||||
| #define MPC85xx_PMUXCR_QE12             0x00000008 | ||||
| 		static __be32 __iomem *pmuxcr; | ||||
| 
 | ||||
| 		struct ccsr_guts_85xx __iomem *guts; | ||||
| 
 | ||||
| 		np = of_find_node_by_name(NULL, "global-utilities"); | ||||
| 
 | ||||
| 		if (np) { | ||||
| 			pmuxcr = of_iomap(np, 0) + MPC85xx_PMUXCR_OFFSET; | ||||
| 
 | ||||
| 			if (!pmuxcr) | ||||
| 				printk(KERN_EMERG "Error: Alternate function" | ||||
| 					" signal multiplex control register not" | ||||
| 					" mapped!\n"); | ||||
| 			else | ||||
| 			guts = of_iomap(np, 0); | ||||
| 			if (!guts) | ||||
| 				pr_err("mpc85xx-rdb: could not map global utilities register\n"); | ||||
| 			else{ | ||||
| 			/* P1021 has pins muxed for QE and other functions. To
 | ||||
| 			 * enable QE UEC mode, we need to set bit QE0 for UCC1 | ||||
| 			 * in Eth mode, QE0 and QE3 for UCC5 in Eth mode, QE9 | ||||
| 			 * and QE12 for QE MII management signals in PMUXCR | ||||
| 			 * register. | ||||
| 			 */ | ||||
| 				setbits32(pmuxcr, MPC85xx_PMUXCR_QE0 | | ||||
| 						  MPC85xx_PMUXCR_QE3 | | ||||
| 						  MPC85xx_PMUXCR_QE9 | | ||||
| 						  MPC85xx_PMUXCR_QE12); | ||||
| 
 | ||||
| 				setbits32(&guts->pmuxcr, MPC85xx_PMUXCR_QE(0) | | ||||
| 						  MPC85xx_PMUXCR_QE(3) | | ||||
| 						  MPC85xx_PMUXCR_QE(9) | | ||||
| 						  MPC85xx_PMUXCR_QE(12)); | ||||
| 				iounmap(guts); | ||||
| 			} | ||||
| 			of_node_put(np); | ||||
| 		} | ||||
| 
 | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /*
 | ||||
|  * MPC85xx RDB Board Setup | ||||
|  * | ||||
|  * Copyright 2009 Freescale Semiconductor Inc. | ||||
|  * Copyright 2009,2012 Freescale Semiconductor Inc. | ||||
|  * | ||||
|  * 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 | ||||
| @ -26,6 +26,9 @@ | ||||
| #include <asm/prom.h> | ||||
| #include <asm/udbg.h> | ||||
| #include <asm/mpic.h> | ||||
| #include <asm/qe.h> | ||||
| #include <asm/qe_ic.h> | ||||
| #include <asm/fsl_guts.h> | ||||
| 
 | ||||
| #include <sysdev/fsl_soc.h> | ||||
| #include <sysdev/fsl_pci.h> | ||||
| @ -47,6 +50,10 @@ void __init mpc85xx_rdb_pic_init(void) | ||||
| 	struct mpic *mpic; | ||||
| 	unsigned long root = of_get_flat_dt_root(); | ||||
| 
 | ||||
| #ifdef CONFIG_QUICC_ENGINE | ||||
| 	struct device_node *np; | ||||
| #endif | ||||
| 
 | ||||
| 	if (of_flat_dt_is_compatible(root, "fsl,MPC85XXRDB-CAMP")) { | ||||
| 		mpic = mpic_alloc(NULL, 0, MPIC_NO_RESET | | ||||
| 			MPIC_BIG_ENDIAN | | ||||
| @ -61,6 +68,18 @@ void __init mpc85xx_rdb_pic_init(void) | ||||
| 
 | ||||
| 	BUG_ON(mpic == NULL); | ||||
| 	mpic_init(mpic); | ||||
| 
 | ||||
| #ifdef CONFIG_QUICC_ENGINE | ||||
| 	np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic"); | ||||
| 	if (np) { | ||||
| 		qe_ic_init(np, 0, qe_ic_cascade_low_mpic, | ||||
| 				qe_ic_cascade_high_mpic); | ||||
| 		of_node_put(np); | ||||
| 
 | ||||
| 	} else | ||||
| 		pr_err("%s: Could not find qe-ic node\n", __func__); | ||||
| #endif | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
| @ -68,7 +87,7 @@ void __init mpc85xx_rdb_pic_init(void) | ||||
|  */ | ||||
| static void __init mpc85xx_rdb_setup_arch(void) | ||||
| { | ||||
| #ifdef CONFIG_PCI | ||||
| #if defined(CONFIG_PCI) || defined(CONFIG_QUICC_ENGINE) | ||||
| 	struct device_node *np; | ||||
| #endif | ||||
| 
 | ||||
| @ -84,11 +103,73 @@ static void __init mpc85xx_rdb_setup_arch(void) | ||||
| #endif | ||||
| 
 | ||||
| 	mpc85xx_smp_init(); | ||||
| 
 | ||||
| #ifdef CONFIG_QUICC_ENGINE | ||||
| 	np = of_find_compatible_node(NULL, NULL, "fsl,qe"); | ||||
| 	if (!np) { | ||||
| 		pr_err("%s: Could not find Quicc Engine node\n", __func__); | ||||
| 		goto qe_fail; | ||||
| 	} | ||||
| 
 | ||||
| 	qe_reset(); | ||||
| 	of_node_put(np); | ||||
| 
 | ||||
| 	np = of_find_node_by_name(NULL, "par_io"); | ||||
| 	if (np) { | ||||
| 		struct device_node *ucc; | ||||
| 
 | ||||
| 		par_io_init(np); | ||||
| 		of_node_put(np); | ||||
| 
 | ||||
| 		for_each_node_by_name(ucc, "ucc") | ||||
| 			par_io_of_config(ucc); | ||||
| 
 | ||||
| 	} | ||||
| #if defined(CONFIG_UCC_GETH) || defined(CONFIG_SERIAL_QE) | ||||
| 	if (machine_is(p1025_rdb)) { | ||||
| 
 | ||||
| 		struct ccsr_guts_85xx __iomem *guts; | ||||
| 
 | ||||
| 		np = of_find_node_by_name(NULL, "global-utilities"); | ||||
| 		if (np) { | ||||
| 			guts = of_iomap(np, 0); | ||||
| 			if (!guts) { | ||||
| 
 | ||||
| 				pr_err("mpc85xx-rdb: could not map global utilities register\n"); | ||||
| 
 | ||||
| 			} else { | ||||
| 			/* P1025 has pins muxed for QE and other functions. To
 | ||||
| 			* enable QE UEC mode, we need to set bit QE0 for UCC1 | ||||
| 			* in Eth mode, QE0 and QE3 for UCC5 in Eth mode, QE9 | ||||
| 			* and QE12 for QE MII management singals in PMUXCR | ||||
| 			* register. | ||||
| 			*/ | ||||
| 				setbits32(&guts->pmuxcr, MPC85xx_PMUXCR_QE(0) | | ||||
| 						MPC85xx_PMUXCR_QE(3) | | ||||
| 						MPC85xx_PMUXCR_QE(9) | | ||||
| 						MPC85xx_PMUXCR_QE(12)); | ||||
| 				iounmap(guts); | ||||
| 			} | ||||
| 			of_node_put(np); | ||||
| 		} | ||||
| 
 | ||||
| 	} | ||||
| #endif | ||||
| 
 | ||||
| qe_fail: | ||||
| #endif	/* CONFIG_QUICC_ENGINE */ | ||||
| 
 | ||||
| 	printk(KERN_INFO "MPC85xx RDB board from Freescale Semiconductor\n"); | ||||
| } | ||||
| 
 | ||||
| machine_device_initcall(p2020_rdb, mpc85xx_common_publish_devices); | ||||
| machine_device_initcall(p2020_rdb_pc, mpc85xx_common_publish_devices); | ||||
| machine_device_initcall(p1020_mbg_pc, mpc85xx_common_publish_devices); | ||||
| machine_device_initcall(p1020_rdb, mpc85xx_common_publish_devices); | ||||
| machine_device_initcall(p1020_rdb_pc, mpc85xx_common_publish_devices); | ||||
| machine_device_initcall(p1020_utm_pc, mpc85xx_common_publish_devices); | ||||
| machine_device_initcall(p1021_rdb_pc, mpc85xx_common_publish_devices); | ||||
| machine_device_initcall(p1025_rdb, mpc85xx_common_publish_devices); | ||||
| 
 | ||||
| /*
 | ||||
|  * Called very early, device-tree isn't unflattened | ||||
| @ -111,6 +192,52 @@ static int __init p1020_rdb_probe(void) | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static int __init p1020_rdb_pc_probe(void) | ||||
| { | ||||
| 	unsigned long root = of_get_flat_dt_root(); | ||||
| 
 | ||||
| 	return of_flat_dt_is_compatible(root, "fsl,P1020RDB-PC"); | ||||
| } | ||||
| 
 | ||||
| static int __init p1021_rdb_pc_probe(void) | ||||
| { | ||||
| 	unsigned long root = of_get_flat_dt_root(); | ||||
| 
 | ||||
| 	if (of_flat_dt_is_compatible(root, "fsl,P1021RDB-PC")) | ||||
| 		return 1; | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static int __init p2020_rdb_pc_probe(void) | ||||
| { | ||||
| 	unsigned long root = of_get_flat_dt_root(); | ||||
| 
 | ||||
| 	if (of_flat_dt_is_compatible(root, "fsl,P2020RDB-PC")) | ||||
| 		return 1; | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static int __init p1025_rdb_probe(void) | ||||
| { | ||||
| 	unsigned long root = of_get_flat_dt_root(); | ||||
| 
 | ||||
| 	return of_flat_dt_is_compatible(root, "fsl,P1025RDB"); | ||||
| } | ||||
| 
 | ||||
| static int __init p1020_mbg_pc_probe(void) | ||||
| { | ||||
| 	unsigned long root = of_get_flat_dt_root(); | ||||
| 
 | ||||
| 	return of_flat_dt_is_compatible(root, "fsl,P1020MBG-PC"); | ||||
| } | ||||
| 
 | ||||
| static int __init p1020_utm_pc_probe(void) | ||||
| { | ||||
| 	unsigned long root = of_get_flat_dt_root(); | ||||
| 
 | ||||
| 	return of_flat_dt_is_compatible(root, "fsl,P1020UTM-PC"); | ||||
| } | ||||
| 
 | ||||
| define_machine(p2020_rdb) { | ||||
| 	.name			= "P2020 RDB", | ||||
| 	.probe			= p2020_rdb_probe, | ||||
| @ -138,3 +265,87 @@ define_machine(p1020_rdb) { | ||||
| 	.calibrate_decr		= generic_calibrate_decr, | ||||
| 	.progress		= udbg_progress, | ||||
| }; | ||||
| 
 | ||||
| define_machine(p1021_rdb_pc) { | ||||
| 	.name			= "P1021 RDB-PC", | ||||
| 	.probe			= p1021_rdb_pc_probe, | ||||
| 	.setup_arch		= mpc85xx_rdb_setup_arch, | ||||
| 	.init_IRQ		= mpc85xx_rdb_pic_init, | ||||
| #ifdef CONFIG_PCI | ||||
| 	.pcibios_fixup_bus	= fsl_pcibios_fixup_bus, | ||||
| #endif | ||||
| 	.get_irq		= mpic_get_irq, | ||||
| 	.restart		= fsl_rstcr_restart, | ||||
| 	.calibrate_decr		= generic_calibrate_decr, | ||||
| 	.progress		= udbg_progress, | ||||
| }; | ||||
| 
 | ||||
| define_machine(p2020_rdb_pc) { | ||||
| 	.name			= "P2020RDB-PC", | ||||
| 	.probe			= p2020_rdb_pc_probe, | ||||
| 	.setup_arch		= mpc85xx_rdb_setup_arch, | ||||
| 	.init_IRQ		= mpc85xx_rdb_pic_init, | ||||
| #ifdef CONFIG_PCI | ||||
| 	.pcibios_fixup_bus	= fsl_pcibios_fixup_bus, | ||||
| #endif | ||||
| 	.get_irq		= mpic_get_irq, | ||||
| 	.restart		= fsl_rstcr_restart, | ||||
| 	.calibrate_decr		= generic_calibrate_decr, | ||||
| 	.progress		= udbg_progress, | ||||
| }; | ||||
| 
 | ||||
| define_machine(p1025_rdb) { | ||||
| 	.name			= "P1025 RDB", | ||||
| 	.probe			= p1025_rdb_probe, | ||||
| 	.setup_arch		= mpc85xx_rdb_setup_arch, | ||||
| 	.init_IRQ		= mpc85xx_rdb_pic_init, | ||||
| #ifdef CONFIG_PCI | ||||
| 	.pcibios_fixup_bus	= fsl_pcibios_fixup_bus, | ||||
| #endif | ||||
| 	.get_irq		= mpic_get_irq, | ||||
| 	.restart		= fsl_rstcr_restart, | ||||
| 	.calibrate_decr		= generic_calibrate_decr, | ||||
| 	.progress		= udbg_progress, | ||||
| }; | ||||
| 
 | ||||
| define_machine(p1020_mbg_pc) { | ||||
| 	.name			= "P1020 MBG-PC", | ||||
| 	.probe			= p1020_mbg_pc_probe, | ||||
| 	.setup_arch		= mpc85xx_rdb_setup_arch, | ||||
| 	.init_IRQ		= mpc85xx_rdb_pic_init, | ||||
| #ifdef CONFIG_PCI | ||||
| 	.pcibios_fixup_bus	= fsl_pcibios_fixup_bus, | ||||
| #endif | ||||
| 	.get_irq		= mpic_get_irq, | ||||
| 	.restart		= fsl_rstcr_restart, | ||||
| 	.calibrate_decr		= generic_calibrate_decr, | ||||
| 	.progress		= udbg_progress, | ||||
| }; | ||||
| 
 | ||||
| define_machine(p1020_utm_pc) { | ||||
| 	.name			= "P1020 UTM-PC", | ||||
| 	.probe			= p1020_utm_pc_probe, | ||||
| 	.setup_arch		= mpc85xx_rdb_setup_arch, | ||||
| 	.init_IRQ		= mpc85xx_rdb_pic_init, | ||||
| #ifdef CONFIG_PCI | ||||
| 	.pcibios_fixup_bus	= fsl_pcibios_fixup_bus, | ||||
| #endif | ||||
| 	.get_irq		= mpic_get_irq, | ||||
| 	.restart		= fsl_rstcr_restart, | ||||
| 	.calibrate_decr		= generic_calibrate_decr, | ||||
| 	.progress		= udbg_progress, | ||||
| }; | ||||
| 
 | ||||
| define_machine(p1020_rdb_pc) { | ||||
| 	.name			= "P1020RDB-PC", | ||||
| 	.probe			= p1020_rdb_pc_probe, | ||||
| 	.setup_arch		= mpc85xx_rdb_setup_arch, | ||||
| 	.init_IRQ		= mpc85xx_rdb_pic_init, | ||||
| #ifdef CONFIG_PCI | ||||
| 	.pcibios_fixup_bus	= fsl_pcibios_fixup_bus, | ||||
| #endif | ||||
| 	.get_irq		= mpic_get_irq, | ||||
| 	.restart		= fsl_rstcr_restart, | ||||
| 	.calibrate_decr		= generic_calibrate_decr, | ||||
| 	.progress		= udbg_progress, | ||||
| }; | ||||
|  | ||||
| @ -33,6 +33,10 @@ | ||||
| 
 | ||||
| #if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE) | ||||
| 
 | ||||
| #define PMUXCR_ELBCDIU_MASK	0xc0000000 | ||||
| #define PMUXCR_ELBCDIU_NOR16	0x80000000 | ||||
| #define PMUXCR_ELBCDIU_DIU	0x40000000 | ||||
| 
 | ||||
| /*
 | ||||
|  * Board-specific initialization of the DIU.  This code should probably be | ||||
|  * executed when the DIU is opened, rather than in arch code, but the DIU | ||||
| @ -50,11 +54,22 @@ | ||||
| #define CLKDVDR_PXCLK_MASK	0x00FF0000 | ||||
| 
 | ||||
| /* Some ngPIXIS register definitions */ | ||||
| #define PX_CTL		3 | ||||
| #define PX_BRDCFG0	8 | ||||
| #define PX_BRDCFG1	9 | ||||
| 
 | ||||
| #define PX_BRDCFG0_ELBC_SPI_MASK	0xc0 | ||||
| #define PX_BRDCFG0_ELBC_SPI_ELBC	0x00 | ||||
| #define PX_BRDCFG0_ELBC_SPI_NULL	0xc0 | ||||
| #define PX_BRDCFG0_ELBC_DIU		0x02 | ||||
| 
 | ||||
| #define PX_BRDCFG1_DVIEN	0x80 | ||||
| #define PX_BRDCFG1_DFPEN	0x40 | ||||
| #define PX_BRDCFG1_BACKLIGHT	0x20 | ||||
| #define PX_BRDCFG1_DDCEN	0x10 | ||||
| 
 | ||||
| #define PX_CTL_ALTACC		0x80 | ||||
| 
 | ||||
| /*
 | ||||
|  * DIU Area Descriptor | ||||
|  * | ||||
| @ -133,44 +148,117 @@ static void p1022ds_set_gamma_table(enum fsl_diu_monitor_port port, | ||||
|  */ | ||||
| static void p1022ds_set_monitor_port(enum fsl_diu_monitor_port port) | ||||
| { | ||||
| 	struct device_node *np; | ||||
| 	void __iomem *pixis; | ||||
| 	u8 __iomem *brdcfg1; | ||||
| 	struct device_node *guts_node; | ||||
| 	struct device_node *indirect_node = NULL; | ||||
| 	struct ccsr_guts_85xx __iomem *guts; | ||||
| 	u8 __iomem *lbc_lcs0_ba = NULL; | ||||
| 	u8 __iomem *lbc_lcs1_ba = NULL; | ||||
| 	u8 b; | ||||
| 
 | ||||
| 	np = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-fpga"); | ||||
| 	if (!np) | ||||
| 		/* older device trees used "fsl,p1022ds-pixis" */ | ||||
| 		np = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-pixis"); | ||||
| 	if (!np) { | ||||
| 		pr_err("p1022ds: missing ngPIXIS node\n"); | ||||
| 	/* Map the global utilities registers. */ | ||||
| 	guts_node = of_find_compatible_node(NULL, NULL, "fsl,p1022-guts"); | ||||
| 	if (!guts_node) { | ||||
| 		pr_err("p1022ds: missing global utilties device node\n"); | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	pixis = of_iomap(np, 0); | ||||
| 	if (!pixis) { | ||||
| 		pr_err("p1022ds: could not map ngPIXIS registers\n"); | ||||
| 		return; | ||||
| 	guts = of_iomap(guts_node, 0); | ||||
| 	if (!guts) { | ||||
| 		pr_err("p1022ds: could not map global utilties device\n"); | ||||
| 		goto exit; | ||||
| 	} | ||||
| 	brdcfg1 = pixis + 9;	/* BRDCFG1 is at offset 9 in the ngPIXIS */ | ||||
| 
 | ||||
| 	indirect_node = of_find_compatible_node(NULL, NULL, | ||||
| 					     "fsl,p1022ds-indirect-pixis"); | ||||
| 	if (!indirect_node) { | ||||
| 		pr_err("p1022ds: missing pixis indirect mode node\n"); | ||||
| 		goto exit; | ||||
| 	} | ||||
| 
 | ||||
| 	lbc_lcs0_ba = of_iomap(indirect_node, 0); | ||||
| 	if (!lbc_lcs0_ba) { | ||||
| 		pr_err("p1022ds: could not map localbus chip select 0\n"); | ||||
| 		goto exit; | ||||
| 	} | ||||
| 
 | ||||
| 	lbc_lcs1_ba = of_iomap(indirect_node, 1); | ||||
| 	if (!lbc_lcs1_ba) { | ||||
| 		pr_err("p1022ds: could not map localbus chip select 1\n"); | ||||
| 		goto exit; | ||||
| 	} | ||||
| 
 | ||||
| 	/* Make sure we're in indirect mode first. */ | ||||
| 	if ((in_be32(&guts->pmuxcr) & PMUXCR_ELBCDIU_MASK) != | ||||
| 	    PMUXCR_ELBCDIU_DIU) { | ||||
| 		struct device_node *pixis_node; | ||||
| 		void __iomem *pixis; | ||||
| 
 | ||||
| 		pixis_node = | ||||
| 			of_find_compatible_node(NULL, NULL, "fsl,p1022ds-fpga"); | ||||
| 		if (!pixis_node) { | ||||
| 			pr_err("p1022ds: missing pixis node\n"); | ||||
| 			goto exit; | ||||
| 		} | ||||
| 
 | ||||
| 		pixis = of_iomap(pixis_node, 0); | ||||
| 		of_node_put(pixis_node); | ||||
| 		if (!pixis) { | ||||
| 			pr_err("p1022ds: could not map pixis registers\n"); | ||||
| 			goto exit; | ||||
| 		} | ||||
| 
 | ||||
| 		/* Enable indirect PIXIS mode.  */ | ||||
| 		setbits8(pixis + PX_CTL, PX_CTL_ALTACC); | ||||
| 		iounmap(pixis); | ||||
| 
 | ||||
| 		/* Switch the board mux to the DIU */ | ||||
| 		out_8(lbc_lcs0_ba, PX_BRDCFG0);	/* BRDCFG0 */ | ||||
| 		b = in_8(lbc_lcs1_ba); | ||||
| 		b |= PX_BRDCFG0_ELBC_DIU; | ||||
| 		out_8(lbc_lcs1_ba, b); | ||||
| 
 | ||||
| 		/* Set the chip mux to DIU mode. */ | ||||
| 		clrsetbits_be32(&guts->pmuxcr, PMUXCR_ELBCDIU_MASK, | ||||
| 				PMUXCR_ELBCDIU_DIU); | ||||
| 		in_be32(&guts->pmuxcr); | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| 	switch (port) { | ||||
| 	case FSL_DIU_PORT_DVI: | ||||
| 		printk(KERN_INFO "%s:%u\n", __func__, __LINE__); | ||||
| 		/* Enable the DVI port, disable the DFP and the backlight */ | ||||
| 		clrsetbits_8(brdcfg1, PX_BRDCFG1_DFPEN | PX_BRDCFG1_BACKLIGHT, | ||||
| 			     PX_BRDCFG1_DVIEN); | ||||
| 		out_8(lbc_lcs0_ba, PX_BRDCFG1); | ||||
| 		b = in_8(lbc_lcs1_ba); | ||||
| 		b &= ~(PX_BRDCFG1_DFPEN | PX_BRDCFG1_BACKLIGHT); | ||||
| 		b |= PX_BRDCFG1_DVIEN; | ||||
| 		out_8(lbc_lcs1_ba, b); | ||||
| 		break; | ||||
| 	case FSL_DIU_PORT_LVDS: | ||||
| 		printk(KERN_INFO "%s:%u\n", __func__, __LINE__); | ||||
| 		/*
 | ||||
| 		 * LVDS also needs backlight enabled, otherwise the display | ||||
| 		 * will be blank. | ||||
| 		 */ | ||||
| 		/* Enable the DFP port, disable the DVI and the backlight */ | ||||
| 		clrsetbits_8(brdcfg1, PX_BRDCFG1_DVIEN | PX_BRDCFG1_BACKLIGHT, | ||||
| 			     PX_BRDCFG1_DFPEN); | ||||
| 		out_8(lbc_lcs0_ba, PX_BRDCFG1); | ||||
| 		b = in_8(lbc_lcs1_ba); | ||||
| 		b &= ~PX_BRDCFG1_DVIEN; | ||||
| 		b |= PX_BRDCFG1_DFPEN | PX_BRDCFG1_BACKLIGHT; | ||||
| 		out_8(lbc_lcs1_ba, b); | ||||
| 		break; | ||||
| 	default: | ||||
| 		pr_err("p1022ds: unsupported monitor port %i\n", port); | ||||
| 	} | ||||
| 
 | ||||
| 	iounmap(pixis); | ||||
| exit: | ||||
| 	if (lbc_lcs1_ba) | ||||
| 		iounmap(lbc_lcs1_ba); | ||||
| 	if (lbc_lcs0_ba) | ||||
| 		iounmap(lbc_lcs0_ba); | ||||
| 	if (guts) | ||||
| 		iounmap(guts); | ||||
| 
 | ||||
| 	of_node_put(indirect_node); | ||||
| 	of_node_put(guts_node); | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
| @ -249,6 +337,49 @@ void __init p1022_ds_pic_init(void) | ||||
| 	mpic_init(mpic); | ||||
| } | ||||
| 
 | ||||
| #if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE) | ||||
| 
 | ||||
| /*
 | ||||
|  * Disables a node in the device tree. | ||||
|  * | ||||
|  * This function is called before kmalloc() is available, so the 'new' object | ||||
|  * should be allocated in the global area.  The easiest way is to do that is | ||||
|  * to allocate one static local variable for each call to this function. | ||||
|  */ | ||||
| static void __init disable_one_node(struct device_node *np, struct property *new) | ||||
| { | ||||
| 	struct property *old; | ||||
| 
 | ||||
| 	old = of_find_property(np, new->name, NULL); | ||||
| 	if (old) | ||||
| 		prom_update_property(np, new, old); | ||||
| 	else | ||||
| 		prom_add_property(np, new); | ||||
| } | ||||
| 
 | ||||
| /* TRUE if there is a "video=fslfb" command-line parameter. */ | ||||
| static bool fslfb; | ||||
| 
 | ||||
| /*
 | ||||
|  * Search for a "video=fslfb" command-line parameter, and set 'fslfb' to | ||||
|  * true if we find it. | ||||
|  * | ||||
|  * We need to use early_param() instead of __setup() because the normal | ||||
|  * __setup() gets called to late.  However, early_param() gets called very | ||||
|  * early, before the device tree is unflattened, so all we can do now is set a | ||||
|  * global variable.  Later on, p1022_ds_setup_arch() will use that variable | ||||
|  * to determine if we need to update the device tree. | ||||
|  */ | ||||
| static int __init early_video_setup(char *options) | ||||
| { | ||||
| 	fslfb = (strncmp(options, "fslfb:", 6) == 0); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| early_param("video", early_video_setup); | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  * Setup the architecture | ||||
|  */ | ||||
| @ -286,6 +417,34 @@ static void __init p1022_ds_setup_arch(void) | ||||
| 	diu_ops.set_monitor_port	= p1022ds_set_monitor_port; | ||||
| 	diu_ops.set_pixel_clock		= p1022ds_set_pixel_clock; | ||||
| 	diu_ops.valid_monitor_port	= p1022ds_valid_monitor_port; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Disable the NOR flash node if there is video=fslfb... command-line | ||||
| 	 * parameter.  When the DIU is active, NOR flash is unavailable, so we | ||||
| 	 * have to disable the node before the MTD driver loads. | ||||
| 	 */ | ||||
| 	if (fslfb) { | ||||
| 		struct device_node *np = | ||||
| 			of_find_compatible_node(NULL, NULL, "fsl,p1022-elbc"); | ||||
| 
 | ||||
| 		if (np) { | ||||
| 			np = of_find_compatible_node(np, NULL, "cfi-flash"); | ||||
| 			if (np) { | ||||
| 				static struct property nor_status = { | ||||
| 					.name = "status", | ||||
| 					.value = "disabled", | ||||
| 					.length = sizeof("disabled"), | ||||
| 				}; | ||||
| 
 | ||||
| 				pr_info("p1022ds: disabling %s node", | ||||
| 					np->full_name); | ||||
| 				disable_one_node(np, &nor_status); | ||||
| 				of_node_put(np); | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| 	mpc85xx_smp_init(); | ||||
|  | ||||
| @ -39,6 +39,7 @@ config GEF_PPC9A | ||||
| 	select MMIO_NVRAM | ||||
| 	select GENERIC_GPIO | ||||
| 	select ARCH_REQUIRE_GPIOLIB | ||||
| 	select GE_FPGA | ||||
| 	help | ||||
| 	  This option enables support for the GE PPC9A. | ||||
| 
 | ||||
| @ -48,6 +49,7 @@ config GEF_SBC310 | ||||
| 	select MMIO_NVRAM | ||||
| 	select GENERIC_GPIO | ||||
| 	select ARCH_REQUIRE_GPIOLIB | ||||
| 	select GE_FPGA | ||||
| 	help | ||||
| 	  This option enables support for the GE SBC310. | ||||
| 
 | ||||
| @ -57,6 +59,7 @@ config GEF_SBC610 | ||||
| 	select MMIO_NVRAM | ||||
| 	select GENERIC_GPIO | ||||
| 	select ARCH_REQUIRE_GPIOLIB | ||||
| 	select GE_FPGA | ||||
| 	select HAS_RAPIDIO | ||||
| 	help | ||||
| 	  This option enables support for the GE SBC610. | ||||
|  | ||||
| @ -7,7 +7,6 @@ obj-$(CONFIG_SMP)		+= mpc86xx_smp.o | ||||
| obj-$(CONFIG_MPC8641_HPCN)	+= mpc86xx_hpcn.o | ||||
| obj-$(CONFIG_SBC8641D)		+= sbc8641d.o | ||||
| obj-$(CONFIG_MPC8610_HPCD)	+= mpc8610_hpcd.o | ||||
| gef-gpio-$(CONFIG_GPIOLIB)	+= gef_gpio.o | ||||
| obj-$(CONFIG_GEF_SBC610)	+= gef_sbc610.o gef_pic.o $(gef-gpio-y) | ||||
| obj-$(CONFIG_GEF_SBC310)	+= gef_sbc310.o gef_pic.o $(gef-gpio-y) | ||||
| obj-$(CONFIG_GEF_PPC9A)		+= gef_ppc9a.o gef_pic.o $(gef-gpio-y) | ||||
| obj-$(CONFIG_GEF_SBC610)	+= gef_sbc610.o | ||||
| obj-$(CONFIG_GEF_SBC310)	+= gef_sbc310.o | ||||
| obj-$(CONFIG_GEF_PPC9A)		+= gef_ppc9a.o | ||||
|  | ||||
| @ -37,9 +37,9 @@ | ||||
| 
 | ||||
| #include <sysdev/fsl_pci.h> | ||||
| #include <sysdev/fsl_soc.h> | ||||
| #include <sysdev/ge/ge_pic.h> | ||||
| 
 | ||||
| #include "mpc86xx.h" | ||||
| #include "gef_pic.h" | ||||
| 
 | ||||
| #undef DEBUG | ||||
| 
 | ||||
|  | ||||
| @ -37,9 +37,9 @@ | ||||
| 
 | ||||
| #include <sysdev/fsl_pci.h> | ||||
| #include <sysdev/fsl_soc.h> | ||||
| #include <sysdev/ge/ge_pic.h> | ||||
| 
 | ||||
| #include "mpc86xx.h" | ||||
| #include "gef_pic.h" | ||||
| 
 | ||||
| #undef DEBUG | ||||
| 
 | ||||
|  | ||||
| @ -37,9 +37,9 @@ | ||||
| 
 | ||||
| #include <sysdev/fsl_pci.h> | ||||
| #include <sysdev/fsl_soc.h> | ||||
| #include <sysdev/ge/ge_pic.h> | ||||
| 
 | ||||
| #include "mpc86xx.h" | ||||
| #include "gef_pic.h" | ||||
| 
 | ||||
| #undef DEBUG | ||||
| 
 | ||||
|  | ||||
| @ -86,6 +86,14 @@ config MPIC_WEIRD | ||||
| 	bool | ||||
| 	default n | ||||
| 
 | ||||
| config MPIC_MSGR | ||||
| 	bool "MPIC message register support" | ||||
| 	depends on MPIC | ||||
| 	default n | ||||
| 	help | ||||
| 	  Enables support for the MPIC message registers.  These | ||||
| 	  registers are used for inter-processor communication. | ||||
| 
 | ||||
| config PPC_I8259 | ||||
| 	bool | ||||
| 	default n | ||||
|  | ||||
| @ -29,3 +29,7 @@ config SCOM_DEBUGFS | ||||
| 	bool "Expose SCOM controllers via debugfs" | ||||
| 	depends on PPC_SCOM | ||||
| 	default n | ||||
| 
 | ||||
| config GE_FPGA | ||||
| 	bool | ||||
| 	default n | ||||
|  | ||||
| @ -4,6 +4,8 @@ ccflags-$(CONFIG_PPC64)		:= -mno-minimal-toc | ||||
| 
 | ||||
| mpic-msi-obj-$(CONFIG_PCI_MSI)	+= mpic_msi.o mpic_u3msi.o mpic_pasemi_msi.o | ||||
| obj-$(CONFIG_MPIC)		+= mpic.o $(mpic-msi-obj-y) | ||||
| mpic-msgr-obj-$(CONFIG_MPIC_MSGR)	+= mpic_msgr.o | ||||
| obj-$(CONFIG_MPIC)		+= mpic.o $(mpic-msi-obj-y) $(mpic-msgr-obj-y) | ||||
| obj-$(CONFIG_PPC_EPAPR_HV_PIC)	+= ehv_pic.o | ||||
| fsl-msi-obj-$(CONFIG_PCI_MSI)	+= fsl_msi.o | ||||
| obj-$(CONFIG_PPC_MSI_BITMAP)	+= msi_bitmap.o | ||||
| @ -65,3 +67,5 @@ obj-$(CONFIG_PPC_SCOM)		+= scom.o | ||||
| subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror | ||||
| 
 | ||||
| obj-$(CONFIG_PPC_XICS)		+= xics/ | ||||
| 
 | ||||
| obj-$(CONFIG_GE_FPGA)		+= ge/ | ||||
|  | ||||
| @ -24,6 +24,7 @@ | ||||
|  */ | ||||
| 
 | ||||
| #include <linux/kernel.h> | ||||
| #include <linux/export.h> | ||||
| #include <linux/slab.h> | ||||
| #include <linux/err.h> | ||||
| #include <linux/of_platform.h> | ||||
|  | ||||
| @ -21,6 +21,7 @@ | ||||
|  */ | ||||
| 
 | ||||
| #include <linux/kernel.h> | ||||
| #include <linux/module.h> | ||||
| #include <linux/of_platform.h> | ||||
| #include <asm/io.h> | ||||
| 
 | ||||
| @ -200,6 +201,9 @@ static struct of_device_id mpc85xx_l2ctlr_of_match[] = { | ||||
| 	{ | ||||
| 		.compatible = "fsl,p1022-l2-cache-controller", | ||||
| 	}, | ||||
| 	{ | ||||
| 		.compatible = "fsl,mpc8548-l2-cache-controller", | ||||
| 	}, | ||||
| 	{}, | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -410,6 +410,7 @@ static int __devinit fsl_of_msi_probe(struct platform_device *dev) | ||||
| 
 | ||||
| 		msi->msi_regs = ioremap(res.start, resource_size(&res)); | ||||
| 		if (!msi->msi_regs) { | ||||
| 			err = -ENOMEM; | ||||
| 			dev_err(&dev->dev, "could not map node %s\n", | ||||
| 				dev->dev.of_node->full_name); | ||||
| 			goto error_out; | ||||
|  | ||||
| @ -66,8 +66,8 @@ | ||||
| 		"	li %0,%3\n"			\ | ||||
| 		"	b 2b\n"				\ | ||||
| 		".section __ex_table,\"a\"\n"		\ | ||||
| 		"	.align 2\n"			\ | ||||
| 		"	.long 1b,3b\n"			\ | ||||
| 			PPC_LONG_ALIGN "\n"		\ | ||||
| 			PPC_LONG "1b,3b\n"		\ | ||||
| 		".text"					\ | ||||
| 		: "=r" (err), "=r" (x)			\ | ||||
| 		: "b" (addr), "i" (-EFAULT), "0" (err)) | ||||
|  | ||||
| @ -100,14 +100,8 @@ | ||||
| #define DOORBELL_DSR_TE		0x00000080 | ||||
| #define DOORBELL_DSR_QFI	0x00000010 | ||||
| #define DOORBELL_DSR_DIQI	0x00000001 | ||||
| #define DOORBELL_TID_OFFSET	0x02 | ||||
| #define DOORBELL_SID_OFFSET	0x04 | ||||
| #define DOORBELL_INFO_OFFSET	0x06 | ||||
| 
 | ||||
| #define DOORBELL_MESSAGE_SIZE	0x08 | ||||
| #define DBELL_SID(x)		(*(u16 *)(x + DOORBELL_SID_OFFSET)) | ||||
| #define DBELL_TID(x)		(*(u16 *)(x + DOORBELL_TID_OFFSET)) | ||||
| #define DBELL_INF(x)		(*(u16 *)(x + DOORBELL_INFO_OFFSET)) | ||||
| 
 | ||||
| struct rio_msg_regs { | ||||
| 	u32 omr; | ||||
| @ -193,6 +187,13 @@ struct fsl_rmu { | ||||
| 	int rxirq; | ||||
| }; | ||||
| 
 | ||||
| struct rio_dbell_msg { | ||||
| 	u16 pad1; | ||||
| 	u16 tid; | ||||
| 	u16 sid; | ||||
| 	u16 info; | ||||
| }; | ||||
| 
 | ||||
| /**
 | ||||
|  * fsl_rio_tx_handler - MPC85xx outbound message interrupt handler | ||||
|  * @irq: Linux interrupt number | ||||
| @ -311,8 +312,8 @@ fsl_rio_dbell_handler(int irq, void *dev_instance) | ||||
| 
 | ||||
| 	/* XXX Need to check/dispatch until queue empty */ | ||||
| 	if (dsr & DOORBELL_DSR_DIQI) { | ||||
| 		u32 dmsg = | ||||
| 			(u32) fsl_dbell->dbell_ring.virt + | ||||
| 		struct rio_dbell_msg *dmsg = | ||||
| 			fsl_dbell->dbell_ring.virt + | ||||
| 			(in_be32(&fsl_dbell->dbell_regs->dqdpar) & 0xfff); | ||||
| 		struct rio_dbell *dbell; | ||||
| 		int found = 0; | ||||
| @ -320,25 +321,25 @@ fsl_rio_dbell_handler(int irq, void *dev_instance) | ||||
| 		pr_debug | ||||
| 			("RIO: processing doorbell," | ||||
| 			" sid %2.2x tid %2.2x info %4.4x\n", | ||||
| 			DBELL_SID(dmsg), DBELL_TID(dmsg), DBELL_INF(dmsg)); | ||||
| 			dmsg->sid, dmsg->tid, dmsg->info); | ||||
| 
 | ||||
| 		for (i = 0; i < MAX_PORT_NUM; i++) { | ||||
| 			if (fsl_dbell->mport[i]) { | ||||
| 				list_for_each_entry(dbell, | ||||
| 					&fsl_dbell->mport[i]->dbells, node) { | ||||
| 					if ((dbell->res->start | ||||
| 						<= DBELL_INF(dmsg)) | ||||
| 						<= dmsg->info) | ||||
| 						&& (dbell->res->end | ||||
| 						>= DBELL_INF(dmsg))) { | ||||
| 						>= dmsg->info)) { | ||||
| 						found = 1; | ||||
| 						break; | ||||
| 					} | ||||
| 				} | ||||
| 				if (found && dbell->dinb) { | ||||
| 					dbell->dinb(fsl_dbell->mport[i], | ||||
| 						dbell->dev_id, DBELL_SID(dmsg), | ||||
| 						DBELL_TID(dmsg), | ||||
| 						DBELL_INF(dmsg)); | ||||
| 						dbell->dev_id, dmsg->sid, | ||||
| 						dmsg->tid, | ||||
| 						dmsg->info); | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| @ -348,8 +349,8 @@ fsl_rio_dbell_handler(int irq, void *dev_instance) | ||||
| 			pr_debug | ||||
| 				("RIO: spurious doorbell," | ||||
| 				" sid %2.2x tid %2.2x info %4.4x\n", | ||||
| 				DBELL_SID(dmsg), DBELL_TID(dmsg), | ||||
| 				DBELL_INF(dmsg)); | ||||
| 				dmsg->sid, dmsg->tid, | ||||
| 				dmsg->info); | ||||
| 		} | ||||
| 		setbits32(&fsl_dbell->dbell_regs->dmr, DOORBELL_DMR_DI); | ||||
| 		out_be32(&fsl_dbell->dbell_regs->dsr, DOORBELL_DSR_DIQI); | ||||
| @ -657,7 +658,7 @@ fsl_add_outb_message(struct rio_mport *mport, struct rio_dev *rdev, int mbox, | ||||
| 	int ret = 0; | ||||
| 
 | ||||
| 	pr_debug("RIO: fsl_add_outb_message(): destid %4.4x mbox %d buffer " \ | ||||
| 		 "%8.8x len %8.8x\n", rdev->destid, mbox, (int)buffer, len); | ||||
| 		 "%p len %8.8zx\n", rdev->destid, mbox, buffer, len); | ||||
| 	if ((len < 8) || (len > RIO_MAX_MSG_SIZE)) { | ||||
| 		ret = -EINVAL; | ||||
| 		goto out; | ||||
| @ -972,7 +973,8 @@ out: | ||||
| void *fsl_get_inb_message(struct rio_mport *mport, int mbox) | ||||
| { | ||||
| 	struct fsl_rmu *rmu = GET_RMM_HANDLE(mport); | ||||
| 	u32 phys_buf, virt_buf; | ||||
| 	u32 phys_buf; | ||||
| 	void *virt_buf; | ||||
| 	void *buf = NULL; | ||||
| 	int buf_idx; | ||||
| 
 | ||||
| @ -982,7 +984,7 @@ void *fsl_get_inb_message(struct rio_mport *mport, int mbox) | ||||
| 	if (phys_buf == in_be32(&rmu->msg_regs->ifqepar)) | ||||
| 		goto out2; | ||||
| 
 | ||||
| 	virt_buf = (u32) rmu->msg_rx_ring.virt + (phys_buf | ||||
| 	virt_buf = rmu->msg_rx_ring.virt + (phys_buf | ||||
| 						- rmu->msg_rx_ring.phys); | ||||
| 	buf_idx = (phys_buf - rmu->msg_rx_ring.phys) / RIO_MAX_MSG_SIZE; | ||||
| 	buf = rmu->msg_rx_ring.virt_buffer[buf_idx]; | ||||
| @ -994,7 +996,7 @@ void *fsl_get_inb_message(struct rio_mport *mport, int mbox) | ||||
| 	} | ||||
| 
 | ||||
| 	/* Copy max message size, caller is expected to allocate that big */ | ||||
| 	memcpy(buf, (void *)virt_buf, RIO_MAX_MSG_SIZE); | ||||
| 	memcpy(buf, virt_buf, RIO_MAX_MSG_SIZE); | ||||
| 
 | ||||
| 	/* Clear the available buffer */ | ||||
| 	rmu->msg_rx_ring.virt_buffer[buf_idx] = NULL; | ||||
|  | ||||
							
								
								
									
										1
									
								
								arch/powerpc/sysdev/ge/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								arch/powerpc/sysdev/ge/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| obj-$(CONFIG_GE_FPGA)		+= ge_pic.o | ||||
| @ -22,7 +22,7 @@ | ||||
| #include <asm/prom.h> | ||||
| #include <asm/irq.h> | ||||
| 
 | ||||
| #include "gef_pic.h" | ||||
| #include "ge_pic.h" | ||||
| 
 | ||||
| #define DEBUG | ||||
| #undef DEBUG | ||||
							
								
								
									
										282
									
								
								arch/powerpc/sysdev/mpic_msgr.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										282
									
								
								arch/powerpc/sysdev/mpic_msgr.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,282 @@ | ||||
| /*
 | ||||
|  * Copyright 2011-2012, Meador Inge, Mentor Graphics Corporation. | ||||
|  * | ||||
|  * Some ideas based on un-pushed work done by Vivek Mahajan, Jason Jin, and | ||||
|  * Mingkai Hu from Freescale Semiconductor, Inc. | ||||
|  * | ||||
|  * 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; version 2 of the | ||||
|  * License. | ||||
|  * | ||||
|  */ | ||||
| 
 | ||||
| #include <linux/list.h> | ||||
| #include <linux/of_platform.h> | ||||
| #include <linux/errno.h> | ||||
| #include <asm/prom.h> | ||||
| #include <asm/hw_irq.h> | ||||
| #include <asm/ppc-pci.h> | ||||
| #include <asm/mpic_msgr.h> | ||||
| 
 | ||||
| #define MPIC_MSGR_REGISTERS_PER_BLOCK	4 | ||||
| #define MPIC_MSGR_STRIDE		0x10 | ||||
| #define MPIC_MSGR_MER_OFFSET		0x100 | ||||
| #define MSGR_INUSE			0 | ||||
| #define MSGR_FREE			1 | ||||
| 
 | ||||
| static struct mpic_msgr **mpic_msgrs; | ||||
| static unsigned int mpic_msgr_count; | ||||
| 
 | ||||
| static inline void _mpic_msgr_mer_write(struct mpic_msgr *msgr, u32 value) | ||||
| { | ||||
| 	out_be32(msgr->mer, value); | ||||
| } | ||||
| 
 | ||||
| static inline u32 _mpic_msgr_mer_read(struct mpic_msgr *msgr) | ||||
| { | ||||
| 	return in_be32(msgr->mer); | ||||
| } | ||||
| 
 | ||||
| static inline void _mpic_msgr_disable(struct mpic_msgr *msgr) | ||||
| { | ||||
| 	u32 mer = _mpic_msgr_mer_read(msgr); | ||||
| 
 | ||||
| 	_mpic_msgr_mer_write(msgr, mer & ~(1 << msgr->num)); | ||||
| } | ||||
| 
 | ||||
| struct mpic_msgr *mpic_msgr_get(unsigned int reg_num) | ||||
| { | ||||
| 	unsigned long flags; | ||||
| 	struct mpic_msgr *msgr; | ||||
| 
 | ||||
| 	/* Assume busy until proven otherwise.  */ | ||||
| 	msgr = ERR_PTR(-EBUSY); | ||||
| 
 | ||||
| 	if (reg_num >= mpic_msgr_count) | ||||
| 		return ERR_PTR(-ENODEV); | ||||
| 
 | ||||
| 	raw_spin_lock_irqsave(&msgr->lock, flags); | ||||
| 	if (mpic_msgrs[reg_num]->in_use == MSGR_FREE) { | ||||
| 		msgr = mpic_msgrs[reg_num]; | ||||
| 		msgr->in_use = MSGR_INUSE; | ||||
| 	} | ||||
| 	raw_spin_unlock_irqrestore(&msgr->lock, flags); | ||||
| 
 | ||||
| 	return msgr; | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(mpic_msgr_get); | ||||
| 
 | ||||
| void mpic_msgr_put(struct mpic_msgr *msgr) | ||||
| { | ||||
| 	unsigned long flags; | ||||
| 
 | ||||
| 	raw_spin_lock_irqsave(&msgr->lock, flags); | ||||
| 	msgr->in_use = MSGR_FREE; | ||||
| 	_mpic_msgr_disable(msgr); | ||||
| 	raw_spin_unlock_irqrestore(&msgr->lock, flags); | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(mpic_msgr_put); | ||||
| 
 | ||||
| void mpic_msgr_enable(struct mpic_msgr *msgr) | ||||
| { | ||||
| 	unsigned long flags; | ||||
| 	u32 mer; | ||||
| 
 | ||||
| 	raw_spin_lock_irqsave(&msgr->lock, flags); | ||||
| 	mer = _mpic_msgr_mer_read(msgr); | ||||
| 	_mpic_msgr_mer_write(msgr, mer | (1 << msgr->num)); | ||||
| 	raw_spin_unlock_irqrestore(&msgr->lock, flags); | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(mpic_msgr_enable); | ||||
| 
 | ||||
| void mpic_msgr_disable(struct mpic_msgr *msgr) | ||||
| { | ||||
| 	unsigned long flags; | ||||
| 
 | ||||
| 	raw_spin_lock_irqsave(&msgr->lock, flags); | ||||
| 	_mpic_msgr_disable(msgr); | ||||
| 	raw_spin_unlock_irqrestore(&msgr->lock, flags); | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(mpic_msgr_disable); | ||||
| 
 | ||||
| /* The following three functions are used to compute the order and number of
 | ||||
|  * the message register blocks.  They are clearly very inefficent.  However, | ||||
|  * they are called *only* a few times during device initialization. | ||||
|  */ | ||||
| static unsigned int mpic_msgr_number_of_blocks(void) | ||||
| { | ||||
| 	unsigned int count; | ||||
| 	struct device_node *aliases; | ||||
| 
 | ||||
| 	count = 0; | ||||
| 	aliases = of_find_node_by_name(NULL, "aliases"); | ||||
| 
 | ||||
| 	if (aliases) { | ||||
| 		char buf[32]; | ||||
| 
 | ||||
| 		for (;;) { | ||||
| 			snprintf(buf, sizeof(buf), "mpic-msgr-block%d", count); | ||||
| 			if (!of_find_property(aliases, buf, NULL)) | ||||
| 				break; | ||||
| 
 | ||||
| 			count += 1; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return count; | ||||
| } | ||||
| 
 | ||||
| static unsigned int mpic_msgr_number_of_registers(void) | ||||
| { | ||||
| 	return mpic_msgr_number_of_blocks() * MPIC_MSGR_REGISTERS_PER_BLOCK; | ||||
| } | ||||
| 
 | ||||
| static int mpic_msgr_block_number(struct device_node *node) | ||||
| { | ||||
| 	struct device_node *aliases; | ||||
| 	unsigned int index, number_of_blocks; | ||||
| 	char buf[64]; | ||||
| 
 | ||||
| 	number_of_blocks = mpic_msgr_number_of_blocks(); | ||||
| 	aliases = of_find_node_by_name(NULL, "aliases"); | ||||
| 	if (!aliases) | ||||
| 		return -1; | ||||
| 
 | ||||
| 	for (index = 0; index < number_of_blocks; ++index) { | ||||
| 		struct property *prop; | ||||
| 
 | ||||
| 		snprintf(buf, sizeof(buf), "mpic-msgr-block%d", index); | ||||
| 		prop = of_find_property(aliases, buf, NULL); | ||||
| 		if (node == of_find_node_by_path(prop->value)) | ||||
| 			break; | ||||
| 	} | ||||
| 
 | ||||
| 	return index == number_of_blocks ? -1 : index; | ||||
| } | ||||
| 
 | ||||
| /* The probe function for a single message register block.
 | ||||
|  */ | ||||
| static __devinit int mpic_msgr_probe(struct platform_device *dev) | ||||
| { | ||||
| 	void __iomem *msgr_block_addr; | ||||
| 	int block_number; | ||||
| 	struct resource rsrc; | ||||
| 	unsigned int i; | ||||
| 	unsigned int irq_index; | ||||
| 	struct device_node *np = dev->dev.of_node; | ||||
| 	unsigned int receive_mask; | ||||
| 	const unsigned int *prop; | ||||
| 
 | ||||
| 	if (!np) { | ||||
| 		dev_err(&dev->dev, "Device OF-Node is NULL"); | ||||
| 		return -EFAULT; | ||||
| 	} | ||||
| 
 | ||||
| 	/* Allocate the message register array upon the first device
 | ||||
| 	 * registered. | ||||
| 	 */ | ||||
| 	if (!mpic_msgrs) { | ||||
| 		mpic_msgr_count = mpic_msgr_number_of_registers(); | ||||
| 		dev_info(&dev->dev, "Found %d message registers\n", | ||||
| 				mpic_msgr_count); | ||||
| 
 | ||||
| 		mpic_msgrs = kzalloc(sizeof(struct mpic_msgr) * mpic_msgr_count, | ||||
| 							 GFP_KERNEL); | ||||
| 		if (!mpic_msgrs) { | ||||
| 			dev_err(&dev->dev, | ||||
| 				"No memory for message register blocks\n"); | ||||
| 			return -ENOMEM; | ||||
| 		} | ||||
| 	} | ||||
| 	dev_info(&dev->dev, "Of-device full name %s\n", np->full_name); | ||||
| 
 | ||||
| 	/* IO map the message register block. */ | ||||
| 	of_address_to_resource(np, 0, &rsrc); | ||||
| 	msgr_block_addr = ioremap(rsrc.start, rsrc.end - rsrc.start); | ||||
| 	if (!msgr_block_addr) { | ||||
| 		dev_err(&dev->dev, "Failed to iomap MPIC message registers"); | ||||
| 		return -EFAULT; | ||||
| 	} | ||||
| 
 | ||||
| 	/* Ensure the block has a defined order. */ | ||||
| 	block_number = mpic_msgr_block_number(np); | ||||
| 	if (block_number < 0) { | ||||
| 		dev_err(&dev->dev, | ||||
| 			"Failed to find message register block alias\n"); | ||||
| 		return -ENODEV; | ||||
| 	} | ||||
| 	dev_info(&dev->dev, "Setting up message register block %d\n", | ||||
| 			block_number); | ||||
| 
 | ||||
| 	/* Grab the receive mask which specifies what registers can receive
 | ||||
| 	 * interrupts. | ||||
| 	 */ | ||||
| 	prop = of_get_property(np, "mpic-msgr-receive-mask", NULL); | ||||
| 	receive_mask = (prop) ? *prop : 0xF; | ||||
| 
 | ||||
| 	/* Build up the appropriate message register data structures. */ | ||||
| 	for (i = 0, irq_index = 0; i < MPIC_MSGR_REGISTERS_PER_BLOCK; ++i) { | ||||
| 		struct mpic_msgr *msgr; | ||||
| 		unsigned int reg_number; | ||||
| 
 | ||||
| 		msgr = kzalloc(sizeof(struct mpic_msgr), GFP_KERNEL); | ||||
| 		if (!msgr) { | ||||
| 			dev_err(&dev->dev, "No memory for message register\n"); | ||||
| 			return -ENOMEM; | ||||
| 		} | ||||
| 
 | ||||
| 		reg_number = block_number * MPIC_MSGR_REGISTERS_PER_BLOCK + i; | ||||
| 		msgr->base = msgr_block_addr + i * MPIC_MSGR_STRIDE; | ||||
| 		msgr->mer = msgr->base + MPIC_MSGR_MER_OFFSET; | ||||
| 		msgr->in_use = MSGR_FREE; | ||||
| 		msgr->num = i; | ||||
| 		raw_spin_lock_init(&msgr->lock); | ||||
| 
 | ||||
| 		if (receive_mask & (1 << i)) { | ||||
| 			struct resource irq; | ||||
| 
 | ||||
| 			if (of_irq_to_resource(np, irq_index, &irq) == NO_IRQ) { | ||||
| 				dev_err(&dev->dev, | ||||
| 						"Missing interrupt specifier"); | ||||
| 				kfree(msgr); | ||||
| 				return -EFAULT; | ||||
| 			} | ||||
| 			msgr->irq = irq.start; | ||||
| 			irq_index += 1; | ||||
| 		} else { | ||||
| 			msgr->irq = NO_IRQ; | ||||
| 		} | ||||
| 
 | ||||
| 		mpic_msgrs[reg_number] = msgr; | ||||
| 		mpic_msgr_disable(msgr); | ||||
| 		dev_info(&dev->dev, "Register %d initialized: irq %d\n", | ||||
| 				reg_number, msgr->irq); | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static const struct of_device_id mpic_msgr_ids[] = { | ||||
| 	{ | ||||
| 		.compatible = "fsl,mpic-v3.1-msgr", | ||||
| 		.data = NULL, | ||||
| 	}, | ||||
| 	{} | ||||
| }; | ||||
| 
 | ||||
| static struct platform_driver mpic_msgr_driver = { | ||||
| 	.driver = { | ||||
| 		.name = "mpic-msgr", | ||||
| 		.owner = THIS_MODULE, | ||||
| 		.of_match_table = mpic_msgr_ids, | ||||
| 	}, | ||||
| 	.probe = mpic_msgr_probe, | ||||
| }; | ||||
| 
 | ||||
| static __init int mpic_msgr_init(void) | ||||
| { | ||||
| 	return platform_driver_register(&mpic_msgr_driver); | ||||
| } | ||||
| subsys_initcall(mpic_msgr_init); | ||||
| @ -190,6 +190,17 @@ config GPIO_VX855 | ||||
| 	  additional drivers must be enabled in order to use the | ||||
| 	  functionality of the device. | ||||
| 
 | ||||
| config GPIO_GE_FPGA | ||||
| 	bool "GE FPGA based GPIO" | ||||
| 	depends on GE_FPGA | ||||
| 	help | ||||
| 	  Support for common GPIO functionality provided on some GE Single Board | ||||
| 	  Computers. | ||||
| 
 | ||||
| 	  This driver provides basic support (configure as input or output, read | ||||
| 	  and write pin state) for GPIO implemented in a number of GE single | ||||
| 	  board computers. | ||||
| 
 | ||||
| comment "I2C GPIO expanders:" | ||||
| 
 | ||||
| config GPIO_MAX7300 | ||||
|  | ||||
| @ -16,6 +16,7 @@ obj-$(CONFIG_GPIO_CS5535)	+= gpio-cs5535.o | ||||
| obj-$(CONFIG_GPIO_DA9052)	+= gpio-da9052.o | ||||
| obj-$(CONFIG_ARCH_DAVINCI)	+= gpio-davinci.o | ||||
| obj-$(CONFIG_GPIO_EP93XX)	+= gpio-ep93xx.o | ||||
| obj-$(CONFIG_GPIO_GE_FPGA)	+= gpio-ge.o | ||||
| obj-$(CONFIG_GPIO_IT8761E)	+= gpio-it8761e.o | ||||
| obj-$(CONFIG_GPIO_JANZ_TTL)	+= gpio-janz-ttl.o | ||||
| obj-$(CONFIG_ARCH_KS8695)	+= gpio-ks8695.o | ||||
|  | ||||
| @ -14,7 +14,7 @@ | ||||
|  * | ||||
|  * Configuration of output modes (totem-pole/open-drain) | ||||
|  * Interrupt configuration - interrupts are always generated the FPGA relies on | ||||
|  * 	the I/O interrupt controllers mask to stop them propergating | ||||
|  * the I/O interrupt controllers mask to stop them propergating | ||||
|  */ | ||||
| 
 | ||||
| #include <linux/kernel.h> | ||||
| @ -162,6 +162,34 @@ static int __init gef_gpio_init(void) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	for_each_compatible_node(np, NULL, "ge,imp3a-gpio") { | ||||
| 
 | ||||
| 		pr_debug("%s: Initialising GE GPIO\n", np->full_name); | ||||
| 
 | ||||
| 		/* Allocate chip structure */ | ||||
| 		gef_gpio_chip = kzalloc(sizeof(*gef_gpio_chip), GFP_KERNEL); | ||||
| 		if (!gef_gpio_chip) { | ||||
| 			pr_err("%s: Unable to allocate structure\n", | ||||
| 				np->full_name); | ||||
| 			continue; | ||||
| 		} | ||||
| 
 | ||||
| 		/* Setup pointers to chip functions */ | ||||
| 		gef_gpio_chip->gc.of_gpio_n_cells = 2; | ||||
| 		gef_gpio_chip->gc.ngpio = 16; | ||||
| 		gef_gpio_chip->gc.direction_input = gef_gpio_dir_in; | ||||
| 		gef_gpio_chip->gc.direction_output = gef_gpio_dir_out; | ||||
| 		gef_gpio_chip->gc.get = gef_gpio_get; | ||||
| 		gef_gpio_chip->gc.set = gef_gpio_set; | ||||
| 
 | ||||
| 		/* This function adds a memory mapped GPIO chip */ | ||||
| 		retval = of_mm_gpiochip_add(np, gef_gpio_chip); | ||||
| 		if (retval) { | ||||
| 			kfree(gef_gpio_chip); | ||||
| 			pr_err("%s: Unable to add GPIO\n", np->full_name); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return 0; | ||||
| }; | ||||
| arch_initcall(gef_gpio_init); | ||||
| @ -462,6 +462,16 @@ config MTD_NAND_FSL_ELBC | ||||
| 	  Enabling this option will enable you to use this to control | ||||
| 	  external NAND devices. | ||||
| 
 | ||||
| config MTD_NAND_FSL_IFC | ||||
| 	tristate "NAND support for Freescale IFC controller" | ||||
| 	depends on MTD_NAND && FSL_SOC | ||||
| 	select FSL_IFC | ||||
| 	help | ||||
| 	  Various Freescale chips e.g P1010, include a NAND Flash machine | ||||
| 	  with built-in hardware ECC capabilities. | ||||
| 	  Enabling this option will enable you to use this to control | ||||
| 	  external NAND devices. | ||||
| 
 | ||||
| config MTD_NAND_FSL_UPM | ||||
| 	tristate "Support for NAND on Freescale UPM" | ||||
| 	depends on PPC_83xx || PPC_85xx | ||||
|  | ||||
| @ -37,6 +37,7 @@ obj-$(CONFIG_MTD_ALAUDA)		+= alauda.o | ||||
| obj-$(CONFIG_MTD_NAND_PASEMI)		+= pasemi_nand.o | ||||
| obj-$(CONFIG_MTD_NAND_ORION)		+= orion_nand.o | ||||
| obj-$(CONFIG_MTD_NAND_FSL_ELBC)		+= fsl_elbc_nand.o | ||||
| obj-$(CONFIG_MTD_NAND_FSL_IFC)		+= fsl_ifc_nand.o | ||||
| obj-$(CONFIG_MTD_NAND_FSL_UPM)		+= fsl_upm.o | ||||
| obj-$(CONFIG_MTD_NAND_SH_FLCTL)		+= sh_flctl.o | ||||
| obj-$(CONFIG_MTD_NAND_MXC)		+= mxc_nand.o | ||||
|  | ||||
							
								
								
									
										1072
									
								
								drivers/mtd/nand/fsl_ifc_nand.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1072
									
								
								drivers/mtd/nand/fsl_ifc_nand.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1039,7 +1039,7 @@ config LANTIQ_WDT | ||||
| 
 | ||||
| config GEF_WDT | ||||
| 	tristate "GE Watchdog Timer" | ||||
| 	depends on GEF_SBC610 || GEF_SBC310 || GEF_PPC9A | ||||
| 	depends on GE_FPGA | ||||
| 	---help--- | ||||
| 	  Watchdog timer found in a number of GE single board computers. | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user