diff options
Diffstat (limited to 'arch/powerpc/boot')
351 files changed, 31709 insertions, 12156 deletions
diff --git a/arch/powerpc/boot/.gitignore b/arch/powerpc/boot/.gitignore index 3d80c3e9cf6..d61c0352577 100644 --- a/arch/powerpc/boot/.gitignore +++ b/arch/powerpc/boot/.gitignore @@ -1,11 +1,6 @@  addnote -dtc  empty.c  hack-coff -infblock.c -infblock.h -infcodes.c -infcodes.h  inffast.c  inffast.h  inffixed.h @@ -21,14 +16,15 @@ mktree  uImage  cuImage.*  dtbImage.* +*.dtb  treeImage.*  zImage  zImage.initrd  zImage.bin.*  zImage.chrp  zImage.coff +zImage.epapr  zImage.holly -zImage.iseries  zImage.*lds  zImage.miboot  zImage.pmac diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index fae8192c8fc..ccc25eddbcb 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile @@ -23,6 +23,13 @@ BOOTCFLAGS    := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \  		 -fno-strict-aliasing -Os -msoft-float -pipe \  		 -fomit-frame-pointer -fno-builtin -fPIC -nostdinc \  		 -isystem $(shell $(CROSS32CC) -print-file-name=include) +ifdef CONFIG_PPC64_BOOT_WRAPPER +BOOTCFLAGS	+= -m64 +endif +ifdef CONFIG_CPU_BIG_ENDIAN +BOOTCFLAGS	+= -mbig-endian +endif +  BOOTAFLAGS	:= -D__ASSEMBLY__ $(BOOTCFLAGS) -traditional -nostdinc  ifdef CONFIG_DEBUG_INFO @@ -35,7 +42,7 @@ endif  BOOTCFLAGS	+= -I$(obj) -I$(srctree)/$(obj) -DTS_FLAGS	?= -p 1024 +DTC_FLAGS	?= -p 1024  $(obj)/4xx.o: BOOTCFLAGS += -mcpu=405  $(obj)/ebony.o: BOOTCFLAGS += -mcpu=405 @@ -45,6 +52,8 @@ $(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405  $(obj)/cuboot-acadia.o: BOOTCFLAGS += -mcpu=405  $(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405  $(obj)/treeboot-iss4xx.o: BOOTCFLAGS += -mcpu=405 +$(obj)/treeboot-currituck.o: BOOTCFLAGS += -mcpu=405 +$(obj)/treeboot-akebono.o: BOOTCFLAGS += -mcpu=405  $(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405 @@ -52,39 +61,67 @@ zlib       := inffast.c inflate.c inftrees.c  zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h  zliblinuxheader := zlib.h zconf.h zutil.h -$(addprefix $(obj)/,$(zlib) cuboot-c2k.o gunzip_util.o main.o prpmc2800.o): \ +$(addprefix $(obj)/,$(zlib) cuboot-c2k.o gunzip_util.o main.o): \  	$(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader))  libfdt       := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c  libfdtheader := fdt.h libfdt.h libfdt_internal.h -$(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o): \ +$(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o): \  	$(addprefix $(obj)/,$(libfdtheader)) -src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \ +src-wlib-y := string.S crt0.S crtsavres.S stdio.c main.c \  		$(libfdt) libfdt-wrapper.c \  		ns16550.c serial.c simple_alloc.c div64.S util.S \ -		gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \ -		4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ -		cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \ -		fsl-soc.c mpc8xx.c pq2.c ugecon.c -src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \ -		cuboot-ebony.c cuboot-hotfoot.c treeboot-ebony.c prpmc2800.c \ -		ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \ -		cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c \ -		cuboot-bamboo.c cuboot-mpc7448hpc2.c cuboot-taishan.c \ -		fixed-head.S ep88xc.c ep405.c cuboot-c2k.c \ -		cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \ -		cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \ -		virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \ -		cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \ -		gamecube-head.S gamecube.c wii-head.S wii.c treeboot-iss4xx.c +		gunzip_util.c elf_util.c $(zlib) devtree.c stdlib.c \ +		oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \ +		uartlite.c mpc52xx-psc.c +src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c +src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c +src-wlib-$(CONFIG_8xx) += mpc8xx.c planetcore.c fsl-soc.c +src-wlib-$(CONFIG_PPC_82xx) += pq2.c fsl-soc.c planetcore.c +src-wlib-$(CONFIG_EMBEDDED6xx) += mv64x60.c mv64x60_i2c.c ugecon.c fsl-soc.c + +src-plat-y := of.c epapr.c +src-plat-$(CONFIG_40x) += fixed-head.S ep405.c cuboot-hotfoot.c \ +				treeboot-walnut.c cuboot-acadia.c \ +				cuboot-kilauea.c simpleboot.c \ +				virtex405-head.S virtex.c +src-plat-$(CONFIG_44x) += treeboot-ebony.c cuboot-ebony.c treeboot-bamboo.c \ +				cuboot-bamboo.c cuboot-sam440ep.c \ +				cuboot-sequoia.c cuboot-rainier.c \ +				cuboot-taishan.c cuboot-katmai.c \ +				cuboot-warp.c cuboot-yosemite.c \ +				treeboot-iss4xx.c treeboot-currituck.c \ +				treeboot-akebono.c \ +				simpleboot.c fixed-head.S virtex.c +src-plat-$(CONFIG_8xx) += cuboot-8xx.c fixed-head.S ep88xc.c redboot-8xx.c +src-plat-$(CONFIG_PPC_MPC52xx) += cuboot-52xx.c +src-plat-$(CONFIG_PPC_82xx) += cuboot-pq2.c fixed-head.S ep8248e.c cuboot-824x.c +src-plat-$(CONFIG_PPC_83xx) += cuboot-83xx.c fixed-head.S redboot-83xx.c +src-plat-$(CONFIG_FSL_SOC_BOOKE) += cuboot-85xx.c cuboot-85xx-cpm2.c +src-plat-$(CONFIG_EMBEDDED6xx) += cuboot-pq2.c cuboot-mpc7448hpc2.c \ +					cuboot-c2k.c gamecube-head.S \ +					gamecube.c wii-head.S wii.c holly.c \ +					fixed-head.S mvme5100.c +src-plat-$(CONFIG_AMIGAONE) += cuboot-amigaone.c +src-plat-$(CONFIG_PPC_PS3) += ps3-head.S ps3-hvcall.S ps3.c +src-plat-$(CONFIG_EPAPR_BOOT) += epapr.c epapr-wrapper.c +src-plat-$(CONFIG_PPC_PSERIES) += pseries-head.S +src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S +src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S +src-plat-$(CONFIG_PPC_CELLEB) += pseries-head.S +src-plat-$(CONFIG_PPC_CELL_QPACE) += pseries-head.S + +src-wlib := $(sort $(src-wlib-y)) +src-plat := $(sort $(src-plat-y))  src-boot := $(src-wlib) $(src-plat) empty.c  src-boot := $(addprefix $(obj)/, $(src-boot))  obj-boot := $(addsuffix .o, $(basename $(src-boot)))  obj-wlib := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-wlib))))  obj-plat := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-plat)))) +obj-plat: $(libfdt)  quiet_cmd_copy_zlib = COPY    $@        cmd_copy_zlib = sed "s@__used@@;s@<linux/\([^>]*\).*@\"\1\"@" $< > $@ @@ -113,7 +150,11 @@ $(addprefix $(obj)/,$(libfdt) $(libfdtheader)): $(obj)/%: $(srctree)/scripts/dtc  $(obj)/empty.c:  	@touch $@ -$(obj)/zImage.lds $(obj)/zImage.coff.lds $(obj)/zImage.ps3.lds: $(obj)/%: $(srctree)/$(src)/%.S +$(obj)/zImage.lds: $(obj)/%: $(srctree)/$(src)/%.S +	$(CROSS32CC) $(cpp_flags) -E -Wp,-MD,$(depfile) -P -Upowerpc \ +		-D__ASSEMBLY__ -DLINKER_SCRIPT -o $@ $< + +$(obj)/zImage.coff.lds $(obj)/zImage.ps3.lds : $(obj)/%: $(srctree)/$(src)/%.S  	@cp $< $@  clean-files := $(zlib) $(zlibheader) $(zliblinuxheader) \ @@ -127,7 +168,7 @@ quiet_cmd_bootas = BOOTAS  $@        cmd_bootas = $(CROSS32CC) -Wp,-MD,$(depfile) $(BOOTAFLAGS) -c -o $@ $<  quiet_cmd_bootar = BOOTAR  $@ -      cmd_bootar = $(CROSS32AR) -cr $@.$$$$ $(filter-out FORCE,$^); mv $@.$$$$ $@ +      cmd_bootar = $(CROSS32AR) -cr$(KBUILD_ARFLAGS) $@.$$$$ $(filter-out FORCE,$^); mv $@.$$$$ $@  $(obj-libfdt): $(obj)/%.o: $(srctree)/scripts/dtc/libfdt/%.c FORCE  	$(call if_changed_dep,bootcc) @@ -170,6 +211,7 @@ quiet_cmd_wrap	= WRAP    $@  		$(if $3, -s $3)$(if $4, -d $4)$(if $5, -i $5) vmlinux  image-$(CONFIG_PPC_PSERIES)		+= zImage.pseries +image-$(CONFIG_PPC_POWERNV)		+= zImage.pseries  image-$(CONFIG_PPC_MAPLE)		+= zImage.maple  image-$(CONFIG_PPC_IBM_CELL_BLADE)	+= zImage.pseries  image-$(CONFIG_PPC_PS3)			+= dtbImage.ps3 @@ -179,9 +221,8 @@ image-$(CONFIG_PPC_CHRP)		+= zImage.chrp  image-$(CONFIG_PPC_EFIKA)		+= zImage.chrp  image-$(CONFIG_PPC_PMAC)		+= zImage.pmac  image-$(CONFIG_PPC_HOLLY)		+= dtbImage.holly -image-$(CONFIG_PPC_PRPMC2800)		+= dtbImage.prpmc2800 -image-$(CONFIG_PPC_ISERIES)		+= zImage.iseries  image-$(CONFIG_DEFAULT_UIMAGE)		+= uImage +image-$(CONFIG_EPAPR_BOOT)		+= zImage.epapr  #  # Targets which embed a device tree blob @@ -196,6 +237,7 @@ image-$(CONFIG_EP405)			+= dtbImage.ep405  image-$(CONFIG_HOTFOOT)			+= cuImage.hotfoot  image-$(CONFIG_WALNUT)			+= treeImage.walnut  image-$(CONFIG_ACADIA)			+= cuImage.acadia +image-$(CONFIG_OBS600)			+= uImage.obs600  # Board ports in arch/powerpc/platform/44x/Kconfig  image-$(CONFIG_EBONY)			+= treeImage.ebony cuImage.ebony @@ -209,6 +251,8 @@ image-$(CONFIG_WARP)			+= cuImage.warp  image-$(CONFIG_YOSEMITE)		+= cuImage.yosemite  image-$(CONFIG_ISS4xx)			+= treeImage.iss4xx \  					   treeImage.iss4xx-mpic +image-$(CONFIG_CURRITUCK)			+= treeImage.currituck +image-$(CONFIG_AKEBONO)			+= treeImage.akebono  # Board ports in arch/powerpc/platform/8xx/Kconfig  image-$(CONFIG_MPC86XADS)		+= cuImage.mpc866ads @@ -240,7 +284,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 \ @@ -251,7 +295,6 @@ image-$(CONFIG_TQM8548)			+= cuImage.tqm8548  image-$(CONFIG_TQM8555)			+= cuImage.tqm8555  image-$(CONFIG_TQM8560)			+= cuImage.tqm8560  image-$(CONFIG_SBC8548)			+= cuImage.sbc8548 -image-$(CONFIG_SBC8560)			+= cuImage.sbc8560  image-$(CONFIG_KSI8560)			+= cuImage.ksi8560  # Board ports in arch/powerpc/platform/embedded6xx/Kconfig @@ -260,6 +303,7 @@ image-$(CONFIG_MPC7448HPC2)		+= cuImage.mpc7448hpc2  image-$(CONFIG_PPC_C2K)			+= cuImage.c2k  image-$(CONFIG_GAMECUBE)		+= dtbImage.gamecube  image-$(CONFIG_WII)			+= dtbImage.wii +image-$(CONFIG_MVME5100)		+= dtbImage.mvme5100  # Board port in arch/powerpc/platform/amigaone/Kconfig  image-$(CONFIG_AMIGAONE)		+= cuImage.amigaone @@ -289,8 +333,8 @@ $(addprefix $(obj)/, $(initrd-y)): $(obj)/ramdisk.image.gz  $(obj)/zImage.initrd.%: vmlinux $(wrapperbits)  	$(call if_changed,wrap,$*,,,$(obj)/ramdisk.image.gz) -$(obj)/zImage.%: vmlinux $(wrapperbits) -	$(call if_changed,wrap,$*) +$(addprefix $(obj)/, $(sort $(filter zImage.%, $(image-y)))): vmlinux $(wrapperbits) +	$(call if_changed,wrap,$(subst $(obj)/zImage.,,$@))  # dtbImage% - a dtbImage is a zImage with an embedded device tree blob  $(obj)/dtbImage.initrd.%: vmlinux $(wrapperbits) $(obj)/%.dtb @@ -304,15 +348,15 @@ $(obj)/dtbImage.%: vmlinux $(wrapperbits) $(obj)/%.dtb  $(obj)/vmlinux.strip: vmlinux  	$(STRIP) -s -R .comment $< -o $@ -# The iseries hypervisor won't take an ET_DYN executable, so this -# changes the type (byte 17) in the file to ET_EXEC (2). -$(obj)/zImage.iseries: vmlinux -	$(STRIP) -s -R .comment $< -o $@ -	printf "\x02" | dd of=$@ conv=notrunc bs=1 seek=17 -  $(obj)/uImage: vmlinux $(wrapperbits)  	$(call if_changed,wrap,uboot) +$(obj)/uImage.initrd.%: vmlinux $(obj)/%.dtb $(wrapperbits) +	$(call if_changed,wrap,uboot-$*,,$(obj)/$*.dtb,$(obj)/ramdisk.image.gz) + +$(obj)/uImage.%: vmlinux $(obj)/%.dtb $(wrapperbits) +	$(call if_changed,wrap,uboot-$*,,$(obj)/$*.dtb) +  $(obj)/cuImage.initrd.%: vmlinux $(obj)/%.dtb $(wrapperbits)  	$(call if_changed,wrap,cuboot-$*,,$(obj)/$*.dtb,$(obj)/ramdisk.image.gz) @@ -332,10 +376,8 @@ $(obj)/treeImage.%: vmlinux $(obj)/%.dtb $(wrapperbits)  	$(call if_changed,wrap,treeboot-$*,,$(obj)/$*.dtb)  # Rule to build device tree blobs -DTC = $(objtree)/scripts/dtc/dtc - -$(obj)/%.dtb: $(dtstree)/%.dts -	$(DTC) -O dtb -o $(obj)/$*.dtb -b 0 $(DTS_FLAGS) $(dtstree)/$*.dts +$(obj)/%.dtb: $(src)/dts/%.dts FORCE +	$(call if_changed_dep,dtc)  # If there isn't a platform selected then just strip the vmlinux.  ifeq (,$(image-y)) @@ -353,7 +395,7 @@ install: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))  # anything not in $(targets)  clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \  	zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \ -	zImage.iseries zImage.miboot zImage.pmac zImage.pseries \ +	zImage.miboot zImage.pmac zImage.pseries \  	zImage.maple simpleImage.* otheros.bld *.dtb  # clean up files cached by wrapper @@ -370,7 +412,7 @@ INSTALL := install  extra-installed		:= $(patsubst $(obj)/%, $(DESTDIR)$(WRAPPER_OBJDIR)/%, $(extra-y))  hostprogs-installed	:= $(patsubst %, $(DESTDIR)$(WRAPPER_BINDIR)/%, $(hostprogs-y))  wrapper-installed	:= $(DESTDIR)$(WRAPPER_BINDIR)/wrapper -dts-installed		:= $(patsubst $(obj)/dts/%, $(DESTDIR)$(WRAPPER_DTSDIR)/%, $(wildcard $(obj)/dts/*.dts)) +dts-installed		:= $(patsubst $(dtstree)/%, $(DESTDIR)$(WRAPPER_DTSDIR)/%, $(wildcard $(dtstree)/*.dts))  all-installed		:= $(extra-installed) $(hostprogs-installed) $(wrapper-installed) $(dts-installed) @@ -408,4 +450,3 @@ $(wrapper-installed): $(DESTDIR)$(WRAPPER_BINDIR) $(srctree)/$(obj)/wrapper | $(  	$(call cmd,install_wrapper)  $(obj)/bootwrapper_install: $(all-installed) - diff --git a/arch/powerpc/boot/addnote.c b/arch/powerpc/boot/addnote.c index 349b5530d2c..9d9f6f334d3 100644 --- a/arch/powerpc/boot/addnote.c +++ b/arch/powerpc/boot/addnote.c @@ -6,6 +6,8 @@   *   * Copyright 2000 Paul Mackerras.   * + * Adapted for 64 bit little endian images by Andrew Tauferner. + *   * 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 @@ -55,36 +57,61 @@ unsigned int rpanote[N_RPA_DESCR] = {  #define ROUNDUP(len)	(((len) + 3) & ~3) -unsigned char buf[512]; +unsigned char buf[1024]; +#define ELFDATA2LSB     1 +#define ELFDATA2MSB     2 +static int e_data = ELFDATA2MSB; +#define ELFCLASS32      1 +#define ELFCLASS64      2 +static int e_class = ELFCLASS32;  #define GET_16BE(off)	((buf[off] << 8) + (buf[(off)+1])) -#define GET_32BE(off)	((GET_16BE(off) << 16) + GET_16BE((off)+2)) - -#define PUT_16BE(off, v)	(buf[off] = ((v) >> 8) & 0xff, \ -				 buf[(off) + 1] = (v) & 0xff) -#define PUT_32BE(off, v)	(PUT_16BE((off), (v) >> 16), \ -				 PUT_16BE((off) + 2, (v))) +#define GET_32BE(off)	((GET_16BE(off) << 16U) + GET_16BE((off)+2U)) +#define GET_64BE(off)	((((unsigned long long)GET_32BE(off)) << 32ULL) + \ +			((unsigned long long)GET_32BE((off)+4ULL))) +#define PUT_16BE(off, v)(buf[off] = ((v) >> 8) & 0xff, \ +			 buf[(off) + 1] = (v) & 0xff) +#define PUT_32BE(off, v)(PUT_16BE((off), (v) >> 16L), PUT_16BE((off) + 2, (v))) +#define PUT_64BE(off, v)((PUT_32BE((off), (v) >> 32L), \ +			  PUT_32BE((off) + 4, (v)))) + +#define GET_16LE(off)	((buf[off]) + (buf[(off)+1] << 8)) +#define GET_32LE(off)	(GET_16LE(off) + (GET_16LE((off)+2U) << 16U)) +#define GET_64LE(off)	((unsigned long long)GET_32LE(off) + \ +			(((unsigned long long)GET_32LE((off)+4ULL)) << 32ULL)) +#define PUT_16LE(off, v) (buf[off] = (v) & 0xff, \ +			  buf[(off) + 1] = ((v) >> 8) & 0xff) +#define PUT_32LE(off, v) (PUT_16LE((off), (v)), PUT_16LE((off) + 2, (v) >> 16L)) +#define PUT_64LE(off, v) (PUT_32LE((off), (v)), PUT_32LE((off) + 4, (v) >> 32L)) + +#define GET_16(off)	(e_data == ELFDATA2MSB ? GET_16BE(off) : GET_16LE(off)) +#define GET_32(off)	(e_data == ELFDATA2MSB ? GET_32BE(off) : GET_32LE(off)) +#define GET_64(off)	(e_data == ELFDATA2MSB ? GET_64BE(off) : GET_64LE(off)) +#define PUT_16(off, v)	(e_data == ELFDATA2MSB ? PUT_16BE(off, v) : \ +			 PUT_16LE(off, v)) +#define PUT_32(off, v)  (e_data == ELFDATA2MSB ? PUT_32BE(off, v) : \ +			 PUT_32LE(off, v)) +#define PUT_64(off, v)  (e_data == ELFDATA2MSB ? PUT_64BE(off, v) : \ +			 PUT_64LE(off, v))  /* Structure of an ELF file */  #define E_IDENT		0	/* ELF header */ -#define	E_PHOFF		28 -#define E_PHENTSIZE	42 -#define E_PHNUM		44 -#define E_HSIZE		52	/* size of ELF header */ +#define	E_PHOFF		(e_class == ELFCLASS32 ? 28 : 32) +#define E_PHENTSIZE	(e_class == ELFCLASS32 ? 42 : 54) +#define E_PHNUM		(e_class == ELFCLASS32 ? 44 : 56) +#define E_HSIZE		(e_class == ELFCLASS32 ? 52 : 64)  #define EI_MAGIC	0	/* offsets in E_IDENT area */  #define EI_CLASS	4  #define EI_DATA		5  #define PH_TYPE		0	/* ELF program header */ -#define PH_OFFSET	4 -#define PH_FILESZ	16 -#define PH_HSIZE	32	/* size of program header */ +#define PH_OFFSET	(e_class == ELFCLASS32 ? 4 : 8) +#define PH_FILESZ	(e_class == ELFCLASS32 ? 16 : 32) +#define PH_HSIZE	(e_class == ELFCLASS32 ? 32 : 56)  #define PT_NOTE		4	/* Program header type = note */ -#define ELFCLASS32	1 -#define ELFDATA2MSB	2  unsigned char elf_magic[4] = { 0x7f, 'E', 'L', 'F' }; @@ -92,8 +119,8 @@ int  main(int ac, char **av)  {  	int fd, n, i; -	int ph, ps, np; -	int nnote, nnote2, ns; +	unsigned long ph, ps, np; +	long nnote, nnote2, ns;  	if (ac != 2) {  		fprintf(stderr, "Usage: %s elf-file\n", av[0]); @@ -114,26 +141,27 @@ main(int ac, char **av)  		exit(1);  	} -	if (n < E_HSIZE || memcmp(&buf[E_IDENT+EI_MAGIC], elf_magic, 4) != 0) +	if (memcmp(&buf[E_IDENT+EI_MAGIC], elf_magic, 4) != 0) +		goto notelf; +	e_class = buf[E_IDENT+EI_CLASS]; +	if (e_class != ELFCLASS32 && e_class != ELFCLASS64) +		goto notelf; +	e_data = buf[E_IDENT+EI_DATA]; +	if (e_data != ELFDATA2MSB && e_data != ELFDATA2LSB) +		goto notelf; +	if (n < E_HSIZE)  		goto notelf; -	if (buf[E_IDENT+EI_CLASS] != ELFCLASS32 -	    || buf[E_IDENT+EI_DATA] != ELFDATA2MSB) { -		fprintf(stderr, "%s is not a big-endian 32-bit ELF image\n", -			av[1]); -		exit(1); -	} - -	ph = GET_32BE(E_PHOFF); -	ps = GET_16BE(E_PHENTSIZE); -	np = GET_16BE(E_PHNUM); +	ph = (e_class == ELFCLASS32 ? GET_32(E_PHOFF) : GET_64(E_PHOFF)); +	ps = GET_16(E_PHENTSIZE); +	np = GET_16(E_PHNUM);  	if (ph < E_HSIZE || ps < PH_HSIZE || np < 1)  		goto notelf;  	if (ph + (np + 2) * ps + nnote + nnote2 > n)  		goto nospace;  	for (i = 0; i < np; ++i) { -		if (GET_32BE(ph + PH_TYPE) == PT_NOTE) { +		if (GET_32(ph + PH_TYPE) == PT_NOTE) {  			fprintf(stderr, "%s already has a note entry\n",  				av[1]);  			exit(0); @@ -148,15 +176,22 @@ main(int ac, char **av)  	/* fill in the program header entry */  	ns = ph + 2 * ps; -	PUT_32BE(ph + PH_TYPE, PT_NOTE); -	PUT_32BE(ph + PH_OFFSET, ns); -	PUT_32BE(ph + PH_FILESZ, nnote); +	PUT_32(ph + PH_TYPE, PT_NOTE); +	if (e_class == ELFCLASS32) +		PUT_32(ph + PH_OFFSET, ns); +	else +		PUT_64(ph + PH_OFFSET, ns); + +	if (e_class == ELFCLASS32) +		PUT_32(ph + PH_FILESZ, nnote); +	else +		PUT_64(ph + PH_FILESZ, nnote);  	/* fill in the note area we point to */  	/* XXX we should probably make this a proper section */ -	PUT_32BE(ns, strlen(arch) + 1); -	PUT_32BE(ns + 4, N_DESCR * 4); -	PUT_32BE(ns + 8, 0x1275); +	PUT_32(ns, strlen(arch) + 1); +	PUT_32(ns + 4, N_DESCR * 4); +	PUT_32(ns + 8, 0x1275);  	strcpy((char *) &buf[ns + 12], arch);  	ns += 12 + strlen(arch) + 1;  	for (i = 0; i < N_DESCR; ++i, ns += 4) @@ -164,21 +199,28 @@ main(int ac, char **av)  	/* fill in the second program header entry and the RPA note area */  	ph += ps; -	PUT_32BE(ph + PH_TYPE, PT_NOTE); -	PUT_32BE(ph + PH_OFFSET, ns); -	PUT_32BE(ph + PH_FILESZ, nnote2); +	PUT_32(ph + PH_TYPE, PT_NOTE); +	if (e_class == ELFCLASS32) +		PUT_32(ph + PH_OFFSET, ns); +	else +		PUT_64(ph + PH_OFFSET, ns); + +	if (e_class == ELFCLASS32) +		PUT_32(ph + PH_FILESZ, nnote); +	else +		PUT_64(ph + PH_FILESZ, nnote2);  	/* fill in the note area we point to */ -	PUT_32BE(ns, strlen(rpaname) + 1); -	PUT_32BE(ns + 4, sizeof(rpanote)); -	PUT_32BE(ns + 8, 0x12759999); +	PUT_32(ns, strlen(rpaname) + 1); +	PUT_32(ns + 4, sizeof(rpanote)); +	PUT_32(ns + 8, 0x12759999);  	strcpy((char *) &buf[ns + 12], rpaname);  	ns += 12 + ROUNDUP(strlen(rpaname) + 1);  	for (i = 0; i < N_RPA_DESCR; ++i, ns += 4)  		PUT_32BE(ns, rpanote[i]);  	/* Update the number of program headers */ -	PUT_16BE(E_PHNUM, np + 2); +	PUT_16(E_PHNUM, np + 2);  	/* write back */  	lseek(fd, (long) 0, SEEK_SET); diff --git a/arch/powerpc/boot/crt0.S b/arch/powerpc/boot/crt0.S index f1c4dfc635b..14de4f8778a 100644 --- a/arch/powerpc/boot/crt0.S +++ b/arch/powerpc/boot/crt0.S @@ -1,21 +1,51 @@  /*   * Copyright (C) Paul Mackerras 1997.   * + * Adapted for 64 bit LE PowerPC by Andrew Tauferner + *   * 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.   * - * NOTE: this code runs in 32 bit mode and is packaged as ELF32.   */  #include "ppc_asm.h" +RELA = 7 +RELACOUNT = 0x6ffffff9 +  	.text -	/* a procedure descriptor used when booting this as a COFF file */ +	/* A procedure descriptor used when booting this as a COFF file. +	 * When making COFF, this comes first in the link and we're +	 * linked at 0x500000. +	 */  	.globl	_zimage_start_opd  _zimage_start_opd: -	.long	_zimage_start, 0, 0, 0 +	.long	0x500000, 0, 0, 0 + +#ifdef __powerpc64__ +.balign 8 +p_start:	.llong	_start +p_etext:	.llong	_etext +p_bss_start:	.llong	__bss_start +p_end:		.llong	_end + +p_toc:		.llong	__toc_start + 0x8000 - p_base +p_dyn:		.llong	__dynamic_start - p_base +p_rela:		.llong	__rela_dyn_start - p_base +p_prom:		.llong	0 +	.weak	_platform_stack_top +p_pstack:	.llong	_platform_stack_top +#else +p_start:	.long	_start +p_etext:	.long	_etext +p_bss_start:	.long	__bss_start +p_end:		.long	_end + +	.weak	_platform_stack_top +p_pstack:	.long	_platform_stack_top +#endif  	.weak	_zimage_start  	.globl	_zimage_start @@ -24,37 +54,64 @@ _zimage_start:  _zimage_start_lib:  	/* Work out the offset between the address we were linked at  	   and the address where we're running. */ -	bl	1f -1:	mflr	r0 -	lis	r9,1b@ha -	addi	r9,r9,1b@l -	subf.	r0,r9,r0 -	beq	3f		/* if running at same address as linked */ - -	/* The .got2 section contains a list of addresses, so add -	   the address offset onto each entry. */ -	lis	r9,__got2_start@ha -	addi	r9,r9,__got2_start@l -	lis	r8,__got2_end@ha -	addi	r8,r8,__got2_end@l -	subf.	r8,r9,r8 +	bl	.+4 +p_base:	mflr	r10		/* r10 now points to runtime addr of p_base */ +#ifndef __powerpc64__ +	/* grab the link address of the dynamic section in r11 */ +	addis	r11,r10,(_GLOBAL_OFFSET_TABLE_-p_base)@ha +	lwz	r11,(_GLOBAL_OFFSET_TABLE_-p_base)@l(r11) +	cmpwi	r11,0 +	beq	3f		/* if not linked -pie */ +	/* get the runtime address of the dynamic section in r12 */ +	.weak	__dynamic_start +	addis	r12,r10,(__dynamic_start-p_base)@ha +	addi	r12,r12,(__dynamic_start-p_base)@l +	subf	r11,r11,r12	/* runtime - linktime offset */ + +	/* The dynamic section contains a series of tagged entries. +	 * We need the RELA and RELACOUNT entries. */ +	li	r9,0 +	li	r0,0 +9:	lwz	r8,0(r12)	/* get tag */ +	cmpwi	r8,0 +	beq	10f		/* end of list */ +	cmpwi	r8,RELA +	bne	11f +	lwz	r9,4(r12)	/* get RELA pointer in r9 */ +	b	12f +11:	addis	r8,r8,(-RELACOUNT)@ha +	cmpwi	r8,RELACOUNT@l +	bne	12f +	lwz	r0,4(r12)	/* get RELACOUNT value in r0 */ +12:	addi	r12,r12,8 +	b	9b + +	/* The relocation section contains a list of relocations. +	 * We now do the R_PPC_RELATIVE ones, which point to words +	 * which need to be initialized with addend + offset. +	 * The R_PPC_RELATIVE ones come first and there are RELACOUNT +	 * of them. */ +10:	/* skip relocation if we don't have both */ +	cmpwi	r0,0  	beq	3f -	srwi.	r8,r8,2 -	mtctr	r8 -	add	r9,r0,r9 -2:	lwz	r8,0(r9) -	add	r8,r8,r0 -	stw	r8,0(r9) -	addi	r9,r9,4 +	cmpwi	r9,0 +	beq	3f + +	add	r9,r9,r11	/* Relocate RELA pointer */ +	mtctr	r0 +2:	lbz	r0,4+3(r9)	/* ELF32_R_INFO(reloc->r_info) */ +	cmpwi	r0,22		/* R_PPC_RELATIVE */ +	bne	3f +	lwz	r12,0(r9)	/* reloc->r_offset */ +	lwz	r0,8(r9)	/* reloc->r_addend */ +	add	r0,r0,r11 +	stwx	r0,r11,r12 +	addi	r9,r9,12  	bdnz	2b  	/* Do a cache flush for our text, in case the loader didn't */ -3:	lis	r9,_start@ha -	addi	r9,r9,_start@l -	add	r9,r0,r9 -	lis	r8,_etext@ha -	addi	r8,r8,_etext@l -	add	r8,r0,r8 +3:	lwz	r9,p_start-p_base(r10)	/* note: these are relocated now */ +	lwz	r8,p_etext-p_base(r10)  4:	dcbf	r0,r9  	icbi	r0,r9  	addi	r9,r9,0x20 @@ -64,33 +121,180 @@ _zimage_start_lib:  	isync  	/* Clear the BSS */ -	lis	r9,__bss_start@ha -	addi	r9,r9,__bss_start@l -	add	r9,r0,r9 -	lis	r8,_end@ha -	addi	r8,r8,_end@l -	add	r8,r0,r8 -	li	r10,0 -5:	stw	r10,0(r9) +	lwz	r9,p_bss_start-p_base(r10) +	lwz	r8,p_end-p_base(r10) +	li	r0,0 +5:	stw	r0,0(r9)  	addi	r9,r9,4  	cmplw	cr0,r9,r8  	blt	5b  	/* Possibly set up a custom stack */ -.weak	_platform_stack_top -	lis	r8,_platform_stack_top@ha -	addi	r8,r8,_platform_stack_top@l +	lwz	r8,p_pstack-p_base(r10)  	cmpwi	r8,0  	beq	6f -	add	r8,r0,r8  	lwz	r1,0(r8) -	add	r1,r0,r1  	li	r0,0  	stwu	r0,-16(r1)	/* establish a stack frame */  6: +#else /* __powerpc64__ */ +	/* Save the prom pointer at p_prom. */ +	std	r5,(p_prom-p_base)(r10) + +	/* Set r2 to the TOC. */ +	ld	r2,(p_toc-p_base)(r10) +	add	r2,r2,r10 + +	/* Grab the link address of the dynamic section in r11. */ +	ld	r11,-32768(r2) +	cmpwi	r11,0 +	beq	3f              /* if not linked -pie then no dynamic section */ + +	ld	r11,(p_dyn-p_base)(r10) +	add	r11,r11,r10 +	ld	r9,(p_rela-p_base)(r10) +	add	r9,r9,r10 + +	li	r7,0 +	li	r8,0 +9:	ld	r6,0(r11)       /* get tag */ +	cmpdi	r6,0 +	beq	12f              /* end of list */ +	cmpdi	r6,RELA +	bne	10f +	ld	r7,8(r11)       /* get RELA pointer in r7 */ +	b	11f +10:	addis	r6,r6,(-RELACOUNT)@ha +	cmpdi	r6,RELACOUNT@l +	bne	11f +	ld	r8,8(r11)       /* get RELACOUNT value in r8 */ +11:	addi	r11,r11,16 +	b	9b +12: +	cmpdi	r7,0            /* check we have both RELA and RELACOUNT */ +	cmpdi	cr1,r8,0 +	beq	3f +	beq	cr1,3f + +	/* Calcuate the runtime offset. */ +	subf	r7,r7,r9 + +	/* Run through the list of relocations and process the +	 * R_PPC64_RELATIVE ones. */ +	mtctr	r8 +13:	ld	r0,8(r9)        /* ELF64_R_TYPE(reloc->r_info) */ +	cmpdi	r0,22           /* R_PPC64_RELATIVE */ +	bne	3f +	ld	r6,0(r9)        /* reloc->r_offset */ +	ld	r0,16(r9)       /* reloc->r_addend */ +	add	r0,r0,r7 +	stdx	r0,r7,r6 +	addi	r9,r9,24 +	bdnz	13b + +	/* Do a cache flush for our text, in case the loader didn't */ +3:	ld	r9,p_start-p_base(r10)	/* note: these are relocated now */ +	ld	r8,p_etext-p_base(r10) +4:	dcbf	r0,r9 +	icbi	r0,r9 +	addi	r9,r9,0x20 +	cmpld	cr0,r9,r8 +	blt	4b +	sync +	isync +	/* Clear the BSS */ +	ld	r9,p_bss_start-p_base(r10) +	ld	r8,p_end-p_base(r10) +	li	r0,0 +5:	std	r0,0(r9) +	addi	r9,r9,8 +	cmpld	cr0,r9,r8 +	blt	5b + +	/* Possibly set up a custom stack */ +	ld	r8,p_pstack-p_base(r10) +	cmpdi	r8,0 +	beq	6f +	ld	r1,0(r8) +	li	r0,0 +	stdu	r0,-16(r1)	/* establish a stack frame */ +6: +#endif  /* __powerpc64__ */  	/* Call platform_init() */  	bl	platform_init  	/* Call start */  	b	start + +#ifdef __powerpc64__ + +#define PROM_FRAME_SIZE 512 +#define SAVE_GPR(n, base)       std     n,8*(n)(base) +#define REST_GPR(n, base)       ld      n,8*(n)(base) +#define SAVE_2GPRS(n, base)     SAVE_GPR(n, base); SAVE_GPR(n+1, base) +#define SAVE_4GPRS(n, base)     SAVE_2GPRS(n, base); SAVE_2GPRS(n+2, base) +#define SAVE_8GPRS(n, base)     SAVE_4GPRS(n, base); SAVE_4GPRS(n+4, base) +#define SAVE_10GPRS(n, base)    SAVE_8GPRS(n, base); SAVE_2GPRS(n+8, base) +#define REST_2GPRS(n, base)     REST_GPR(n, base); REST_GPR(n+1, base) +#define REST_4GPRS(n, base)     REST_2GPRS(n, base); REST_2GPRS(n+2, base) +#define REST_8GPRS(n, base)     REST_4GPRS(n, base); REST_4GPRS(n+4, base) +#define REST_10GPRS(n, base)    REST_8GPRS(n, base); REST_2GPRS(n+8, base) + +/* prom handles the jump into and return from firmware.  The prom args pointer +   is loaded in r3. */ +.globl prom +prom: +	mflr	r0 +	std	r0,16(r1) +	stdu	r1,-PROM_FRAME_SIZE(r1) /* Save SP and create stack space */ + +	SAVE_GPR(2, r1) +	SAVE_GPR(13, r1) +	SAVE_8GPRS(14, r1) +	SAVE_10GPRS(22, r1) +	mfcr    r10 +	std     r10,8*32(r1) +	mfmsr   r10 +	std     r10,8*33(r1) + +	/* remove MSR_LE from msr but keep MSR_SF */ +	mfmsr	r10 +	rldicr	r10,r10,0,62 +	mtsrr1	r10 + +	/* Load FW address, set LR to label 1, and jump to FW */ +	bl	0f +0:	mflr	r10 +	addi	r11,r10,(1f-0b) +	mtlr	r11 + +	ld	r10,(p_prom-0b)(r10) +	mtsrr0	r10 + +	rfid + +1:	/* Return from OF */ +	FIXUP_ENDIAN + +	/* Restore registers and return. */ +	rldicl  r1,r1,0,32 + +	/* Restore the MSR (back to 64 bits) */ +	ld      r10,8*(33)(r1) +	mtmsr	r10 +	isync + +	/* Restore other registers */ +	REST_GPR(2, r1) +	REST_GPR(13, r1) +	REST_8GPRS(14, r1) +	REST_10GPRS(22, r1) +	ld      r10,8*32(r1) +	mtcr	r10 + +	addi    r1,r1,PROM_FRAME_SIZE +	ld      r0,16(r1) +	mtlr    r0 +	blr +#endif diff --git a/arch/powerpc/boot/dcr.h b/arch/powerpc/boot/dcr.h index 645a7c964e5..bf8f4ede192 100644 --- a/arch/powerpc/boot/dcr.h +++ b/arch/powerpc/boot/dcr.h @@ -9,6 +9,16 @@  	})  #define mtdcr(rn, val) \  	asm volatile("mtdcr %0,%1" : : "i"(rn), "r"(val)) +#define mfdcrx(rn) \ +	({	\ +		unsigned long rval; \ +		asm volatile("mfdcrx %0,%1" : "=r"(rval) : "r"(rn)); \ +		rval; \ +	}) +#define mtdcrx(rn, val) \ +	({	\ +		asm volatile("mtdcrx %0,%1" : : "r"(rn), "r" (val)); \ +	})  /* 440GP/440GX SDRAM controller DCRs */  #define DCRN_SDRAM0_CFGADDR				0x010 diff --git a/arch/powerpc/boot/div64.S b/arch/powerpc/boot/div64.S index 722f360a32a..bbcb8a4cc12 100644 --- a/arch/powerpc/boot/div64.S +++ b/arch/powerpc/boot/div64.S @@ -33,9 +33,10 @@ __div64_32:  	cntlzw	r0,r5		# we are shifting the dividend right  	li	r10,-1		# to make it < 2^32, and shifting  	srw	r10,r10,r0	# the divisor right the same amount, -	add	r9,r4,r10	# rounding up (so the estimate cannot +	addc	r9,r4,r10	# rounding up (so the estimate cannot  	andc	r11,r6,r10	# ever be too large, only too small)  	andc	r9,r9,r10 +	addze	r9,r9  	or	r11,r5,r11  	rotlw	r9,r9,r0  	rotlw	r11,r11,r0 @@ -56,3 +57,55 @@ __div64_32:  	stw	r8,4(r3)  	mr	r3,r6		# return the remainder in r3  	blr + +/* + * Extended precision shifts. + * + * Updated to be valid for shift counts from 0 to 63 inclusive. + * -- Gabriel + * + * R3/R4 has 64 bit value + * R5    has shift count + * result in R3/R4 + * + *  ashrdi3: arithmetic right shift (sign propagation)	 + *  lshrdi3: logical right shift + *  ashldi3: left shift + */ +	.globl __ashrdi3 +__ashrdi3: +	subfic	r6,r5,32 +	srw	r4,r4,r5	# LSW = count > 31 ? 0 : LSW >> count +	addi	r7,r5,32	# could be xori, or addi with -32 +	slw	r6,r3,r6	# t1 = count > 31 ? 0 : MSW << (32-count) +	rlwinm	r8,r7,0,32	# t3 = (count < 32) ? 32 : 0 +	sraw	r7,r3,r7	# t2 = MSW >> (count-32) +	or	r4,r4,r6	# LSW |= t1 +	slw	r7,r7,r8	# t2 = (count < 32) ? 0 : t2 +	sraw	r3,r3,r5	# MSW = MSW >> count +	or	r4,r4,r7	# LSW |= t2 +	blr + +	.globl __ashldi3 +__ashldi3: +	subfic	r6,r5,32 +	slw	r3,r3,r5	# MSW = count > 31 ? 0 : MSW << count +	addi	r7,r5,32	# could be xori, or addi with -32 +	srw	r6,r4,r6	# t1 = count > 31 ? 0 : LSW >> (32-count) +	slw	r7,r4,r7	# t2 = count < 32 ? 0 : LSW << (count-32) +	or	r3,r3,r6	# MSW |= t1 +	slw	r4,r4,r5	# LSW = LSW << count +	or	r3,r3,r7	# MSW |= t2 +	blr + +	.globl __lshrdi3 +__lshrdi3: +	subfic	r6,r5,32 +	srw	r4,r4,r5	# LSW = count > 31 ? 0 : LSW >> count +	addi	r7,r5,32	# could be xori, or addi with -32 +	slw	r6,r3,r6	# t1 = count > 31 ? 0 : MSW << (32-count) +	srw	r7,r3,r7	# t2 = count < 32 ? 0 : MSW >> (count-32) +	or	r4,r4,r6	# LSW |= t1 +	srw	r3,r3,r5	# MSW = MSW >> count +	or	r4,r4,r7	# LSW |= t2 +	blr diff --git a/arch/powerpc/boot/dtc-src/.gitignore b/arch/powerpc/boot/dtc-src/.gitignore deleted file mode 100644 index a7c3f94e5e7..00000000000 --- a/arch/powerpc/boot/dtc-src/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -dtc-lexer.lex.c -dtc-parser.tab.c -dtc-parser.tab.h diff --git a/arch/powerpc/boot/dts/a3m071.dts b/arch/powerpc/boot/dts/a3m071.dts new file mode 100644 index 00000000000..bf81b8f9704 --- /dev/null +++ b/arch/powerpc/boot/dts/a3m071.dts @@ -0,0 +1,142 @@ +/* + * a3m071 board Device Tree Source + * + * Copyright 2012 Stefan Roese <sr@denx.de> + * + * Copyright (C) 2011 DENX Software Engineering GmbH + * Heiko Schocher <hs@denx.de> + * + * Copyright (C) 2007 Semihalf + * Marian Balakowicz <m8@semihalf.com> + * + * This program is free software; you can redistribute  it and/or modify it + * under  the terms of  the GNU General  Public License as published by the + * Free Software Foundation;  either version 2 of the  License, or (at your + * option) any later version. + */ + +/include/ "mpc5200b.dtsi" + +&gpt0 { fsl,has-wdt; }; + +/ { +	model = "anonymous,a3m071"; +	compatible = "anonymous,a3m071"; + +	soc5200@f0000000 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,mpc5200b-immr"; +		ranges = <0 0xf0000000 0x0000c000>; +		reg = <0xf0000000 0x00000100>; +		bus-frequency = <0>; /* From boot loader */ +		system-frequency = <0>; /* From boot loader */ + +		spi@f00 { +			status = "disabled"; +		}; + +		usb: usb@1000 { +			status = "disabled"; +		}; + +		psc@2000 { +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; +			reg = <0x2000 0x100>; +			interrupts = <2 1 0>; +		}; + +		psc@2200 { +			status = "disabled"; +		}; + +		psc@2400 { +			status = "disabled"; +		}; + +		psc@2600 { +			status = "disabled"; +		}; + +		psc@2800 { +			status = "disabled"; +		}; + +		psc@2c00 {		// PSC6 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; +			reg = <0x2c00 0x100>; +			interrupts = <2 4 0>; +		}; + +		ethernet@3000 { +			phy-handle = <&phy0>; +		}; + +		mdio@3000 { +			phy0: ethernet-phy@3 { +				reg = <0x03>; +			}; +		}; + +		ata@3a00 { +			status = "disabled"; +		}; + +		i2c@3d00 { +			status = "disabled"; +		}; + +		i2c@3d40 { +			status = "disabled"; +		}; +	}; + +	localbus { +		compatible = "fsl,mpc5200b-lpb","simple-bus"; +		#address-cells = <2>; +		#size-cells = <1>; +		ranges = <0 0 0xfc000000 0x02000000 +			  3 0 0xe9000000 0x00080000 +			  5 0 0xe8000000 0x00010000>; + +		flash@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			reg = <0 0x0 0x02000000>; +			compatible = "cfi-flash"; +			bank-width = <2>; +			partition@0x0 { +				label = "u-boot"; +				reg = <0x00000000 0x00040000>; +				read-only; +			}; +			partition@0x00040000 { +				label = "env"; +				reg = <0x00040000 0x00020000>; +			}; +			partition@0x00060000 { +				label = "dtb"; +				reg = <0x00060000 0x00020000>; +			}; +			partition@0x00080000 { +				label = "kernel"; +				reg = <0x00080000 0x00500000>; +			}; +			partition@0x00580000 { +				label = "root"; +				reg = <0x00580000 0x00A80000>; +			}; +		}; + +		fpga@3,0 { +			compatible = "anonymous,a3m071-fpga"; +			reg = <3 0x0 0x00080000 +			       5 0x0 0x00010000>; +			interrupts = <0 0 3>;  /* level low */ +		}; +	}; + +	pci@f0000d00 { +		status = "disabled"; +	}; +}; diff --git a/arch/powerpc/boot/dts/a4m072.dts b/arch/powerpc/boot/dts/a4m072.dts new file mode 100644 index 00000000000..1f02034c7e9 --- /dev/null +++ b/arch/powerpc/boot/dts/a4m072.dts @@ -0,0 +1,151 @@ +/* + * a4m072 board Device Tree Source + * + * Copyright (C) 2011 DENX Software Engineering GmbH + * Heiko Schocher <hs@denx.de> + * + * Copyright (C) 2007 Semihalf + * Marian Balakowicz <m8@semihalf.com> + * + * This program is free software; you can redistribute  it and/or modify it + * under  the terms of  the GNU General  Public License as published by the + * Free Software Foundation;  either version 2 of the  License, or (at your + * option) any later version. + */ + +/include/ "mpc5200b.dtsi" + +&gpt0 { fsl,has-wdt; }; +&gpt3 { gpio-controller; }; +&gpt4 { gpio-controller; }; +&gpt5 { gpio-controller; }; + +/ { +	model = "anonymous,a4m072"; +	compatible = "anonymous,a4m072"; + +	soc5200@f0000000 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,mpc5200b-immr"; +		ranges = <0 0xf0000000 0x0000c000>; +		reg = <0xf0000000 0x00000100>; +		bus-frequency = <0>; /* From boot loader */ +		system-frequency = <0>; /* From boot loader */ + +		cdm@200 { +			fsl,init-ext-48mhz-en = <0x0>; +			fsl,init-fd-enable = <0x01>; +			fsl,init-fd-counters = <0x3333>; +		}; + +		spi@f00 { +			status = "disabled"; +		}; + +		psc@2000 { +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; +			reg = <0x2000 0x100>; +			interrupts = <2 1 0>; +		}; + +		psc@2200 { +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; +			reg = <0x2200 0x100>; +			interrupts = <2 2 0>; +		}; + +		psc@2400 { +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; +			reg = <0x2400 0x100>; +			interrupts = <2 3 0>; +		}; + +		psc@2600 { +			status = "disabled"; +		}; + +		psc@2800 { +			status = "disabled"; +		}; + +		psc@2c00 { +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; +			reg = <0x2c00 0x100>; +			interrupts = <2 4 0>; +		}; + +		ethernet@3000 { +			phy-handle = <&phy0>; +		}; + +		mdio@3000 { +			phy0: ethernet-phy@1f { +				reg = <0x1f>; +				interrupts = <1 2 0>; /* IRQ 2 active low */ +			}; +		}; + +		i2c@3d00 { +			status = "disabled"; +		}; + +		i2c@3d40 { +			hwmon@2e { +				compatible = "nsc,lm87"; +				reg = <0x2e>; +			}; +			rtc@51 { +				compatible = "nxp,rtc8564"; +				reg = <0x51>; +			}; +		}; +	}; + +	localbus { +		compatible = "fsl,mpc5200b-lpb","simple-bus"; +		#address-cells = <2>; +		#size-cells = <1>; +		ranges = <0 0 0xfe000000 0x02000000 +			  1 0 0x62000000 0x00400000 +			  2 0 0x64000000 0x00200000 +			  3 0 0x66000000 0x01000000 +			  6 0 0x68000000 0x01000000 +			  7 0 0x6a000000 0x00000004>; + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x02000000>; +			bank-width = <2>; +			#size-cells = <1>; +			#address-cells = <1>; +		}; +		sram0@1,0 { +			compatible = "mtd-ram"; +			reg = <1 0x00000 0x00400000>; +			bank-width = <2>; +		}; +	}; + +	pci@f0000d00 { +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		compatible = "fsl,mpc5200-pci"; +		reg = <0xf0000d00 0x100>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +				 /* IDSEL 0x16 */ +				 0xc000 0 0 1 &mpc5200_pic 1 3 3 +				 0xc000 0 0 2 &mpc5200_pic 1 3 3 +				 0xc000 0 0 3 &mpc5200_pic 1 3 3 +				 0xc000 0 0 4 &mpc5200_pic 1 3 3>; +		clock-frequency = <0>; /* From boot loader */ +		interrupts = <2 8 0 2 9 0 2 10 0>; +		bus-range = <0 0>; +		ranges = <0x42000000 0 0x80000000 0x80000000 0 0x10000000 +			  0x02000000 0 0x90000000 0x90000000 0 0x10000000 +			  0x01000000 0 0x00000000 0xa0000000 0 0x01000000>; +	}; +}; diff --git a/arch/powerpc/boot/dts/ac14xx.dts b/arch/powerpc/boot/dts/ac14xx.dts new file mode 100644 index 00000000000..a1b883730b3 --- /dev/null +++ b/arch/powerpc/boot/dts/ac14xx.dts @@ -0,0 +1,399 @@ +/* + * Device Tree Source for the MPC5121e based ac14xx board + * + * Copyright 2012 Anatolij Gustschin <agust@denx.de> + * + * 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 <mpc5121.dtsi> + +/ { +	model = "ac14xx"; +	compatible = "ifm,ac14xx", "fsl,mpc5121"; +	#address-cells = <1>; +	#size-cells = <1>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial7; +		spi4 = &spi4; +		spi5 = &spi5; +	}; + +	cpus { +		PowerPC,5121@0 { +			timebase-frequency = <40000000>;	/*  40 MHz (csb/4) */ +			bus-frequency = <160000000>;		/* 160 MHz csb bus */ +			clock-frequency = <400000000>;		/* 400 MHz ppc core */ +		}; +	}; + +	memory { +		reg = <0x00000000 0x10000000>;			/* 256MB at 0 */ +	}; + +	nfc@40000000 { +		status = "disabled"; +	}; + +	localbus@80000020 { +		ranges = <0x0 0x0 0xfc000000 0x04000000	/* CS0: NOR flash */ +			  0x1 0x0 0xe0000000 0x00010000 /* CS1: FRAM */ +			  0x2 0x0 0xe0100000 0x00080000 /* CS2: asi1 */ +			  0x3 0x0 0xe0300000 0x00020000 /* CS3: comm */ +			  0x5 0x0 0xe0400000 0x00010000 /* CS5: safety */ +			  0x6 0x0 0xe0200000 0x00080000>; /* CS6: asi2 */ + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0x00000000 0x04000000>; +			#address-cells = <1>; +			#size-cells = <1>; +			bank-width = <2>; +			device-width = <2>; + +			partition@0 { +				label = "dtb-kernel-production"; +				reg = <0x00000000 0x00400000>; +			}; +			partition@1 { +				label = "filesystem-production"; +				reg = <0x00400000 0x03400000>; +			}; + +			partition@2 { +				label = "recovery"; +				reg = <0x03800000 0x00700000>; +			}; + +			partition@3 { +				label = "uboot-code"; +				reg = <0x03f00000 0x00040000>; +			}; +			partition@4 { +				label = "uboot-env1"; +				reg = <0x03f40000 0x00020000>; +			}; +			partition@5 { +				label = "uboot-env2"; +				reg = <0x03f60000 0x00020000>; +			}; +		}; + +		fram@1,0 { +			compatible = "ifm,ac14xx-fram", "linux,uio-pdrv-genirq"; +			reg = <1 0x00000000 0x00010000>; +		}; + +		asi@2,0 { +			/* masters mapping: CS, CS offset, size */ +			reg = <2 0x00000000 0x00080000 +			       6 0x00000000 0x00080000>; +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "ifm,ac14xx-asi-fpga"; +			gpios = < +				&gpio_pic 26 0	/* prog */ +				&gpio_pic 27 0	/* done */ +				&gpio_pic 10 0	/* reset */ +				>; + +			master@1 { +				interrupts = <20 0x2>; +				interrupt-parent = <&gpio_pic>; +				chipselect = <2 0x00009000 0x00009100>; +				label = "AS-i master 1"; +			}; + +			master@2 { +				interrupts = <21 0x2>; +				interrupt-parent = <&gpio_pic>; +				chipselect = <6 0x00009000 0x00009100>; +				label = "AS-i master 2"; +			}; +		}; + +		netx@3,0 { +			compatible = "ifm,netx"; +			reg = <0x3 0x00000000 0x00020000>; +			chipselect = <3 0x00101140 0x00203100>; +			interrupts = <17 0x8>; +			gpios = <&gpio_pic 15 0>; +		}; + +		safety@5,0 { +			compatible = "ifm,safety"; +			reg = <0x5 0x00000000 0x00010000>; +			chipselect = <5 0x00009000 0x00009100>; +			interrupts = <22 0x2>; +			interrupt-parent = <&gpio_pic>; +			gpios = < +				&gpio_pic 12 0	/* prog */ +				&gpio_pic 11 0	/* done */ +				>; +		}; +	}; + +	clocks { +		osc { +			clock-frequency = <25000000>; +		}; +	}; + +	soc@80000000 { +		bus-frequency = <80000000>;	/* 80 MHz ips bus */ + +		clock@f00 { +			compatible = "fsl,mpc5121rev2-clock", "fsl,mpc5121-clock"; +		}; + +		/* +		 * GPIO PIC: +		 * interrupts cell = <pin nr, sense> +		 * sense == 8: Level, low assertion +		 * sense == 2: Edge, high-to-low change +		 */ +		gpio_pic: gpio@1100 { +			gpio-controller; +			#gpio-cells = <2>; +			interrupt-controller; +			#interrupt-cells = <2>; +		}; + +		sdhc@1500 { +			cd-gpios = <&gpio_pic 23 0>;	/* card detect */ +			wp-gpios = <&gpio_pic 24 0>;	/* write protect */ +			wp-inverted;			/* WP active high */ +		}; + +		i2c@1700 { +			/* use Fast-mode */ +			clock-frequency = <400000>; + +			at24@30 { +				compatible = "at24,24c01"; +				reg = <0x30>; +			}; + +			at24@31 { +				compatible = "at24,24c01"; +				reg = <0x31>; +			}; + +			temp@48 { +				compatible = "ad,ad7414"; +				reg = <0x48>; +			}; + +			at24@50 { +				compatible = "at24,24c01"; +				reg = <0x50>; +			}; + +			at24@51 { +				compatible = "at24,24c01"; +				reg = <0x51>; +			}; + +			at24@52 { +				compatible = "at24,24c01"; +				reg = <0x52>; +			}; + +			at24@53 { +				compatible = "at24,24c01"; +				reg = <0x53>; +			}; + +			at24@54 { +				compatible = "at24,24c01"; +				reg = <0x54>; +			}; + +			at24@55 { +				compatible = "at24,24c01"; +				reg = <0x55>; +			}; + +			at24@56 { +				compatible = "at24,24c01"; +				reg = <0x56>; +			}; + +			at24@57 { +				compatible = "at24,24c01"; +				reg = <0x57>; +			}; + +			rtc@68 { +				compatible = "stm,m41t00"; +				reg = <0x68>; +			}; +		}; + +		axe_pic: axe-base@2000 { +			compatible = "fsl,mpc5121-axe-base"; +			reg = <0x2000 0x100>; +			interrupts = <42 0x8>; +			interrupt-controller; +			#interrupt-cells = <2>; +		}; + +		axe-app { +			compatible = "fsl,mpc5121-axe-app"; +			interrupt-parent = <&axe_pic>; +			interrupts = < +					/* soft interrupts */ +					0 0x0	1 0x0	2 0x0	3 0x0 +					4 0x0	5 0x0	6 0x0	7 0x0 +					/* fifo interrupts */ +					8 0x0	9 0x0	10 0x0	11 0x0 +				>; +		}; + +		display@2100 { +			edid = [00 FF FF FF FF FF FF 00 14 94 00 00 00 00 00 00 +				0A 12 01 03 80 1C 23 78 CA 88 FF 94 52 54 8E 27 +				1E 4C 50 00 00 00 01 01 01 01 01 01 01 01 01 01 +				01 01 01 01 01 01 FB 00 B0 14 00 DC 05 00 08 04 +				21 00 1C 23 00 00 00 18 00 00 00 FD 00 38 3C 1F +				3C 01 0A 20 20 20 20 20 20 20 00 00 00 FC 00 45 +				54 30 31 38 30 30 33 44 4D 55 0A 0A 00 00 00 10 +				00 41 30 30 30 30 30 30 30 30 30 30 30 31 00 D5]; +		}; + +		can@2300 { +			status = "disabled"; +		}; + +		can@2380 { +			status = "disabled"; +		}; + +		viu@2400 { +			status = "disabled"; +		}; + +		mdio@2800 { +			phy0: ethernet-phy@1f { +				compatible = "smsc,lan8700"; +				reg = <0x1f>; +			}; +		}; + +		enet: ethernet@2800 { +			phy-handle = <&phy0>; +		}; + +		usb@3000 { +			status = "disabled"; +		}; + +		usb@4000 { +			status = "disabled"; +		}; + +		/* PSC3 serial port A, aka ttyPSC0 */ +		serial0: psc@11300 { +			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; +			fsl,rx-fifo-size = <512>; +			fsl,tx-fifo-size = <512>; +		}; + +		/* PSC4 in SPI mode */ +		spi4: psc@11400 { +			compatible = "fsl,mpc5121-psc-spi", "fsl,mpc5121-psc"; +			fsl,rx-fifo-size = <768>; +			fsl,tx-fifo-size = <768>; +			#address-cells = <1>; +			#size-cells = <0>; +			num-cs = <1>; +			cs-gpios = <&gpio_pic 25 0>; + +			flash: m25p128@0 { +				compatible = "st,m25p128"; +				spi-max-frequency = <20000000>; +				reg = <0>; +				#address-cells = <1>; +				#size-cells = <1>; + +				partition@0 { +					label = "spi-flash0"; +					reg = <0x00000000 0x01000000>; +				}; +			}; +		}; + +		/* PSC5 in SPI mode */ +		spi5: psc@11500 { +			compatible = "fsl,mpc5121-psc-spi", "fsl,mpc5121-psc"; +			fsl,mode = "spi-master"; +			fsl,rx-fifo-size = <128>; +			fsl,tx-fifo-size = <128>; +			#address-cells = <1>; +			#size-cells = <0>; + +			lcd@0 { +				compatible = "ilitek,ili922x"; +				reg = <0>; +				spi-max-frequency = <100000>; +				spi-cpol; +				spi-cpha; +			}; +		}; + +		/* PSC7 serial port C, aka ttyPSC2 */ +		serial7: psc@11700 { +			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; +			fsl,rx-fifo-size = <512>; +			fsl,tx-fifo-size = <512>; +		}; + +		matrix_keypad@0 { +			compatible = "gpio-matrix-keypad"; +			debounce-delay-ms = <5>; +			col-scan-delay-us = <1>; +			gpio-activelow; +			col-gpios-binary; +			col-switch-delay-ms = <200>; + +			col-gpios = <&gpio_pic 1 0>;	/* pin1 */ + +			row-gpios = <&gpio_pic 2 0	/* pin2 */ +				     &gpio_pic 3 0	/* pin3 */ +				     &gpio_pic 4 0>;	/* pin4 */ + +			linux,keymap = <0x0000006e	/* FN LEFT */ +					0x01000067	/* UP */ +					0x02000066	/* FN RIGHT */ +					0x00010069	/* LEFT */ +					0x0101006a	/* DOWN */ +					0x0201006c>;	/* RIGHT */ +		}; +	}; + +	leds { +		compatible = "gpio-leds"; + +		backlight { +			label = "backlight"; +			gpios = <&gpio_pic 0 0>; +			default-state = "keep"; +		}; +		green { +			label = "green"; +			gpios = <&gpio_pic 18 0>; +			default-state = "keep"; +		}; +		red { +			label = "red"; +			gpios = <&gpio_pic 19 0>; +			default-state = "keep"; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/adder875-redboot.dts b/arch/powerpc/boot/dts/adder875-redboot.dts index 28e9cd3d7a2..083984720b2 100644 --- a/arch/powerpc/boot/dts/adder875-redboot.dts +++ b/arch/powerpc/boot/dts/adder875-redboot.dts @@ -87,12 +87,10 @@  			PHY0: ethernet-phy@0 {  				reg = <0>; -				device_type = "ethernet-phy";  			};  			PHY1: ethernet-phy@1 {  				reg = <1>; -				device_type = "ethernet-phy";  			};  		}; diff --git a/arch/powerpc/boot/dts/adder875-uboot.dts b/arch/powerpc/boot/dts/adder875-uboot.dts index 54fb60ec03e..e4554caf8f8 100644 --- a/arch/powerpc/boot/dts/adder875-uboot.dts +++ b/arch/powerpc/boot/dts/adder875-uboot.dts @@ -86,12 +86,10 @@  			PHY0: ethernet-phy@0 {  				reg = <0>; -				device_type = "ethernet-phy";  			};  			PHY1: ethernet-phy@1 {  				reg = <1>; -				device_type = "ethernet-phy";  			};  		}; diff --git a/arch/powerpc/boot/dts/akebono.dts b/arch/powerpc/boot/dts/akebono.dts new file mode 100644 index 00000000000..f92ecfed3d2 --- /dev/null +++ b/arch/powerpc/boot/dts/akebono.dts @@ -0,0 +1,415 @@ +/* + * Device Tree Source for IBM Embedded PPC 476 Platform + * + * Copyright © 2013 Tony Breeds IBM Corporation + * Copyright © 2013 Alistair Popple IBM Corporation + * + * This file is licensed under the terms of the GNU General Public + * License version 2.  This program is licensed "as is" without + * any warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +/memreserve/ 0x01f00000 0x00100000;	// spin table + +/ { +	#address-cells = <2>; +	#size-cells = <2>; +	model = "ibm,akebono"; +	compatible = "ibm,akebono", "ibm,476gtr"; +	dcr-parent = <&{/cpus/cpu@0}>; + +	aliases { +		serial0 = &UART0; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu@0 { +			device_type = "cpu"; +			model = "PowerPC,476"; +			reg = <0>; +			clock-frequency = <1600000000>; // 1.6 GHz +			timebase-frequency = <100000000>; // 100Mhz +			i-cache-line-size = <32>; +			d-cache-line-size = <32>; +			i-cache-size = <32768>; +			d-cache-size = <32768>; +			dcr-controller; +			dcr-access-method = "native"; +			status = "ok"; +		}; +		cpu@1 { +			device_type = "cpu"; +			model = "PowerPC,476"; +			reg = <1>; +			clock-frequency = <1600000000>; // 1.6 GHz +			timebase-frequency = <100000000>; // 100Mhz +			i-cache-line-size = <32>; +			d-cache-line-size = <32>; +			i-cache-size = <32768>; +			d-cache-size = <32768>; +			dcr-controller; +			dcr-access-method = "native"; +			status = "disabled"; +			enable-method = "spin-table"; +			cpu-release-addr = <0x0 0x01f00000>; +		}; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x0 0x0 0x0 0x0>; // filled in by zImage +	}; + +	MPIC: interrupt-controller { +		compatible = "chrp,open-pic"; +		interrupt-controller; +		dcr-reg = <0xffc00000 0x00040000>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +		single-cpu-affinity; +	}; + +	plb { +		compatible = "ibm,plb6"; +		#address-cells = <2>; +		#size-cells = <2>; +		ranges; +		clock-frequency = <200000000>; // 200Mhz + +		HSTA0: hsta@310000e0000 { +			compatible = "ibm,476gtr-hsta-msi", "ibm,hsta-msi"; +			reg = <0x310 0x000e0000 0x0 0xf0>; +			interrupt-parent = <&MPIC>; +			interrupts = <108 0 +				      109 0 +				      110 0 +				      111 0 +				      112 0 +				      113 0 +				      114 0 +				      115 0 +				      116 0 +				      117 0 +				      118 0 +				      119 0 +				      120 0 +				      121 0 +				      122 0 +				      123 0>; +		}; + +		MAL0: mcmal { +			compatible = "ibm,mcmal-476gtr", "ibm,mcmal2"; +			dcr-reg = <0xc0000000 0x062>; +			num-tx-chans = <1>; +			num-rx-chans = <1>; +			#address-cells = <0>; +			#size-cells = <0>; +			interrupt-parent = <&MPIC>; +			interrupts = <	/*TXEOB*/ 77 0x4 +					/*RXEOB*/ 78 0x4 +					/*SERR*/  76 0x4 +					/*TXDE*/  79 0x4 +					/*RXDE*/  80 0x4>; +		}; + +		SATA0: sata@30000010000 { +			compatible = "ibm,476gtr-ahci"; +			reg = <0x300 0x00010000 0x0 0x10000>; +			interrupt-parent = <&MPIC>; +			interrupts = <93 2>; +		}; + +		EHCI0: ehci@30010000000 { +			compatible = "ibm,476gtr-ehci", "generic-ehci"; +			reg = <0x300 0x10000000 0x0 0x10000>; +			interrupt-parent = <&MPIC>; +			interrupts = <85 2>; +		}; + +		SD0: sd@30000000000 { +			compatible = "ibm,476gtr-sdhci", "generic-sdhci"; +			reg = <0x300 0x00000000 0x0 0x10000>; +			interrupts = <91 2>; +			interrupt-parent = <&MPIC>; +		}; + +		OHCI0: ohci@30010010000 { +			compatible = "ibm,476gtr-ohci", "generic-ohci"; +			reg = <0x300 0x10010000 0x0 0x10000>; +			interrupt-parent = <&MPIC>; +			interrupts = <89 1>; +			}; + +		OHCI1: ohci@30010020000 { +			compatible = "ibm,476gtr-ohci", "generic-ohci"; +			reg = <0x300 0x10020000 0x0 0x10000>; +			interrupt-parent = <&MPIC>; +			interrupts = <88 1>; +			}; + +		POB0: opb { +			compatible = "ibm,opb-4xx", "ibm,opb"; +			#address-cells = <1>; +			#size-cells = <1>; +			/* Wish there was a nicer way of specifying a full +			 * 32-bit range +			 */ +			ranges = <0x00000000 0x0000033f 0x00000000 0x80000000 +				  0x80000000 0x0000033f 0x80000000 0x80000000>; +			clock-frequency = <100000000>; + +			RGMII0: emac-rgmii-wol@50004 { +				compatible = "ibm,rgmii-wol-476gtr", "ibm,rgmii-wol"; +				reg = <0x50004 0x00000008>; +				has-mdio; +			}; + +			EMAC0: ethernet@30000 { +				device_type = "network"; +				compatible = "ibm,emac-476gtr", "ibm,emac4sync"; +				interrupt-parent = <&EMAC0>; +				interrupts = <0x0 0x1>; +				#interrupt-cells = <1>; +				#address-cells = <0>; +				#size-cells = <0>; +				interrupt-map = </*Status*/ 0x0 &MPIC 81 0x4 +						 /*Wake*/   0x1 &MPIC 82 0x4>; +				reg = <0x30000 0x78>; + +				/* local-mac-address will normally be added by +				 * the wrapper. If your device doesn't support +				 * passing data to the wrapper (in the form +				 * local-mac-addr=<hwaddr>) then you will need +				 * to set it manually here. */ +				//local-mac-address = [000000000000]; + +				mal-device = <&MAL0>; +				mal-tx-channel = <0>; +				mal-rx-channel = <0>; +				cell-index = <0>; +				max-frame-size = <9000>; +				rx-fifo-size = <4096>; +				tx-fifo-size = <2048>; +				rx-fifo-size-gige = <16384>; +				phy-mode = "rgmii"; +				phy-map = <0x00000000>; +				rgmii-wol-device = <&RGMII0>; +				has-inverted-stacr-oc; +				has-new-stacr-staopc; +			}; + +			UART0: serial@10000 { +				device_type = "serial"; +				compatible = "ns16750", "ns16550"; +				reg = <0x10000 0x00000008>; +				virtual-reg = <0xe8010000>; +				clock-frequency = <1851851>; +				current-speed = <38400>; +				interrupt-parent = <&MPIC>; +				interrupts = <39 2>; +			}; + +			IIC0: i2c@00000000 { +				compatible = "ibm,iic-476gtr", "ibm,iic"; +				reg = <0x0 0x00000020>; +				interrupt-parent = <&MPIC>; +				interrupts = <37 2>; +				#address-cells = <1>; +				#size-cells = <0>; +				rtc@68 { +					compatible = "stm,m41t80", "m41st85"; +					reg = <0x68>; +				}; +			}; + +			IIC1: i2c@00000100 { +				compatible = "ibm,iic-476gtr", "ibm,iic"; +				reg = <0x100 0x00000020>; +				interrupt-parent = <&MPIC>; +				interrupts = <38 2>; +				#address-cells = <1>; +				#size-cells = <0>; +				avr@58 { +					compatible = "ibm,akebono-avr"; +					reg = <0x58>; +				}; +			}; + +			FPGA0: fpga@ebc00000 { +				compatible = "ibm,akebono-fpga"; +				reg = <0xebc00000 0x8>; +			}; +		}; + +		PCIE0: pciex@10100000000 { +			device_type = "pci"; +			#interrupt-cells = <1>; +			#size-cells = <2>; +			#address-cells = <3>; +			compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; +			primary; +			port = <0x0>; /* port number */ +			reg = <0x00000101 0x00000000 0x0 0x10000000	       /* Config space access */ +			       0x00000100 0x00000000 0x0 0x00001000>;	/* UTL Registers space access */ +			dcr-reg = <0xc0 0x20>; + +//                                pci_space  < pci_addr          > < cpu_addr          > < size       > +			ranges = <0x02000000 0x00000000 0x80000000 0x00000110 0x80000000 0x0 0x80000000 +			          0x01000000 0x0        0x0        0x00000140 0x0        0x0 0x00010000>; + +			/* Inbound starting at 0x0 to 0x40000000000. In order to use MSI +			 * PCI devices must be able to write to the HSTA module. +			 */ +			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x400 0x0>; + +			/* This drives busses 0 to 0xf */ +			bus-range = <0x0 0xf>; + +			/* Legacy interrupts (note the weird polarity, the bridge seems +			 * to invert PCIe legacy interrupts). +			 * We are de-swizzling here because the numbers are actually for +			 * port of the root complex virtual P2P bridge. But I want +			 * to avoid putting a node for it in the tree, so the numbers +			 * below are basically de-swizzled numbers. +			 * The real slot is on idsel 0, so the swizzling is 1:1 +			 */ +			interrupt-map-mask = <0x0 0x0 0x0 0x7>; +			interrupt-map = < +				0x0 0x0 0x0 0x1 &MPIC 45 0x2 /* int A */ +				0x0 0x0 0x0 0x2 &MPIC 46 0x2 /* int B */ +				0x0 0x0 0x0 0x3 &MPIC 47 0x2 /* int C */ +				0x0 0x0 0x0 0x4 &MPIC 48 0x2 /* int D */>; +		}; + +		PCIE1: pciex@20100000000 { +			device_type = "pci"; +			#interrupt-cells = <1>; +			#size-cells = <2>; +			#address-cells = <3>; +			compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; +			primary; +			port = <0x1>; /* port number */ +			reg = <0x00000201 0x00000000 0x0 0x10000000	       /* Config space access */ +			       0x00000200 0x00000000 0x0 0x00001000>;	/* UTL Registers space access */ +			dcr-reg = <0x100 0x20>; + +//                                pci_space  < pci_addr          > < cpu_addr          > < size       > +			ranges = <0x02000000 0x00000000 0x80000000 0x00000210 0x80000000 0x0 0x80000000 +			          0x01000000 0x0        0x0        0x00000240 0x0        0x0 0x00010000>; + +			/* Inbound starting at 0x0 to 0x40000000000. In order to use MSI +			 * PCI devices must be able to write to the HSTA module. +			 */ +			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x400 0x0>; + +			/* This drives busses 0 to 0xf */ +			bus-range = <0x0 0xf>; + +			/* Legacy interrupts (note the weird polarity, the bridge seems +			 * to invert PCIe legacy interrupts). +			 * We are de-swizzling here because the numbers are actually for +			 * port of the root complex virtual P2P bridge. But I want +			 * to avoid putting a node for it in the tree, so the numbers +			 * below are basically de-swizzled numbers. +			 * The real slot is on idsel 0, so the swizzling is 1:1 +			 */ +			interrupt-map-mask = <0x0 0x0 0x0 0x7>; +			interrupt-map = < +				0x0 0x0 0x0 0x1 &MPIC 53 0x2 /* int A */ +				0x0 0x0 0x0 0x2 &MPIC 54 0x2 /* int B */ +				0x0 0x0 0x0 0x3 &MPIC 55 0x2 /* int C */ +				0x0 0x0 0x0 0x4 &MPIC 56 0x2 /* int D */>; +		}; + +		PCIE2: pciex@18100000000 { +			device_type = "pci"; +			#interrupt-cells = <1>; +			#size-cells = <2>; +			#address-cells = <3>; +			compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; +			primary; +			port = <0x2>; /* port number */ +			reg = <0x00000181 0x00000000 0x0 0x10000000	       /* Config space access */ +			       0x00000180 0x00000000 0x0 0x00001000>;	/* UTL Registers space access */ +			dcr-reg = <0xe0 0x20>; + +//                                pci_space  < pci_addr          > < cpu_addr          > < size       > +			ranges = <0x02000000 0x00000000 0x80000000 0x00000190 0x80000000 0x0 0x80000000 +			          0x01000000 0x0        0x0        0x000001c0 0x0        0x0 0x00010000>; + +			/* Inbound starting at 0x0 to 0x40000000000. In order to use MSI +			 * PCI devices must be able to write to the HSTA module. +			 */ +			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x400 0x0>; + +			/* This drives busses 0 to 0xf */ +			bus-range = <0x0 0xf>; + +			/* Legacy interrupts (note the weird polarity, the bridge seems +			 * to invert PCIe legacy interrupts). +			 * We are de-swizzling here because the numbers are actually for +			 * port of the root complex virtual P2P bridge. But I want +			 * to avoid putting a node for it in the tree, so the numbers +			 * below are basically de-swizzled numbers. +			 * The real slot is on idsel 0, so the swizzling is 1:1 +			 */ +			interrupt-map-mask = <0x0 0x0 0x0 0x7>; +			interrupt-map = < +				0x0 0x0 0x0 0x1 &MPIC 61 0x2 /* int A */ +				0x0 0x0 0x0 0x2 &MPIC 62 0x2 /* int B */ +				0x0 0x0 0x0 0x3 &MPIC 63 0x2 /* int C */ +				0x0 0x0 0x0 0x4 &MPIC 64 0x2 /* int D */>; +		}; + +		PCIE3: pciex@28100000000 { +			device_type = "pci"; +			#interrupt-cells = <1>; +			#size-cells = <2>; +			#address-cells = <3>; +			compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; +			primary; +			port = <0x3>; /* port number */ +			reg = <0x00000281 0x00000000 0x0 0x10000000	       /* Config space access */ +			       0x00000280 0x00000000 0x0 0x00001000>;	/* UTL Registers space access */ +			dcr-reg = <0x120 0x20>; + +//                                pci_space  < pci_addr          > < cpu_addr          > < size       > +			ranges = <0x02000000 0x00000000 0x80000000 0x00000290 0x80000000 0x0 0x80000000 +			          0x01000000 0x0        0x0        0x000002c0 0x0        0x0 0x00010000>; + +			/* Inbound starting at 0x0 to 0x40000000000. In order to use MSI +			 * PCI devices must be able to write to the HSTA module. +			 */ +			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x400 0x0>; + +			/* This drives busses 0 to 0xf */ +			bus-range = <0x0 0xf>; + +			/* Legacy interrupts (note the weird polarity, the bridge seems +			 * to invert PCIe legacy interrupts). +			 * We are de-swizzling here because the numbers are actually for +			 * port of the root complex virtual P2P bridge. But I want +			 * to avoid putting a node for it in the tree, so the numbers +			 * below are basically de-swizzled numbers. +			 * The real slot is on idsel 0, so the swizzling is 1:1 +			 */ +			interrupt-map-mask = <0x0 0x0 0x0 0x7>; +			interrupt-map = < +				0x0 0x0 0x0 0x1 &MPIC 69 0x2 /* int A */ +				0x0 0x0 0x0 0x2 &MPIC 70 0x2 /* int B */ +				0x0 0x0 0x0 0x3 &MPIC 71 0x2 /* int C */ +				0x0 0x0 0x0 0x4 &MPIC 72 0x2 /* int D */>; +		}; +	}; + +	chosen { +		linux,stdout-path = &UART0; +	}; +}; diff --git a/arch/powerpc/boot/dts/apollo3g.dts b/arch/powerpc/boot/dts/apollo3g.dts new file mode 100644 index 00000000000..c2e2af9d19e --- /dev/null +++ b/arch/powerpc/boot/dts/apollo3g.dts @@ -0,0 +1,419 @@ +/* + * Device Tree for Bluestone (APM821xx) board. + * + * Copyright (c) 2010, Applied Micro Circuits Corporation + * Author: Tirumala R Marri <tmarri@apm.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + */ + +/dts-v1/; + +/ { +	#address-cells = <2>; +	#size-cells = <1>; +	model = "apm,bluestone"; +	compatible = "apm,bluestone"; +	dcr-parent = <&{/cpus/cpu@0}>; + +	aliases { +		ethernet0 = &EMAC0; +		serial0 = &UART0; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu@0 { +			device_type = "cpu"; +			model = "PowerPC,apm821xx"; +			reg = <0x00000000>; +			clock-frequency = <0>; /* Filled in by U-Boot */ +			timebase-frequency = <0>; /* Filled in by U-Boot */ +			i-cache-line-size = <32>; +			d-cache-line-size = <32>; +			i-cache-size = <32768>; +			d-cache-size = <32768>; +			dcr-controller; +			dcr-access-method = "native"; +			next-level-cache = <&L2C0>; +		}; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by U-Boot */ +	}; + +	UIC0: interrupt-controller0 { +		compatible = "ibm,uic"; +		interrupt-controller; +		cell-index = <0>; +		dcr-reg = <0x0c0 0x009>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +	}; + +	UIC1: interrupt-controller1 { +		compatible = "ibm,uic"; +		interrupt-controller; +		cell-index = <1>; +		dcr-reg = <0x0d0 0x009>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ +		interrupt-parent = <&UIC0>; +	}; + +	UIC2: interrupt-controller2 { +		compatible = "ibm,uic"; +		interrupt-controller; +		cell-index = <2>; +		dcr-reg = <0x0e0 0x009>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +		interrupts = <0xa 0x4 0xb 0x4>; /* cascade */ +		interrupt-parent = <&UIC0>; +	}; + +	UIC3: interrupt-controller3 { +		compatible = "ibm,uic"; +		interrupt-controller; +		cell-index = <3>; +		dcr-reg = <0x0f0 0x009>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +		interrupts = <0x10 0x4 0x11 0x4>; /* cascade */ +		interrupt-parent = <&UIC0>; +	}; + +	OCM: ocm@400040000 { +		compatible = "ibm,ocm"; +		status = "ok"; +		cell-index = <1>; +		/* configured in U-Boot */ +		reg = <4 0x00040000 0x8000>; /* 32K */ +	}; + +	SDR0: sdr { +		compatible = "ibm,sdr-apm821xx"; +		dcr-reg = <0x00e 0x002>; +	}; + +	CPR0: cpr { +		compatible = "ibm,cpr-apm821xx"; +		dcr-reg = <0x00c 0x002>; +	}; + +	L2C0: l2c { +		compatible = "ibm,l2-cache-apm82181", "ibm,l2-cache"; +		dcr-reg = <0x020 0x008 +			   0x030 0x008>; +		cache-line-size = <32>; +		cache-size = <262144>; +		interrupt-parent = <&UIC1>; +		interrupts = <11 1>; +	}; + +	plb { +		compatible = "ibm,plb4"; +		#address-cells = <2>; +		#size-cells = <1>; +		ranges; +		clock-frequency = <0>; /* Filled in by U-Boot */ + +		SDRAM0: sdram { +			compatible = "ibm,sdram-apm821xx"; +			dcr-reg = <0x010 0x002>; +		}; + +		MAL0: mcmal { +			compatible = "ibm,mcmal2"; +			descriptor-memory = "ocm"; +			dcr-reg = <0x180 0x062>; +			num-tx-chans = <1>; +			num-rx-chans = <1>; +			#address-cells = <0>; +			#size-cells = <0>; +			interrupt-parent = <&UIC2>; +			interrupts = <	/*TXEOB*/ 0x6 0x4 +					/*RXEOB*/ 0x7 0x4 +					/*SERR*/  0x3 0x4 +					/*TXDE*/  0x4 0x4 +					/*RXDE*/  0x5 0x4 +					/*TX0 COAL*/  0x8 0x2 +					/*TX1 COAL  0x9 0x2*/ +					/*RX0 COAL*/  0xc 0x2 +					/*RX1 COAL  0xd 0x2*/>; +		}; + +		/* SATA DWC devices */ +		SATA0: sata@bffd1000 { +				compatible = "amcc,sata-460ex"; +				reg = <4 0xbffd1000 0x800       /* SATA0 */ +					   4 0xbffd0800 0x400>;     /* AHBDMA */ +				dma-channel=<0>; +				interrupt-parent = <&UIC0>; +				interrupts = <26 4      /* SATA0 */ +							  25 4>;    /* AHBDMA */ +		}; + +		SATA1: sata@bffd1800 { +			compatible = "amcc,sata-460ex"; +			reg = <4 0xbffd1800 0x800       /* SATA1 */ +			       4 0xbffd0800 0x400>;     /* AHBDMA */ +			dma-channel=<1>; +			interrupt-parent = <&UIC0>; +			interrupts = <27 4      /* SATA1 */ +				      25 4>;    /* AHBDMA */ +		}; + +		ADMA: adma { +			compatible = "amcc,apm82181-adma"; +			device_type = "dma"; +			#address-cells = <2>; +			#size-cells = <1>; + +			/*dma-4channel@0{ +				compatible = "amcc,apm82181-dma-4channel"; +				cell-index = <0>; +				label = "plb_dma0"; +				interrupt-parent = <&UIC0>; +				interrupts = <0xc 0x4>; +				pool_size = <0x4000>; +				dcr-reg = <0x200 0x207>; +			};*/ + +			dma-4channel@1 { +				compatible = "amcc,apm82181-dma-4channel"; +				cell-index = <1>; +				label = "plb_dma1"; +				interrupt-parent = <&UIC0>; +				interrupts = <0xd 0x4>; +				pool_size = <0x4000>; +				dcr-reg = <0x208 0x20f>; +			}; +			dma-4channel@2 { +				compatible = "amcc,apm82181-dma-4channel"; +				cell-index = <2>; +				label = "plb_dma2"; +				interrupt-parent = <&UIC0>; +				interrupts = <0xe 0x4>; +				pool_size = <0x4000>; +				dcr-reg = <0x210 0x217>; +			}; +			dma-4channel@3 { +				compatible = "amcc,apm82181-dma-4channel"; +				cell-index = <3>; +				label = "plb_dma3"; +				interrupt-parent = <&UIC0>; +				interrupts = <0xf 0x4>; +				pool_size = <0x4000>; +				dcr-reg = <0x218 0x21f>; +			}; +		}; + +		POB0: opb { +			compatible = "ibm,opb"; +			#address-cells = <1>; +			#size-cells = <1>; +			ranges = <0xb0000000 0x00000004 0xb0000000 0x50000000>; +			clock-frequency = <0>; /* Filled in by U-Boot */ + +			EBC0: ebc { +				compatible = "ibm,ebc"; +				dcr-reg = <0x012 0x002>; +				#address-cells = <2>; +				#size-cells = <1>; +				clock-frequency = <0>; /* Filled in by U-Boot */ +				/* ranges property is supplied by U-Boot */ +				ranges = < 0x00000003 0x00000000 0xe0000000 0x8000000>; +				interrupts = <0x6 0x4>; +				interrupt-parent = <&UIC1>; + +				nor_flash@0,0 { +					compatible = "amd,s29gl512n", "jedec-flash", "cfi-flash"; +					bank-width = <1>; +					reg = <0x00000000 0x00000000 0x00080000>; +					#address-cells = <1>; +					#size-cells = <1>; +					partition@0 { +						label = "3genv"; +						reg = <0x00000000 0x20000>; +					}; +					partition@1 { +						label = "u-boot"; +						reg = <0x20000 0x60000>; +					}; +				}; + +				ndfc@1,0 { +					compatible = "ibm,ndfc"; +					reg = <0x00000003 0x00000000 0x00002000>; +					ccr = <0x00001000>; +					bank-settings = <0x80002222>; +					#address-cells = <1>; +					#size-cells = <1>; +					/* 2Gb Nand Flash */ +					nand { +						#address-cells = <1>; +						#size-cells = <1>; + +						partition@0 { +							label = "firmware"; +							reg   = <0x00000000 0x00C00000>; +						}; +						partition@c00000 { +							label = "environment"; +							reg   = <0x00C00000 0x00B00000>; +						}; +						partition@1700000 { +							label = "kernel"; +							reg   = <0x01700000 0x00E00000>; +						}; +						partition@2500000 { +							label = "root"; +							reg   = <0x02500000 0x08200000>; +						}; +						partition@a700000 { +							label = "device-tree"; +							reg   = <0x0A700000 0x00B00000>; +						}; +						partition@b200000 { +							label = "config"; +							reg   = <0x0B200000 0x00D00000>; +						}; +						partition@bf00000 { +							label = "diag"; +							reg   = <0x0BF00000 0x00C00000>; +						}; +						partition@cb00000 { +							label = "vendor"; +							reg   = <0x0CB00000 0x3500000>; +						}; +					}; +				}; +			}; + +			UART0: serial@ef600300 { +				device_type = "serial"; +				compatible = "ns16550"; +				reg = <0xef600300 0x00000008>; +				virtual-reg = <0xef600300>; +				clock-frequency = <0>; /* Filled in by U-Boot */ +				current-speed = <0>; /* Filled in by U-Boot */ +				interrupt-parent = <&UIC1>; +				interrupts = <0x1 0x4>; +			}; + +			IIC0: i2c@ef600700 { +				compatible = "ibm,iic"; +				reg = <0xef600700 0x00000014>; +				interrupt-parent = <&UIC0>; +				interrupts = <0x2 0x4>; +			}; + +			RGMII0: emac-rgmii@ef601500 { +				compatible = "ibm,rgmii"; +				reg = <0xef601500 0x00000008>; +				has-mdio; +			}; + +			TAH0: emac-tah@ef601350 { +				compatible = "ibm,tah"; +				reg = <0xef601350 0x00000030>; +			}; + +			EMAC0: ethernet@ef600c00 { +				device_type = "network"; +				compatible = "ibm,emac-apm821xx", "ibm,emac4sync"; +				interrupt-parent = <&EMAC0>; +				interrupts = <0x0 0x1>; +				#interrupt-cells = <1>; +				#address-cells = <0>; +				#size-cells = <0>; +				interrupt-map = </*Status*/ 0x0 &UIC2 0x10 0x4 +						 /*Wake*/   0x1 &UIC2 0x14 0x4>; +				reg = <0xef600c00 0x000000c4>; +				local-mac-address = [000000000000]; /* Filled in by U-Boot */ +				mal-device = <&MAL0>; +				mal-tx-channel = <0>; +				mal-rx-channel = <0>; +				cell-index = <0>; +				max-frame-size = <9000>; +				rx-fifo-size = <16384>; +				tx-fifo-size = <2048>; +				phy-mode = "rgmii"; +				phy-map = <0x00000000>; +				rgmii-device = <&RGMII0>; +				rgmii-channel = <0>; +				tah-device = <&TAH0>; +				tah-channel = <0>; +				has-inverted-stacr-oc; +				has-new-stacr-staopc; +			}; +		}; + +		DMA: plb_dma@400300200 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "amcc,dma"; +			cell-index = <0>; +			reg = <4 0x00300200 0x200>; +			dcr-reg = <0x100 0x13f>; +			interrupt-parent = <&UIC0>; +			interrupts = <0 1 2 3>; +			interrupt-map = < /*chan 0*/ 0 &UIC0 12 4 +					  /* chan1*/ 1 &UIC0 13 4 +					  /* chan2*/ 2 &UIC0 14 4 +					  /* chan3*/ 3 &UIC0 15 4>; + + +			dma-4channel@0{ +				compatible = "amcc,dma-4channel"; +				cell-index = <0>; +				label = "channel0"; +				reg = <0x100 0x107>; +			}; +			/* +			dma-4channel@1 { +				compatible = "amcc,dma-4channel"; +				cell-index = <1>; +				label = "channel1"; +				reg = <0x108 0x10f>; +			}; +			dma-4channel@2 { +				compatible = "amcc,dma-4channel"; +				cell-index = <2>; +				label = "channel2"; +				reg = <0x110 0x117>; +			}; +			dma-4channel@3 { +				compatible = "amcc,dma-4channel"; +				cell-index = <3>; +				label = "channel3"; +				reg = <0x118 0x11f>; +			}; +			*/ +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/asp834x-redboot.dts b/arch/powerpc/boot/dts/asp834x-redboot.dts index 261d10c4534..9198745f45f 100644 --- a/arch/powerpc/boot/dts/asp834x-redboot.dts +++ b/arch/powerpc/boot/dts/asp834x-redboot.dts @@ -207,14 +207,12 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x1>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@1 {  					interrupt-parent = <&ipic>;  					interrupts = <18 0x8>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -256,7 +254,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <400000000>;  			interrupts = <9 0x8>; @@ -266,7 +264,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <400000000>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/b4420qds.dts b/arch/powerpc/boot/dts/b4420qds.dts new file mode 100644 index 00000000000..508dbdf33c8 --- /dev/null +++ b/arch/powerpc/boot/dts/b4420qds.dts @@ -0,0 +1,50 @@ +/* + * B4420DS 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/b4420si-pre.dtsi" +/include/ "b4qds.dtsi" + +/ { +	model = "fsl,B4420QDS"; +	compatible = "fsl,B4420QDS"; + +	ifc: localbus@ffe124000 { +		board-control@3,0 { +			compatible = "fsl,b4420qds-fpga", "fsl,fpga-qixis"; +		}; +	}; + +}; + +/include/ "fsl/b4420si-post.dtsi" diff --git a/arch/powerpc/boot/dts/b4860emu.dts b/arch/powerpc/boot/dts/b4860emu.dts new file mode 100644 index 00000000000..85646b4f96e --- /dev/null +++ b/arch/powerpc/boot/dts/b4860emu.dts @@ -0,0 +1,223 @@ +/* + * B4860 emulator Device Tree Source + * + * Copyright 2013 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. + */ + +/dts-v1/; + +/include/ "fsl/e6500_power_isa.dtsi" + +/ { +	compatible = "fsl,B4860"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		dma0 = &dma0; +		dma1 = &dma1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e6500@0 { +			device_type = "cpu"; +			reg = <0 1>; +			next-level-cache = <&L2>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu1: PowerPC,e6500@2 { +			device_type = "cpu"; +			reg = <2 3>; +			next-level-cache = <&L2>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu2: PowerPC,e6500@4 { +			device_type = "cpu"; +			reg = <4 5>; +			next-level-cache = <&L2>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu3: PowerPC,e6500@6 { +			device_type = "cpu"; +			reg = <6 7>; +			next-level-cache = <&L2>; +			fsl,portid-mapping = <0x80000000>; +		}; +	}; +}; + +/ { +	model = "fsl,B4860QDS"; +	compatible = "fsl,B4860EMU", "fsl,B4860QDS"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	ifc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x2000>; +		ranges = <0 0 0xf 0xe8000000 0x08000000 +			  2 0 0xf 0xff800000 0x00010000 +			  3 0 0xf 0xffdf0000 0x00008000>; + +		nor@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "cfi-flash"; +			reg = <0x0 0x0 0x8000000>; +			bank-width = <2>; +			device-width = <1>; +		}; +	}; + +	memory { +		device_type = "memory"; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; +	}; +}; + +&ifc { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,ifc", "simple-bus"; +	interrupts = <25 2 0 0>; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; + +	soc-sram-error { +		compatible = "fsl,soc-sram-error"; +		interrupts = <16 2 1 2>; +	}; + +	corenet-law@0 { +		compatible = "fsl,corenet-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <32>; +	}; + +	ddr1: memory-controller@8000 { +		compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller"; +		reg = <0x8000 0x1000>; +		interrupts = <16 2 1 8>; +	}; + +	ddr2: memory-controller@9000 { +		compatible = "fsl,qoriq-memory-controller-v4.5","fsl,qoriq-memory-controller"; +		reg = <0x9000 0x1000>; +		interrupts = <16 2 1 9>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,b4-l3-cache-controller", "cache"; +		reg = <0x10000 0x1000 +		       0x11000 0x1000>; +		interrupts = <16 2 1 4>; +	}; + +	corenet-cf@18000 { +		compatible = "fsl,corenet2-cf", "fsl,corenet-cf"; +		reg = <0x18000 0x1000>; +		interrupts = <16 2 1 0>; +		fsl,ccf-num-csdids = <32>; +		fsl,ccf-num-snoopids = <32>; +	}; + +	iommu@20000 { +		compatible = "fsl,pamu-v1.0", "fsl,pamu"; +		reg = <0x20000 0x4000>; +		fsl,portid-mapping = <0x8000>; +		#address-cells = <1>; +		#size-cells = <1>; +		interrupts = < +			24 2 0 0 +			16 2 1 1>; +		pamu0: pamu@0 { +			reg = <0 0x1000>; +			fsl,primary-cache-geometry = <8 1>; +			fsl,secondary-cache-geometry = <32 2>; +		}; +	}; + +/include/ "fsl/qoriq-mpic.dtsi" + +	guts: global-utilities@e0000 { +		compatible = "fsl,b4-device-config"; +		reg = <0xe0000 0xe00>; +		fsl,has-rstcr; +		fsl,liodn-bits = <12>; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,b4-clockgen", "fsl,qoriq-clockgen-2.0"; +		reg = <0xe1000 0x1000>; +	}; + +/include/ "fsl/qoriq-dma-0.dtsi" +	dma@100300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */ +	}; + +/include/ "fsl/qoriq-dma-1.dtsi" +	dma@101300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */ +	}; + +/include/ "fsl/qoriq-i2c-0.dtsi" +/include/ "fsl/qoriq-i2c-1.dtsi" +/include/ "fsl/qoriq-duart-0.dtsi" +/include/ "fsl/qoriq-duart-1.dtsi" + +	L2: l2-cache-controller@c20000 { +		compatible = "fsl,b4-l2-cache-controller"; +		reg = <0xc20000 0x1000>; +		next-level-cache = <&cpc>; +	}; +}; diff --git a/arch/powerpc/boot/dts/b4860qds.dts b/arch/powerpc/boot/dts/b4860qds.dts new file mode 100644 index 00000000000..6bb3707ffe3 --- /dev/null +++ b/arch/powerpc/boot/dts/b4860qds.dts @@ -0,0 +1,61 @@ +/* + * B4860DS 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/b4860si-pre.dtsi" +/include/ "b4qds.dtsi" + +/ { +	model = "fsl,B4860QDS"; +	compatible = "fsl,B4860QDS"; + +	ifc: localbus@ffe124000 { +		board-control@3,0 { +			compatible = "fsl,b4860qds-fpga", "fsl,fpga-qixis"; +		}; +	}; + +	rio: rapidio@ffe0c0000 { +		reg = <0xf 0xfe0c0000 0 0x11000>; + +		port1 { +			ranges = <0 0 0xc 0x20000000 0 0x10000000>; +		}; +		port2 { +			ranges = <0 0 0xc 0x30000000 0 0x10000000>; +		}; +	}; + +}; + +/include/ "fsl/b4860si-post.dtsi" diff --git a/arch/powerpc/boot/dts/b4qds.dtsi b/arch/powerpc/boot/dts/b4qds.dtsi new file mode 100644 index 00000000000..8b47edcfabf --- /dev/null +++ b/arch/powerpc/boot/dts/b4qds.dtsi @@ -0,0 +1,182 @@ +/* + * B4420DS 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. + */ + +/ { +	model = "fsl,B4QDS"; +	compatible = "fsl,B4QDS"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	ifc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x2000>; +		ranges = <0 0 0xf 0xe8000000 0x08000000 +			  2 0 0xf 0xff800000 0x00010000 +			  3 0 0xf 0xffdf0000 0x00008000>; + +		nor@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "cfi-flash"; +			reg = <0x0 0x0 0x8000000>; +			bank-width = <2>; +			device-width = <1>; +		}; + +		nand@2,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,ifc-nand"; +			reg = <0x2 0x0 0x10000>; + +			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 { +				/* 10MB for Linux Kernel Image */ +				reg = <0x00200000 0x00A00000>; +				label = "NAND Linux Kernel Image"; +			}; + +			partition@c00000 { +				/* 500MB for Root file System Image */ +				reg = <0x00c00000 0x1F400000>; +				label = "NAND RFS Image"; +			}; +		}; + +		board-control@3,0 { +			compatible = "fsl,b4qds-fpga", "fsl,fpga-qixis"; +			reg = <3 0 0x300>; +		}; +	}; + +	memory { +		device_type = "memory"; +	}; + +	dcsr: dcsr@f00000000 { +		ranges = <0x00000000 0xf 0x00000000 0x01052000>; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; +		spi@110000 { +			flash@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "sst,sst25wf040"; +				reg = <0>; +				spi-max-frequency = <40000000>; /* input clock */ +			}; +		}; + +		sdhc@114000 { +			/*Disabled as there is no sdhc connector on B4420QDS board*/ +			status = "disabled"; +		}; + +		i2c@118000 { +			mux@77 { +				compatible = "nxp,pca9547"; +				reg = <0x77>; +				#address-cells = <1>; +				#size-cells = <0>; + +				i2c@0 { +					#address-cells = <1>; +					#size-cells = <0>; +					reg = <0>; + +					eeprom@50 { +						compatible = "at24,24c64"; +						reg = <0x50>; +					}; +					eeprom@51 { +						compatible = "at24,24c256"; +						reg = <0x51>; +					}; +					eeprom@53 { +						compatible = "at24,24c256"; +						reg = <0x53>; +					}; +					eeprom@57 { +						compatible = "at24,24c256"; +						reg = <0x57>; +					}; +					rtc@68 { +						compatible = "dallas,ds3232"; +						reg = <0x68>; +					}; +				}; +			}; +		}; + +		usb@210000 { +			dr_mode = "host"; +			phy_type = "ulpi"; +		}; + +	}; + +	pci0: pcie@ffe200000 { +		reg = <0xf 0xfe200000 0 0x10000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +}; + +/include/ "fsl/b4si-post.dtsi" diff --git a/arch/powerpc/boot/dts/bluestone.dts b/arch/powerpc/boot/dts/bluestone.dts index 9bb3d72c0e5..7daaca324c0 100644 --- a/arch/powerpc/boot/dts/bluestone.dts +++ b/arch/powerpc/boot/dts/bluestone.dts @@ -107,6 +107,14 @@  		interrupt-parent = <&UIC0>;  	}; +	OCM: ocm@400040000 { +		compatible = "ibm,ocm"; +		status = "ok"; +		cell-index = <1>; +		/* configured in U-Boot */ +		reg = <4 0x00040000 0x8000>; /* 32K */ +	}; +  	SDR0: sdr {  		compatible = "ibm,sdr-apm821xx";  		dcr-reg = <0x00e 0x002>; @@ -117,6 +125,16 @@  		dcr-reg = <0x00c 0x002>;  	}; +	L2C0: l2c { +		compatible = "ibm,l2-cache-apm82181", "ibm,l2-cache"; +		dcr-reg = <0x020 0x008 +			   0x030 0x008>; +		cache-line-size = <32>; +		cache-size = <262144>; +		interrupt-parent = <&UIC1>; +		interrupts = <11 1>; +	}; +  	plb {  		compatible = "ibm,plb4";  		#address-cells = <2>; @@ -142,7 +160,7 @@  					/*RXEOB*/ 0x7 0x4  					/*SERR*/  0x3 0x4  					/*TXDE*/  0x4 0x4 -					/*RXDE*/  0x5 0x4 +					/*RXDE*/  0x5 0x4>;  		};  		POB0: opb { @@ -182,7 +200,54 @@  						reg = <0x001a0000 0x00060000>;  					};  				}; -			} + +				ndfc@1,0 { +					compatible = "ibm,ndfc"; +					reg = <0x00000003 0x00000000 0x00002000>; +					ccr = <0x00001000>; +					bank-settings = <0x80002222>; +					#address-cells = <1>; +					#size-cells = <1>; +					/* 2Gb Nand Flash */ +					nand { +						#address-cells = <1>; +						#size-cells = <1>; + +						partition@0 { +							label = "firmware"; +							reg   = <0x00000000 0x00C00000>; +						}; +						partition@c00000 { +							label = "environment"; +							reg   = <0x00C00000 0x00B00000>; +						}; +						partition@1700000 { +							label = "kernel"; +							reg   = <0x01700000 0x00E00000>; +						}; +						partition@2500000 { +							label = "root"; +							reg   = <0x02500000 0x08200000>; +						}; +						partition@a700000 { +							label = "device-tree"; +							reg   = <0x0A700000 0x00B00000>; +						}; +						partition@b200000 { +							label = "config"; +							reg   = <0x0B200000 0x00D00000>; +						}; +						partition@bf00000 { +							label = "diag"; +							reg   = <0x0BF00000 0x00C00000>; +						}; +						partition@cb00000 { +							label = "vendor"; +							reg   = <0x0CB00000 0x3500000>; +						}; +					}; +				}; +			};  			UART0: serial@ef600300 {  				device_type = "serial"; @@ -195,11 +260,36 @@  				interrupts = <0x1 0x4>;  			}; +			UART1: serial@ef600400 { +				device_type = "serial"; +				compatible = "ns16550"; +				reg = <0xef600400 0x00000008>; +				virtual-reg = <0xef600400>; +				clock-frequency = <0>; /* Filled in by U-Boot */ +				current-speed = <0>; /* Filled in by U-Boot */ +				interrupt-parent = <&UIC0>; +				interrupts = <0x1 0x4>; +			}; +  			IIC0: i2c@ef600700 {  				compatible = "ibm,iic";  				reg = <0xef600700 0x00000014>;  				interrupt-parent = <&UIC0>;  				interrupts = <0x2 0x4>; +				#address-cells = <1>; +				#size-cells = <0>; +				rtc@68 { +					compatible = "stm,m41t80"; +					reg = <0x68>; +					interrupt-parent = <&UIC0>; +					interrupts = <0x9 0x8>; +				}; +				sttm@4C { +					compatible = "adm,adm1032"; +					reg = <0x4C>; +					interrupt-parent = <&UIC1>; +					interrupts = <0x1E 0x8>; /* CPU_THERNAL_L */ +				};  			};  			IIC1: i2c@ef600800 { @@ -222,7 +312,7 @@  			EMAC0: ethernet@ef600c00 {  				device_type = "network"; -				compatible = "ibm,emac4sync"; +				compatible = "ibm,emac-apm821xx", "ibm,emac4sync";  				interrupt-parent = <&EMAC0>;  				interrupts = <0x0 0x1>;  				#interrupt-cells = <1>; @@ -250,5 +340,71 @@  			};  		}; +		PCIE0: pciex@d00000000 { +			device_type = "pci"; +			#interrupt-cells = <1>; +			#size-cells = <2>; +			#address-cells = <3>; +			compatible = "ibm,plb-pciex-apm821xx", "ibm,plb-pciex"; +			primary; +			port = <0x0>; /* port number */ +			reg = <0x0000000d 0x00000000 0x20000000	/* Config space access */ +			       0x0000000c 0x08010000 0x00001000>;	/* Registers */ +			dcr-reg = <0x100 0x020>; +			sdr-base = <0x300>; + +			/* Outbound ranges, one memory and one IO, +			 * later cannot be changed +			 */ +			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000 +				  0x02000000 0x00000000 0x00000000 0x0000000f 0x00000000 0x00000000 0x00100000 +				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>; + +			/* Inbound 2GB range starting at 0 */ +			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>; + +			/* This drives busses 40 to 0x7f */ +			bus-range = <0x40 0x7f>; + +			/* Legacy interrupts (note the weird polarity, the bridge seems +			 * to invert PCIe legacy interrupts). +			 * We are de-swizzling here because the numbers are actually for +			 * port of the root complex virtual P2P bridge. But I want +			 * to avoid putting a node for it in the tree, so the numbers +			 * below are basically de-swizzled numbers. +			 * The real slot is on idsel 0, so the swizzling is 1:1 +			 */ +			interrupt-map-mask = <0x0 0x0 0x0 0x7>; +			interrupt-map = < +				0x0 0x0 0x0 0x1 &UIC3 0xc 0x4 /* swizzled int A */ +				0x0 0x0 0x0 0x2 &UIC3 0xd 0x4 /* swizzled int B */ +				0x0 0x0 0x0 0x3 &UIC3 0xe 0x4 /* swizzled int C */ +				0x0 0x0 0x0 0x4 &UIC3 0xf 0x4 /* swizzled int D */>; +		}; + +		MSI: ppc4xx-msi@C10000000 { +			compatible = "amcc,ppc4xx-msi", "ppc4xx-msi"; +			reg = < 0xC 0x10000000 0x100 +				0xC 0x10000000 0x100>; +			sdr-base = <0x36C>; +			msi-data = <0x00004440>; +			msi-mask = <0x0000ffe0>; +			interrupts =<0 1 2 3 4 5 6 7>; +			interrupt-parent = <&MSI>; +			#interrupt-cells = <1>; +			#address-cells = <0>; +			#size-cells = <0>; +			msi-available-ranges = <0x0 0x100>; +			interrupt-map = < +				0 &UIC3 0x18 1 +				1 &UIC3 0x19 1 +				2 &UIC3 0x1A 1 +				3 &UIC3 0x1B 1 +				4 &UIC3 0x1C 1 +				5 &UIC3 0x1D 1 +				6 &UIC3 0x1E 1 +				7 &UIC3 0x1F 1 +			>; +		};  	};  }; diff --git a/arch/powerpc/boot/dts/bsc9131rdb.dts b/arch/powerpc/boot/dts/bsc9131rdb.dts new file mode 100644 index 00000000000..e13d2d4877b --- /dev/null +++ b/arch/powerpc/boot/dts/bsc9131rdb.dts @@ -0,0 +1,34 @@ +/* + * BSC9131 RDB Device Tree Source + * + * Copyright 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/bsc9131si-pre.dtsi" + +/ { +	model = "fsl,bsc9131rdb"; +	compatible = "fsl,bsc9131rdb"; + +	memory { +		device_type = "memory"; +	}; + +	board_ifc: ifc: ifc@ff71e000 { +		/* NAND Flash on board */ +		ranges = <0x0 0x0 0x0 0xff800000 0x00004000>; +		reg = <0x0 0xff71e000 0x0 0x2000>; +	}; + +	board_soc: soc: soc@ff700000 { +		ranges = <0x0 0x0 0xff700000 0x100000>; +	}; +}; + +/include/ "bsc9131rdb.dtsi" +/include/ "fsl/bsc9131si-post.dtsi" diff --git a/arch/powerpc/boot/dts/bsc9131rdb.dtsi b/arch/powerpc/boot/dts/bsc9131rdb.dtsi new file mode 100644 index 00000000000..9e6c01339cc --- /dev/null +++ b/arch/powerpc/boot/dts/bsc9131rdb.dtsi @@ -0,0 +1,142 @@ +/* + * BSC9131 RDB Device Tree Source stub (no addresses or top-level ranges) + * + * 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: + *     * 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_ifc { + +	nand@0,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,ifc-nand"; +		reg = <0x0 0x0 0x4000>; + +		partition@0 { +			/* This location must not be altered  */ +			/* 3MB for u-boot Bootloader Image */ +			reg = <0x0 0x00300000>; +			label = "NAND U-Boot Image"; +			read-only; +		}; + +		partition@300000 { +			/* 1MB for DTB Image */ +			reg = <0x00300000 0x00100000>; +			label = "NAND DTB Image"; +		}; + +		partition@400000 { +			/* 8MB for Linux Kernel Image */ +			reg = <0x00400000 0x00800000>; +			label = "NAND Linux Kernel Image"; +		}; + +		partition@c00000 { +			/* Rest space for Root file System Image */ +			reg = <0x00c00000 0x07400000>; +			label = "NAND RFS Image"; +		}; +	}; +}; + +&board_soc { +	/* BSC9131RDB does not have any device on i2c@3100 */ +	i2c@3100 { +		status = "disabled"; +	}; + +	spi@7000 { +		flash@0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "spansion,s25sl12801"; +			reg = <0>; +			spi-max-frequency = <50000000>; + +			/* 512KB for u-boot Bootloader Image */ +			partition@0 { +				reg = <0x0 0x00080000>; +				label = "SPI Flash U-Boot Image"; +				read-only; +			}; + +			/* 512KB for DTB Image */ +			partition@80000 { +				reg = <0x00080000 0x00080000>; +				label = "SPI Flash DTB Image"; +			}; + +			/* 4MB for Linux Kernel Image */ +			partition@100000 { +				reg = <0x00100000 0x00400000>; +				label = "SPI Flash Kernel Image"; +			}; + +			/*11MB for RFS Image */ +			partition@500000 { +				reg = <0x00500000 0x00B00000>; +				label = "SPI Flash RFS Image"; +			}; + +		}; +	}; + +	usb@22000 { +		phy_type = "ulpi"; +	}; + +	mdio@24000 { +		phy0: ethernet-phy@0 { +			interrupts = <3 1 0 0>; +			reg = <0x0>; +		}; + +		phy1: ethernet-phy@1 { +			interrupts = <2 1 0 0>; +			reg = <0x3>; +		}; +	}; + +	sdhc@2e000 { +		status = "disabled"; +	}; + +	enet0: ethernet@b0000 { +		phy-handle = <&phy0>; +		phy-connection-type = "rgmii-id"; +	}; + +	enet1: ethernet@b1000 { +		phy-handle = <&phy1>; +		phy-connection-type = "rgmii-id"; +	}; +}; diff --git a/arch/powerpc/boot/dts/bsc9132qds.dts b/arch/powerpc/boot/dts/bsc9132qds.dts new file mode 100644 index 00000000000..6cab1062bc7 --- /dev/null +++ b/arch/powerpc/boot/dts/bsc9132qds.dts @@ -0,0 +1,35 @@ +/* + * BSC9132 QDS Device Tree Source + * + * Copyright 2014 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/bsc9132si-pre.dtsi" + +/ { +	model = "fsl,bsc9132qds"; +	compatible = "fsl,bsc9132qds"; + +	memory { +		device_type = "memory"; +	}; + +	ifc: ifc@ff71e000 { +		/* NOR, NAND Flash on board */ +		ranges = <0x0 0x0 0x0 0x88000000 0x08000000 +			  0x1 0x0 0x0 0xff800000 0x00010000>; +		reg = <0x0 0xff71e000 0x0 0x2000>; +	}; + +	soc: soc@ff700000 { +		ranges = <0x0 0x0 0xff700000 0x100000>; +	}; +}; + +/include/ "bsc9132qds.dtsi" +/include/ "fsl/bsc9132si-post.dtsi" diff --git a/arch/powerpc/boot/dts/bsc9132qds.dtsi b/arch/powerpc/boot/dts/bsc9132qds.dtsi new file mode 100644 index 00000000000..af8e8883022 --- /dev/null +++ b/arch/powerpc/boot/dts/bsc9132qds.dtsi @@ -0,0 +1,101 @@ +/* + * BSC9132 QDS Device Tree Source stub (no addresses or top-level ranges) + * + * Copyright 2014 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. + */ + +&ifc { +	nor@0,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "cfi-flash"; +		reg = <0x0 0x0 0x8000000>; +		bank-width = <2>; +		device-width = <1>; +	}; + +	nand@1,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,ifc-nand"; +		reg = <0x1 0x0 0x4000>; +	}; +}; + +&soc { +	spi@7000 { +		flash@0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "spansion,s25sl12801"; +			reg = <0>; +			spi-max-frequency = <30000000>; +		}; +	}; + +	i2c@3000 { +		fpga: fpga@66 { +			compatible = "fsl,bsc9132qds-fpga", "fsl,fpga-qixis-i2c"; +			reg = <0x66>; +		}; +	}; + +	usb@22000 { +		phy_type = "ulpi"; +	}; + +	mdio@24000 { +		phy0: ethernet-phy@0 { +			reg = <0x0>; +		}; + +		phy1: ethernet-phy@1 { +			reg = <0x1>; +		}; + +		tbi0: tbi-phy@11 { +			reg = <0x1f>; +			device_type = "tbi-phy"; +		}; +	}; + +	enet0: ethernet@b0000 { +		phy-handle = <&phy0>; +		tbi-handle = <&tbi0>; +		phy-connection-type = "sgmii"; +	}; + +	enet1: ethernet@b1000 { +		phy-handle = <&phy1>; +		tbi-handle = <&tbi0>; +		phy-connection-type = "sgmii"; +	}; +}; diff --git a/arch/powerpc/boot/dts/c293pcie.dts b/arch/powerpc/boot/dts/c293pcie.dts new file mode 100644 index 00000000000..6681cc21030 --- /dev/null +++ b/arch/powerpc/boot/dts/c293pcie.dts @@ -0,0 +1,224 @@ +/* + * C293 PCIE Device Tree Source + * + * Copyright 2013 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/c293si-pre.dtsi" + +/ { +	model = "fsl,C293PCIE"; +	compatible = "fsl,C293PCIE"; + +	memory { +		device_type = "memory"; +	}; + +	ifc: ifc@fffe1e000 { +		reg = <0xf 0xffe1e000 0 0x2000>; +		ranges = <0x0 0x0 0xf 0xec000000 0x04000000 +			  0x1 0x0 0xf 0xff800000 0x00010000 +			  0x2 0x0 0xf 0xffdf0000 0x00010000>; + +	}; + +	soc: soc@fffe00000 { +		ranges = <0x0 0xf 0xffe00000 0x100000>; +	}; + +	pci0: 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>; +		}; +	}; +}; + +&ifc { +	nor@0,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "cfi-flash"; +		reg = <0x0 0x0 0x4000000>; +		bank-width = <2>; +		device-width = <1>; + +		partition@0 { +			/* 1MB for DTB Image */ +			reg = <0x0 0x00100000>; +			label = "NOR DTB Image"; +		}; + +		partition@100000 { +			/* 8 MB for Linux Kernel Image */ +			reg = <0x00100000 0x00800000>; +			label = "NOR Linux Kernel Image"; +		}; + +		partition@900000 { +			/* 53MB for rootfs */ +			reg = <0x00900000 0x03500000>; +			label = "NOR Rootfs Image"; +		}; + +		partition@3e00000 { +			/* 1MB for blob encrypted key */ +			reg = <0x03e00000 0x00100000>; +			label = "NOR blob encrypted key"; +		}; + +		partition@3f00000 { +			/* 512KB for u-boot Bootloader Image and evn */ +			reg = <0x03f00000 0x00100000>; +			label = "NOR U-Boot Image"; +			read-only; +		}; +	}; + +	nand@1,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,ifc-nand"; +		reg = <0x1 0x0 0x10000>; + +		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 { +			/* 16MB for Linux Kernel Image */ +			reg = <0x00200000 0x01000000>; +			label = "NAND Linux Kernel Image"; +		}; + +		partition@1200000 { +			/* 4078MB for Root file System Image */ +			reg = <0x00600000 0xfee00000>; +			label = "NAND RFS Image"; +		}; +	}; + +	cpld@2,0 { +		compatible = "fsl,c293pcie-cpld"; +		reg = <0x2 0x0 0x20>; +	}; +}; + +&soc { +	i2c@3000 { +		eeprom@50 { +			compatible = "st,24c1024"; +			reg = <0x50>; +		}; + +		adt7461@4c { +			compatible = "adi,adt7461"; +			reg = <0x4c>; +		}; +	}; + +	spi@7000 { +		flash@0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "spansion,s25sl12801"; +			reg = <0>; +			spi-max-frequency = <50000000>; + +			partition@0 { +				/* 1MB for u-boot Bootloader Image */ +				/* 1MB for Environment */ +				reg = <0x0 0x00100000>; +				label = "SPI Flash U-Boot Image"; +				read-only; +			}; + +			partition@100000 { +				/* 512KB for DTB Image */ +				reg = <0x00100000 0x00080000>; +				label = "SPI Flash DTB Image"; +			}; + +			partition@180000 { +				/* 4MB for Linux Kernel Image */ +				reg = <0x00180000 0x00400000>; +				label = "SPI Flash Linux Kernel Image"; +			}; + +			partition@580000 { +				/* 10.5MB for RFS Image */ +				reg = <0x00580000 0x00a80000>; +				label = "SPI Flash RFS Image"; +			}; +		}; +	}; + +	mdio@24000 { +		phy0: ethernet-phy@0 { +			interrupts = <2 1 0 0>; +			reg = <0x0>; +		}; + +		phy1: ethernet-phy@1 { +			interrupts = <2 1 0 0>; +			reg = <0x2>; +		}; +	}; + +	enet0: ethernet@b0000 { +		phy-handle = <&phy0>; +		phy-connection-type = "rgmii-id"; +	}; + +	enet1: ethernet@b1000 { +		phy-handle = <&phy1>; +		phy-connection-type = "rgmii-id"; +	}; +}; +/include/ "fsl/c293si-post.dtsi" diff --git a/arch/powerpc/boot/dts/c2k.dts b/arch/powerpc/boot/dts/c2k.dts index f5d625fa3e5..1e32903cb0a 100644 --- a/arch/powerpc/boot/dts/c2k.dts +++ b/arch/powerpc/boot/dts/c2k.dts @@ -73,19 +73,16 @@  			compatible = "marvell,mv64360-mdio";  			reg = <0x2000 4>;  			PHY0: ethernet-phy@0 { -				device_type = "ethernet-phy";  				interrupts = <76>;	/* GPP 12 */  				interrupt-parent = <&PIC>;  				reg = <0>;  			};  			PHY1: ethernet-phy@1 { -				device_type = "ethernet-phy";  				interrupts = <76>;	/* GPP 12 */  				interrupt-parent = <&PIC>;  				reg = <1>;  			};  			PHY2: ethernet-phy@2 { -				device_type = "ethernet-phy";  				interrupts = <76>;	/* GPP 12 */  				interrupt-parent = <&PIC>;  				reg = <2>; @@ -174,7 +171,6 @@  		};  		MPSC0: mpsc@8000 { -			device_type = "serial";  			compatible = "marvell,mv64360-mpsc";  			reg = <0x8000 0x38>;  			virtual-reg = <0xd8008000>; @@ -189,7 +185,6 @@  		};  		MPSC1: mpsc@9000 { -			device_type = "serial";  			compatible = "marvell,mv64360-mpsc";  			reg = <0x9000 0x38>;  			virtual-reg = <0xd8009000>; diff --git a/arch/powerpc/boot/dts/canyonlands.dts b/arch/powerpc/boot/dts/canyonlands.dts index a3037039625..3dc75deafbb 100644 --- a/arch/powerpc/boot/dts/canyonlands.dts +++ b/arch/powerpc/boot/dts/canyonlands.dts @@ -105,6 +105,15 @@  		dcr-reg = <0x00c 0x002>;  	}; +	CPM0: cpm { +		compatible = "ibm,cpm"; +		dcr-access-method = "native"; +		dcr-reg = <0x160 0x003>; +		unused-units = <0x00000100>; +		idle-doze = <0x02000000>; +		standby = <0xfeff791d>; +	}; +  	L2C0: l2c {  		compatible = "ibm,l2-cache-460ex", "ibm,l2-cache";  		dcr-reg = <0x020 0x008		/* Internal SRAM DCR's */ @@ -134,6 +143,11 @@  			interrupts = <0x1d 0x4>;  		}; +		HWRNG: hwrng@110000 { +			compatible = "amcc,ppc460ex-rng", "ppc4xx-rng"; +			reg = <4 0x00110000 0x50>; +		}; +  		MAL0: mcmal {  			compatible = "ibm,mcmal-460ex", "ibm,mcmal2";  			dcr-reg = <0x180 0x062>; @@ -163,6 +177,19 @@  			interrupts = <0x1e 4>;  		}; +		USBOTG0: usbotg@bff80000 { +			compatible = "amcc,dwc-otg"; +			reg = <0x4 0xbff80000 0x10000>; +			interrupt-parent = <&USBOTG0>; +			#interrupt-cells = <1>; +			#address-cells = <0>; +			#size-cells = <0>; +			interrupts = <0x0 0x1 0x2>; +			interrupt-map = </* USB-OTG */ 0x0 &UIC2 0x1c 0x4 +					 /* HIGH-POWER */ 0x1 &UIC1 0x1a 0x8 +					 /* DMA */ 0x2 &UIC0 0xc 0x4>; +		}; +  		SATA0: sata@bffd1000 {  			compatible = "amcc,sata-460ex";  			reg = <4 0xbffd1000 0x800 4 0xbffd0800 0x400>; @@ -224,6 +251,11 @@  					};  				}; +				cpld@2,0 { +					compatible = "amcc,ppc460ex-bcsr"; +					reg = <2 0x0 0x9>; +				}; +  				ndfc@3,0 {  					compatible = "ibm,ndfc";  					reg = <0x00000003 0x00000000 0x00002000>; @@ -270,28 +302,6 @@  				interrupts = <0x1 0x4>;  			}; -			UART2: serial@ef600500 { -				device_type = "serial"; -				compatible = "ns16550"; -				reg = <0xef600500 0x00000008>; -				virtual-reg = <0xef600500>; -				clock-frequency = <0>; /* Filled in by U-Boot */ -				current-speed = <0>; /* Filled in by U-Boot */ -				interrupt-parent = <&UIC1>; -				interrupts = <28 0x4>; -			}; - -			UART3: serial@ef600600 { -				device_type = "serial"; -				compatible = "ns16550"; -				reg = <0xef600600 0x00000008>; -				virtual-reg = <0xef600600>; -				clock-frequency = <0>; /* Filled in by U-Boot */ -				current-speed = <0>; /* Filled in by U-Boot */ -				interrupt-parent = <&UIC1>; -				interrupts = <29 0x4>; -			}; -  			IIC0: i2c@ef600700 {  				compatible = "ibm,iic-460ex", "ibm,iic";  				reg = <0xef600700 0x00000014>; @@ -320,6 +330,12 @@  				interrupts = <0x3 0x4>;  			}; +			GPIO0: gpio@ef600b00 { +				compatible = "ibm,ppc4xx-gpio"; +				reg = <0xef600b00 0x00000048>; +				gpio-controller; +			}; +  			ZMII0: emac-zmii@ef600d00 {  				compatible = "ibm,zmii-460ex", "ibm,zmii";  				reg = <0xef600d00 0x0000000c>; @@ -519,5 +535,23 @@  				0x0 0x0 0x0 0x3 &UIC3 0x12 0x4 /* swizzled int C */  				0x0 0x0 0x0 0x4 &UIC3 0x13 0x4 /* swizzled int D */>;  		}; + +		MSI: ppc4xx-msi@C10000000 { +			compatible = "amcc,ppc4xx-msi", "ppc4xx-msi"; +			reg = < 0xC 0x10000000 0x100>; +			sdr-base = <0x36C>; +			msi-data = <0x00000000>; +			msi-mask = <0x44440000>; +			interrupt-count = <3>; +			interrupts = <0 1 2 3>; +			interrupt-parent = <&UIC3>; +			#interrupt-cells = <1>; +			#address-cells = <0>; +			#size-cells = <0>; +			interrupt-map = <0 &UIC3 0x18 1 +					1 &UIC3 0x19 1 +					2 &UIC3 0x1A 1 +					3 &UIC3 0x1B 1>; +		};  	};  }; diff --git a/arch/powerpc/boot/dts/charon.dts b/arch/powerpc/boot/dts/charon.dts new file mode 100644 index 00000000000..0e00e508eaa --- /dev/null +++ b/arch/powerpc/boot/dts/charon.dts @@ -0,0 +1,236 @@ +/* + * charon board Device Tree Source + * + * Copyright (C) 2007 Semihalf + * Marian Balakowicz <m8@semihalf.com> + * + * Copyright (C) 2010 DENX Software Engineering GmbH + * Heiko Schocher <hs@denx.de> + * + * 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. + */ + +/dts-v1/; + +/ { +	model = "anon,charon"; +	compatible = "anon,charon"; +	#address-cells = <1>; +	#size-cells = <1>; +	interrupt-parent = <&mpc5200_pic>; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,5200@0 { +			device_type = "cpu"; +			reg = <0>; +			d-cache-line-size = <32>; +			i-cache-line-size = <32>; +			d-cache-size = <0x4000>;	// L1, 16K +			i-cache-size = <0x4000>;	// L1, 16K +			timebase-frequency = <0>;	// from bootloader +			bus-frequency = <0>;		// from bootloader +			clock-frequency = <0>;		// from bootloader +		}; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x00000000 0x08000000>;	// 128MB +	}; + +	soc5200@f0000000 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,mpc5200-immr"; +		ranges = <0 0xf0000000 0x0000c000>; +		reg = <0xf0000000 0x00000100>; +		bus-frequency = <0>;		// from bootloader +		system-frequency = <0>;		// from bootloader + +		cdm@200 { +			compatible = "fsl,mpc5200-cdm"; +			reg = <0x200 0x38>; +		}; + +		mpc5200_pic: interrupt-controller@500 { +			// 5200 interrupts are encoded into two levels; +			interrupt-controller; +			#interrupt-cells = <3>; +			compatible = "fsl,mpc5200-pic"; +			reg = <0x500 0x80>; +		}; + +		timer@600 {	// General Purpose Timer +			compatible = "fsl,mpc5200-gpt"; +			reg = <0x600 0x10>; +			interrupts = <1 9 0>; +			fsl,has-wdt; +		}; + +		can@900 { +			compatible = "fsl,mpc5200-mscan"; +			interrupts = <2 17 0>; +			reg = <0x900 0x80>; +		}; + +		can@980 { +			compatible = "fsl,mpc5200-mscan"; +			interrupts = <2 18 0>; +			reg = <0x980 0x80>; +		}; + +		gpio_simple: gpio@b00 { +			compatible = "fsl,mpc5200-gpio"; +			reg = <0xb00 0x40>; +			interrupts = <1 7 0>; +			gpio-controller; +			#gpio-cells = <2>; +		}; + +		usb@1000 { +			compatible = "fsl,mpc5200-ohci","ohci-be"; +			reg = <0x1000 0xff>; +			interrupts = <2 6 0>; +		}; + +		dma-controller@1200 { +			device_type = "dma-controller"; +			compatible = "fsl,mpc5200-bestcomm"; +			reg = <0x1200 0x80>; +			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 +			              3 4 0  3 5 0  3 6 0  3 7 0 +			              3 8 0  3 9 0  3 10 0  3 11 0 +			              3 12 0  3 13 0  3 14 0  3 15 0>; +		}; + +		xlb@1f00 { +			compatible = "fsl,mpc5200-xlb"; +			reg = <0x1f00 0x100>; +		}; + +		serial@2000 {		// PSC1 +			compatible = "fsl,mpc5200-psc-uart"; +			reg = <0x2000 0x100>; +			interrupts = <2 1 0>; +		}; + +		serial@2400 {		// PSC3 +			compatible = "fsl,mpc5200-psc-uart"; +			reg = <0x2400 0x100>; +			interrupts = <2 3 0>; +		}; + +		ethernet@3000 { +			compatible = "fsl,mpc5200-fec"; +			reg = <0x3000 0x400>; +			local-mac-address = [ 00 00 00 00 00 00 ]; +			interrupts = <2 5 0>; +			fixed-link = <1 1 100 0 0>; +		}; + +		mdio@3000 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5200-mdio"; +			reg = <0x3000 0x400>;       // fec range, since we need to setup fec interrupts +			interrupts = <2 5 0>;   // these are for "mii command finished", not link changes & co. +		}; + +		ata@3a00 { +			compatible = "fsl,mpc5200-ata"; +			reg = <0x3a00 0x100>; +			interrupts = <2 7 0>; +		}; + +		i2c@3d00 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5200-i2c","fsl-i2c"; +			reg = <0x3d00 0x40>; +			interrupts = <2 15 0>; +		}; + + +		i2c@3d40 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5200-i2c","fsl-i2c"; +			reg = <0x3d40 0x40>; +			interrupts = <2 16 0>; + +			dtt@28 { +				compatible = "national,lm80"; +				reg = <0x28>; +			}; + +			rtc@68 { +				compatible = "dallas,ds1374"; +				reg = <0x68>; +			}; +		}; + +		sram@8000 { +			compatible = "fsl,mpc5200-sram"; +			reg = <0x8000 0x4000>; +		}; +	}; + +	localbus { +		compatible = "fsl,mpc5200-lpb","simple-bus"; +		#address-cells = <2>; +		#size-cells = <1>; +		ranges = <	0 0 0xfc000000 0x02000000 +				1 0 0xe0000000 0x04000000 // CS1 range, SM501 +				3 0 0xe8000000 0x00080000>; + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x02000000>; +			bank-width = <4>; +			device-width = <2>; +			#size-cells = <1>; +			#address-cells = <1>; +		}; + +		display@1,0 { +			compatible = "smi,sm501"; +			reg = <1 0x00000000 0x00800000 +			       1 0x03e00000 0x00200000>; +			mode = "640x480-32@60"; +			interrupts = <1 1 3>; +			little-endian; +		}; + +		mram0@3,0 { +			compatible = "mtd-ram"; +			reg = <3 0x00000 0x80000>; +			bank-width = <1>; +		}; +	}; + +	pci@f0000d00 { +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		compatible = "fsl,mpc5200-pci"; +		reg = <0xf0000d00 0x100>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = <0xc000 0 0 1 &mpc5200_pic 0 0 3 +				 0xc000 0 0 2 &mpc5200_pic 0 0 3 +				 0xc000 0 0 3 &mpc5200_pic 0 0 3 +				 0xc000 0 0 4 &mpc5200_pic 0 0 3>; +		clock-frequency = <0>; // From boot loader +		interrupts = <2 8 0 2 9 0 2 10 0>; +		bus-range = <0 0>; +		ranges = <0x42000000 0 0x80000000 0x80000000 0 0x10000000 +			  0x02000000 0 0x90000000 0x90000000 0 0x10000000 +			  0x01000000 0 0x00000000 0xa0000000 0 0x01000000>; +	}; +}; diff --git a/arch/powerpc/boot/dts/cm5200.dts b/arch/powerpc/boot/dts/cm5200.dts index dd3860846f1..fb580dd84dd 100644 --- a/arch/powerpc/boot/dts/cm5200.dts +++ b/arch/powerpc/boot/dts/cm5200.dts @@ -10,220 +10,72 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc5200b.dtsi" + +&gpt0 { fsl,has-wdt; };  / {  	model = "schindler,cm5200";  	compatible = "schindler,cm5200"; -	#address-cells = <1>; -	#size-cells = <1>; -	interrupt-parent = <&mpc5200_pic>; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,5200@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <32>; -			i-cache-line-size = <32>; -			d-cache-size = <0x4000>;		// L1, 16K -			i-cache-size = <0x4000>;		// L1, 16K -			timebase-frequency = <0>;	// from bootloader -			bus-frequency = <0>;		// from bootloader -			clock-frequency = <0>;		// from bootloader -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <0x00000000 0x04000000>;	// 64MB -	};  	soc5200@f0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		compatible = "fsl,mpc5200b-immr"; -		ranges = <0 0xf0000000 0x0000c000>; -		reg = <0xf0000000 0x00000100>; -		bus-frequency = <0>;		// from bootloader -		system-frequency = <0>;		// from bootloader - -		cdm@200 { -			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; -			reg = <0x200 0x38>; -		}; - -		mpc5200_pic: interrupt-controller@500 { -			// 5200 interrupts are encoded into two levels; -			interrupt-controller; -			#interrupt-cells = <3>; -			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; -			reg = <0x500 0x80>; -		}; - -		timer@600 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x600 0x10>; -			interrupts = <1 9 0>; -			fsl,has-wdt; -		}; - -		timer@610 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x610 0x10>; -			interrupts = <1 10 0>; -		}; - -		timer@620 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x620 0x10>; -			interrupts = <1 11 0>; -		}; - -		timer@630 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x630 0x10>; -			interrupts = <1 12 0>; -		}; - -		timer@640 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x640 0x10>; -			interrupts = <1 13 0>; -		}; - -		timer@650 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x650 0x10>; -			interrupts = <1 14 0>; -		}; - -		timer@660 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x660 0x10>; -			interrupts = <1 15 0>; +		can@900 { +			status = "disabled";  		}; -		timer@670 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x670 0x10>; -			interrupts = <1 16 0>; +		can@980 { +			status = "disabled";  		}; -		rtc@800 {	// Real time clock -			compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc"; -			reg = <0x800 0x100>; -			interrupts = <1 5 0 1 6 0>; -		}; - -		gpio_simple: gpio@b00 { -			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; -			reg = <0xb00 0x40>; -			interrupts = <1 7 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpio_wkup: gpio@c00 { -			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; -			reg = <0xc00 0x40>; -			interrupts = <1 8 0 0 3 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		spi@f00 { -			compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; -			reg = <0xf00 0x20>; -			interrupts = <2 13 0 2 14 0>; -		}; - -		usb@1000 { -			compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; -			reg = <0x1000 0xff>; -			interrupts = <2 6 0>; -		}; - -		dma-controller@1200 { -			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; -			reg = <0x1200 0x80>; -			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 -			              3 4 0  3 5 0  3 6 0  3 7 0 -			              3 8 0  3 9 0  3 10 0  3 11 0 -			              3 12 0  3 13 0  3 14 0  3 15 0>; +		psc@2000 {		// PSC1 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";  		}; -		xlb@1f00 { -			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; -			reg = <0x1f00 0x100>; +		psc@2200 {		// PSC2 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";  		}; -		serial@2000 {		// PSC1 +		psc@2400 {		// PSC3  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2000 0x100>; -			interrupts = <2 1 0>;  		}; -		serial@2200 {		// PSC2 -			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2200 0x100>; -			interrupts = <2 2 0>; +		psc@2600 {		// PSC4 +			status = "disabled";  		}; -		serial@2400 {		// PSC3 -			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2400 0x100>; -			interrupts = <2 3 0>; +		psc@2800 {		// PSC5 +			status = "disabled";  		}; -		serial@2c00 {		// PSC6 +		psc@2c00 {		// PSC6  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2c00 0x100>; -			interrupts = <2 4 0>;  		};  		ethernet@3000 { -			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; -			reg = <0x3000 0x400>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <2 5 0>;  			phy-handle = <&phy0>;  		};  		mdio@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; -			reg = <0x3000 0x400>;       // fec range, since we need to setup fec interrupts -			interrupts = <2 5 0>;   // these are for "mii command finished", not link changes & co. -  			phy0: ethernet-phy@0 {  				reg = <0>;  			};  		}; -		i2c@3d40 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d40 0x40>; -			interrupts = <2 16 0>; +		ata@3a00 { +			status = "disabled";  		}; -		sram@8000 { -			compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; -			reg = <0x8000 0x4000>; +		i2c@3d00 { +			status = "disabled";  		}; +  	}; -	localbus { -		compatible = "fsl,mpc5200b-lpb","simple-bus"; -		#address-cells = <2>; -		#size-cells = <1>; -		ranges = <0 0 0xfc000000 0x2000000>; +	pci@f0000d00 { +		status = "disabled"; +	}; +	localbus {  		// 16-bit flash device at LocalPlus Bus CS0  		flash@0,0 {  			compatible = "cfi-flash"; diff --git a/arch/powerpc/boot/dts/currituck.dts b/arch/powerpc/boot/dts/currituck.dts new file mode 100644 index 00000000000..d2c8a872308 --- /dev/null +++ b/arch/powerpc/boot/dts/currituck.dts @@ -0,0 +1,242 @@ +/* + * Device Tree Source for IBM Embedded PPC 476 Platform + * + * Copyright © 2011 Tony Breeds IBM Corporation + * + * This file is licensed under the terms of the GNU General Public + * License version 2.  This program is licensed "as is" without + * any warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +/memreserve/ 0x01f00000 0x00100000;	// spin table + +/ { +	#address-cells = <2>; +	#size-cells = <2>; +	model = "ibm,currituck"; +	compatible = "ibm,currituck"; +	dcr-parent = <&{/cpus/cpu@0}>; + +	aliases { +		serial0 = &UART0; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu@0 { +			device_type = "cpu"; +			model = "PowerPC,476"; +			reg = <0>; +			clock-frequency = <1600000000>; // 1.6 GHz +			timebase-frequency = <100000000>; // 100Mhz +			i-cache-line-size = <32>; +			d-cache-line-size = <32>; +			i-cache-size = <32768>; +			d-cache-size = <32768>; +			dcr-controller; +			dcr-access-method = "native"; +			status = "ok"; +		}; +		cpu@1 { +			device_type = "cpu"; +			model = "PowerPC,476"; +			reg = <1>; +			clock-frequency = <1600000000>; // 1.6 GHz +			timebase-frequency = <100000000>; // 100Mhz +			i-cache-line-size = <32>; +			d-cache-line-size = <32>; +			i-cache-size = <32768>; +			d-cache-size = <32768>; +			dcr-controller; +			dcr-access-method = "native"; +			status = "disabled"; +			enable-method = "spin-table"; +			cpu-release-addr = <0x0 0x01f00000>; +		}; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x0 0x0 0x0 0x0>; // filled in by zImage +	}; + +	MPIC: interrupt-controller { +		compatible = "chrp,open-pic"; +		interrupt-controller; +		dcr-reg = <0xffc00000 0x00040000>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; + +	}; + +	plb { +		compatible = "ibm,plb6"; +		#address-cells = <2>; +		#size-cells = <2>; +		ranges; +		clock-frequency = <200000000>; // 200Mhz + +		POB0: opb { +			compatible = "ibm,opb-4xx", "ibm,opb"; +			#address-cells = <1>; +			#size-cells = <1>; +			/* Wish there was a nicer way of specifying a full +			 * 32-bit range +			 */ +			ranges = <0x00000000 0x00000200 0x00000000 0x80000000 +				  0x80000000 0x00000200 0x80000000 0x80000000>; +			clock-frequency = <100000000>; + +			UART0: serial@10000000 { +				device_type = "serial"; +				compatible = "ns16750", "ns16550"; +				reg = <0x10000000 0x00000008>; +				virtual-reg = <0xe1000000>; +				clock-frequency = <1851851>; // PCIe refclk/MCGC0_CTL[UART] +				current-speed = <115200>; +				interrupt-parent = <&MPIC>; +				interrupts = <34 2>; +			}; + +			FPGA0: fpga@50000000 { +				compatible = "ibm,currituck-fpga"; +				reg = <0x50000000 0x4>; +			}; + +			IIC0: i2c@00000000 { +				compatible = "ibm,iic-currituck", "ibm,iic"; +				reg = <0x0 0x00000014>; +				interrupt-parent = <&MPIC>; +				interrupts = <79 2>; +				#address-cells = <1>; +				#size-cells = <0>; +                                rtc@68 { +                                        compatible = "stm,m41t80", "m41st85"; +                                        reg = <0x68>; +                                }; +			}; +		}; + +		PCIE0: pciex@10100000000 {		// 4xGBIF1 +			device_type = "pci"; +			#interrupt-cells = <1>; +			#size-cells = <2>; +			#address-cells = <3>; +			compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; +			primary; +			port = <0x0>; /* port number */ +			reg = <0x00000101 0x00000000 0x0 0x10000000		/* Config space access */ +			       0x00000100 0x00000000 0x0 0x00001000>;	/* UTL Registers space access */ +			dcr-reg = <0x80 0x20>; + +//                                pci_space  < pci_addr          > < cpu_addr          > < size       > +			ranges = <0x02000000 0x00000000 0x80000000 0x00000110 0x80000000 0x0 0x80000000 +			          0x01000000 0x0        0x0        0x00000140 0x0        0x0 0x00010000>; + +			/* Inbound starting at 0 to memsize filled in by zImage */ +			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x0>; + +			/* This drives busses 0 to 0xf */ +			bus-range = <0x0 0xf>; + +			/* Legacy interrupts (note the weird polarity, the bridge seems +			 * to invert PCIe legacy interrupts). +			 * We are de-swizzling here because the numbers are actually for +			 * port of the root complex virtual P2P bridge. But I want +			 * to avoid putting a node for it in the tree, so the numbers +			 * below are basically de-swizzled numbers. +			 * The real slot is on idsel 0, so the swizzling is 1:1 +			 */ +			interrupt-map-mask = <0x0 0x0 0x0 0x7>; +			interrupt-map = < +				0x0 0x0 0x0 0x1 &MPIC 46 0x2 /* int A */ +				0x0 0x0 0x0 0x2 &MPIC 47 0x2 /* int B */ +				0x0 0x0 0x0 0x3 &MPIC 48 0x2 /* int C */ +				0x0 0x0 0x0 0x4 &MPIC 49 0x2 /* int D */>; +		}; + +		PCIE1: pciex@30100000000 {		// 4xGBIF0 +			device_type = "pci"; +			#interrupt-cells = <1>; +			#size-cells = <2>; +			#address-cells = <3>; +			compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; +			primary; +			port = <0x1>; /* port number */ +			reg = <0x00000301 0x00000000 0x0 0x10000000		/* Config space access */ +			       0x00000300 0x00000000 0x0 0x00001000>;	/* UTL Registers space access */ +			dcr-reg = <0x60 0x20>; + +			ranges = <0x02000000 0x00000000 0x80000000 0x00000310 0x80000000 0x0 0x80000000 +			          0x01000000 0x0        0x0        0x00000340 0x0        0x0 0x00010000>; + +			/* Inbound starting at 0 to memsize filled in by zImage */ +			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x0>; + +			/* This drives busses 0 to 0xf */ +			bus-range = <0x0 0xf>; + +			/* Legacy interrupts (note the weird polarity, the bridge seems +			 * to invert PCIe legacy interrupts). +			 * We are de-swizzling here because the numbers are actually for +			 * port of the root complex virtual P2P bridge. But I want +			 * to avoid putting a node for it in the tree, so the numbers +			 * below are basically de-swizzled numbers. +			 * The real slot is on idsel 0, so the swizzling is 1:1 +			 */ +			interrupt-map-mask = <0x0 0x0 0x0 0x7>; +			interrupt-map = < +				0x0 0x0 0x0 0x1 &MPIC 38 0x2 /* int A */ +				0x0 0x0 0x0 0x2 &MPIC 39 0x2 /* int B */ +				0x0 0x0 0x0 0x3 &MPIC 40 0x2 /* int C */ +				0x0 0x0 0x0 0x4 &MPIC 41 0x2 /* int D */>; +		}; + +		PCIE2: pciex@38100000000 {		// 2xGBIF0 +			device_type = "pci"; +			#interrupt-cells = <1>; +			#size-cells = <2>; +			#address-cells = <3>; +			compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; +			primary; +			port = <0x2>; /* port number */ +			reg = <0x00000381 0x00000000 0x0 0x10000000		/* Config space access */ +			       0x00000380 0x00000000 0x0 0x00001000>;	/* UTL Registers space access */ +			dcr-reg = <0xA0 0x20>; + +			ranges = <0x02000000 0x00000000 0x80000000 0x00000390 0x80000000 0x0 0x80000000 +			          0x01000000 0x0        0x0        0x000003C0 0x0        0x0 0x00010000>; + +			/* Inbound starting at 0 to memsize filled in by zImage */ +			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x0>; + +			/* This drives busses 0 to 0xf */ +			bus-range = <0x0 0xf>; + +			/* Legacy interrupts (note the weird polarity, the bridge seems +			 * to invert PCIe legacy interrupts). +			 * We are de-swizzling here because the numbers are actually for +			 * port of the root complex virtual P2P bridge. But I want +			 * to avoid putting a node for it in the tree, so the numbers +			 * below are basically de-swizzled numbers. +			 * The real slot is on idsel 0, so the swizzling is 1:1 +			 */ +			interrupt-map-mask = <0x0 0x0 0x0 0x7>; +			interrupt-map = < +				0x0 0x0 0x0 0x1 &MPIC 54 0x2 /* int A */ +				0x0 0x0 0x0 0x2 &MPIC 55 0x2 /* int B */ +				0x0 0x0 0x0 0x3 &MPIC 56 0x2 /* int C */ +				0x0 0x0 0x0 0x4 &MPIC 57 0x2 /* int D */>; +		}; + +	}; + +	chosen { +		linux,stdout-path = &UART0; +	}; +}; diff --git a/arch/powerpc/boot/dts/digsy_mtc.dts b/arch/powerpc/boot/dts/digsy_mtc.dts index 8e9be6bfe23..955bff629df 100644 --- a/arch/powerpc/boot/dts/digsy_mtc.dts +++ b/arch/powerpc/boot/dts/digsy_mtc.dts @@ -11,217 +11,105 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc5200b.dtsi" + +&gpt0 { gpio-controller; fsl,has-wdt; }; +&gpt1 { gpio-controller; };  / {  	model = "intercontrol,digsy-mtc";  	compatible = "intercontrol,digsy-mtc"; -	#address-cells = <1>; -	#size-cells = <1>; -	interrupt-parent = <&mpc5200_pic>; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,5200@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <32>; -			i-cache-line-size = <32>; -			d-cache-size = <0x4000>;		// L1, 16K -			i-cache-size = <0x4000>;		// L1, 16K -			timebase-frequency = <0>;	// from bootloader -			bus-frequency = <0>;		// from bootloader -			clock-frequency = <0>;		// from bootloader -		}; -	};  	memory { -		device_type = "memory";  		reg = <0x00000000 0x02000000>;	// 32MB  	};  	soc5200@f0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		compatible = "fsl,mpc5200b-immr"; -		ranges = <0 0xf0000000 0x0000c000>; -		reg = <0xf0000000 0x00000100>; -		bus-frequency = <0>;		// from bootloader -		system-frequency = <0>;		// from bootloader - -		cdm@200 { -			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; -			reg = <0x200 0x38>; -		}; - -		mpc5200_pic: interrupt-controller@500 { -			// 5200 interrupts are encoded into two levels; -			interrupt-controller; -			#interrupt-cells = <3>; -			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; -			reg = <0x500 0x80>; -		}; - -		timer@600 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x600 0x10>; -			interrupts = <1 9 0>; -			fsl,has-wdt; -		}; - -		timer@610 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x610 0x10>; -			interrupts = <1 10 0>; -		}; - -		timer@620 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x620 0x10>; -			interrupts = <1 11 0>; -		}; - -		timer@630 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x630 0x10>; -			interrupts = <1 12 0>; -		}; - -		timer@640 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x640 0x10>; -			interrupts = <1 13 0>; -		}; - -		timer@650 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x650 0x10>; -			interrupts = <1 14 0>; -		}; - -		timer@660 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x660 0x10>; -			interrupts = <1 15 0>; -		}; - -		timer@670 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x670 0x10>; -			interrupts = <1 16 0>; -		}; - -		gpio_simple: gpio@b00 { -			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; -			reg = <0xb00 0x40>; -			interrupts = <1 7 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpio_wkup: gpio@c00 { -			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; -			reg = <0xc00 0x40>; -			interrupts = <1 8 0 0 3 0>; -			gpio-controller; -			#gpio-cells = <2>; +		rtc@800 { +			status = "disabled";  		};  		spi@f00 { -			compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; -			reg = <0xf00 0x20>; -			interrupts = <2 13 0 2 14 0>; +			msp430@0 { +				compatible = "spidev"; +				spi-max-frequency = <32000>; +				reg = <0>; +			};  		}; -		usb@1000 { -			compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; -			reg = <0x1000 0xff>; -			interrupts = <2 6 0>; +		psc@2000 {		// PSC1 +			status = "disabled";  		}; -		dma-controller@1200 { -			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; -			reg = <0x1200 0x80>; -			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 -			              3 4 0  3 5 0  3 6 0  3 7 0 -			              3 8 0  3 9 0  3 10 0  3 11 0 -			              3 12 0  3 13 0  3 14 0  3 15 0>; +		psc@2200 {		// PSC2 +			status = "disabled";  		}; -		xlb@1f00 { -			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; -			reg = <0x1f00 0x100>; +		psc@2400 {		// PSC3 +			status = "disabled";  		}; -		serial@2600 {		// PSC4 +		psc@2600 {		// PSC4  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2600 0x100>; -			interrupts = <2 11 0>;  		}; -		serial@2800 {		// PSC5 +		psc@2800 {		// PSC5  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2800 0x100>; -			interrupts = <2 12 0>; +		}; + +		psc@2c00 {		// PSC6 +			status = "disabled";  		};  		ethernet@3000 { -			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; -			reg = <0x3000 0x400>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <2 5 0>;  			phy-handle = <&phy0>;  		};  		mdio@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; -			reg = <0x3000 0x400>;       // fec range, since we need to setup fec interrupts -			interrupts = <2 5 0>;   // these are for "mii command finished", not link changes & co. -  			phy0: ethernet-phy@0 {  				reg = <0>;  			};  		}; -		ata@3a00 { -			compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; -			reg = <0x3a00 0x100>; -			interrupts = <2 7 0>; -		}; -  		i2c@3d00 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d00 0x40>; -			interrupts = <2 15 0>; - -			rtc@50 { +			eeprom@50 {  				compatible = "at,24c08";  				reg = <0x50>;  			}; +			rtc@56 { +				compatible = "mc,rv3029c2"; +				reg = <0x56>; +			}; +  			rtc@68 {  				compatible = "dallas,ds1339";  				reg = <0x68>;  			};  		}; -		sram@8000 { -			compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; -			reg = <0x8000 0x4000>; +		i2c@3d40 { +			status = "disabled";  		};  	}; -	lpb { -		compatible = "fsl,mpc5200b-lpb","simple-bus"; -		#address-cells = <2>; -		#size-cells = <1>; -		ranges = <0 0 0xff000000 0x1000000>; +	pci@f0000d00 { +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = <0xc000 0 0 1 &mpc5200_pic 0 0 3 +				 0xc000 0 0 2 &mpc5200_pic 0 0 3 +				 0xc000 0 0 3 &mpc5200_pic 0 0 3 +				 0xc000 0 0 4 &mpc5200_pic 0 0 3>; +		clock-frequency = <0>; // From boot loader +		interrupts = <2 8 0 2 9 0 2 10 0>; +		bus-range = <0 0>; +		ranges = <0x42000000 0 0x80000000 0x80000000 0 0x10000000 +			  0x02000000 0 0x90000000 0x90000000 0 0x10000000 +			  0x01000000 0 0x00000000 0xa0000000 0 0x01000000>; +	}; + +	localbus { +		ranges = <0 0 0xff000000 0x1000000 +			  4 0 0x60000000 0x0001000>;  		// 16-bit flash device at LocalPlus Bus CS0  		flash@0,0 { @@ -249,5 +137,25 @@  				reg = <0x00f00000 0x100000>;  			};  		}; + +		can@4,0 { +			compatible = "nxp,sja1000"; +			reg = <4 0x000 0x80>; +			nxp,external-clock-frequency = <24000000>; +			interrupts = <1 2 3>; // Level-low +		}; + +		can@4,100 { +			compatible = "nxp,sja1000"; +			reg = <4 0x100 0x80>; +			nxp,external-clock-frequency = <24000000>; +			interrupts = <1 2 3>;  // Level-low +		}; + +		serial@4,200 { +			compatible = "nxp,sc28l92"; +			reg = <4 0x200 0x10>; +			interrupts = <1 3 3>; +		};  	};  }; diff --git a/arch/powerpc/boot/dts/ep8248e.dts b/arch/powerpc/boot/dts/ep8248e.dts index 756758fb5b7..8b3a49f34f5 100644 --- a/arch/powerpc/boot/dts/ep8248e.dts +++ b/arch/powerpc/boot/dts/ep8248e.dts @@ -67,7 +67,6 @@  			ranges;  			mdio { -				device_type = "mdio";  				compatible = "fsl,ep8248e-mdio-bitbang";  				#address-cells = <1>;  				#size-cells = <0>; @@ -76,13 +75,11 @@  				PHY0: ethernet-phy@0 {  					interrupt-parent = <&PIC>;  					reg = <0>; -					device_type = "ethernet-phy";  				};  				PHY1: ethernet-phy@1 {  					interrupt-parent = <&PIC>;  					reg = <1>; -					device_type = "ethernet-phy";  				};  			};  		}; diff --git a/arch/powerpc/boot/dts/ep88xc.dts b/arch/powerpc/boot/dts/ep88xc.dts index ae57d624012..2aa5bf55964 100644 --- a/arch/powerpc/boot/dts/ep88xc.dts +++ b/arch/powerpc/boot/dts/ep88xc.dts @@ -85,12 +85,10 @@  			PHY0: ethernet-phy@0 {  				reg = <0x0>; -				device_type = "ethernet-phy";  			};  			PHY1: ethernet-phy@1 {  				reg = <0x1>; -				device_type = "ethernet-phy";  			};  		}; diff --git a/arch/powerpc/boot/dts/fsl/b4420si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4420si-post.dtsi new file mode 100644 index 00000000000..d67894459ac --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/b4420si-post.dtsi @@ -0,0 +1,130 @@ +/* + * B4420 Silicon/SoC Device Tree Source (post include) + * + * 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/ "b4si-post.dtsi" + +/* controller at 0x200000 */ +&pci0 { +	compatible = "fsl,b4420-pcie", "fsl,qoriq-pcie-v2.4"; +}; + +&dcsr { +	dcsr-epu@0 { +		compatible = "fsl,b4420-dcsr-epu", "fsl,dcsr-epu"; +	}; +	dcsr-npc { +		compatible = "fsl,b4420-dcsr-cnpc", "fsl,dcsr-cnpc"; +	}; +	dcsr-dpaa@9000 { +		compatible = "fsl,b4420-dcsr-dpaa", "fsl,dcsr-dpaa"; +	}; +	dcsr-ocn@11000 { +		compatible = "fsl,b4420-dcsr-ocn", "fsl,dcsr-ocn"; +	}; +	dcsr-nal@18000 { +		compatible = "fsl,b4420-dcsr-nal", "fsl,dcsr-nal"; +	}; +	dcsr-rcpm@22000 { +		compatible = "fsl,b4420-dcsr-rcpm", "fsl,dcsr-rcpm"; +	}; +	dcsr-snpc@30000 { +		compatible = "fsl,b4420-dcsr-snpc", "fsl,dcsr-snpc"; +	}; +	dcsr-snpc@31000 { +		compatible = "fsl,b4420-dcsr-snpc", "fsl,dcsr-snpc"; +	}; +	dcsr-cpu-sb-proxy@108000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu1>; +		reg = <0x108000 0x1000 0x109000 0x1000>; +	}; +}; + +&soc { +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,b4420-l3-cache-controller", "cache"; +	}; + +	guts: global-utilities@e0000 { +		compatible = "fsl,b4420-device-config", "fsl,qoriq-device-config-2.0"; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,b4420-clockgen", "fsl,qoriq-clockgen-2.0"; +		ranges = <0x0 0xe1000 0x1000>; +		#address-cells = <1>; +		#size-cells = <1>; + +		sysclk: sysclk { +			#clock-cells = <0>; +			compatible = "fsl,qoriq-sysclk-2.0"; +			clock-output-names = "sysclk"; +		}; + +		pll0: pll0@800 { +			#clock-cells = <1>; +			reg = <0x800 0x4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll0", "pll0-div2", "pll0-div4"; +		}; + +		pll1: pll1@820 { +			#clock-cells = <1>; +			reg = <0x820 0x4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll1", "pll1-div2", "pll1-div4"; +		}; + +		mux0: mux0@0 { +			#clock-cells = <0>; +			reg = <0x0 0x4>; +			compatible = "fsl,qoriq-core-mux-2.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>, +				<&pll1 0>, <&pll1 1>, <&pll1 2>; +			clock-names = "pll0", "pll0-div2", "pll0-div4", +				"pll1", "pll1-div2", "pll1-div4"; +			clock-output-names = "cmux0"; +		}; +	}; + +	rcpm: global-utilities@e2000 { +		compatible = "fsl,b4420-rcpm", "fsl,qoriq-rcpm-2.0"; +	}; + +	L2: l2-cache-controller@c20000 { +		compatible = "fsl,b4420-l2-cache-controller"; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi b/arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi new file mode 100644 index 00000000000..338af7e39dd --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi @@ -0,0 +1,79 @@ +/* + * B4420 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e6500_power_isa.dtsi" + +/ { +	compatible = "fsl,B4420"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; +		dcsr = &dcsr; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		pci0 = &pci0; +		dma0 = &dma0; +		dma1 = &dma1; +		sdhc = &sdhc; +	}; + + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e6500@0 { +			device_type = "cpu"; +			reg = <0 1>; +			clocks = <&mux0>; +			next-level-cache = <&L2>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu1: PowerPC,e6500@2 { +			device_type = "cpu"; +			reg = <2 3>; +			clocks = <&mux0>; +			next-level-cache = <&L2>; +			fsl,portid-mapping = <0x80000000>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi new file mode 100644 index 00000000000..582381dba1d --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi @@ -0,0 +1,174 @@ +/* + * B4860 Silicon/SoC Device Tree Source (post include) + * + * 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/ "b4si-post.dtsi" + +/* controller at 0x200000 */ +&pci0 { +	compatible = "fsl,b4860-pcie", "fsl,qoriq-pcie-v2.4"; +}; + +&rio { +	compatible = "fsl,srio"; +	interrupts = <16 2 1 20>; +	#address-cells = <2>; +	#size-cells = <2>; +	fsl,iommu-parent = <&pamu0>; +	ranges; + +	port1 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <1>; +		fsl,liodn-reg = <&guts 0x510>; /* RIO1LIODNR */ +	}; + +	port2 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <2>; +		fsl,liodn-reg = <&guts 0x514>; /* RIO2LIODNR */ +	}; +}; + +&dcsr { +	dcsr-epu@0 { +		compatible = "fsl,b4860-dcsr-epu", "fsl,dcsr-epu"; +	}; +	dcsr-npc { +		compatible = "fsl,b4860-dcsr-cnpc", "fsl,dcsr-cnpc"; +	}; +	dcsr-dpaa@9000 { +		compatible = "fsl,b4860-dcsr-dpaa", "fsl,dcsr-dpaa"; +	}; +	dcsr-ocn@11000 { +		compatible = "fsl,b4860-dcsr-ocn", "fsl,dcsr-ocn"; +	}; +	dcsr-ddr@13000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr2>; +		reg = <0x13000 0x1000>; +	}; +	dcsr-nal@18000 { +		compatible = "fsl,b4860-dcsr-nal", "fsl,dcsr-nal"; +	}; +	dcsr-rcpm@22000 { +		compatible = "fsl,b4860-dcsr-rcpm", "fsl,dcsr-rcpm"; +	}; +	dcsr-snpc@30000 { +		compatible = "fsl,b4860-dcsr-snpc", "fsl,dcsr-snpc"; +	}; +	dcsr-snpc@31000 { +		compatible = "fsl,b4860-dcsr-snpc", "fsl,dcsr-snpc"; +	}; +	dcsr-cpu-sb-proxy@108000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu1>; +		reg = <0x108000 0x1000 0x109000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@110000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu2>; +		reg = <0x110000 0x1000 0x111000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@118000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu3>; +		reg = <0x118000 0x1000 0x119000 0x1000>; +	}; +}; + +&soc { +	ddr2: memory-controller@9000 { +		compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller"; +		reg = <0x9000 0x1000>; +		interrupts = <16 2 1 9>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,b4860-l3-cache-controller", "cache"; +	}; + +	guts: global-utilities@e0000 { +		compatible = "fsl,b4860-device-config", "fsl,qoriq-device-config-2.0"; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,b4860-clockgen", "fsl,qoriq-clockgen-2.0"; +		ranges = <0x0 0xe1000 0x1000>; +		#address-cells = <1>; +		#size-cells = <1>; + +		sysclk: sysclk { +			#clock-cells = <0>; +			compatible = "fsl,qoriq-sysclk-2.0"; +			clock-output-names = "sysclk"; +		}; + +		pll0: pll0@800 { +			#clock-cells = <1>; +			reg = <0x800 0x4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll0", "pll0-div2", "pll0-div4"; +		}; + +		pll1: pll1@820 { +			#clock-cells = <1>; +			reg = <0x820 0x4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll1", "pll1-div2", "pll1-div4"; +		}; + +		mux0: mux0@0 { +			#clock-cells = <0>; +			reg = <0x0 0x4>; +			compatible = "fsl,qoriq-core-mux-2.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>, +				<&pll1 0>, <&pll1 1>, <&pll1 2>; +			clock-names = "pll0", "pll0-div2", "pll0-div4", +				"pll1", "pll1-div2", "pll1-div4"; +			clock-output-names = "cmux0"; +		}; +	}; + +	rcpm: global-utilities@e2000 { +		compatible = "fsl,b4860-rcpm", "fsl,qoriq-rcpm-2.0"; +	}; + +	L2: l2-cache-controller@c20000 { +		compatible = "fsl,b4860-l2-cache-controller"; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi b/arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi new file mode 100644 index 00000000000..1948f73fd26 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi @@ -0,0 +1,93 @@ +/* + * B4860 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e6500_power_isa.dtsi" + +/ { +	compatible = "fsl,B4860"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; +		dcsr = &dcsr; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		pci0 = &pci0; +		dma0 = &dma0; +		dma1 = &dma1; +		sdhc = &sdhc; +	}; + + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e6500@0 { +			device_type = "cpu"; +			reg = <0 1>; +			clocks = <&mux0>; +			next-level-cache = <&L2>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu1: PowerPC,e6500@2 { +			device_type = "cpu"; +			reg = <2 3>; +			clocks = <&mux0>; +			next-level-cache = <&L2>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu2: PowerPC,e6500@4 { +			device_type = "cpu"; +			reg = <4 5>; +			clocks = <&mux0>; +			next-level-cache = <&L2>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu3: PowerPC,e6500@6 { +			device_type = "cpu"; +			reg = <6 7>; +			clocks = <&mux0>; +			next-level-cache = <&L2>; +			fsl,portid-mapping = <0x80000000>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/b4si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4si-post.dtsi new file mode 100644 index 00000000000..1a54ba71f68 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/b4si-post.dtsi @@ -0,0 +1,269 @@ +/* + * B4420 Silicon/SoC Device Tree Source (post include) + * + * 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. + */ + +&ifc { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,ifc", "simple-bus"; +	interrupts = <25 2 0 0>; +}; + +/* controller at 0x200000 */ +&pci0 { +	compatible = "fsl,b4-pcie", "fsl,qoriq-pcie-v2.4"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	interrupts = <20 2 0 0>; +	fsl,iommu-parent = <&pamu0>; +	pcie@0 { +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		reg = <0 0 0 0 0>; +		interrupts = <20 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 40 1 0 0 +			0000 0 0 2 &mpic 1 1 0 0 +			0000 0 0 3 &mpic 2 1 0 0 +			0000 0 0 4 &mpic 3 1 0 0 +			>; +	}; +}; + +&dcsr { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,dcsr", "simple-bus"; + +	dcsr-epu@0 { +		compatible = "fsl,b4-dcsr-epu", "fsl,dcsr-epu"; +		interrupts = <52 2 0 0 +			      84 2 0 0 +			      85 2 0 0 +			      94 2 0 0 +			      95 2 0 0>; +		reg = <0x0 0x1000>; +	}; +	dcsr-npc { +		compatible = "fsl,b4-dcsr-cnpc", "fsl,dcsr-cnpc"; +		reg = <0x1000 0x1000 0x1002000 0x10000>; +	}; +	dcsr-nxc@2000 { +		compatible = "fsl,dcsr-nxc"; +		reg = <0x2000 0x1000>; +	}; +	dcsr-corenet { +		compatible = "fsl,dcsr-corenet"; +		reg = <0x8000 0x1000 0x1A000 0x1000>; +	}; +	dcsr-dpaa@9000 { +		compatible = "fsl,b4-dcsr-dpaa", "fsl,dcsr-dpaa"; +		reg = <0x9000 0x1000>; +	}; +	dcsr-ocn@11000 { +		compatible = "fsl,b4-dcsr-ocn", "fsl,dcsr-ocn"; +		reg = <0x11000 0x1000>; +	}; +	dcsr-ddr@12000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr1>; +		reg = <0x12000 0x1000>; +	}; +	dcsr-nal@18000 { +		compatible = "fsl,b4-dcsr-nal", "fsl,dcsr-nal"; +		reg = <0x18000 0x1000>; +	}; +	dcsr-rcpm@22000 { +		compatible = "fsl,b4-dcsr-rcpm", "fsl,dcsr-rcpm"; +		reg = <0x22000 0x1000>; +	}; +	dcsr-snpc@30000 { +		compatible = "fsl,b4-dcsr-snpc", "fsl,dcsr-snpc"; +		reg = <0x30000 0x1000 0x1022000 0x10000>; +	}; +	dcsr-snpc@31000 { +		compatible = "fsl,b4-dcsr-snpc", "fsl,dcsr-snpc"; +		reg = <0x31000 0x1000 0x1042000 0x10000>; +	}; +	dcsr-cpu-sb-proxy@100000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu0>; +		reg = <0x100000 0x1000 0x101000 0x1000>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; + +	soc-sram-error { +		compatible = "fsl,soc-sram-error"; +		interrupts = <16 2 1 2>; +	}; + +	corenet-law@0 { +		compatible = "fsl,corenet-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <32>; +	}; + +	ddr1: memory-controller@8000 { +		compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller"; +		reg = <0x8000 0x1000>; +		interrupts = <16 2 1 8>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,b4-l3-cache-controller", "cache"; +		reg = <0x10000 0x1000>; +		interrupts = <16 2 1 4>; +	}; + +	corenet-cf@18000 { +		compatible = "fsl,corenet2-cf", "fsl,corenet-cf"; +		reg = <0x18000 0x1000>; +		interrupts = <16 2 1 0>; +		fsl,ccf-num-csdids = <32>; +		fsl,ccf-num-snoopids = <32>; +	}; + +	iommu@20000 { +		compatible =  "fsl,pamu-v1.0", "fsl,pamu"; +		reg = <0x20000 0x4000>; +		fsl,portid-mapping = <0x8000>; +		#address-cells = <1>; +		#size-cells = <1>; +		interrupts = < +			24 2 0 0 +			16 2 1 1>; + + +		/* PCIe, DMA, SRIO */ +		pamu0: pamu@0 { +			reg = <0 0x1000>; +			fsl,primary-cache-geometry = <8 1>; +			fsl,secondary-cache-geometry = <32 2>; +		}; + +		/* AXI2, Maple */ +		pamu1: pamu@1000 { +			reg = <0x1000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <32 2>; +		}; + +		/* Q/BMan */ +		pamu2: pamu@2000 { +			reg = <0x2000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <32 2>; +		}; + +		/* AXI1, FMAN */ +		pamu3: pamu@3000 { +			reg = <0x3000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <32 2>; +		}; +	}; + +/include/ "qoriq-mpic4.3.dtsi" + +	guts: global-utilities@e0000 { +		compatible = "fsl,b4-device-config"; +		reg = <0xe0000 0xe00>; +		fsl,has-rstcr; +		fsl,liodn-bits = <12>; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,b4-clockgen", "fsl,qoriq-clockgen-2.0"; +		reg = <0xe1000 0x1000>; +	}; + +	rcpm: global-utilities@e2000 { +		compatible = "fsl,b4-rcpm", "fsl,qoriq-rcpm-2.0"; +		reg = <0xe2000 0x1000>; +	}; + +/include/ "elo3-dma-0.dtsi" +	dma@100300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */ +	}; + +/include/ "elo3-dma-1.dtsi" +	dma@101300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */ +	}; + +/include/ "qonverge-usb2-dr-0.dtsi" +	usb0: usb@210000 { +		compatible = "fsl-usb2-dr-v2.4", "fsl-usb2-dr"; +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */ +	}; + +/include/ "qoriq-espi-0.dtsi" +	spi@110000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "qoriq-esdhc-0.dtsi" +	sdhc@114000 { +		sdhci,auto-cmd12; +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */ +	}; + +/include/ "qoriq-i2c-0.dtsi" +/include/ "qoriq-i2c-1.dtsi" +/include/ "qoriq-duart-0.dtsi" +/include/ "qoriq-duart-1.dtsi" +/include/ "qoriq-sec5.3-0.dtsi" + +	L2: l2-cache-controller@c20000 { +		compatible = "fsl,b4-l2-cache-controller"; +		reg = <0xc20000 0x1000>; +		next-level-cache = <&cpc>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi b/arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi new file mode 100644 index 00000000000..0c0efa94cfb --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/bsc9131si-post.dtsi @@ -0,0 +1,193 @@ +/* + * BSC9131 Silicon/SoC Device Tree Source (post include) + * + * 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: + *     * 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. + */ + +&ifc { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,ifc", "simple-bus"; +	interrupts = <16 2 0 0 20 2 0 0>; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,bsc9131-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,bsc9131-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,bsc9131-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +	i2c@3000 { +		interrupts = <17 2 0 0>; +	}; + +/include/ "pq3-i2c-1.dtsi" +	i2c@3100 { +		interrupts = <17 2 0 0>; +	}; + +/include/ "pq3-duart-0.dtsi" +	serial0: serial@4500 { +		interrupts = <18 2 0 0>; +	}; + +	serial1: serial@4600 { +		interrupts = <18 2 0 0 >; +	}; +/include/ "pq3-espi-0.dtsi" +	spi0: spi@7000 { +		fsl,espi-num-chipselects = <1>; +		interrupts = <22 0x2 0 0>; +	}; + +/include/ "pq3-gpio-0.dtsi" +	gpio-controller@f000 { +		interrupts = <19 0x2 0 0>; +		}; + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,bsc9131-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x40000>; // L2,256K +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-dma-0.dtsi" + +dma@21300 { + +	dma-channel@0 { +		interrupts = <62 2 0 0>; +	}; + +	dma-channel@80 { +		interrupts = <63 2 0 0>; +	}; + +	dma-channel@100 { +		interrupts = <64 2 0 0>; +	}; + +	dma-channel@180 { +		interrupts = <65 2 0 0>; +	}; +}; + +/include/ "pq3-usb2-dr-0.dtsi" +usb@22000 { +	compatible = "fsl-usb2-dr","fsl-usb2-dr-v2.2"; +	interrupts = <40 0x2 0 0>; +}; + +/include/ "pq3-esdhc-0.dtsi" +	sdhc@2e000 { +		sdhci,auto-cmd12; +		interrupts = <41 0x2 0 0>; +	}; + +/include/ "pq3-sec4.4-0.dtsi" +crypto@30000 { +	interrupts	 = <57 2 0 0>; + +	sec_jr0: jr@1000 { +		interrupts	 = <58 2 0 0>; +	}; + +	sec_jr1: jr@2000 { +		interrupts	 = <59 2 0 0>; +	}; + +	sec_jr2: jr@3000 { +		interrupts	 = <60 2 0 0>; +	}; + +	sec_jr3: jr@4000 { +		interrupts	 = <61 2 0 0>; +	}; +}; + +/include/ "pq3-mpic.dtsi" + +timer@41100 { +	compatible = "fsl,mpic-v1.2-msgr", "fsl,mpic-msg"; +	reg = <0x41400 0x200>; +	interrupts = < +		0xb0 2 +		0xb1 2 +		0xb2 2 +		0xb3 2>; +}; + +/include/ "pq3-etsec2-0.dtsi" +enet0: ethernet@b0000 { +	queue-group@b0000 { +		fsl,rx-bit-map = <0xff>; +		fsl,tx-bit-map = <0xff>; +		interrupts = <26 2 0 0 27 2 0 0 28 2 0 0>; +	}; +}; + +/include/ "pq3-etsec2-1.dtsi" +enet1: ethernet@b1000 { +	queue-group@b1000 { +		fsl,rx-bit-map = <0xff>; +		fsl,tx-bit-map = <0xff>; +		interrupts = <33 2 0 0 34 2 0 0 35 2 0 0>; +	}; +}; + +global-utilities@e0000 { +		compatible = "fsl,bsc9131-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi b/arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi new file mode 100644 index 00000000000..f6ec4a67560 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/bsc9131si-pre.dtsi @@ -0,0 +1,62 @@ +/* + * BSC9131 Silicon/SoC Device Tree Source (pre include) + * + * 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: + *     * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,BSC9131"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,BSC9131@0 { +			device_type = "cpu"; +			compatible = "fsl,e500v2"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/bsc9132si-post.dtsi b/arch/powerpc/boot/dts/fsl/bsc9132si-post.dtsi new file mode 100644 index 00000000000..c7230719814 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/bsc9132si-post.dtsi @@ -0,0 +1,185 @@ +/* + * BSC9132 Silicon/SoC Device Tree Source (post include) + * + * Copyright 2014 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. + */ + +&ifc { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,ifc", "simple-bus"; +	/* FIXME: Test whether interrupts are split */ +	interrupts = <16 2 0 0 20 2 0 0>; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,bsc9132-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,bsc9132-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,bsc9132-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <16 2 1 8>; +	}; + +/include/ "pq3-i2c-0.dtsi" +	i2c@3000 { +		interrupts = <17 2 0 0>; +	}; + +/include/ "pq3-i2c-1.dtsi" +	i2c@3100 { +		interrupts = <17 2 0 0>; +	}; + +/include/ "pq3-duart-0.dtsi" +	serial0: serial@4500 { +		interrupts = <18 2 0 0>; +	}; + +	serial1: serial@4600 { +		interrupts = <18 2 0 0 >; +	}; +/include/ "pq3-espi-0.dtsi" +	spi0: spi@7000 { +		fsl,espi-num-chipselects = <1>; +		interrupts = <22 0x2 0 0>; +	}; + +/include/ "pq3-gpio-0.dtsi" +	gpio-controller@f000 { +		interrupts = <19 0x2 0 0>; +		}; + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,bsc9132-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x40000>; // L2,256K +		interrupts = <16 2 1 0>; +	}; + +/include/ "pq3-dma-0.dtsi" + +dma@21300 { + +	dma-channel@0 { +		interrupts = <62 2 0 0>; +	}; + +	dma-channel@80 { +		interrupts = <63 2 0 0>; +	}; + +	dma-channel@100 { +		interrupts = <64 2 0 0>; +	}; + +	dma-channel@180 { +		interrupts = <65 2 0 0>; +	}; +}; + +/include/ "pq3-usb2-dr-0.dtsi" +usb@22000 { +	compatible = "fsl-usb2-dr","fsl-usb2-dr-v2.2"; +	interrupts = <40 0x2 0 0>; +}; + +/include/ "pq3-esdhc-0.dtsi" +	sdhc@2e000 { +		fsl,sdhci-auto-cmd12; +		interrupts = <41 0x2 0 0>; +	}; + +/include/ "pq3-sec4.4-0.dtsi" +crypto@30000 { +	interrupts	 = <57 2 0 0>; + +	sec_jr0: jr@1000 { +		interrupts	 = <58 2 0 0>; +	}; + +	sec_jr1: jr@2000 { +		interrupts	 = <59 2 0 0>; +	}; + +	sec_jr2: jr@3000 { +		interrupts	 = <60 2 0 0>; +	}; + +	sec_jr3: jr@4000 { +		interrupts	 = <61 2 0 0>; +	}; +}; + +/include/ "pq3-mpic.dtsi" +/include/ "pq3-mpic-timer-B.dtsi" + +/include/ "pq3-etsec2-0.dtsi" +enet0: ethernet@b0000 { +	queue-group@b0000 { +		fsl,rx-bit-map = <0xff>; +		fsl,tx-bit-map = <0xff>; +		interrupts = <26 2 0 0 27 2 0 0 28 2 0 0>; +	}; +}; + +/include/ "pq3-etsec2-1.dtsi" +enet1: ethernet@b1000 { +	queue-group@b1000 { +		fsl,rx-bit-map = <0xff>; +		fsl,tx-bit-map = <0xff>; +		interrupts = <33 2 0 0 34 2 0 0 35 2 0 0>; +	}; +}; + +global-utilities@e0000 { +		compatible = "fsl,bsc9132-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/bsc9132si-pre.dtsi b/arch/powerpc/boot/dts/fsl/bsc9132si-pre.dtsi new file mode 100644 index 00000000000..301a9dba579 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/bsc9132si-pre.dtsi @@ -0,0 +1,66 @@ +/* + * BSC9132 Silicon/SoC Device Tree Source (pre include) + * + * Copyright 2014 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e500v2@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; + +		cpu1: PowerPC,e500v2@1 { +			device_type = "cpu"; +			reg = <0x1>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/c293si-post.dtsi b/arch/powerpc/boot/dts/fsl/c293si-post.dtsi new file mode 100644 index 00000000000..bd208320bff --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/c293si-post.dtsi @@ -0,0 +1,193 @@ +/* + * C293 Silicon/SoC Device Tree Source (post include) + * + * 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. + */ + +&ifc { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,ifc", "simple-bus"; +	interrupts = <19 2 0 0>; +}; + +/* controller at 0xa000 */ +&pci0 { +	compatible = "fsl,qoriq-pcie-v2.2", "fsl,qoriq-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,c293-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,c293-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" +/include/ "pq3-espi-0.dtsi" +	spi0: spi@7000 { +		fsl,espi-num-chipselects = <1>; +	}; + +/include/ "pq3-gpio-0.dtsi" +	L2: l2-cache-controller@20000 { +		compatible = "fsl,c293-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x80000>; // L2,512K +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-dma-0.dtsi" +/include/ "pq3-esdhc-0.dtsi" +	sdhc@2e000 { +		compatible = "fsl,c293-esdhc", "fsl,esdhc"; +		sdhci,auto-cmd12; +	}; + +	crypto@80000 { +/include/ "qoriq-sec6.0-0.dtsi" +	}; + +	crypto@80000 { +		reg = <0x80000 0x20000>; +		ranges = <0x0 0x80000 0x20000>; + +		jr@1000{ +			interrupts = <45 2 0 0>; +		}; +		jr@2000{ +			interrupts = <57 2 0 0>; +		}; +	}; + +	crypto@a0000 { +/include/ "qoriq-sec6.0-0.dtsi" +	}; + +	crypto@a0000 { +		reg = <0xa0000 0x20000>; +		ranges = <0x0 0xa0000 0x20000>; + +		jr@1000{ +			interrupts = <49 2 0 0>; +		}; +		jr@2000{ +			interrupts = <50 2 0 0>; +		}; +	}; + +	crypto@c0000 { +/include/ "qoriq-sec6.0-0.dtsi" +	}; + +	crypto@c0000 { +		reg = <0xc0000 0x20000>; +		ranges = <0x0 0xc0000 0x20000>; + +		jr@1000{ +			interrupts = <55 2 0 0>; +		}; +		jr@2000{ +			interrupts = <56 2 0 0>; +		}; +	}; + +/include/ "pq3-mpic.dtsi" +/include/ "pq3-mpic-timer-B.dtsi" + +/include/ "pq3-etsec2-0.dtsi" +	enet0: ethernet@b0000 { +		queue-group@b0000 { +			reg = <0x10000 0x1000>; +			fsl,rx-bit-map = <0xff>; +			fsl,tx-bit-map = <0xff>; +		}; +	}; + +/include/ "pq3-etsec2-1.dtsi" +	enet1: ethernet@b1000 { +		queue-group@b1000 { +			reg = <0x11000 0x1000>; +			fsl,rx-bit-map = <0xff>; +			fsl,tx-bit-map = <0xff>; +		}; +	}; + +	global-utilities@e0000 { +		compatible = "fsl,c293-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/c293si-pre.dtsi b/arch/powerpc/boot/dts/fsl/c293si-pre.dtsi new file mode 100644 index 00000000000..065049d7624 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/c293si-pre.dtsi @@ -0,0 +1,63 @@ +/* + * C293 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,C293"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		pci0 = &pci0; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,e500v2@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/e500mc_power_isa.dtsi b/arch/powerpc/boot/dts/fsl/e500mc_power_isa.dtsi new file mode 100644 index 00000000000..ea145c91cfb --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/e500mc_power_isa.dtsi @@ -0,0 +1,59 @@ +/* + * e500mc Power ISA Device Tree Source (include) + * + * 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. + */ + +/ { +	cpus { +		power-isa-version = "2.06"; +		power-isa-b;		// Base +		power-isa-e;		// Embedded +		power-isa-atb;		// Alternate Time Base +		power-isa-cs;		// Cache Specification +		power-isa-ds;		// Decorated Storage +		power-isa-e.ed;		// Embedded.Enhanced Debug +		power-isa-e.pd;		// Embedded.External PID +		power-isa-e.hv;		// Embedded.Hypervisor +		power-isa-e.le;		// Embedded.Little-Endian +		power-isa-e.pm;		// Embedded.Performance Monitor +		power-isa-e.pc;		// Embedded.Processor Control +		power-isa-ecl;		// Embedded Cache Locking +		power-isa-exp;		// External Proxy +		power-isa-fp;		// Floating Point +		power-isa-fp.r;		// Floating Point.Record +		power-isa-mmc;		// Memory Coherence +		power-isa-scpm;		// Store Conditional Page Mobility +		power-isa-wt;		// Wait +		fsl,eref-deo;		// Data Cache Extended Operations +		mmu-type = "power-embedded"; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/e500v2_power_isa.dtsi b/arch/powerpc/boot/dts/fsl/e500v2_power_isa.dtsi new file mode 100644 index 00000000000..f4928144d2c --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/e500v2_power_isa.dtsi @@ -0,0 +1,52 @@ +/* + * e500v2 Power ISA Device Tree Source (include) + * + * 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. + */ + +/ { +	cpus { +		power-isa-version = "2.03"; +		power-isa-b;		// Base +		power-isa-e;		// Embedded +		power-isa-atb;		// Alternate Time Base +		power-isa-cs;		// Cache Specification +		power-isa-e.le;		// Embedded.Little-Endian +		power-isa-e.pm;		// Embedded.Performance Monitor +		power-isa-ecl;		// Embedded Cache Locking +		power-isa-mmc;		// Memory Coherence +		power-isa-sp;		// Signal Processing Engine +		power-isa-sp.fd;	// SPE.Embedded Float Scalar Double +		power-isa-sp.fs;	// SPE.Embedded Float Scalar Single +		power-isa-sp.fv;	// SPE.Embedded Float Vector +		mmu-type = "power-embedded"; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/e5500_power_isa.dtsi b/arch/powerpc/boot/dts/fsl/e5500_power_isa.dtsi new file mode 100644 index 00000000000..c254c981ae8 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/e5500_power_isa.dtsi @@ -0,0 +1,60 @@ +/* + * e5500 Power ISA Device Tree Source (include) + * + * 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. + */ + +/ { +	cpus { +		power-isa-version = "2.06"; +		power-isa-b;		// Base +		power-isa-e;		// Embedded +		power-isa-atb;		// Alternate Time Base +		power-isa-cs;		// Cache Specification +		power-isa-ds;		// Decorated Storage +		power-isa-e.ed;		// Embedded.Enhanced Debug +		power-isa-e.pd;		// Embedded.External PID +		power-isa-e.hv;		// Embedded.Hypervisor +		power-isa-e.le;		// Embedded.Little-Endian +		power-isa-e.pm;		// Embedded.Performance Monitor +		power-isa-e.pc;		// Embedded.Processor Control +		power-isa-ecl;		// Embedded Cache Locking +		power-isa-exp;		// External Proxy +		power-isa-fp;		// Floating Point +		power-isa-fp.r;		// Floating Point.Record +		power-isa-mmc;		// Memory Coherence +		power-isa-scpm;		// Store Conditional Page Mobility +		power-isa-wt;		// Wait +		power-isa-64;		// 64-bit +		fsl,eref-deo;		// Data Cache Extended Operations +		mmu-type = "power-embedded"; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/e6500_power_isa.dtsi b/arch/powerpc/boot/dts/fsl/e6500_power_isa.dtsi new file mode 100644 index 00000000000..a912dbeff35 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/e6500_power_isa.dtsi @@ -0,0 +1,65 @@ +/* + * e6500 Power ISA Device Tree Source (include) + * + * Copyright 2013 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. + */ + +/ { +	cpus { +		power-isa-version = "2.06"; +		power-isa-b;		// Base +		power-isa-e;		// Embedded +		power-isa-atb;		// Alternate Time Base +		power-isa-cs;		// Cache Specification +		power-isa-ds;		// Decorated Storage +		power-isa-e.ed;		// Embedded.Enhanced Debug +		power-isa-e.pd;		// Embedded.External PID +		power-isa-e.hv;		// Embedded.Hypervisor +		power-isa-e.le;		// Embedded.Little-Endian +		power-isa-e.pm;		// Embedded.Performance Monitor +		power-isa-e.pc;		// Embedded.Processor Control +		power-isa-ecl;		// Embedded Cache Locking +		power-isa-exp;		// External Proxy +		power-isa-fp;		// Floating Point +		power-isa-fp.r;		// Floating Point.Record +		power-isa-mmc;		// Memory Coherence +		power-isa-scpm;		// Store Conditional Page Mobility +		power-isa-wt;		// Wait +		power-isa-64;		// 64-bit +		power-isa-e.pt;		// Embedded.Page Table +		power-isa-e.hv.lrat;	// Embedded.Hypervisor.LRAT +		power-isa-e.em;		// Embedded Multi-Threading +		power-isa-v;		// Vector (AltiVec) +		fsl,eref-er;		// Enhanced Reservations (Load and Reserve and Store Cond.) +		fsl,eref-deo;		// Data Cache Extended Operations +		mmu-type = "power-embedded"; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/elo3-dma-0.dtsi b/arch/powerpc/boot/dts/fsl/elo3-dma-0.dtsi new file mode 100644 index 00000000000..3c210e0d520 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/elo3-dma-0.dtsi @@ -0,0 +1,82 @@ +/* + * QorIQ Elo3 DMA device tree stub [ controller @ offset 0x100000 ] + * + * Copyright 2013 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. + */ + +dma0: dma@100300 { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,elo3-dma"; +	reg = <0x100300 0x4>, +	      <0x100600 0x4>; +	ranges = <0x0 0x100100 0x500>; +	dma-channel@0 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x0 0x80>; +		interrupts = <28 2 0 0>; +	}; +	dma-channel@80 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x80 0x80>; +		interrupts = <29 2 0 0>; +	}; +	dma-channel@100 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x100 0x80>; +		interrupts = <30 2 0 0>; +	}; +	dma-channel@180 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x180 0x80>; +		interrupts = <31 2 0 0>; +	}; +	dma-channel@300 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x300 0x80>; +		interrupts = <76 2 0 0>; +	}; +	dma-channel@380 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x380 0x80>; +		interrupts = <77 2 0 0>; +	}; +	dma-channel@400 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x400 0x80>; +		interrupts = <78 2 0 0>; +	}; +	dma-channel@480 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x480 0x80>; +		interrupts = <79 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/elo3-dma-1.dtsi b/arch/powerpc/boot/dts/fsl/elo3-dma-1.dtsi new file mode 100644 index 00000000000..cccf3bb3822 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/elo3-dma-1.dtsi @@ -0,0 +1,82 @@ +/* + * QorIQ Elo3 DMA device tree stub [ controller @ offset 0x101000 ] + * + * Copyright 2013 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. + */ + +dma1: dma@101300 { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,elo3-dma"; +	reg = <0x101300 0x4>, +	      <0x101600 0x4>; +	ranges = <0x0 0x101100 0x500>; +	dma-channel@0 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x0 0x80>; +		interrupts = <32 2 0 0>; +	}; +	dma-channel@80 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x80 0x80>; +		interrupts = <33 2 0 0>; +	}; +	dma-channel@100 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x100 0x80>; +		interrupts = <34 2 0 0>; +	}; +	dma-channel@180 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x180 0x80>; +		interrupts = <35 2 0 0>; +	}; +	dma-channel@300 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x300 0x80>; +		interrupts = <80 2 0 0>; +	}; +	dma-channel@380 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x380 0x80>; +		interrupts = <81 2 0 0>; +	}; +	dma-channel@400 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x400 0x80>; +		interrupts = <82 2 0 0>; +	}; +	dma-channel@480 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x480 0x80>; +		interrupts = <83 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi b/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi new file mode 100644 index 00000000000..d3cc8d0f7c2 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi @@ -0,0 +1,82 @@ +/* + * QorIQ Elo3 DMA device tree stub [ controller @ offset 0x102300 ] + * + * Copyright 2013 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. + */ + +dma2: dma@102300 { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,elo3-dma"; +	reg = <0x102300 0x4>, +	      <0x102600 0x4>; +	ranges = <0x0 0x102100 0x500>; +	dma-channel@0 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x0 0x80>; +		interrupts = <464 2 0 0>; +	}; +	dma-channel@80 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x80 0x80>; +		interrupts = <465 2 0 0>; +	}; +	dma-channel@100 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x100 0x80>; +		interrupts = <466 2 0 0>; +	}; +	dma-channel@180 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x180 0x80>; +		interrupts = <467 2 0 0>; +	}; +	dma-channel@300 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x300 0x80>; +		interrupts = <468 2 0 0>; +	}; +	dma-channel@380 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x380 0x80>; +		interrupts = <469 2 0 0>; +	}; +	dma-channel@400 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x400 0x80>; +		interrupts = <470 2 0 0>; +	}; +	dma-channel@480 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x480 0x80>; +		interrupts = <471 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/interlaken-lac-portals.dtsi b/arch/powerpc/boot/dts/fsl/interlaken-lac-portals.dtsi new file mode 100644 index 00000000000..9cffccf4e07 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/interlaken-lac-portals.dtsi @@ -0,0 +1,156 @@ +/* T4240 Interlaken LAC Portal device tree stub with 24 portals. + * + * 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. + */ + +#address-cells = <0x1>; +#size-cells = <0x1>; +compatible = "fsl,interlaken-lac-portals"; + +lportal0: lac-portal@0 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x0 0x1000>; +}; + +lportal1: lac-portal@1000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x1000 0x1000>; +}; + +lportal2: lac-portal@2000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x2000 0x1000>; +}; + +lportal3: lac-portal@3000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x3000 0x1000>; +}; + +lportal4: lac-portal@4000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x4000 0x1000>; +}; + +lportal5: lac-portal@5000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x5000 0x1000>; +}; + +lportal6: lac-portal@6000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x6000 0x1000>; +}; + +lportal7: lac-portal@7000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x7000 0x1000>; +}; + +lportal8: lac-portal@8000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x8000 0x1000>; +}; + +lportal9: lac-portal@9000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x9000 0x1000>; +}; + +lportal10: lac-portal@A000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0xA000 0x1000>; +}; + +lportal11: lac-portal@B000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0xB000 0x1000>; +}; + +lportal12: lac-portal@C000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0xC000 0x1000>; +}; + +lportal13: lac-portal@D000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0xD000 0x1000>; +}; + +lportal14: lac-portal@E000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0xE000 0x1000>; +}; + +lportal15: lac-portal@F000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0xF000 0x1000>; +}; + +lportal16: lac-portal@10000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x10000 0x1000>; +}; + +lportal17: lac-portal@11000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x11000 0x1000>; +}; + +lportal18: lac-portal@1200 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x12000 0x1000>; +}; + +lportal19: lac-portal@13000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x13000 0x1000>; +}; + +lportal20: lac-portal@14000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x14000 0x1000>; +}; + +lportal21: lac-portal@15000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x15000 0x1000>; +}; + +lportal22: lac-portal@16000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x16000 0x1000>; +}; + +lportal23: lac-portal@17000 { +	compatible = "fsl,interlaken-lac-portal-v1.0"; +	reg = <0x17000 0x1000>; +}; diff --git a/arch/powerpc/boot/dts/fsl/interlaken-lac.dtsi b/arch/powerpc/boot/dts/fsl/interlaken-lac.dtsi new file mode 100644 index 00000000000..e8208720ac0 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/interlaken-lac.dtsi @@ -0,0 +1,45 @@ +/* + * T4 Interlaken Look-aside Controller (LAC) device tree stub + * + * 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. + */ + +lac: lac@229000 { +	compatible = "fsl,interlaken-lac"; +	reg = <0x229000 0x1000>; +	interrupts = <16 2 1 18>; +}; + +lac-hv@228000 { +	compatible = "fsl,interlaken-lac-hv"; +	reg = <0x228000 0x1000>; +	fsl,non-hv-node = <&lac>; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi new file mode 100644 index 00000000000..c8b2daa40ac --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi @@ -0,0 +1,252 @@ +/* + * MPC8536 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,mpc8536-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <19 2 0 0>; +}; + +/* controller at 0x8000 */ +&pci0 { +	compatible = "fsl,mpc8540-pci"; +	device_type = "pci"; +	interrupts = <24 0x2 0 0>; +	bus-range = <0 0xff>; +	#interrupt-cells = <1>; +	#size-cells = <2>; +	#address-cells = <3>; +}; + +/* controller at 0x9000 */ +&pci1 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <25 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <25 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0xa000 */ +&pci2 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <26 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <26 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0xb000 */ +&pci3 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <27 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <27 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x8 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x9 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0xa 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0xb 0x1 0x0 0x0 +			>; +	}; +}; +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,mpc8536-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,mpc8536-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <17 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,mpc8536-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <18 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" + +/include/ "pq3-espi-0.dtsi" +	spi@7000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "pq3-gpio-0.dtsi" + +	/* mark compat w/8572 to get some erratum treatment */ +	gpio-controller@f000 { +		compatible = "fsl,mpc8572-gpio", "fsl,pq3-gpio"; +	}; + +	sata@18000 { +		compatible = "fsl,mpc8536-sata", "fsl,pq-sata"; +		reg = <0x18000 0x1000>; +		cell-index = <1>; +		interrupts = <74 0x2 0 0>; +	}; + +	sata@19000 { +		compatible = "fsl,mpc8536-sata", "fsl,pq-sata"; +		reg = <0x19000 0x1000>; +		cell-index = <2>; +		interrupts = <41 0x2 0 0>; +	}; + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,mpc8536-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x80000>; // L2, 512K +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-dma-0.dtsi" +/include/ "pq3-etsec1-0.dtsi" +/include/ "pq3-etsec1-timer-0.dtsi" + +	usb@22000 { +		compatible = "fsl-usb2-mph-v1.2", "fsl,mpc8536-usb2-mph", "fsl-usb2-mph"; +		reg = <0x22000 0x1000>; +		#address-cells = <1>; +		#size-cells = <0>; +		interrupts = <28 0x2 0 0>; +	}; + +	usb@23000 { +		compatible = "fsl-usb2-mph-v1.2", "fsl,mpc8536-usb2-mph", "fsl-usb2-mph"; +		reg = <0x23000 0x1000>; +		#address-cells = <1>; +		#size-cells = <0>; +		interrupts = <46 0x2 0 0>; +	}; + +	ptp_clock@24e00 { +		interrupts = <68 2 0 0 69 2 0 0 70 2 0 0 71 2 0 0>; +	}; + +/include/ "pq3-etsec1-2.dtsi" + +	ethernet@26000 { +		cell-index = <1>; +	}; + +	usb@2b000 { +		compatible = "fsl,mpc8536-usb2-dr", "fsl-usb2-dr"; +		reg = <0x2b000 0x1000>; +		#address-cells = <1>; +		#size-cells = <0>; +		interrupts = <60 0x2 0 0>; +	}; + +/include/ "pq3-esdhc-0.dtsi" +	sdhc@2e000 { +		compatible = "fsl,mpc8536-esdhc", "fsl,esdhc"; +	}; + +/include/ "pq3-sec3.0-0.dtsi" +/include/ "pq3-mpic.dtsi" +/include/ "pq3-mpic-timer-B.dtsi" + +	global-utilities@e0000 { +		compatible = "fsl,mpc8536-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi new file mode 100644 index 00000000000..152906f98a0 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi @@ -0,0 +1,66 @@ +/* + * MPC8536 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,MPC8536"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet2; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +		pci3 = &pci3; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,8536@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi new file mode 100644 index 00000000000..b68eb119fae --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi @@ -0,0 +1,191 @@ +/* + * MPC8544 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,mpc8544-lbc", "fsl,pq3-localbus", "simple-bus"; +	interrupts = <19 2 0 0>; +}; + +/* controller at 0x8000 */ +&pci0 { +	compatible = "fsl,mpc8540-pci"; +	device_type = "pci"; +	interrupts = <24 0x2 0 0>; +	bus-range = <0 0xff>; +	#interrupt-cells = <1>; +	#size-cells = <2>; +	#address-cells = <3>; +}; + +/* controller at 0x9000 */ +&pci1 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <25 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <25 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0xa000 */ +&pci2 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <26 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <26 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0xb000 */ +&pci3 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <27 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <27 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x8 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x9 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0xa 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0xb 0x1 0x0 0x0 +			>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,mpc8544-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <10>; +	}; + +	ecm@1000 { +		compatible = "fsl,mpc8544-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <17 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,mpc8544-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <18 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,mpc8544-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x40000>; // L2, 256K +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-dma-0.dtsi" +/include/ "pq3-etsec1-0.dtsi" +/include/ "pq3-etsec1-2.dtsi" + +	ethernet@26000 { +		cell-index = <1>; +	}; + +/include/ "pq3-sec2.1-0.dtsi" +/include/ "pq3-mpic.dtsi" + +	global-utilities@e0000 { +		compatible = "fsl,mpc8544-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi new file mode 100644 index 00000000000..5a69bafb652 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi @@ -0,0 +1,66 @@ +/* + * MPC8544 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,MPC8544"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet2; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +		pci3 = &pci3; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,8544@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi new file mode 100644 index 00000000000..579d76cb8e3 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi @@ -0,0 +1,159 @@ +/* + * MPC8548 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,mpc8548-lbc", "fsl,pq3-localbus", "simple-bus"; +	interrupts = <19 2 0 0>; +}; + +/* controller at 0x8000 */ +&pci0 { +	compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; +	device_type = "pci"; +	interrupts = <24 0x2 0 0>; +	bus-range = <0 0xff>; +	#interrupt-cells = <1>; +	#size-cells = <2>; +	#address-cells = <3>; +}; + +/* controller at 0x9000 */ +&pci1 { +	compatible = "fsl,mpc8540-pci"; +	device_type = "pci"; +	interrupts = <25 0x2 0 0>; +	bus-range = <0 0xff>; +	#interrupt-cells = <1>; +	#size-cells = <2>; +	#address-cells = <3>; +}; + +/* controller at 0xa000 */ +&pci2 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <26 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <26 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +&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>; +	device_type = "soc"; +	compatible = "fsl,mpc8548-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <10>; +	}; + +	ecm@1000 { +		compatible = "fsl,mpc8548-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <17 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,mpc8548-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <18 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,mpc8548-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x80000>; // L2, 512K +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-dma-0.dtsi" +/include/ "pq3-etsec1-0.dtsi" +/include/ "pq3-etsec1-1.dtsi" +/include/ "pq3-etsec1-2.dtsi" +/include/ "pq3-etsec1-3.dtsi" + +/include/ "pq3-sec2.1-0.dtsi" +/include/ "pq3-mpic.dtsi" +/include/ "pq3-rmu-0.dtsi" + +	global-utilities@e0000 { +		compatible = "fsl,mpc8548-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi new file mode 100644 index 00000000000..fc1ce977422 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi @@ -0,0 +1,67 @@ +/* + * MPC8548 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,MPC8548"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		ethernet2 = &enet2; +		ethernet3 = &enet3; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,8548@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi new file mode 100644 index 00000000000..64e7075a9cd --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi @@ -0,0 +1,270 @@ +/* + * MPC8568 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,mpc8568-localbus", "fsl,pq3-localbus", "simple-bus"; +	interrupts = <19 2 0 0>; +	sleep = <&pmc 0x08000000>; +}; + +/* controller at 0x8000 */ +&pci0 { +	compatible = "fsl,mpc8540-pci"; +	device_type = "pci"; +	interrupts = <24 0x2 0 0>; +	bus-range = <0 0xff>; +	#interrupt-cells = <1>; +	#size-cells = <2>; +	#address-cells = <3>; +	sleep = <&pmc 0x80000000>; +}; + +/* controller at 0xa000 */ +&pci1 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <26 2 0 0>; +	sleep = <&pmc 0x20000000>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <26 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +&rio { +	compatible = "fsl,srio"; +	interrupts = <48 2 0 0>; +	#address-cells = <2>; +	#size-cells = <2>; +	fsl,srio-rmu-handle = <&rmu>; +	sleep = <&pmc 0x00080000>; +	ranges; + +	port1 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <1>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,mpc8568-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <10>; +	}; + +	ecm@1000 { +		compatible = "fsl,mpc8568-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <17 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,mpc8568-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <18 2 0 0>; +	}; + +	i2c-sleep-nexus { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "simple-bus"; +		sleep = <&pmc 0x00000004>; +		ranges; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" + +	}; + +	duart-sleep-nexus { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "simple-bus"; +		sleep = <&pmc 0x00000002>; +		ranges; + +/include/ "pq3-duart-0.dtsi" + +	}; + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,mpc8568-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x80000>; // L2, 512K +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-dma-0.dtsi" +	dma@21300 { +		sleep = <&pmc 0x00000400>; +	}; + +/include/ "pq3-etsec1-0.dtsi" +	ethernet@24000 { +		sleep = <&pmc 0x00000080>; +	}; + +/include/ "pq3-etsec1-1.dtsi" +	ethernet@25000 { +		sleep = <&pmc 0x00000040>; +	}; + +	par_io@e0100 { +		reg = <0xe0100 0x100>; +		device_type = "par_io"; +	}; + +/include/ "pq3-sec2.1-0.dtsi" +	crypto@30000 { +		sleep = <&pmc 0x01000000>; +	}; + +/include/ "pq3-mpic.dtsi" +/include/ "pq3-rmu-0.dtsi" +	rmu@d3000 { +		sleep = <&pmc 0x00040000>; +	}; + +	global-utilities@e0000 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,mpc8568-guts", "fsl,mpc8548-guts"; +		reg = <0xe0000 0x1000>; +		ranges = <0 0xe0000 0x1000>; +		fsl,has-rstcr; + +		pmc: power@70 { +			compatible = "fsl,mpc8568-pmc", +				     "fsl,mpc8548-pmc"; +			reg = <0x70 0x20>; +		}; +	}; +}; + +&qe { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "qe"; +	compatible = "fsl,qe"; +	sleep = <&pmc 0x00000800>; +	brg-frequency = <0>; +	bus-frequency = <396000000>; +	fsl,qe-num-riscs = <2>; +	fsl,qe-num-snums = <28>; + +	qeic: interrupt-controller@80 { +		interrupt-controller; +		compatible = "fsl,qe-ic"; +		#address-cells = <0>; +		#interrupt-cells = <1>; +		reg = <0x80 0x80>; +		interrupts = <46 2 0 0 46 2 0 0>; //high:30 low:30 +		interrupt-parent = <&mpic>; +	}; + +	spi@4c0 { +		#address-cells = <1>; +		#size-cells = <0>; +		compatible = "fsl,spi"; +		reg = <0x4c0 0x40>; +		cell-index = <0>; +		interrupts = <2>; +		interrupt-parent = <&qeic>; +	}; + +	spi@500 { +		#address-cells = <1>; +		#size-cells = <0>; +		cell-index = <1>; +		compatible = "fsl,spi"; +		reg = <0x500 0x40>; +		interrupts = <1>; +		interrupt-parent = <&qeic>; +	}; + +	ucc@2000 { +		cell-index = <1>; +		reg = <0x2000 0x200>; +		interrupts = <32>; +		interrupt-parent = <&qeic>; +	}; + +	ucc@3000 { +		cell-index = <2>; +		reg = <0x3000 0x200>; +		interrupts = <33>; +		interrupt-parent = <&qeic>; +	}; + +	muram@10000 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,qe-muram", "fsl,cpm-muram"; +		ranges = <0x0 0x10000 0x10000>; + +		data-only@0 { +			compatible = "fsl,qe-muram-data", +				     "fsl,cpm-muram-data"; +			reg = <0x0 0x10000>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi new file mode 100644 index 00000000000..122ca3bd0b0 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi @@ -0,0 +1,68 @@ +/* + * MPC8568 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,MPC8568"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		ethernet2 = &enet2; +		ethernet3 = &enet3; +		pci0 = &pci0; +		pci1 = &pci1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,8568@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +			sleep = <&pmc 0x00008000	// core +				 &pmc 0x00004000>;	// timebase +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi new file mode 100644 index 00000000000..3e6346a4a18 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi @@ -0,0 +1,304 @@ +/* + * MPC8569 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,mpc8569-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <19 2 0 0>; +	sleep = <&pmc 0x08000000>; +}; + +/* controller at 0xa000 */ +&pci1 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <26 2 0 0>; +	sleep = <&pmc 0x20000000>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <26 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +&rio { +	compatible = "fsl,srio"; +	interrupts = <48 2 0 0>; +	#address-cells = <2>; +	#size-cells = <2>; +	fsl,srio-rmu-handle = <&rmu>; +	sleep = <&pmc 0x00080000>; +	ranges; + +	port1 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <1>; +	}; + +	port2 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <2>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,mpc8569-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <10>; +	}; + +	ecm@1000 { +		compatible = "fsl,mpc8569-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <17 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,mpc8569-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <18 2 0 0>; +	}; + +	i2c-sleep-nexus { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "simple-bus"; +		sleep = <&pmc 0x00000004>; +		ranges; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" + +	}; + +	duart-sleep-nexus { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "simple-bus"; +		sleep = <&pmc 0x00000002>; +		ranges; + +/include/ "pq3-duart-0.dtsi" + +	}; + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,mpc8569-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x80000>; // L2, 512K +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-dma-0.dtsi" +/include/ "pq3-esdhc-0.dtsi" +	sdhc@2e000 { +		sleep = <&pmc 0x00200000>; +	}; + +	par_io@e0100 { +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0xe0100 0x100>; +		ranges = <0x0 0xe0100 0x100>; +		device_type = "par_io"; +	}; + +/include/ "pq3-sec3.1-0.dtsi" +	crypto@30000 { +		sleep = <&pmc 0x01000000>; +	}; + +/include/ "pq3-mpic.dtsi" +/include/ "pq3-rmu-0.dtsi" +	rmu@d3000 { +		sleep = <&pmc 0x00040000>; +	}; + +	global-utilities@e0000 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,mpc8569-guts", "fsl,mpc8548-guts"; +		reg = <0xe0000 0x1000>; +		ranges = <0 0xe0000 0x1000>; +		fsl,has-rstcr; + +		pmc: power@70 { +			compatible = "fsl,mpc8569-pmc", +				     "fsl,mpc8548-pmc"; +			reg = <0x70 0x20>; +		}; +	}; +}; + +&qe { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "qe"; +	compatible = "fsl,qe"; +	sleep = <&pmc 0x00000800>; +	brg-frequency = <0>; +	bus-frequency = <0>; +	fsl,qe-num-riscs = <4>; +	fsl,qe-num-snums = <46>; + +	qeic: interrupt-controller@80 { +		interrupt-controller; +		compatible = "fsl,qe-ic"; +		#address-cells = <0>; +		#interrupt-cells = <1>; +		reg = <0x80 0x80>; +		interrupts = <46 2 0 0 46 2 0 0>; //high:30 low:30 +		interrupt-parent = <&mpic>; +	}; + +	timer@440 { +		compatible = "fsl,mpc8569-qe-gtm", +			     "fsl,qe-gtm", "fsl,gtm"; +		reg = <0x440 0x40>; +		interrupts = <12 13 14 15>; +		interrupt-parent = <&qeic>; +		/* Filled in by U-Boot */ +		clock-frequency = <0>; +	}; + +	spi@4c0 { +		#address-cells = <1>; +		#size-cells = <0>; +		compatible = "fsl,mpc8569-qe-spi", "fsl,spi"; +		reg = <0x4c0 0x40>; +		cell-index = <0>; +		interrupts = <2>; +		interrupt-parent = <&qeic>; +	}; + +	spi@500 { +		#address-cells = <1>; +		#size-cells = <0>; +		cell-index = <1>; +		compatible = "fsl,spi"; +		reg = <0x500 0x40>; +		interrupts = <1>; +		interrupt-parent = <&qeic>; +	}; + +	usb@6c0 { +		compatible = "fsl,mpc8569-qe-usb", +			     "fsl,mpc8323-qe-usb"; +		reg = <0x6c0 0x40 0x8b00 0x100>; +		interrupts = <11>; +		interrupt-parent = <&qeic>; +	}; + +	ucc@2000 { +		cell-index = <1>; +		reg = <0x2000 0x200>; +		interrupts = <32>; +		interrupt-parent = <&qeic>; +	}; + +	ucc@2200 { +		cell-index = <3>; +		reg = <0x2200 0x200>; +		interrupts = <34>; +		interrupt-parent = <&qeic>; +	}; + +	ucc@3000 { +		cell-index = <2>; +		reg = <0x3000 0x200>; +		interrupts = <33>; +		interrupt-parent = <&qeic>; +	}; + +	ucc@3200 { +		cell-index = <4>; +		reg = <0x3200 0x200>; +		interrupts = <35>; +		interrupt-parent = <&qeic>; +	}; + +	ucc@3400 { +		cell-index = <6>; +		reg = <0x3400 0x200>; +		interrupts = <41>; +		interrupt-parent = <&qeic>; +	}; + +	ucc@3600 { +		cell-index = <8>; +		reg = <0x3600 0x200>; +		interrupts = <43>; +		interrupt-parent = <&qeic>; +	}; + +	muram@10000 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,qe-muram", "fsl,cpm-muram"; +		ranges = <0x0 0x10000 0x20000>; + +		data-only@0 { +			compatible = "fsl,qe-muram-data", +				     "fsl,cpm-muram-data"; +			reg = <0x0 0x20000>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi new file mode 100644 index 00000000000..2cd15a2a042 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi @@ -0,0 +1,67 @@ +/* + * MPC8569 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,MPC8569"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		ethernet2 = &enet2; +		ethernet3 = &enet3; +		pci1 = &pci1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,8569@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +			sleep = <&pmc 0x00008000	// core +				 &pmc 0x00004000>;	// timebase +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi new file mode 100644 index 00000000000..d44e25a4873 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi @@ -0,0 +1,196 @@ +/* + * MPC8572 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <19 2 0 0>; +}; + +/* controller at 0x8000 */ +&pci0 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <24 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <24 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x8 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x9 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0xa 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0xb 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0x9000 */ +&pci1 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <25 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <25 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0xa000 */ +&pci2 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <26 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <26 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,mpc8572-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,mpc8572-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <17 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,mpc8572-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <18 2 0 0>; +	}; + +	memory-controller@6000 { +		compatible = "fsl,mpc8572-memory-controller"; +		reg = <0x6000 0x1000>; +		interrupts = <18 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" +/include/ "pq3-dma-1.dtsi" +/include/ "pq3-gpio-0.dtsi" +	gpio-controller@f000 { +		compatible = "fsl,mpc8572-gpio", "fsl,pq3-gpio"; +	}; + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,mpc8572-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x100000>; // L2,1M +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-dma-0.dtsi" +/include/ "pq3-etsec1-0.dtsi" +/include/ "pq3-etsec1-timer-0.dtsi" + +	ptp_clock@24e00 { +		interrupts = <68 2 0 0 69 2 0 0 70 2 0 0 71 2 0 0>; +	}; + +/include/ "pq3-etsec1-1.dtsi" +/include/ "pq3-etsec1-2.dtsi" +/include/ "pq3-etsec1-3.dtsi" +/include/ "pq3-sec3.0-0.dtsi" +/include/ "pq3-mpic.dtsi" +/include/ "pq3-mpic-timer-B.dtsi" + +	global-utilities@e0000 { +		compatible = "fsl,mpc8572-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi new file mode 100644 index 00000000000..28c2a862be9 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi @@ -0,0 +1,73 @@ +/* + * MPC8572 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,MPC8572"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		ethernet2 = &enet2; +		ethernet3 = &enet3; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,8572@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; + +		PowerPC,8572@1 { +			device_type = "cpu"; +			reg = <0x1>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi new file mode 100644 index 00000000000..af12ead88c5 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi @@ -0,0 +1,202 @@ +/* + * P1010/P1014 Silicon/SoC Device Tree Source (post include) + * + * 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. + */ + +&ifc { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,ifc", "simple-bus"; +	interrupts = <16 2 0 0 19 2 0 0>; +}; + +/* controller at 0x9000 */ +&pci0 { +	compatible = "fsl,p1010-pcie", "fsl,qoriq-pcie-v2.3"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0xa000 */ +&pci1 { +	compatible = "fsl,p1010-pcie", "fsl,qoriq-pcie-v2.3"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,p1010-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,p1010-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,p1010-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" +/include/ "pq3-espi-0.dtsi" +	spi0: spi@7000 { +		fsl,espi-num-chipselects = <1>; +	}; + +/include/ "pq3-gpio-0.dtsi" +/include/ "pq3-sata2-0.dtsi" +/include/ "pq3-sata2-1.dtsi" + +	can0: can@1c000 { +		compatible = "fsl,p1010-flexcan"; +		reg = <0x1c000 0x1000>; +		interrupts = <48 0x2 0 0>; +	}; + +	can1: can@1d000 { +		compatible = "fsl,p1010-flexcan"; +		reg = <0x1d000 0x1000>; +		interrupts = <61 0x2 0 0>; +	}; + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,p1010-l2-cache-controller", +				"fsl,p1014-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x40000>; // L2,256K +		interrupts = <16 2 0 0>; +	}; + +/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"; +		sdhci,auto-cmd12; +	}; + +/include/ "pq3-sec4.4-0.dtsi" +/include/ "pq3-mpic.dtsi" +/include/ "pq3-mpic-timer-B.dtsi" + +/include/ "pq3-etsec2-0.dtsi" +	enet0: ethernet@b0000 { +		queue-group@b0000 { +			fsl,rx-bit-map = <0xff>; +			fsl,tx-bit-map = <0xff>; +		}; +	}; + +/include/ "pq3-etsec2-1.dtsi" +	enet1: ethernet@b1000 { +		queue-group@b1000 { +			fsl,rx-bit-map = <0xff>; +			fsl,tx-bit-map = <0xff>; +		}; +	}; + +/include/ "pq3-etsec2-2.dtsi" +	enet2: ethernet@b2000 { +		queue-group@b2000 { +			fsl,rx-bit-map = <0xff>; +			fsl,tx-bit-map = <0xff>; +		}; + +	}; + +	global-utilities@e0000 { +		compatible = "fsl,p1010-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi new file mode 100644 index 00000000000..6e76f9b282a --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi @@ -0,0 +1,67 @@ +/* + * P1010/P1014 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,P1010"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		ethernet2 = &enet2; +		pci0 = &pci0; +		pci1 = &pci1; +		can0 = &can0; +		can1 = &can1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,P1010@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p1020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1020si-post.dtsi new file mode 100644 index 00000000000..642dc3a83d0 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p1020si-post.dtsi @@ -0,0 +1,185 @@ +/* + * P1020/P1011 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,p1020-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <19 2 0 0>, +		     <16 2 0 0>; +}; + +/* controller at 0x9000 */ +&pci0 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0xa000 */ +&pci1 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,p1020-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,p1020-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,p1020-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" + +/include/ "pq3-espi-0.dtsi" +	spi@7000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "pq3-gpio-0.dtsi" + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,p1020-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x40000>; // L2,256K +		interrupts = <16 2 0 0>; +	}; + +/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 { +		compatible = "fsl,p1020-esdhc", "fsl,esdhc"; +		sdhci,auto-cmd12; +	}; +/include/ "pq3-sec3.3-0.dtsi" + +/include/ "pq3-mpic.dtsi" +/include/ "pq3-mpic-timer-B.dtsi" + +/include/ "pq3-etsec2-0.dtsi" +	enet0: enet0_grp2: ethernet@b0000 { +	}; + +/include/ "pq3-etsec2-1.dtsi" +	enet1: enet1_grp2: ethernet@b1000 { +	}; + +/include/ "pq3-etsec2-2.dtsi" +	enet2: enet2_grp2: ethernet@b2000 { +	}; + +	global-utilities@e0000 { +		compatible = "fsl,p1020-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; + +/include/ "pq3-etsec2-grp2-0.dtsi" +/include/ "pq3-etsec2-grp2-1.dtsi" +/include/ "pq3-etsec2-grp2-2.dtsi" diff --git a/arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi new file mode 100644 index 00000000000..fed9c4c8d96 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi @@ -0,0 +1,71 @@ +/* + * P1020/P1011 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,P1020"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		ethernet2 = &enet2; +		pci0 = &pci0; +		pci1 = &pci1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,P1020@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; + +		PowerPC,P1020@1 { +			device_type = "cpu"; +			reg = <0x1>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p1021si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1021si-post.dtsi new file mode 100644 index 00000000000..407cb5fd0f5 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p1021si-post.dtsi @@ -0,0 +1,247 @@ +/* + * P1021/P1012 Silicon/SoC Device Tree Source (post include) + * + * 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: + *     * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,p1021-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <19 2 0 0>, +		     <16 2 0 0>; +}; + +/* controller at 0x9000 */ +&pci0 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0xa000 */ +&pci1 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,p1021-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,p1021-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,p1021-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" + +/include/ "pq3-espi-0.dtsi" +	spi@7000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "pq3-gpio-0.dtsi" + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,p1021-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x40000>; // L2,256K +		interrupts = <16 2 0 0>; +	}; + +/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" +/include/ "pq3-mpic-timer-B.dtsi" + +/include/ "pq3-etsec2-0.dtsi" +	enet0: enet0_grp2: ethernet@b0000 { +	}; + +/include/ "pq3-etsec2-1.dtsi" +	enet1: enet1_grp2: ethernet@b1000 { +	}; + +/include/ "pq3-etsec2-2.dtsi" +	enet2: enet2_grp2: ethernet@b2000 { +	}; + +	global-utilities@e0000 { +		compatible = "fsl,p1021-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; + +&qe { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "qe"; +	compatible = "fsl,qe"; +	fsl,qe-num-riscs = <1>; +	fsl,qe-num-snums = <28>; + +	qeic: interrupt-controller@80 { +		interrupt-controller; +		compatible = "fsl,qe-ic"; +		#address-cells = <0>; +		#interrupt-cells = <1>; +		reg = <0x80 0x80>; +		interrupts = <63 2 0 0 60 2 0 0>; //high:47 low:44 +	}; + +	ucc@2000 { +		cell-index = <1>; +		reg = <0x2000 0x200>; +		interrupts = <32>; +		interrupt-parent = <&qeic>; +	}; + +	mdio@2120 { +		#address-cells = <1>; +		#size-cells = <0>; +		reg = <0x2120 0x18>; +		compatible = "fsl,ucc-mdio"; +	}; + +	ucc@2400 { +		cell-index = <5>; +		reg = <0x2400 0x200>; +		interrupts = <40>; +		interrupt-parent = <&qeic>; +	}; + +	ucc@2600 { +		cell-index = <7>; +		reg = <0x2600 0x200>; +		interrupts = <42>; +		interrupt-parent = <&qeic>; +	}; + +	ucc@2200 { +		cell-index = <3>; +		reg = <0x2200 0x200>; +		interrupts = <34>; +		interrupt-parent = <&qeic>; +	}; + +	muram@10000 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,qe-muram", "fsl,cpm-muram"; +		ranges = <0x0 0x10000 0x6000>; + +		data-only@0 { +			compatible = "fsl,qe-muram-data", +			"fsl,cpm-muram-data"; +			reg = <0x0 0x6000>; +		}; +	}; +}; + +/include/ "pq3-etsec2-grp2-0.dtsi" +/include/ "pq3-etsec2-grp2-1.dtsi" +/include/ "pq3-etsec2-grp2-2.dtsi" diff --git a/arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi new file mode 100644 index 00000000000..36161b50017 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi @@ -0,0 +1,71 @@ +/* + * P1021/P1012 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,P1021"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		ethernet2 = &enet2; +		pci0 = &pci0; +		pci1 = &pci1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,P1021@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; + +		PowerPC,P1021@1 { +			device_type = "cpu"; +			reg = <0x1>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi new file mode 100644 index 00000000000..ebf20223454 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi @@ -0,0 +1,247 @@ +/* + * P1022/P1013 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	/* +	 * 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>, +		     <16 2 0 0>; +}; + +/* controller at 0x9000 */ +&pci0 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0xa000 */ +&pci1 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0xb000 */ +&pci2 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x8 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x9 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0xa 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0xb 0x1 0x0 0x0 +			>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,p1022-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,p1022-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,p1022-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" +/include/ "pq3-espi-0.dtsi" +	spi@7000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "pq3-dma-1.dtsi" +	dma@c300 { +		dma00: dma-channel@0 { +			compatible = "fsl,ssi-dma-channel"; +		}; +		dma01: dma-channel@80 { +			compatible = "fsl,ssi-dma-channel"; +		}; +	}; + +/include/ "pq3-gpio-0.dtsi" + +	display@10000 { +		compatible = "fsl,diu", "fsl,p1022-diu"; +		reg = <0x10000 1000>; +		interrupts = <64 2 0 0>; +	}; + +	ssi@15000 { +		compatible = "fsl,mpc8610-ssi"; +		cell-index = <0>; +		reg = <0x15000 0x100>; +		interrupts = <75 2 0 0>; +		fsl,playback-dma = <&dma00>; +		fsl,capture-dma = <&dma01>; +		fsl,fifo-depth = <15>; +	}; + +/include/ "pq3-sata2-0.dtsi" +/include/ "pq3-sata2-1.dtsi" + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,p1022-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x40000>; // L2,256K +		interrupts = <16 2 0 0>; +	}; + +/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 { +		compatible = "fsl,p1022-esdhc", "fsl,esdhc"; +		sdhci,auto-cmd12; +	}; + +/include/ "pq3-sec3.3-0.dtsi" +/include/ "pq3-mpic.dtsi" +/include/ "pq3-mpic-timer-B.dtsi" + +/include/ "pq3-etsec2-0.dtsi" +	enet0: enet0_grp2: ethernet@b0000 { +	}; + +/include/ "pq3-etsec2-1.dtsi" +	enet1: enet1_grp2: ethernet@b1000 { +	}; + +	global-utilities@e0000 { +		compatible = "fsl,p1022-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; + +	power@e0070{ +		compatible = "fsl,mpc8536-pmc", "fsl,mpc8548-pmc"; +		reg = <0xe0070 0x20>; +	}; + +}; + +/include/ "pq3-etsec2-grp2-0.dtsi" +/include/ "pq3-etsec2-grp2-1.dtsi" diff --git a/arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi new file mode 100644 index 00000000000..1956dea040c --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi @@ -0,0 +1,71 @@ +/* + * P1022/P1013 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,P1022"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,P1022@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; + +		PowerPC,P1022@1 { +			device_type = "cpu"; +			reg = <0x1>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi new file mode 100644 index 00000000000..81437fdf1db --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi @@ -0,0 +1,229 @@ +/* + * P1023/P1017 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,p1023-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <19 2 0 0>, +		     <16 2 0 0>; +}; + +/* controller at 0xa000 */ +&pci0 { +	compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +	}; +}; + +/* controller at 0x9000 */ +&pci1 { +	compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +	}; +}; + +/* controller at 0xb000 */ +&pci2 { +	compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 0 0>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 0 0>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,p1023-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,p1023-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,p1023-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <16 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" + +/include/ "pq3-espi-0.dtsi" +	spi@7000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "pq3-gpio-0.dtsi" + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,p1023-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x40000>; // L2,256K +		interrupts = <16 2 0 0>; +	}; + +/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"; +		fsl,sec-era = <3>; +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0x30000 0x10000>; +		ranges = <0 0x30000 0x10000>; +		interrupts = <58 2 0 0>; + +		sec_jr0: jr@1000 { +			compatible = "fsl,sec-v4.2-job-ring", +				     "fsl,sec-v4.0-job-ring"; +			reg = <0x1000 0x1000>; +			interrupts = <45 2 0 0>; +		}; + +		sec_jr1: jr@2000 { +			compatible = "fsl,sec-v4.2-job-ring", +				     "fsl,sec-v4.0-job-ring"; +			reg = <0x2000 0x1000>; +			interrupts = <45 2 0 0>; +		}; + +		sec_jr2: jr@3000 { +			compatible = "fsl,sec-v4.2-job-ring", +				     "fsl,sec-v4.0-job-ring"; +			reg = <0x3000 0x1000>; +			interrupts = <57 2 0 0>; +		}; + +		sec_jr3: jr@4000 { +			compatible = "fsl,sec-v4.2-job-ring", +				     "fsl,sec-v4.0-job-ring"; +			reg = <0x4000 0x1000>; +			interrupts = <57 2 0 0>; +		}; + +		rtic@6000 { +			compatible = "fsl,sec-v4.2-rtic", +				     "fsl,sec-v4.0-rtic"; +			#address-cells = <1>; +			#size-cells = <1>; +			reg = <0x6000 0x100>; +			ranges = <0x0 0x6100 0xe00>; + +			rtic_a: rtic-a@0 { +				compatible = "fsl,sec-v4.2-rtic-memory", +					     "fsl,sec-v4.0-rtic-memory"; +				reg = <0x00 0x20 0x100 0x80>; +			}; + +			rtic_b: rtic-b@20 { +				compatible = "fsl,sec-v4.2-rtic-memory", +					     "fsl,sec-v4.0-rtic-memory"; +				reg = <0x20 0x20 0x200 0x80>; +			}; + +			rtic_c: rtic-c@40 { +				compatible = "fsl,sec-v4.2-rtic-memory", +					     "fsl,sec-v4.0-rtic-memory"; +				reg = <0x40 0x20 0x300 0x80>; +			}; + +			rtic_d: rtic-d@60 { +				compatible = "fsl,sec-v4.2-rtic-memory", +					     "fsl,sec-v4.0-rtic-memory"; +				reg = <0x60 0x20 0x500 0x80>; +			}; +		}; +	}; + +/include/ "pq3-mpic.dtsi" +/include/ "pq3-mpic-timer-B.dtsi" + +	global-utilities@e0000 { +		compatible = "fsl,p1023-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi new file mode 100644 index 00000000000..132a1521921 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi @@ -0,0 +1,79 @@ +/* + * P1023/P1017 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,P1023"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; + +		crypto = &crypto; +		sec_jr0 = &sec_jr0; +		sec_jr1 = &sec_jr1; +		sec_jr2 = &sec_jr2; +		sec_jr3 = &sec_jr3; +		rtic_a = &rtic_a; +		rtic_b = &rtic_b; +		rtic_c = &rtic_c; +		rtic_d = &rtic_d; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,P1023@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; + +		PowerPC,P1023@1 { +			device_type = "cpu"; +			reg = <0x1>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi new file mode 100644 index 00000000000..884e01bcb24 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi @@ -0,0 +1,201 @@ +/* + * P2020/P2010 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,p2020-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <19 2 0 0>; +}; + +/* controller at 0xa000 */ +&pci0 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <26 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <26 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0x9000 */ +&pci1 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <25 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <25 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0 +			>; +	}; +}; + +/* controller at 0x8000 */ +&pci2 { +	compatible = "fsl,mpc8548-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 255>; +	clock-frequency = <33333333>; +	interrupts = <24 2 0 0>; + +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <24 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; + +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0x0 0x0 0x1 &mpic 0x8 0x1 0x0 0x0 +			0000 0x0 0x0 0x2 &mpic 0x9 0x1 0x0 0x0 +			0000 0x0 0x0 0x3 &mpic 0xa 0x1 0x0 0x0 +			0000 0x0 0x0 0x4 &mpic 0xb 0x1 0x0 0x0 +			>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "fsl,p2020-immr", "simple-bus"; +	bus-frequency = <0>;		// Filled out by uboot. + +	ecm-law@0 { +		compatible = "fsl,ecm-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <12>; +	}; + +	ecm@1000 { +		compatible = "fsl,p2020-ecm", "fsl,ecm"; +		reg = <0x1000 0x1000>; +		interrupts = <17 2 0 0>; +	}; + +	memory-controller@2000 { +		compatible = "fsl,p2020-memory-controller"; +		reg = <0x2000 0x1000>; +		interrupts = <18 2 0 0>; +	}; + +/include/ "pq3-i2c-0.dtsi" +/include/ "pq3-i2c-1.dtsi" +/include/ "pq3-duart-0.dtsi" +/include/ "pq3-espi-0.dtsi" +	spi0: spi@7000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "pq3-dma-1.dtsi" +/include/ "pq3-gpio-0.dtsi" + +	L2: l2-cache-controller@20000 { +		compatible = "fsl,p2020-l2-cache-controller"; +		reg = <0x20000 0x1000>; +		cache-line-size = <32>;	// 32 bytes +		cache-size = <0x80000>; // L2,512K +		interrupts = <16 2 0 0>; +	}; + +/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" + +	ptp_clock@24e00 { +		interrupts = <68 2 0 0 69 2 0 0 70 2 0 0>; +	}; + + +/include/ "pq3-etsec1-1.dtsi" +/include/ "pq3-etsec1-2.dtsi" +/include/ "pq3-esdhc-0.dtsi" +	sdhc@2e000 { +		compatible = "fsl,p2020-esdhc", "fsl,esdhc"; +	}; + +/include/ "pq3-sec3.1-0.dtsi" +/include/ "pq3-mpic.dtsi" +/include/ "pq3-mpic-timer-B.dtsi" + +	global-utilities@e0000 { +		compatible = "fsl,p2020-guts"; +		reg = <0xe0000 0x1000>; +		fsl,has-rstcr; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi new file mode 100644 index 00000000000..42bf3c6d25c --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi @@ -0,0 +1,72 @@ +/* + * P2020/P2010 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500v2_power_isa.dtsi" + +/ { +	compatible = "fsl,P2020"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		serial0 = &serial0; +		serial1 = &serial1; +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		ethernet2 = &enet2; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,P2020@0 { +			device_type = "cpu"; +			reg = <0x0>; +			next-level-cache = <&L2>; +		}; + +		PowerPC,P2020@1 { +			device_type = "cpu"; +			reg = <0x1>; +			next-level-cache = <&L2>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi b/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi new file mode 100644 index 00000000000..5290df83ff3 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi @@ -0,0 +1,453 @@ +/* + * P2041/P2040 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	compatible = "fsl,p2041-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <25 2 0 0>; +	#address-cells = <2>; +	#size-cells = <1>; +}; + +/* controller at 0x200000 */ +&pci0 { +	compatible = "fsl,p2041-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 15>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x500>; /* PEX1LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 15>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 40 1 0 0 +			0000 0 0 2 &mpic 1 1 0 0 +			0000 0 0 3 &mpic 2 1 0 0 +			0000 0 0 4 &mpic 3 1 0 0 +			>; +	}; +}; + +/* controller at 0x201000 */ +&pci1 { +	compatible = "fsl,p2041-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 14>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x504>; /* PEX2LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 14>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 41 1 0 0 +			0000 0 0 2 &mpic 5 1 0 0 +			0000 0 0 3 &mpic 6 1 0 0 +			0000 0 0 4 &mpic 7 1 0 0 +			>; +	}; +}; + +/* controller at 0x202000 */ +&pci2 { +	compatible = "fsl,p2041-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 13>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x508>; /* PEX3LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 13>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 42 1 0 0 +			0000 0 0 2 &mpic 9 1 0 0 +			0000 0 0 3 &mpic 10 1 0 0 +			0000 0 0 4 &mpic 11 1 0 0 +			>; +	}; +}; + +&rio { +	compatible = "fsl,srio"; +	interrupts = <16 2 1 11>; +	#address-cells = <2>; +	#size-cells = <2>; +	fsl,iommu-parent = <&pamu0>; +	ranges; + +	port1 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <1>; +		fsl,liodn-reg = <&guts 0x510>; /* RIO1LIODNR */ +	}; + +	port2 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <2>; +		fsl,liodn-reg = <&guts 0x514>; /* RIO2LIODNR */ +	}; +}; + +&dcsr { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,dcsr", "simple-bus"; + +	dcsr-epu@0 { +		compatible = "fsl,p2041-dcsr-epu", "fsl,dcsr-epu"; +		interrupts = <52 2 0 0 +			      84 2 0 0 +			      85 2 0 0>; +		reg = <0x0 0x1000>; +	}; +	dcsr-npc { +		compatible = "fsl,dcsr-npc"; +		reg = <0x1000 0x1000 0x1000000 0x8000>; +	}; +	dcsr-nxc@2000 { +		compatible = "fsl,dcsr-nxc"; +		reg = <0x2000 0x1000>; +	}; +	dcsr-corenet { +		compatible = "fsl,dcsr-corenet"; +		reg = <0x8000 0x1000 0xB0000 0x1000>; +	}; +	dcsr-dpaa@9000 { +		compatible = "fsl,p2041-dcsr-dpaa", "fsl,dcsr-dpaa"; +		reg = <0x9000 0x1000>; +	}; +	dcsr-ocn@11000 { +		compatible = "fsl,p2041-dcsr-ocn", "fsl,dcsr-ocn"; +		reg = <0x11000 0x1000>; +	}; +	dcsr-ddr@12000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr1>; +		reg = <0x12000 0x1000>; +	}; +	dcsr-nal@18000 { +		compatible = "fsl,p2041-dcsr-nal", "fsl,dcsr-nal"; +		reg = <0x18000 0x1000>; +	}; +	dcsr-rcpm@22000 { +		compatible = "fsl,p2041-dcsr-rcpm", "fsl,dcsr-rcpm"; +		reg = <0x22000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@40000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu0>; +		reg = <0x40000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@41000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu1>; +		reg = <0x41000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@42000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu2>; +		reg = <0x42000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@43000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu3>; +		reg = <0x43000 0x1000>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; + +	soc-sram-error { +		compatible = "fsl,soc-sram-error"; +		interrupts = <16 2 1 29>; +	}; + +	corenet-law@0 { +		compatible = "fsl,corenet-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <32>; +	}; + +	ddr1: memory-controller@8000 { +		compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller"; +		reg = <0x8000 0x1000>; +		interrupts = <16 2 1 23>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,p2041-l3-cache-controller", "fsl,p4080-l3-cache-controller", "cache"; +		reg = <0x10000 0x1000>; +		interrupts = <16 2 1 27>; +	}; + +	corenet-cf@18000 { +		compatible = "fsl,corenet1-cf", "fsl,corenet-cf"; +		reg = <0x18000 0x1000>; +		interrupts = <16 2 1 31>; +		fsl,ccf-num-csdids = <32>; +		fsl,ccf-num-snoopids = <32>; +	}; + +	iommu@20000 { +		compatible = "fsl,pamu-v1.0", "fsl,pamu"; +		reg = <0x20000 0x4000>; /* for compatibility with older PAMU drivers */ +		ranges = <0 0x20000 0x4000>; +		#address-cells = <1>; +		#size-cells = <1>; +		interrupts = < +			24 2 0 0 +			16 2 1 30>; +		fsl,portid-mapping = <0x0f000000>; + +		pamu0: pamu@0 { +			reg = <0 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu1: pamu@1000 { +			reg = <0x1000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu2: pamu@2000 { +			reg = <0x2000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu3: pamu@3000 { +			reg = <0x3000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; +	}; + +/include/ "qoriq-mpic.dtsi" + +	guts: global-utilities@e0000 { +		compatible = "fsl,qoriq-device-config-1.0"; +		reg = <0xe0000 0xe00>; +		fsl,has-rstcr; +		#sleep-cells = <1>; +		fsl,liodn-bits = <12>; +	}; + +	pins: global-utilities@e0e00 { +		compatible = "fsl,qoriq-pin-control-1.0"; +		reg = <0xe0e00 0x200>; +		#sleep-cells = <2>; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,p2041-clockgen", "fsl,qoriq-clockgen-1.0"; +		ranges = <0x0 0xe1000 0x1000>; +		reg = <0xe1000 0x1000>; +		clock-frequency = <0>; +		#address-cells = <1>; +		#size-cells = <1>; + +		sysclk: sysclk { +			#clock-cells = <0>; +			compatible = "fsl,qoriq-sysclk-1.0"; +			clock-output-names = "sysclk"; +		}; + +		pll0: pll0@800 { +			#clock-cells = <1>; +			reg = <0x800 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll0", "pll0-div2"; +		}; + +		pll1: pll1@820 { +			#clock-cells = <1>; +			reg = <0x820 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll1", "pll1-div2"; +		}; + +		mux0: mux0@0 { +			#clock-cells = <0>; +			reg = <0x0 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux0"; +		}; + +		mux1: mux1@20 { +			#clock-cells = <0>; +			reg = <0x20 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux1"; +		}; + +		mux2: mux2@40 { +			#clock-cells = <0>; +			reg = <0x40 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +		}; + +		mux3: mux3@60 { +			#clock-cells = <0>; +			reg = <0x60 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux3"; +		}; +	}; + +	rcpm: global-utilities@e2000 { +		compatible = "fsl,qoriq-rcpm-1.0"; +		reg = <0xe2000 0x1000>; +		#sleep-cells = <1>; +	}; + +	sfp: sfp@e8000 { +		compatible = "fsl,p2041-sfp", "fsl,qoriq-sfp-1.0"; +		reg	   = <0xe8000 0x1000>; +	}; + +	serdes: serdes@ea000 { +		compatible = "fsl,p2041-serdes"; +		reg	   = <0xea000 0x1000>; +	}; + +/include/ "qoriq-dma-0.dtsi" +	dma@100300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */ +	}; + +/include/ "qoriq-dma-1.dtsi" +	dma@101300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */ +	}; + +/include/ "qoriq-espi-0.dtsi" +	spi@110000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "qoriq-esdhc-0.dtsi" +	sdhc@114000 { +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */ +		sdhci,auto-cmd12; +	}; + +/include/ "qoriq-i2c-0.dtsi" +/include/ "qoriq-i2c-1.dtsi" +/include/ "qoriq-duart-0.dtsi" +/include/ "qoriq-duart-1.dtsi" +/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"; +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */ +		port0; +	}; + +/include/ "qoriq-usb2-dr-0.dtsi" +	usb1: usb@211000 { +		compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr"; +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */ +		dr_mode = "host"; +		phy_type = "utmi"; +	}; + +/include/ "qoriq-sata2-0.dtsi" +	sata@220000 { +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x550>; /* SATA1LIODNR */ +	}; + +/include/ "qoriq-sata2-1.dtsi" +	sata@221000 { +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x554>; /* SATA2LIODNR */ +	}; + +/include/ "qoriq-sec4.2-0.dtsi" +crypto: crypto@300000 { +		fsl,iommu-parent = <&pamu1>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi new file mode 100644 index 00000000000..b1ea147f299 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi @@ -0,0 +1,122 @@ +/* + * P2041 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500mc_power_isa.dtsi" + +/ { +	compatible = "fsl,P2041"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; +		dcsr = &dcsr; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +		usb0 = &usb0; +		usb1 = &usb1; +		dma0 = &dma0; +		dma1 = &dma1; +		sdhc = &sdhc; +		msi0 = &msi0; +		msi1 = &msi1; +		msi2 = &msi2; + +		crypto = &crypto; +		sec_jr0 = &sec_jr0; +		sec_jr1 = &sec_jr1; +		sec_jr2 = &sec_jr2; +		sec_jr3 = &sec_jr3; +		rtic_a = &rtic_a; +		rtic_b = &rtic_b; +		rtic_c = &rtic_c; +		rtic_d = &rtic_d; +		sec_mon = &sec_mon; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e500mc@0 { +			device_type = "cpu"; +			reg = <0>; +			clocks = <&mux0>; +			next-level-cache = <&L2_0>; +			fsl,portid-mapping = <0x80000000>; +			L2_0: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu1: PowerPC,e500mc@1 { +			device_type = "cpu"; +			reg = <1>; +			clocks = <&mux1>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x40000000>; +			L2_1: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu2: PowerPC,e500mc@2 { +			device_type = "cpu"; +			reg = <2>; +			clocks = <&mux2>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x20000000>; +			L2_2: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu3: PowerPC,e500mc@3 { +			device_type = "cpu"; +			reg = <3>; +			clocks = <&mux3>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x10000000>; +			L2_3: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi b/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi new file mode 100644 index 00000000000..cd63cb1b104 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi @@ -0,0 +1,481 @@ +/* + * P3041 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	compatible = "fsl,p3041-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <25 2 0 0>; +	#address-cells = <2>; +	#size-cells = <1>; +}; + +/* controller at 0x200000 */ +&pci0 { +	compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 15>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x500>; /* PEX1LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 15>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 40 1 0 0 +			0000 0 0 2 &mpic 1 1 0 0 +			0000 0 0 3 &mpic 2 1 0 0 +			0000 0 0 4 &mpic 3 1 0 0 +			>; +	}; +}; + +/* controller at 0x201000 */ +&pci1 { +	compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 14>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x504>; /* PEX2LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 14>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 41 1 0 0 +			0000 0 0 2 &mpic 5 1 0 0 +			0000 0 0 3 &mpic 6 1 0 0 +			0000 0 0 4 &mpic 7 1 0 0 +			>; +	}; +}; + +/* controller at 0x202000 */ +&pci2 { +	compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 13>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x508>; /* PEX3LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 13>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 42 1 0 0 +			0000 0 0 2 &mpic 9 1 0 0 +			0000 0 0 3 &mpic 10 1 0 0 +			0000 0 0 4 &mpic 11 1 0 0 +			>; +	}; +}; + +/* controller at 0x203000 */ +&pci3 { +	compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 12>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 12>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 43 1 0 0 +			0000 0 0 2 &mpic 0 1 0 0 +			0000 0 0 3 &mpic 4 1 0 0 +			0000 0 0 4 &mpic 8 1 0 0 +			>; +	}; +}; + +&rio { +	compatible = "fsl,srio"; +	interrupts = <16 2 1 11>; +	#address-cells = <2>; +	#size-cells = <2>; +	fsl,iommu-parent = <&pamu0>; +	ranges; + +	port1 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <1>; +		fsl,liodn-reg = <&guts 0x510>; /* RIO1LIODNR */ +	}; + +	port2 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <2>; +		fsl,liodn-reg = <&guts 0x514>; /* RIO2LIODNR */ +	}; +}; + +&dcsr { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,dcsr", "simple-bus"; + +	dcsr-epu@0 { +		compatible = "fsl,p3041-dcsr-epu", "fsl,dcsr-epu"; +		interrupts = <52 2 0 0 +			      84 2 0 0 +			      85 2 0 0>; +		reg = <0x0 0x1000>; +	}; +	dcsr-npc { +		compatible = "fsl,dcsr-npc"; +		reg = <0x1000 0x1000 0x1000000 0x8000>; +	}; +	dcsr-nxc@2000 { +		compatible = "fsl,dcsr-nxc"; +		reg = <0x2000 0x1000>; +	}; +	dcsr-corenet { +		compatible = "fsl,dcsr-corenet"; +		reg = <0x8000 0x1000 0xB0000 0x1000>; +	}; +	dcsr-dpaa@9000 { +		compatible = "fsl,p3041-dcsr-dpaa", "fsl,dcsr-dpaa"; +		reg = <0x9000 0x1000>; +	}; +	dcsr-ocn@11000 { +		compatible = "fsl,p3041-dcsr-ocn", "fsl,dcsr-ocn"; +		reg = <0x11000 0x1000>; +	}; +	dcsr-ddr@12000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr1>; +		reg = <0x12000 0x1000>; +	}; +	dcsr-nal@18000 { +		compatible = "fsl,p3041-dcsr-nal", "fsl,dcsr-nal"; +		reg = <0x18000 0x1000>; +	}; +	dcsr-rcpm@22000 { +		compatible = "fsl,p3041-dcsr-rcpm", "fsl,dcsr-rcpm"; +		reg = <0x22000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@40000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu0>; +		reg = <0x40000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@41000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu1>; +		reg = <0x41000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@42000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu2>; +		reg = <0x42000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@43000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu3>; +		reg = <0x43000 0x1000>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; + +	soc-sram-error { +		compatible = "fsl,soc-sram-error"; +		interrupts = <16 2 1 29>; +	}; + +	corenet-law@0 { +		compatible = "fsl,corenet-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <32>; +	}; + +	ddr1: memory-controller@8000 { +		compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller"; +		reg = <0x8000 0x1000>; +		interrupts = <16 2 1 23>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,p3041-l3-cache-controller", "fsl,p4080-l3-cache-controller", "cache"; +		reg = <0x10000 0x1000>; +		interrupts = <16 2 1 27>; +	}; + +	corenet-cf@18000 { +		compatible = "fsl,corenet1-cf", "fsl,corenet-cf"; +		reg = <0x18000 0x1000>; +		interrupts = <16 2 1 31>; +		fsl,ccf-num-csdids = <32>; +		fsl,ccf-num-snoopids = <32>; +	}; + +	iommu@20000 { +		compatible = "fsl,pamu-v1.0", "fsl,pamu"; +		reg = <0x20000 0x4000>; /* for compatibility with older PAMU drivers */ +		ranges = <0 0x20000 0x4000>; +		#address-cells = <1>; +		#size-cells = <1>; +		interrupts = < +			24 2 0 0 +			16 2 1 30>; +		fsl,portid-mapping = <0x0f000000>; + +		pamu0: pamu@0 { +			reg = <0 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu1: pamu@1000 { +			reg = <0x1000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu2: pamu@2000 { +			reg = <0x2000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu3: pamu@3000 { +			reg = <0x3000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; +	}; + +/include/ "qoriq-mpic.dtsi" + +	guts: global-utilities@e0000 { +		compatible = "fsl,qoriq-device-config-1.0"; +		reg = <0xe0000 0xe00>; +		fsl,has-rstcr; +		#sleep-cells = <1>; +		fsl,liodn-bits = <12>; +	}; + +	pins: global-utilities@e0e00 { +		compatible = "fsl,qoriq-pin-control-1.0"; +		reg = <0xe0e00 0x200>; +		#sleep-cells = <2>; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,p3041-clockgen", "fsl,qoriq-clockgen-1.0"; +		ranges = <0x0 0xe1000 0x1000>; +		reg = <0xe1000 0x1000>; +		clock-frequency = <0>; +		#address-cells = <1>; +		#size-cells = <1>; + +		sysclk: sysclk { +			#clock-cells = <0>; +			compatible = "fsl,qoriq-sysclk-1.0"; +			clock-output-names = "sysclk"; +		}; + +		pll0: pll0@800 { +			#clock-cells = <1>; +			reg = <0x800 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll0", "pll0-div2"; +		}; + +		pll1: pll1@820 { +			#clock-cells = <1>; +			reg = <0x820 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll1", "pll1-div2"; +		}; + +		mux0: mux0@0 { +			#clock-cells = <0>; +			reg = <0x0 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux0"; +		}; + +		mux1: mux1@20 { +			#clock-cells = <0>; +			reg = <0x20 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux1"; +		}; + +		mux2: mux2@40 { +			#clock-cells = <0>; +			reg = <0x40 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux2"; +		}; + +		mux3: mux3@60 { +			#clock-cells = <0>; +			reg = <0x60 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux3"; +		}; +	}; + +	rcpm: global-utilities@e2000 { +		compatible = "fsl,qoriq-rcpm-1.0"; +		reg = <0xe2000 0x1000>; +		#sleep-cells = <1>; +	}; + +	sfp: sfp@e8000 { +		compatible = "fsl,p3041-sfp", "fsl,qoriq-sfp-1.0"; +		reg	   = <0xe8000 0x1000>; +	}; + +	serdes: serdes@ea000 { +		compatible = "fsl,p3041-serdes"; +		reg	   = <0xea000 0x1000>; +	}; + +/include/ "qoriq-dma-0.dtsi" +	dma@100300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */ +	}; + +/include/ "qoriq-dma-1.dtsi" +	dma@101300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */ +	}; + +/include/ "qoriq-espi-0.dtsi" +	spi@110000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "qoriq-esdhc-0.dtsi" +	sdhc@114000 { +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */ +		sdhci,auto-cmd12; +	}; + +/include/ "qoriq-i2c-0.dtsi" +/include/ "qoriq-i2c-1.dtsi" +/include/ "qoriq-duart-0.dtsi" +/include/ "qoriq-duart-1.dtsi" +/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"; +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */ +		port0; +	}; + +/include/ "qoriq-usb2-dr-0.dtsi" +	usb1: usb@211000 { +		compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr"; +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */ +		dr_mode = "host"; +		phy_type = "utmi"; +	}; + +/include/ "qoriq-sata2-0.dtsi" +	sata@220000 { +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x550>; /* SATA1LIODNR */ +	}; + +/include/ "qoriq-sata2-1.dtsi" +	sata@221000 { +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x554>; /* SATA2LIODNR */ +	}; + +/include/ "qoriq-sec4.2-0.dtsi" +crypto: crypto@300000 { +		fsl,iommu-parent = <&pamu1>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi new file mode 100644 index 00000000000..dc5f4b362c2 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi @@ -0,0 +1,123 @@ +/* + * P3041 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500mc_power_isa.dtsi" + +/ { +	compatible = "fsl,P3041"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; +		dcsr = &dcsr; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +		pci3 = &pci3; +		usb0 = &usb0; +		usb1 = &usb1; +		dma0 = &dma0; +		dma1 = &dma1; +		sdhc = &sdhc; +		msi0 = &msi0; +		msi1 = &msi1; +		msi2 = &msi2; + +		crypto = &crypto; +		sec_jr0 = &sec_jr0; +		sec_jr1 = &sec_jr1; +		sec_jr2 = &sec_jr2; +		sec_jr3 = &sec_jr3; +		rtic_a = &rtic_a; +		rtic_b = &rtic_b; +		rtic_c = &rtic_c; +		rtic_d = &rtic_d; +		sec_mon = &sec_mon; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e500mc@0 { +			device_type = "cpu"; +			reg = <0>; +			clocks = <&mux0>; +			next-level-cache = <&L2_0>; +			fsl,portid-mapping = <0x80000000>; +			L2_0: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu1: PowerPC,e500mc@1 { +			device_type = "cpu"; +			reg = <1>; +			clocks = <&mux1>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x40000000>; +			L2_1: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu2: PowerPC,e500mc@2 { +			device_type = "cpu"; +			reg = <2>; +			clocks = <&mux2>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x20000000>; +			L2_2: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu3: PowerPC,e500mc@3 { +			device_type = "cpu"; +			reg = <3>; +			clocks = <&mux3>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x10000000>; +			L2_3: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi b/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi new file mode 100644 index 00000000000..12947ccddf2 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi @@ -0,0 +1,537 @@ +/* + * P4080/P4040 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	compatible = "fsl,p4080-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <25 2 0 0>; +	#address-cells = <2>; +	#size-cells = <1>; +}; + +/* controller at 0x200000 */ +&pci0 { +	compatible = "fsl,p4080-pcie", "fsl,qoriq-pcie-v2.1"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 15>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x500>; /* PEX1LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 15>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 40 1 0 0 +			0000 0 0 2 &mpic 1 1 0 0 +			0000 0 0 3 &mpic 2 1 0 0 +			0000 0 0 4 &mpic 3 1 0 0 +			>; +	}; +}; + +/* controller at 0x201000 */ +&pci1 { +	compatible = "fsl,p4080-pcie", "fsl,qoriq-pcie-v2.1"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 14>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x504>; /* PEX2LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 14>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 41 1 0 0 +			0000 0 0 2 &mpic 5 1 0 0 +			0000 0 0 3 &mpic 6 1 0 0 +			0000 0 0 4 &mpic 7 1 0 0 +			>; +	}; +}; + +/* controller at 0x202000 */ +&pci2 { +	compatible = "fsl,p4080-pcie", "fsl,qoriq-pcie-v2.1"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 13>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x508>; /* PEX3LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 13>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 42 1 0 0 +			0000 0 0 2 &mpic 9 1 0 0 +			0000 0 0 3 &mpic 10 1 0 0 +			0000 0 0 4 &mpic 11 1 0 0 +			>; +	}; +}; + +&rio { +	compatible = "fsl,srio"; +	interrupts = <16 2 1 11>; +	#address-cells = <2>; +	#size-cells = <2>; +	fsl,srio-rmu-handle = <&rmu>; +	fsl,iommu-parent = <&pamu0>; +	ranges; + +	port1 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <1>; +		fsl,liodn-reg = <&guts 0x510>; /* RIO1LIODNR */ +	}; + +	port2 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <2>; +		fsl,liodn-reg = <&guts 0x514>; /* RIO2LIODNR */ +	}; +}; + +&dcsr { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,dcsr", "simple-bus"; + +	dcsr-epu@0 { +		compatible = "fsl,p4080-dcsr-epu", "fsl,dcsr-epu"; +		interrupts = <52 2 0 0 +			      84 2 0 0 +			      85 2 0 0>; +		reg = <0x0 0x1000>; +	}; +	dcsr-npc { +		compatible = "fsl,dcsr-npc"; +		reg = <0x1000 0x1000 0x1000000 0x8000>; +	}; +	dcsr-nxc@2000 { +		compatible = "fsl,dcsr-nxc"; +		reg = <0x2000 0x1000>; +	}; +	dcsr-corenet { +		compatible = "fsl,dcsr-corenet"; +		reg = <0x8000 0x1000 0xB0000 0x1000>; +	}; +	dcsr-dpaa@9000 { +		compatible = "fsl,p4080-dcsr-dpaa", "fsl,dcsr-dpaa"; +		reg = <0x9000 0x1000>; +	}; +	dcsr-ocn@11000 { +		compatible = "fsl,p4080-dcsr-ocn", "fsl,dcsr-ocn"; +		reg = <0x11000 0x1000>; +	}; +	dcsr-ddr@12000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr1>; +		reg = <0x12000 0x1000>; +	}; +	dcsr-ddr@13000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr2>; +		reg = <0x13000 0x1000>; +	}; +	dcsr-nal@18000 { +		compatible = "fsl,p4080-dcsr-nal", "fsl,dcsr-nal"; +		reg = <0x18000 0x1000>; +	}; +	dcsr-rcpm@22000 { +		compatible = "fsl,p4080-dcsr-rcpm", "fsl,dcsr-rcpm"; +		reg = <0x22000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@40000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu0>; +		reg = <0x40000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@41000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu1>; +		reg = <0x41000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@42000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu2>; +		reg = <0x42000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@43000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu3>; +		reg = <0x43000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@44000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu4>; +		reg = <0x44000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@45000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu5>; +		reg = <0x45000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@46000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu6>; +		reg = <0x46000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@47000 { +		compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu7>; +		reg = <0x47000 0x1000>; +	}; + +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; + +	soc-sram-error { +		compatible = "fsl,soc-sram-error"; +		interrupts = <16 2 1 29>; +	}; + +	corenet-law@0 { +		compatible = "fsl,corenet-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <32>; +	}; + +	ddr1: memory-controller@8000 { +		compatible = "fsl,qoriq-memory-controller-v4.4", "fsl,qoriq-memory-controller"; +		reg = <0x8000 0x1000>; +		interrupts = <16 2 1 23>; +	}; + +	ddr2: memory-controller@9000 { +		compatible = "fsl,qoriq-memory-controller-v4.4","fsl,qoriq-memory-controller"; +		reg = <0x9000 0x1000>; +		interrupts = <16 2 1 22>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,p4080-l3-cache-controller", "cache"; +		reg = <0x10000 0x1000 +		       0x11000 0x1000>; +		interrupts = <16 2 1 27 +			      16 2 1 26>; +	}; + +	corenet-cf@18000 { +		compatible = "fsl,corenet1-cf", "fsl,corenet-cf"; +		reg = <0x18000 0x1000>; +		interrupts = <16 2 1 31>; +		fsl,ccf-num-csdids = <32>; +		fsl,ccf-num-snoopids = <32>; +	}; + +	iommu@20000 { +		compatible = "fsl,pamu-v1.0", "fsl,pamu"; +		reg = <0x20000 0x5000>; /* for compatibility with older PAMU drivers */ +		ranges = <0 0x20000 0x5000>; +		#address-cells = <1>; +		#size-cells = <1>; +		interrupts = < +			24 2 0 0 +			16 2 1 30>; +		fsl,portid-mapping = <0x00f80000>; + +		pamu0: pamu@0 { +			reg = <0 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu1: pamu@1000 { +			reg = <0x1000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu2: pamu@2000 { +			reg = <0x2000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu3: pamu@3000 { +			reg = <0x3000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu4: pamu@4000 { +			reg = <0x4000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; +	}; + +/include/ "qoriq-rmu-0.dtsi" +	rmu@d3000 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x540>; /* RMULIODNR */ +	}; + +/include/ "qoriq-mpic.dtsi" + +	guts: global-utilities@e0000 { +		compatible = "fsl,qoriq-device-config-1.0"; +		reg = <0xe0000 0xe00>; +		fsl,has-rstcr; +		#sleep-cells = <1>; +		fsl,liodn-bits = <12>; +	}; + +	pins: global-utilities@e0e00 { +		compatible = "fsl,qoriq-pin-control-1.0"; +		reg = <0xe0e00 0x200>; +		#sleep-cells = <2>; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,p4080-clockgen", "fsl,qoriq-clockgen-1.0"; +		ranges = <0x0 0xe1000 0x1000>; +		reg = <0xe1000 0x1000>; +		clock-frequency = <0>; +		#address-cells = <1>; +		#size-cells = <1>; + +		sysclk: sysclk { +			#clock-cells = <0>; +			compatible = "fsl,qoriq-sysclk-1.0"; +			clock-output-names = "sysclk"; +		}; + +		pll0: pll0@800 { +			#clock-cells = <1>; +			reg = <0x800 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll0", "pll0-div2"; +		}; + +		pll1: pll1@820 { +			#clock-cells = <1>; +			reg = <0x820 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll1", "pll1-div2"; +		}; + +		pll2: pll2@840 { +			#clock-cells = <1>; +			reg = <0x840 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll2", "pll2-div2"; +		}; + +		pll3: pll3@860 { +			#clock-cells = <1>; +			reg = <0x860 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll3", "pll3-div2"; +		}; + +		mux0: mux0@0 { +			#clock-cells = <0>; +			reg = <0x0 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux0"; +		}; + +		mux1: mux1@20 { +			#clock-cells = <0>; +			reg = <0x20 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux1"; +		}; + +		mux2: mux2@40 { +			#clock-cells = <0>; +			reg = <0x40 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux2"; +		}; + +		mux3: mux3@60 { +			#clock-cells = <0>; +			reg = <0x60 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux3"; +		}; + +		mux4: mux4@80 { +			#clock-cells = <0>; +			reg = <0x80 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll2 0>, <&pll2 1>, <&pll3 0>, <&pll3 1>; +			clock-names = "pll2", "pll2-div2", "pll3", "pll3-div2"; +			clock-output-names = "cmux4"; +		}; + +		mux5: mux5@a0 { +			#clock-cells = <0>; +			reg = <0xa0 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll2 0>, <&pll2 1>, <&pll3 0>, <&pll3 1>; +			clock-names = "pll2", "pll2-div2", "pll3", "pll3-div2"; +			clock-output-names = "cmux5"; +		}; + +		mux6: mux6@c0 { +			#clock-cells = <0>; +			reg = <0xc0 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll2 0>, <&pll2 1>, <&pll3 0>, <&pll3 1>; +			clock-names = "pll2", "pll2-div2", "pll3", "pll3-div2"; +			clock-output-names = "cmux6"; +		}; + +		mux7: mux7@e0 { +			#clock-cells = <0>; +			reg = <0xe0 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll2 0>, <&pll2 1>, <&pll3 0>, <&pll3 1>; +			clock-names = "pll2", "pll2-div2", "pll3", "pll3-div2"; +			clock-output-names = "cmux7"; +		}; +	}; + +	rcpm: global-utilities@e2000 { +		compatible = "fsl,qoriq-rcpm-1.0"; +		reg = <0xe2000 0x1000>; +		#sleep-cells = <1>; +	}; + +	sfp: sfp@e8000 { +		compatible = "fsl,p4080-sfp", "fsl,qoriq-sfp-1.0"; +		reg	   = <0xe8000 0x1000>; +	}; + +	serdes: serdes@ea000 { +		compatible = "fsl,p4080-serdes"; +		reg	   = <0xea000 0x1000>; +	}; + +/include/ "qoriq-dma-0.dtsi" +	dma@100300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */ +	}; + +/include/ "qoriq-dma-1.dtsi" +	dma@101300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */ +	}; + +/include/ "qoriq-espi-0.dtsi" +	spi@110000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "qoriq-esdhc-0.dtsi" +	sdhc@114000 { +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */ +		voltage-ranges = <3300 3300>; +		sdhci,auto-cmd12; +	}; + +/include/ "qoriq-i2c-0.dtsi" +/include/ "qoriq-i2c-1.dtsi" +/include/ "qoriq-duart-0.dtsi" +/include/ "qoriq-duart-1.dtsi" +/include/ "qoriq-gpio-0.dtsi" +/include/ "qoriq-usb2-mph-0.dtsi" +	usb@210000 { +		compatible = "fsl-usb2-mph-v1.6", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph"; +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */ +		port0; +	}; +/include/ "qoriq-usb2-dr-0.dtsi" +	usb@211000 { +		compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr"; +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */ +	}; +/include/ "qoriq-sec4.0-0.dtsi" +crypto: crypto@300000 { +		fsl,iommu-parent = <&pamu1>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi new file mode 100644 index 00000000000..38bde095867 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi @@ -0,0 +1,162 @@ +/* + * P4080/P4040 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e500mc_power_isa.dtsi" + +/ { +	compatible = "fsl,P4080"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; +		dcsr = &dcsr; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +		usb0 = &usb0; +		usb1 = &usb1; +		dma0 = &dma0; +		dma1 = &dma1; +		sdhc = &sdhc; +		msi0 = &msi0; +		msi1 = &msi1; +		msi2 = &msi2; + +		crypto = &crypto; +		sec_jr0 = &sec_jr0; +		sec_jr1 = &sec_jr1; +		sec_jr2 = &sec_jr2; +		sec_jr3 = &sec_jr3; +		rtic_a = &rtic_a; +		rtic_b = &rtic_b; +		rtic_c = &rtic_c; +		rtic_d = &rtic_d; +		sec_mon = &sec_mon; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e500mc@0 { +			device_type = "cpu"; +			reg = <0>; +			clocks = <&mux0>; +			next-level-cache = <&L2_0>; +			fsl,portid-mapping = <0x80000000>; +			L2_0: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu1: PowerPC,e500mc@1 { +			device_type = "cpu"; +			reg = <1>; +			clocks = <&mux1>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x40000000>; +			L2_1: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu2: PowerPC,e500mc@2 { +			device_type = "cpu"; +			reg = <2>; +			clocks = <&mux2>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x20000000>; +			L2_2: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu3: PowerPC,e500mc@3 { +			device_type = "cpu"; +			reg = <3>; +			clocks = <&mux3>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x10000000>; +			L2_3: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu4: PowerPC,e500mc@4 { +			device_type = "cpu"; +			reg = <4>; +			clocks = <&mux4>; +			next-level-cache = <&L2_4>; +			fsl,portid-mapping = <0x08000000>; +			L2_4: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu5: PowerPC,e500mc@5 { +			device_type = "cpu"; +			reg = <5>; +			clocks = <&mux5>; +			next-level-cache = <&L2_5>; +			fsl,portid-mapping = <0x04000000>; +			L2_5: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu6: PowerPC,e500mc@6 { +			device_type = "cpu"; +			reg = <6>; +			clocks = <&mux6>; +			next-level-cache = <&L2_6>; +			fsl,portid-mapping = <0x02000000>; +			L2_6: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu7: PowerPC,e500mc@7 { +			device_type = "cpu"; +			reg = <7>; +			clocks = <&mux7>; +			next-level-cache = <&L2_7>; +			fsl,portid-mapping = <0x01000000>; +			L2_7: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi new file mode 100644 index 00000000000..4c4a2b0436b --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi @@ -0,0 +1,472 @@ +/* + * P5020/5010 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	compatible = "fsl,p5020-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <25 2 0 0>; +	#address-cells = <2>; +	#size-cells = <1>; +}; + +/* controller at 0x200000 */ +&pci0 { +	compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 15>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x500>; /* PEX1LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 15>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 40 1 0 0 +			0000 0 0 2 &mpic 1 1 0 0 +			0000 0 0 3 &mpic 2 1 0 0 +			0000 0 0 4 &mpic 3 1 0 0 +			>; +	}; +}; + +/* controller at 0x201000 */ +&pci1 { +	compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 14>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x504>; /* PEX2LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 14>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 41 1 0 0 +			0000 0 0 2 &mpic 5 1 0 0 +			0000 0 0 3 &mpic 6 1 0 0 +			0000 0 0 4 &mpic 7 1 0 0 +			>; +	}; +}; + +/* controller at 0x202000 */ +&pci2 { +	compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 13>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x508>; /* PEX3LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 13>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 42 1 0 0 +			0000 0 0 2 &mpic 9 1 0 0 +			0000 0 0 3 &mpic 10 1 0 0 +			0000 0 0 4 &mpic 11 1 0 0 +			>; +	}; +}; + +/* controller at 0x203000 */ +&pci3 { +	compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 12>; +	fsl,iommu-parent = <&pamu0>; +	fsl,liodn-reg = <&guts 0x50c>; /* PEX4LIODNR */ +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 12>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 43 1 0 0 +			0000 0 0 2 &mpic 0 1 0 0 +			0000 0 0 3 &mpic 4 1 0 0 +			0000 0 0 4 &mpic 8 1 0 0 +			>; +	}; +}; + +&rio { +	compatible = "fsl,srio"; +	interrupts = <16 2 1 11>; +	#address-cells = <2>; +	#size-cells = <2>; +	fsl,iommu-parent = <&pamu0>; +	ranges; + +	port1 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <1>; +		fsl,liodn-reg = <&guts 0x510>; /* RIO1LIODNR */ +	}; + +	port2 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <2>; +		fsl,liodn-reg = <&guts 0x514>; /* RIO2LIODNR */ +	}; +}; + +&dcsr { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,dcsr", "simple-bus"; + +	dcsr-epu@0 { +		compatible = "fsl,p5020-dcsr-epu", "fsl,dcsr-epu"; +		interrupts = <52 2 0 0 +			      84 2 0 0 +			      85 2 0 0>; +		reg = <0x0 0x1000>; +	}; +	dcsr-npc { +		compatible = "fsl,dcsr-npc"; +		reg = <0x1000 0x1000 0x1000000 0x8000>; +	}; +	dcsr-nxc@2000 { +		compatible = "fsl,dcsr-nxc"; +		reg = <0x2000 0x1000>; +	}; +	dcsr-corenet { +		compatible = "fsl,dcsr-corenet"; +		reg = <0x8000 0x1000 0xB0000 0x1000>; +	}; +	dcsr-dpaa@9000 { +		compatible = "fsl,p5020-dcsr-dpaa", "fsl,dcsr-dpaa"; +		reg = <0x9000 0x1000>; +	}; +	dcsr-ocn@11000 { +		compatible = "fsl,p5020-dcsr-ocn", "fsl,dcsr-ocn"; +		reg = <0x11000 0x1000>; +	}; +	dcsr-ddr@12000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr1>; +		reg = <0x12000 0x1000>; +	}; +	dcsr-ddr@13000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr2>; +		reg = <0x13000 0x1000>; +	}; +	dcsr-nal@18000 { +		compatible = "fsl,p5020-dcsr-nal", "fsl,dcsr-nal"; +		reg = <0x18000 0x1000>; +	}; +	dcsr-rcpm@22000 { +		compatible = "fsl,p5020-dcsr-rcpm", "fsl,dcsr-rcpm"; +		reg = <0x22000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@40000 { +		compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu0>; +		reg = <0x40000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@41000 { +		compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu1>; +		reg = <0x41000 0x1000>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; + +	soc-sram-error { +		compatible = "fsl,soc-sram-error"; +		interrupts = <16 2 1 29>; +	}; + +	corenet-law@0 { +		compatible = "fsl,corenet-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <32>; +	}; + +	ddr1: memory-controller@8000 { +		compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller"; +		reg = <0x8000 0x1000>; +		interrupts = <16 2 1 23>; +	}; + +	ddr2: memory-controller@9000 { +		compatible = "fsl,qoriq-memory-controller-v4.5","fsl,qoriq-memory-controller"; +		reg = <0x9000 0x1000>; +		interrupts = <16 2 1 22>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,p5020-l3-cache-controller", "fsl,p4080-l3-cache-controller", "cache"; +		reg = <0x10000 0x1000 +		       0x11000 0x1000>; +		interrupts = <16 2 1 27 +			      16 2 1 26>; +	}; + +	corenet-cf@18000 { +		compatible = "fsl,corenet1-cf", "fsl,corenet-cf"; +		reg = <0x18000 0x1000>; +		interrupts = <16 2 1 31>; +		fsl,ccf-num-csdids = <32>; +		fsl,ccf-num-snoopids = <32>; +	}; + +	iommu@20000 { +		compatible = "fsl,pamu-v1.0", "fsl,pamu"; +		reg = <0x20000 0x4000>; /* for compatibility with older PAMU drivers */ +		ranges = <0 0x20000 0x4000>; +		#address-cells = <1>; +		#size-cells = <1>; +		interrupts = < +			24 2 0 0 +			16 2 1 30>; +		fsl,portid-mapping = <0x3c000000>; + +		pamu0: pamu@0 { +			reg = <0 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu1: pamu@1000 { +			reg = <0x1000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu2: pamu@2000 { +			reg = <0x2000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu3: pamu@3000 { +			reg = <0x3000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; +	}; + +/include/ "qoriq-mpic.dtsi" + +	guts: global-utilities@e0000 { +		compatible = "fsl,qoriq-device-config-1.0"; +		reg = <0xe0000 0xe00>; +		fsl,has-rstcr; +		#sleep-cells = <1>; +		fsl,liodn-bits = <12>; +	}; + +	pins: global-utilities@e0e00 { +		compatible = "fsl,qoriq-pin-control-1.0"; +		reg = <0xe0e00 0x200>; +		#sleep-cells = <2>; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,p5020-clockgen", "fsl,qoriq-clockgen-1.0"; +		ranges = <0x0 0xe1000 0x1000>; +		reg = <0xe1000 0x1000>; +		clock-frequency = <0>; +		#address-cells = <1>; +		#size-cells = <1>; + +		sysclk: sysclk { +			#clock-cells = <0>; +			compatible = "fsl,qoriq-sysclk-1.0"; +			clock-output-names = "sysclk"; +		}; + +		pll0: pll0@800 { +			#clock-cells = <1>; +			reg = <0x800 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll0", "pll0-div2"; +		}; + +		pll1: pll1@820 { +			#clock-cells = <1>; +			reg = <0x820 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll1", "pll1-div2"; +		}; + +		mux0: mux0@0 { +			#clock-cells = <0>; +			reg = <0x0 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux0"; +		}; + +		mux1: mux1@20 { +			#clock-cells = <0>; +			reg = <0x20 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux1"; +		}; +	}; + +	rcpm: global-utilities@e2000 { +		compatible = "fsl,qoriq-rcpm-1.0"; +		reg = <0xe2000 0x1000>; +		#sleep-cells = <1>; +	}; + +	sfp: sfp@e8000 { +		compatible = "fsl,p5020-sfp", "fsl,qoriq-sfp-1.0"; +		reg	   = <0xe8000 0x1000>; +	}; + +	serdes: serdes@ea000 { +		compatible = "fsl,p5020-serdes"; +		reg	   = <0xea000 0x1000>; +	}; + +/include/ "qoriq-dma-0.dtsi" +	dma@100300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */ +	}; + +/include/ "qoriq-dma-1.dtsi" +	dma@101300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */ +	}; + +/include/ "qoriq-espi-0.dtsi" +	spi@110000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "qoriq-esdhc-0.dtsi" +	sdhc@114000 { +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */ +		sdhci,auto-cmd12; +	}; + +/include/ "qoriq-i2c-0.dtsi" +/include/ "qoriq-i2c-1.dtsi" +/include/ "qoriq-duart-0.dtsi" +/include/ "qoriq-duart-1.dtsi" +/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"; +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */ +		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"; +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */ +		dr_mode = "host"; +		phy_type = "utmi"; +	}; + +/include/ "qoriq-sata2-0.dtsi" +	sata@220000 { +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x550>; /* SATA1LIODNR */ +	}; + +/include/ "qoriq-sata2-1.dtsi" +	sata@221000 { +		fsl,iommu-parent = <&pamu1>; +		fsl,liodn-reg = <&guts 0x554>; /* SATA2LIODNR */ +	}; +/include/ "qoriq-sec4.2-0.dtsi" +	crypto@300000 { +		fsl,iommu-parent = <&pamu1>; +	}; + +/include/ "qoriq-raid1.0-0.dtsi" +	raideng@320000 { +		fsl,iommu-parent = <&pamu1>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi new file mode 100644 index 00000000000..1cc61e126e4 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi @@ -0,0 +1,109 @@ +/* + * P5020/P5010 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e5500_power_isa.dtsi" + +/ { +	compatible = "fsl,P5020"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; +		dcsr = &dcsr; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +		pci3 = &pci3; +		usb0 = &usb0; +		usb1 = &usb1; +		dma0 = &dma0; +		dma1 = &dma1; +		sdhc = &sdhc; +		msi0 = &msi0; +		msi1 = &msi1; +		msi2 = &msi2; + +		crypto = &crypto; +		sec_jr0 = &sec_jr0; +		sec_jr1 = &sec_jr1; +		sec_jr2 = &sec_jr2; +		sec_jr3 = &sec_jr3; +		rtic_a = &rtic_a; +		rtic_b = &rtic_b; +		rtic_c = &rtic_c; +		rtic_d = &rtic_d; +		sec_mon = &sec_mon; + +		raideng = &raideng; +		raideng_jr0 = &raideng_jr0; +		raideng_jr1 = &raideng_jr1; +		raideng_jr2 = &raideng_jr2; +		raideng_jr3 = &raideng_jr3; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e5500@0 { +			device_type = "cpu"; +			reg = <0>; +			clocks = <&mux0>; +			next-level-cache = <&L2_0>; +			fsl,portid-mapping = <0x80000000>; +			L2_0: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu1: PowerPC,e5500@1 { +			device_type = "cpu"; +			reg = <1>; +			clocks = <&mux1>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x40000000>; +			L2_1: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi b/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi new file mode 100644 index 00000000000..67296fdd969 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi @@ -0,0 +1,446 @@ +/* + * P5040 Silicon/SoC Device Tree Source (post include) + * + * 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 { +	compatible = "fsl,p5040-elbc", "fsl,elbc", "simple-bus"; +	interrupts = <25 2 0 0>; +	#address-cells = <2>; +	#size-cells = <1>; +}; + +/* controller at 0x200000 */ +&pci0 { +	compatible = "fsl,p5040-pcie", "fsl,qoriq-pcie-v2.4"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 15>; +	fsl,iommu-parent = <&pamu0>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 15>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 40 1 0 0 +			0000 0 0 2 &mpic 1 1 0 0 +			0000 0 0 3 &mpic 2 1 0 0 +			0000 0 0 4 &mpic 3 1 0 0 +			>; +	}; +}; + +/* controller at 0x201000 */ +&pci1 { +	compatible = "fsl,p5040-pcie", "fsl,qoriq-pcie-v2.4"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 14>; +	fsl,iommu-parent = <&pamu0>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 14>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 41 1 0 0 +			0000 0 0 2 &mpic 5 1 0 0 +			0000 0 0 3 &mpic 6 1 0 0 +			0000 0 0 4 &mpic 7 1 0 0 +			>; +	}; +}; + +/* controller at 0x202000 */ +&pci2 { +	compatible = "fsl,p5040-pcie", "fsl,qoriq-pcie-v2.4"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	clock-frequency = <33333333>; +	interrupts = <16 2 1 13>; +	fsl,iommu-parent = <&pamu0>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <16 2 1 13>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 42 1 0 0 +			0000 0 0 2 &mpic 9 1 0 0 +			0000 0 0 3 &mpic 10 1 0 0 +			0000 0 0 4 &mpic 11 1 0 0 +			>; +	}; +}; + +&dcsr { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,dcsr", "simple-bus"; + +	dcsr-epu@0 { +		compatible = "fsl,p5040-dcsr-epu", "fsl,dcsr-epu"; +		interrupts = <52 2 0 0 +			      84 2 0 0 +			      85 2 0 0>; +		reg = <0x0 0x1000>; +	}; +	dcsr-npc { +		compatible = "fsl,dcsr-npc"; +		reg = <0x1000 0x1000 0x1000000 0x8000>; +	}; +	dcsr-nxc@2000 { +		compatible = "fsl,dcsr-nxc"; +		reg = <0x2000 0x1000>; +	}; +	dcsr-corenet { +		compatible = "fsl,dcsr-corenet"; +		reg = <0x8000 0x1000 0xB0000 0x1000>; +	}; +	dcsr-dpaa@9000 { +		compatible = "fsl,p5040-dcsr-dpaa", "fsl,dcsr-dpaa"; +		reg = <0x9000 0x1000>; +	}; +	dcsr-ocn@11000 { +		compatible = "fsl,p5040-dcsr-ocn", "fsl,dcsr-ocn"; +		reg = <0x11000 0x1000>; +	}; +	dcsr-ddr@12000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr1>; +		reg = <0x12000 0x1000>; +	}; +	dcsr-ddr@13000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr2>; +		reg = <0x13000 0x1000>; +	}; +	dcsr-nal@18000 { +		compatible = "fsl,p5040-dcsr-nal", "fsl,dcsr-nal"; +		reg = <0x18000 0x1000>; +	}; +	dcsr-rcpm@22000 { +		compatible = "fsl,p5040-dcsr-rcpm", "fsl,dcsr-rcpm"; +		reg = <0x22000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@40000 { +		compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu0>; +		reg = <0x40000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@41000 { +		compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu1>; +		reg = <0x41000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@42000 { +		compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu2>; +		reg = <0x42000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@43000 { +		compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu3>; +		reg = <0x43000 0x1000>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; + +	soc-sram-error { +		compatible = "fsl,soc-sram-error"; +		interrupts = <16 2 1 29>; +	}; + +	corenet-law@0 { +		compatible = "fsl,corenet-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <32>; +	}; + +	ddr1: memory-controller@8000 { +		compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller"; +		reg = <0x8000 0x1000>; +		interrupts = <16 2 1 23>; +	}; + +	ddr2: memory-controller@9000 { +		compatible = "fsl,qoriq-memory-controller-v4.5","fsl,qoriq-memory-controller"; +		reg = <0x9000 0x1000>; +		interrupts = <16 2 1 22>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,p5040-l3-cache-controller", "fsl,p4080-l3-cache-controller", "cache"; +		reg = <0x10000 0x1000 +		       0x11000 0x1000>; +		interrupts = <16 2 1 27 +			      16 2 1 26>; +	}; + +	corenet-cf@18000 { +		compatible = "fsl,corenet1-cf", "fsl,corenet-cf"; +		reg = <0x18000 0x1000>; +		interrupts = <16 2 1 31>; +		fsl,ccf-num-csdids = <32>; +		fsl,ccf-num-snoopids = <32>; +	}; + +	iommu@20000 { +		compatible = "fsl,pamu-v1.0", "fsl,pamu"; +		reg = <0x20000 0x5000>; /* for compatibility with older PAMU drivers */ +		ranges = <0 0x20000 0x5000>; +		#address-cells = <1>; +		#size-cells = <1>; +		interrupts = <24 2 0 0 +			      16 2 1 30>; +		fsl,portid-mapping = <0x0f800000>; + +		pamu0: pamu@0 { +			reg = <0 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu1: pamu@1000 { +			reg = <0x1000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu2: pamu@2000 { +			reg = <0x2000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu3: pamu@3000 { +			reg = <0x3000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; + +		pamu4: pamu@4000 { +			reg = <0x4000 0x1000>; +			fsl,primary-cache-geometry = <32 1>; +			fsl,secondary-cache-geometry = <128 2>; +		}; +	}; + +/include/ "qoriq-mpic.dtsi" + +	guts: global-utilities@e0000 { +		compatible = "fsl,p5040-device-config", "fsl,qoriq-device-config-1.0"; +		reg = <0xe0000 0xe00>; +		fsl,has-rstcr; +		#sleep-cells = <1>; +		fsl,liodn-bits = <12>; +	}; + +	pins: global-utilities@e0e00 { +		compatible = "fsl,p5040-pin-control", "fsl,qoriq-pin-control-1.0"; +		reg = <0xe0e00 0x200>; +		#sleep-cells = <2>; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,p5040-clockgen", "fsl,qoriq-clockgen-1.0"; +		ranges = <0x0 0xe1000 0x1000>; +		reg = <0xe1000 0x1000>; +		clock-frequency = <0>; +		#address-cells = <1>; +		#size-cells = <1>; + +		sysclk: sysclk { +			#clock-cells = <0>; +			compatible = "fsl,qoriq-sysclk-1.0"; +			clock-output-names = "sysclk"; +		}; + +		pll0: pll0@800 { +			#clock-cells = <1>; +			reg = <0x800 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll0", "pll0-div2"; +		}; + +		pll1: pll1@820 { +			#clock-cells = <1>; +			reg = <0x820 0x4>; +			compatible = "fsl,qoriq-core-pll-1.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll1", "pll1-div2"; +		}; + +		mux0: mux0@0 { +			#clock-cells = <0>; +			reg = <0x0 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux0"; +		}; + +		mux1: mux1@20 { +			#clock-cells = <0>; +			reg = <0x20 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux1"; +		}; + +		mux2: mux2@40 { +			#clock-cells = <0>; +			reg = <0x40 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux2"; +		}; + +		mux3: mux3@60 { +			#clock-cells = <0>; +			reg = <0x60 0x4>; +			compatible = "fsl,qoriq-core-mux-1.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; +			clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; +			clock-output-names = "cmux3"; +		}; +	}; + +	rcpm: global-utilities@e2000 { +		compatible = "fsl,p5040-rcpm", "fsl,qoriq-rcpm-1.0"; +		reg = <0xe2000 0x1000>; +		#sleep-cells = <1>; +	}; + +	sfp: sfp@e8000 { +		compatible = "fsl,p5040-sfp", "fsl,qoriq-sfp-1.0"; +		reg	   = <0xe8000 0x1000>; +	}; + +	serdes: serdes@ea000 { +		compatible = "fsl,p5040-serdes"; +		reg	   = <0xea000 0x1000>; +	}; + +/include/ "qoriq-dma-0.dtsi" +	dma@100300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */ +	}; + +/include/ "qoriq-dma-1.dtsi" +	dma@101300 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */ +	}; + +/include/ "qoriq-espi-0.dtsi" +	spi@110000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "qoriq-esdhc-0.dtsi" +	sdhc@114000 { +		fsl,iommu-parent = <&pamu2>; +		fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */ +		sdhci,auto-cmd12; +	}; + +/include/ "qoriq-i2c-0.dtsi" +/include/ "qoriq-i2c-1.dtsi" +/include/ "qoriq-duart-0.dtsi" +/include/ "qoriq-duart-1.dtsi" +/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"; +		fsl,iommu-parent = <&pamu4>; +		fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */ +		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"; +		fsl,iommu-parent = <&pamu4>; +		fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */ +		dr_mode = "host"; +		phy_type = "utmi"; +	}; + +/include/ "qoriq-sata2-0.dtsi" +	sata@220000 { +		fsl,iommu-parent = <&pamu4>; +		fsl,liodn-reg = <&guts 0x550>; /* SATA1LIODNR */ +	}; + +/include/ "qoriq-sata2-1.dtsi" +	sata@221000 { +		fsl,iommu-parent = <&pamu4>; +		fsl,liodn-reg = <&guts 0x554>; /* SATA2LIODNR */ +	}; + +/include/ "qoriq-sec5.2-0.dtsi" +	crypto@300000 { +		fsl,iommu-parent = <&pamu4>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi new file mode 100644 index 00000000000..b048a2be05a --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi @@ -0,0 +1,122 @@ +/* + * P5040 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e5500_power_isa.dtsi" + +/ { +	compatible = "fsl,P5040"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; +		dcsr = &dcsr; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +		usb0 = &usb0; +		usb1 = &usb1; +		dma0 = &dma0; +		dma1 = &dma1; +		sdhc = &sdhc; +		msi0 = &msi0; +		msi1 = &msi1; +		msi2 = &msi2; + +		crypto = &crypto; +		sec_jr0 = &sec_jr0; +		sec_jr1 = &sec_jr1; +		sec_jr2 = &sec_jr2; +		sec_jr3 = &sec_jr3; +		rtic_a = &rtic_a; +		rtic_b = &rtic_b; +		rtic_c = &rtic_c; +		rtic_d = &rtic_d; +		sec_mon = &sec_mon; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e5500@0 { +			device_type = "cpu"; +			reg = <0>; +			clocks = <&mux0>; +			next-level-cache = <&L2_0>; +			fsl,portid-mapping = <0x80000000>; +			L2_0: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu1: PowerPC,e5500@1 { +			device_type = "cpu"; +			reg = <1>; +			clocks = <&mux1>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x40000000>; +			L2_1: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu2: PowerPC,e5500@2 { +			device_type = "cpu"; +			reg = <2>; +			clocks = <&mux2>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x20000000>; +			L2_2: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu3: PowerPC,e5500@3 { +			device_type = "cpu"; +			reg = <3>; +			clocks = <&mux3>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x10000000>; +			L2_3: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi new file mode 100644 index 00000000000..b5b37ad30e7 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi @@ -0,0 +1,66 @@ +/* + * PQ3 DMA device tree stub [ controller @ offset 0x21000 ] + * + * 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. + */ + +dma@21300 { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,eloplus-dma"; +	reg = <0x21300 0x4>; +	ranges = <0x0 0x21100 0x200>; +	cell-index = <0>; +	dma-channel@0 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x0 0x80>; +		cell-index = <0>; +		interrupts = <20 2 0 0>; +	}; +	dma-channel@80 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x80 0x80>; +		cell-index = <1>; +		interrupts = <21 2 0 0>; +	}; +	dma-channel@100 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x100 0x80>; +		cell-index = <2>; +		interrupts = <22 2 0 0>; +	}; +	dma-channel@180 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x180 0x80>; +		cell-index = <3>; +		interrupts = <23 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi new file mode 100644 index 00000000000..28cb8a55d80 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi @@ -0,0 +1,66 @@ +/* + * PQ3 DMA device tree stub [ controller @ offset 0xc300 ] + * + * 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. + */ + +dma@c300 { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,eloplus-dma"; +	reg = <0xc300 0x4>; +	ranges = <0x0 0xc100 0x200>; +	cell-index = <1>; +	dma-channel@0 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x0 0x80>; +		cell-index = <0>; +		interrupts = <76 2 0 0>; +	}; +	dma-channel@80 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x80 0x80>; +		cell-index = <1>; +		interrupts = <77 2 0 0>; +	}; +	dma-channel@100 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x100 0x80>; +		cell-index = <2>; +		interrupts = <78 2 0 0>; +	}; +	dma-channel@180 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x180 0x80>; +		cell-index = <3>; +		interrupts = <79 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi new file mode 100644 index 00000000000..5e268fdb9d1 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi @@ -0,0 +1,51 @@ +/* + * PQ3 DUART device tree stub [ controller @ offset 0x4000 ] + * + * 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. + */ + +serial0: serial@4500 { +	cell-index = <0>; +	device_type = "serial"; +	compatible = "fsl,ns16550", "ns16550"; +	reg = <0x4500 0x100>; +	clock-frequency = <0>; +	interrupts = <42 2 0 0>; +}; + +serial1: serial@4600 { +	cell-index = <1>; +	device_type = "serial"; +	compatible = "fsl,ns16550", "ns16550"; +	reg = <0x4600 0x100>; +	clock-frequency = <0>; +	interrupts = <42 2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi new file mode 100644 index 00000000000..5743433e278 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi @@ -0,0 +1,41 @@ +/* + * PQ3 eSDHC device tree stub [ controller @ offset 0x2e000 ] + * + * 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. + */ + +sdhc@2e000 { +	compatible = "fsl,esdhc"; +	reg = <0x2e000 0x1000>; +	interrupts = <72 0x2 0 0>; +	/* Filled in by U-Boot */ +	clock-frequency = <0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi new file mode 100644 index 00000000000..75854b2e039 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi @@ -0,0 +1,41 @@ +/* + * PQ3 eSPI device tree stub [ controller @ offset 0x7000 ] + * + * 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. + */ + +spi@7000 { +	#address-cells = <1>; +	#size-cells = <0>; +	compatible = "fsl,mpc8536-espi"; +	reg = <0x7000 0x1000>; +	interrupts = <59 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi new file mode 100644 index 00000000000..3b0650a9847 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi @@ -0,0 +1,54 @@ +/* + * PQ3 eTSEC device tree stub [ @ offsets 0x24000 ] + * + * 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: + *     * 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. + */ + +ethernet@24000 { +	#address-cells = <1>; +	#size-cells = <1>; +	cell-index = <0>; +	device_type = "network"; +	model = "eTSEC"; +	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>; +}; + +mdio@24520 { +	#address-cells = <1>; +	#size-cells = <0>; +	compatible = "fsl,gianfar-mdio"; +	reg = <0x24520 0x20>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi new file mode 100644 index 00000000000..96693b41f0f --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi @@ -0,0 +1,54 @@ +/* + * PQ3 eTSEC device tree stub [ @ offsets 0x25000 ] + * + * 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: + *     * 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. + */ + +ethernet@25000 { +	#address-cells = <1>; +	#size-cells = <1>; +	cell-index = <1>; +	device_type = "network"; +	model = "eTSEC"; +	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>; +}; + +mdio@25520 { +	#address-cells = <1>; +	#size-cells = <0>; +	compatible = "fsl,gianfar-tbi"; +	reg = <0x25520 0x20>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi new file mode 100644 index 00000000000..6b3fab19da1 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi @@ -0,0 +1,54 @@ +/* + * PQ3 eTSEC device tree stub [ @ offsets 0x26000 ] + * + * 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: + *     * 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. + */ + +ethernet@26000 { +	#address-cells = <1>; +	#size-cells = <1>; +	cell-index = <2>; +	device_type = "network"; +	model = "eTSEC"; +	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>; +}; + +mdio@26520 { +	#address-cells = <1>; +	#size-cells = <0>; +	compatible = "fsl,gianfar-tbi"; +	reg = <0x26520 0x20>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi new file mode 100644 index 00000000000..0da592d93dd --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi @@ -0,0 +1,54 @@ +/* + * PQ3 eTSEC device tree stub [ @ offsets 0x27000 ] + * + * 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: + *     * 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. + */ + +ethernet@27000 { +	#address-cells = <1>; +	#size-cells = <1>; +	cell-index = <3>; +	device_type = "network"; +	model = "eTSEC"; +	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>; +}; + +mdio@27520 { +	#address-cells = <1>; +	#size-cells = <0>; +	compatible = "fsl,gianfar-tbi"; +	reg = <0x27520 0x20>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi new file mode 100644 index 00000000000..efe2ca04bce --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi @@ -0,0 +1,39 @@ +/* + * PQ3 eTSEC Timer (IEEE 1588) device tree stub [ @ offsets 0x24e00 ] + * + * 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. + */ + +ptp_clock@24e00 { +	compatible = "fsl,etsec-ptp"; +	reg = <0x24e00 0xb0>; +	interrupts = <68 2 0 0 69 2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi new file mode 100644 index 00000000000..1382fec9e8c --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi @@ -0,0 +1,60 @@ +/* + * PQ3 eTSEC2 device tree stub [ @ offsets 0x24000/0xb0000 ] + * + * 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. + */ + + +mdio@24000 { +	#address-cells = <1>; +	#size-cells = <0>; +	compatible = "fsl,etsec2-mdio"; +	reg = <0x24000 0x1000 0xb0030 0x4>; +}; + +ethernet@b0000 { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "network"; +	model = "eTSEC"; +	compatible = "fsl,etsec2"; +	fsl,num_rx_queues = <0x8>; +	fsl,num_tx_queues = <0x8>; +	fsl,magic-packet; +	local-mac-address = [ 00 00 00 00 00 00 ]; + +	queue-group@b0000 { +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0xb0000 0x1000>; +		interrupts = <29 2 0 0 30 2 0 0 34 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi new file mode 100644 index 00000000000..221cd2ea5b3 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi @@ -0,0 +1,60 @@ +/* + * PQ3 eTSEC2 device tree stub [ @ offsets 0x25000/0xb1000 ] + * + * 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. + */ + + +mdio@25000 { +	#address-cells = <1>; +	#size-cells = <0>; +	compatible = "fsl,etsec2-tbi"; +	reg = <0x25000 0x1000 0xb1030 0x4>; +}; + +ethernet@b1000 { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "network"; +	model = "eTSEC"; +	compatible = "fsl,etsec2"; +	fsl,num_rx_queues = <0x8>; +	fsl,num_tx_queues = <0x8>; +	fsl,magic-packet; +	local-mac-address = [ 00 00 00 00 00 00 ]; + +	queue-group@b1000 { +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0xb1000 0x1000>; +		interrupts = <35 2 0 0 36 2 0 0 40 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi new file mode 100644 index 00000000000..61456c31760 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi @@ -0,0 +1,59 @@ +/* + * PQ3 eTSEC2 device tree stub [ @ offsets 0x26000/0xb2000 ] + * + * 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. + */ + +mdio@26000 { +	#address-cells = <1>; +	#size-cells = <0>; +	compatible = "fsl,etsec2-tbi"; +	reg = <0x26000 0x1000 0xb1030 0x4>; +}; + +ethernet@b2000 { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "network"; +	model = "eTSEC"; +	compatible = "fsl,etsec2"; +	fsl,num_rx_queues = <0x8>; +	fsl,num_tx_queues = <0x8>; +	fsl,magic-packet; +	local-mac-address = [ 00 00 00 00 00 00 ]; + +	queue-group@b2000 { +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0xb2000 0x1000>; +		interrupts = <31 2 0 0 32 2 0 0 33 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi new file mode 100644 index 00000000000..034ab8fac22 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi @@ -0,0 +1,42 @@ +/* + * PQ3 eTSEC2 Group 2 device tree stub [ @ offsets 0xb4000 ] + * + * 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. + */ + +&enet0_grp2 { +	queue-group@b4000 { +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0xb4000 0x1000>; +		interrupts = <17 2 0 0 18 2 0 0 24 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi new file mode 100644 index 00000000000..3be9ba3b374 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi @@ -0,0 +1,42 @@ +/* + * PQ3 eTSEC2 Group 2 device tree stub [ @ offsets 0xb5000 ] + * + * 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. + */ + +&enet1_grp2 { +	queue-group@b5000 { +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0xb5000 0x1000>; +		interrupts = <51 2 0 0 52 2 0 0 67 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi new file mode 100644 index 00000000000..02a33457048 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi @@ -0,0 +1,42 @@ +/* + * PQ3 eTSEC2 Group 2 device tree stub [ @ offsets 0xb6000 ] + * + * 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. + */ + +&enet2_grp2 { +	queue-group@b6000 { +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0xb6000 0x1000>; +		interrupts = <25 2 0 0 26 2 0 0 27 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi new file mode 100644 index 00000000000..72a3ef5945c --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi @@ -0,0 +1,41 @@ +/* + * PQ3 GPIO device tree stub [ controller @ offset 0xf000 ] + * + * 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. + */ + +gpio-controller@f000 { +	#gpio-cells = <2>; +	compatible = "fsl,pq3-gpio"; +	reg = <0xf000 0x100>; +	interrupts = <47 0x2 0 0>; +	gpio-controller; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi new file mode 100644 index 00000000000..d1dd6fb82a7 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi @@ -0,0 +1,43 @@ +/* + * PQ3 I2C device tree stub [ controller @ offset 0x3000 ] + * + * 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. + */ + +i2c@3000 { +	#address-cells = <1>; +	#size-cells = <0>; +	cell-index = <0>; +	compatible = "fsl-i2c"; +	reg = <0x3000 0x100>; +	interrupts = <43 2 0 0>; +	dfsrr; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi new file mode 100644 index 00000000000..a9bd803e209 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi @@ -0,0 +1,43 @@ +/* + * PQ3 I2C device tree stub [ controller @ offset 0x3100 ] + * + * 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. + */ + +i2c@3100 { +	#address-cells = <1>; +	#size-cells = <0>; +	cell-index = <1>; +	compatible = "fsl-i2c"; +	reg = <0x3100 0x100>; +	interrupts = <43 2 0 0>; +	dfsrr; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-mpic-message-B.dtsi b/arch/powerpc/boot/dts/fsl/pq3-mpic-message-B.dtsi new file mode 100644 index 00000000000..1cf0b77b1ef --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-mpic-message-B.dtsi @@ -0,0 +1,43 @@ +/* + * PQ3 MPIC Message (Group B) device tree stub [ controller @ offset 0x42400 ] + * + * 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. + */ + +message@42400 { +	compatible = "fsl,mpic-v3.1-msgr"; +	reg = <0x42400 0x200>; +	interrupts = < +		0xb4 2 0 0 +		0xb5 2 0 0 +		0xb6 2 0 0 +		0xb7 2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi b/arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi new file mode 100644 index 00000000000..8734cffae1a --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi @@ -0,0 +1,42 @@ +/* + * PQ3 MPIC Timer (Group B) device tree stub [ controller @ offset 0x42100 ] + * + * 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. + */ + +timer@42100 { +	compatible = "fsl,mpic-global-timer"; +	reg = <0x42100 0x100 0x42300 4>; +	interrupts = <4 0 3 0 +		      5 0 3 0 +		      6 0 3 0 +		      7 0 3 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi b/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi new file mode 100644 index 00000000000..71c30eb1005 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi @@ -0,0 +1,79 @@ +/* + * PQ3 MPIC device tree stub [ controller @ offset 0x40000 ] + * + * 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. + */ + +mpic: pic@40000 { +	interrupt-controller; +	#address-cells = <0>; +	#interrupt-cells = <4>; +	reg = <0x40000 0x40000>; +	compatible = "fsl,mpic"; +	device_type = "open-pic"; +	big-endian; +	single-cpu-affinity; +	last-interrupt-source = <255>; +}; + +timer@41100 { +	compatible = "fsl,mpic-global-timer"; +	reg = <0x41100 0x100 0x41300 4>; +	interrupts = <0 0 3 0 +		      1 0 3 0 +		      2 0 3 0 +		      3 0 3 0>; +}; + +message@41400 { +	compatible = "fsl,mpic-v3.1-msgr"; +	reg = <0x41400 0x200>; +	interrupts = < +		0xb0 2 0 0 +		0xb1 2 0 0 +		0xb2 2 0 0 +		0xb3 2 0 0>; +}; + +msi@41600 { +	compatible = "fsl,mpic-msi"; +	reg = <0x41600 0x80>; +	msi-available-ranges = <0 0x100>; +	interrupts = < +		0xe0 0 0 0 +		0xe1 0 0 0 +		0xe2 0 0 0 +		0xe3 0 0 0 +		0xe4 0 0 0 +		0xe5 0 0 0 +		0xe6 0 0 0 +		0xe7 0 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi new file mode 100644 index 00000000000..587ca9ffad7 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi @@ -0,0 +1,68 @@ +/* + * PQ3 RIO Message Unit device tree stub [ controller @ offset 0xd3000 ] + * + * 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. + */ + +rmu: rmu@d3000 { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,srio-rmu"; +	reg = <0xd3000 0x500>; +	ranges = <0x0 0xd3000 0x500>; + +	message-unit@0 { +		compatible = "fsl,srio-msg-unit"; +		reg = <0x0 0x100>; +		interrupts = < +			53 2 0 0 /* msg1_tx_irq */ +			54 2 0 0>;/* msg1_rx_irq */ +	}; +	message-unit@100 { +		compatible = "fsl,srio-msg-unit"; +		reg = <0x100 0x100>; +		interrupts = < +			55 2 0 0  /* msg2_tx_irq */ +			56 2 0 0>;/* msg2_rx_irq */ +	}; +	doorbell-unit@400 { +		compatible = "fsl,srio-dbell-unit"; +		reg = <0x400 0x80>; +		interrupts = < +			49 2 0 0  /* bell_outb_irq */ +			50 2 0 0>;/* bell_inb_irq */ +	}; +	port-write-unit@4e0 { +		compatible = "fsl,srio-port-write-unit"; +		reg = <0x4e0 0x20>; +		interrupts = <48 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi new file mode 100644 index 00000000000..3c28dd08d38 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi @@ -0,0 +1,40 @@ +/* + * PQ3 SATAv2 device tree stub [ controller @ offset 0x18000 ] + * + * 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. + */ + +sata@18000 { +	compatible = "fsl,pq-sata-v2"; +	reg = <0x18000 0x1000>; +	cell-index = <1>; +	interrupts = <74 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi new file mode 100644 index 00000000000..eefaf2855e3 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi @@ -0,0 +1,40 @@ +/* + * PQ3 SATAv2 device tree stub [ controller @ offset 0x19000 ] + * + * 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. + */ + +sata@19000 { +	compatible = "fsl,pq-sata-v2"; +	reg = <0x19000 0x1000>; +	cell-index = <2>; +	interrupts = <41 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi new file mode 100644 index 00000000000..02a5c7ae72d --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi @@ -0,0 +1,43 @@ +/* + * PQ3 Sec/Crypto 2.1 device tree stub [ controller @ offset 0x30000 ] + * + * 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. + */ + +crypto@30000 { +	compatible = "fsl,sec2.1", "fsl,sec2.0"; +	reg = <0x30000 0x10000>; +	interrupts = <45 2 0 0>; +	fsl,num-channels = <4>; +	fsl,channel-fifo-len = <24>; +	fsl,exec-units-mask = <0xfe>; +	fsl,descriptor-types-mask = <0x12b0ebf>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi new file mode 100644 index 00000000000..bba1ba44ccf --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi @@ -0,0 +1,45 @@ +/* + * PQ3 Sec/Crypto 3.0 device tree stub [ controller @ offset 0x30000 ] + * + * 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. + */ + +crypto@30000 { +	compatible = "fsl,sec3.0", +		     "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1", +		     "fsl,sec2.0"; +	reg = <0x30000 0x10000>; +	interrupts = <45 2 0 0 58 2 0 0>; +	fsl,num-channels = <4>; +	fsl,channel-fifo-len = <24>; +	fsl,exec-units-mask = <0x9fe>; +	fsl,descriptor-types-mask = <0x3ab0ebf>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi new file mode 100644 index 00000000000..8f0a5669bee --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi @@ -0,0 +1,45 @@ +/* + * PQ3 Sec/Crypto 3.1 device tree stub [ controller @ offset 0x30000 ] + * + * 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. + */ + +crypto@30000 { +	compatible = "fsl,sec3.1", "fsl,sec3.0", +		     "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1", +		     "fsl,sec2.0"; +	reg = <0x30000 0x10000>; +	interrupts = <45 2 0 0 58 2 0 0>; +	fsl,num-channels = <4>; +	fsl,channel-fifo-len = <24>; +	fsl,exec-units-mask = <0xbfe>; +	fsl,descriptor-types-mask = <0x3ab0ebf>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi new file mode 100644 index 00000000000..c227f2748a2 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi @@ -0,0 +1,45 @@ +/* + * PQ3 Sec/Crypto 3.3 device tree stub [ controller @ offset 0x30000 ] + * + * 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. + */ + +crypto@30000 { +	compatible = "fsl,sec3.3", "fsl,sec3.1", "fsl,sec3.0", +		     "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1", +		     "fsl,sec2.0"; +	reg = <0x30000 0x10000>; +	interrupts = <45 2 0 0 58 2 0 0>; +	fsl,num-channels = <4>; +	fsl,channel-fifo-len = <24>; +	fsl,exec-units-mask = <0x97c>; +	fsl,descriptor-types-mask = <0x3a30abf>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi new file mode 100644 index 00000000000..bb3d8266b5c --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi @@ -0,0 +1,67 @@ +/* + * PQ3 Sec/Crypto 4.4 device tree stub [ controller @ offset 0x30000 ] + * + * 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. + */ + +crypto@30000 { +	compatible = "fsl,sec-v4.4", "fsl,sec-v4.0"; +	fsl,sec-era = <3>; +	#address-cells = <1>; +	#size-cells = <1>; +	ranges		 = <0x0 0x30000 0x10000>; +	reg		 = <0x30000 0x10000>; +	interrupts	 = <58 2 0 0>; + +	sec_jr0: jr@1000 { +		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,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,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,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring"; +		reg	   = <0x4000 0x1000>; +		interrupts	 = <45 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi new file mode 100644 index 00000000000..185ab9dc3ec --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi @@ -0,0 +1,41 @@ +/* + * PQ3 USB DR device tree stub [ controller @ offset 0x22000 ] + * + * 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. + */ + +usb@22000 { +	compatible = "fsl-usb2-dr"; +	reg = <0x22000 0x1000>; +	#address-cells = <1>; +	#size-cells = <0>; +	interrupts = <28 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi new file mode 100644 index 00000000000..fe24cd612ff --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi @@ -0,0 +1,41 @@ +/* + * PQ3 USB DR device tree stub [ controller @ offset 0x23000 ] + * + * 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. + */ + +usb@23000 { +	compatible = "fsl-usb2-dr"; +	reg = <0x23000 0x1000>; +	#address-cells = <1>; +	#size-cells = <0>; +	interrupts = <46 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi b/arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi new file mode 100644 index 00000000000..29dad723091 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi @@ -0,0 +1,41 @@ +/* + * QorIQ Qonverge USB Host device tree stub [ controller @ offset 0x210000 ] + * + * Copyright 2013 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. + */ + +usb@210000 { +	compatible = "fsl-usb2-dr"; +	reg = <0x210000 0x1000>; +	#address-cells = <1>; +	#size-cells = <0>; +	interrupts = <44 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi new file mode 100644 index 00000000000..1aebf3ea4ca --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi @@ -0,0 +1,66 @@ +/* + * QorIQ DMA device tree stub [ controller @ offset 0x100000 ] + * + * 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. + */ + +dma0: dma@100300 { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,eloplus-dma"; +	reg = <0x100300 0x4>; +	ranges = <0x0 0x100100 0x200>; +	cell-index = <0>; +	dma-channel@0 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x0 0x80>; +		cell-index = <0>; +		interrupts = <28 2 0 0>; +	}; +	dma-channel@80 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x80 0x80>; +		cell-index = <1>; +		interrupts = <29 2 0 0>; +	}; +	dma-channel@100 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x100 0x80>; +		cell-index = <2>; +		interrupts = <30 2 0 0>; +	}; +	dma-channel@180 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x180 0x80>; +		cell-index = <3>; +		interrupts = <31 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi new file mode 100644 index 00000000000..ecf5e180fe7 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi @@ -0,0 +1,66 @@ +/* + * QorIQ DMA device tree stub [ controller @ offset 0x101000 ] + * + * 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. + */ + +dma1: dma@101300 { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,eloplus-dma"; +	reg = <0x101300 0x4>; +	ranges = <0x0 0x101100 0x200>; +	cell-index = <1>; +	dma-channel@0 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x0 0x80>; +		cell-index = <0>; +		interrupts = <32 2 0 0>; +	}; +	dma-channel@80 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x80 0x80>; +		cell-index = <1>; +		interrupts = <33 2 0 0>; +	}; +	dma-channel@100 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x100 0x80>; +		cell-index = <2>; +		interrupts = <34 2 0 0>; +	}; +	dma-channel@180 { +		compatible = "fsl,eloplus-dma-channel"; +		reg = <0x180 0x80>; +		cell-index = <3>; +		interrupts = <35 2 0 0>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi new file mode 100644 index 00000000000..225c07b4e8a --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi @@ -0,0 +1,51 @@ +/* + * QorIQ DUART device tree stub [ controller @ offset 0x11c000 ] + * + * 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. + */ + +serial0: serial@11c500 { +	cell-index = <0>; +	device_type = "serial"; +	compatible = "fsl,ns16550", "ns16550"; +	reg = <0x11c500 0x100>; +	clock-frequency = <0>; +	interrupts = <36 2 0 0>; +}; + +serial1: serial@11c600 { +	cell-index = <1>; +	device_type = "serial"; +	compatible = "fsl,ns16550", "ns16550"; +	reg = <0x11c600 0x100>; +	clock-frequency = <0>; +	interrupts = <36 2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi new file mode 100644 index 00000000000..d23233a56b9 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi @@ -0,0 +1,51 @@ +/* + * QorIQ DUART device tree stub [ controller @ offset 0x11d000 ] + * + * 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. + */ + +serial2: serial@11d500 { +	cell-index = <2>; +	device_type = "serial"; +	compatible = "fsl,ns16550", "ns16550"; +	reg = <0x11d500 0x100>; +	clock-frequency = <0>; +	interrupts = <37 2 0 0>; +}; + +serial3: serial@11d600 { +	cell-index = <3>; +	device_type = "serial"; +	compatible = "fsl,ns16550", "ns16550"; +	reg = <0x11d600 0x100>; +	clock-frequency = <0>; +	interrupts = <37 2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi new file mode 100644 index 00000000000..20835ae216c --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi @@ -0,0 +1,40 @@ +/* + * QorIQ eSDHC device tree stub [ controller @ offset 0x114000 ] + * + * 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. + */ + +sdhc: sdhc@114000 { +	compatible = "fsl,esdhc"; +	reg = <0x114000 0x1000>; +	interrupts = <48 2 0 0>; +	clock-frequency = <0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi new file mode 100644 index 00000000000..6db06975e09 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi @@ -0,0 +1,41 @@ +/* + * QorIQ eSPI device tree stub [ controller @ offset 0x110000 ] + * + * 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. + */ + +spi@110000 { +	#address-cells = <1>; +	#size-cells = <0>; +	compatible = "fsl,mpc8536-espi"; +	reg = <0x110000 0x1000>; +	interrupts = <53 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi new file mode 100644 index 00000000000..cf714f5f68b --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi @@ -0,0 +1,41 @@ +/* + * QorIQ GPIO device tree stub [ controller @ offset 0x130000 ] + * + * 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. + */ + +gpio0: gpio@130000 { +	compatible = "fsl,qoriq-gpio"; +	reg = <0x130000 0x1000>; +	interrupts = <55 2 0 0>; +	#gpio-cells = <2>; +	gpio-controller; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-gpio-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-gpio-1.dtsi new file mode 100644 index 00000000000..c2f9cdadb60 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-gpio-1.dtsi @@ -0,0 +1,41 @@ +/* + * QorIQ GPIO device tree stub [ controller @ offset 0x131000 ] + * + * Copyright 2013 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. + */ + +gpio1: gpio@131000 { +	compatible = "fsl,qoriq-gpio"; +	reg = <0x131000 0x1000>; +	interrupts = <54 2 0 0>; +	#gpio-cells = <2>; +	gpio-controller; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-gpio-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-gpio-2.dtsi new file mode 100644 index 00000000000..33f3ccbac83 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-gpio-2.dtsi @@ -0,0 +1,41 @@ +/* + * QorIQ GPIO device tree stub [ controller @ offset 0x132000 ] + * + * Copyright 2013 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. + */ + +gpio2: gpio@132000 { +	compatible = "fsl,qoriq-gpio"; +	reg = <0x132000 0x1000>; +	interrupts = <86 2 0 0>; +	#gpio-cells = <2>; +	gpio-controller; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-gpio-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-gpio-3.dtsi new file mode 100644 index 00000000000..86954e95ea0 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-gpio-3.dtsi @@ -0,0 +1,41 @@ +/* + * QorIQ GPIO device tree stub [ controller @ offset 0x133000 ] + * + * Copyright 2013 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. + */ + +gpio3: gpio@133000 { +	compatible = "fsl,qoriq-gpio"; +	reg = <0x133000 0x1000>; +	interrupts = <87 2 0 0>; +	#gpio-cells = <2>; +	gpio-controller; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi new file mode 100644 index 00000000000..5f9bf7debe4 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi @@ -0,0 +1,53 @@ +/* + * QorIQ I2C device tree stub [ controller @ offset 0x118000 ] + * + * 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. + */ + +i2c@118000 { +	#address-cells = <1>; +	#size-cells = <0>; +	cell-index = <0>; +	compatible = "fsl-i2c"; +	reg = <0x118000 0x100>; +	interrupts = <38 2 0 0>; +	dfsrr; +}; + +i2c@118100 { +	#address-cells = <1>; +	#size-cells = <0>; +	cell-index = <1>; +	compatible = "fsl-i2c"; +	reg = <0x118100 0x100>; +	interrupts = <38 2 0 0>; +	dfsrr; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi new file mode 100644 index 00000000000..7989bf5eeb5 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi @@ -0,0 +1,53 @@ +/* + * QorIQ I2C device tree stub [ controller @ offset 0x119000 ] + * + * 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. + */ + +i2c@119000 { +	#address-cells = <1>; +	#size-cells = <0>; +	cell-index = <2>; +	compatible = "fsl-i2c"; +	reg = <0x119000 0x100>; +	interrupts = <39 2 0 0>; +	dfsrr; +}; + +i2c@119100 { +	#address-cells = <1>; +	#size-cells = <0>; +	cell-index = <3>; +	compatible = "fsl-i2c"; +	reg = <0x119100 0x100>; +	interrupts = <39 2 0 0>; +	dfsrr; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi new file mode 100644 index 00000000000..08f42271f86 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi @@ -0,0 +1,106 @@ +/* + * QorIQ MPIC device tree stub [ controller @ offset 0x40000 ] + * + * 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. + */ + +mpic: pic@40000 { +	interrupt-controller; +	#address-cells = <0>; +	#interrupt-cells = <4>; +	reg = <0x40000 0x40000>; +	compatible = "fsl,mpic", "chrp,open-pic"; +	device_type = "open-pic"; +	clock-frequency = <0x0>; +}; + +timer@41100 { +	compatible = "fsl,mpic-global-timer"; +	reg = <0x41100 0x100 0x41300 4>; +	interrupts = <0 0 3 0 +		      1 0 3 0 +		      2 0 3 0 +		      3 0 3 0>; +}; + +msi0: msi@41600 { +	compatible = "fsl,mpic-msi"; +	reg = <0x41600 0x200 0x44140 4>; +	msi-available-ranges = <0 0x100>; +	interrupts = < +		0xe0 0 0 0 +		0xe1 0 0 0 +		0xe2 0 0 0 +		0xe3 0 0 0 +		0xe4 0 0 0 +		0xe5 0 0 0 +		0xe6 0 0 0 +		0xe7 0 0 0>; +}; + +msi1: msi@41800 { +	compatible = "fsl,mpic-msi"; +	reg = <0x41800 0x200 0x45140 4>; +	msi-available-ranges = <0 0x100>; +	interrupts = < +		0xe8 0 0 0 +		0xe9 0 0 0 +		0xea 0 0 0 +		0xeb 0 0 0 +		0xec 0 0 0 +		0xed 0 0 0 +		0xee 0 0 0 +		0xef 0 0 0>; +}; + +msi2: msi@41a00 { +	compatible = "fsl,mpic-msi"; +	reg = <0x41a00 0x200 0x46140 4>; +	msi-available-ranges = <0 0x100>; +	interrupts = < +		0xf0 0 0 0 +		0xf1 0 0 0 +		0xf2 0 0 0 +		0xf3 0 0 0 +		0xf4 0 0 0 +		0xf5 0 0 0 +		0xf6 0 0 0 +		0xf7 0 0 0>; +}; + +timer@42100 { +	compatible = "fsl,mpic-global-timer"; +	reg = <0x42100 0x100 0x42300 4>; +	interrupts = <4 0 3 0 +		      5 0 3 0 +		      6 0 3 0 +		      7 0 3 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-mpic4.3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-mpic4.3.dtsi new file mode 100644 index 00000000000..64f713c2482 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-mpic4.3.dtsi @@ -0,0 +1,149 @@ +/* + * QorIQ MPIC device tree stub [ controller @ offset 0x40000 ] + * + * Copyright 2013 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. + */ + +mpic: pic@40000 { +	interrupt-controller; +	#address-cells = <0>; +	#interrupt-cells = <4>; +	reg = <0x40000 0x40000>; +	compatible = "fsl,mpic"; +	device_type = "open-pic"; +	clock-frequency = <0x0>; +}; + +timer@41100 { +	compatible = "fsl,mpic-global-timer"; +	reg = <0x41100 0x100 0x41300 4>; +	interrupts = <0 0 3 0 +		      1 0 3 0 +		      2 0 3 0 +		      3 0 3 0>; +}; + +msi0: msi@41600 { +	compatible = "fsl,mpic-msi-v4.3"; +	reg = <0x41600 0x200 0x44148 4>; +	interrupts = < +		0xe0 0 0 0 +		0xe1 0 0 0 +		0xe2 0 0 0 +		0xe3 0 0 0 +		0xe4 0 0 0 +		0xe5 0 0 0 +		0xe6 0 0 0 +		0xe7 0 0 0 +		0x100 0 0 0 +		0x101 0 0 0 +		0x102 0 0 0 +		0x103 0 0 0 +		0x104 0 0 0 +		0x105 0 0 0 +		0x106 0 0 0 +		0x107 0 0 0>; +}; + +msi1: msi@41800 { +	compatible = "fsl,mpic-msi-v4.3"; +	reg = <0x41800 0x200 0x45148 4>; +	interrupts = < +		0xe8 0 0 0 +		0xe9 0 0 0 +		0xea 0 0 0 +		0xeb 0 0 0 +		0xec 0 0 0 +		0xed 0 0 0 +		0xee 0 0 0 +		0xef 0 0 0 +		0x108 0 0 0 +		0x109 0 0 0 +		0x10a 0 0 0 +		0x10b 0 0 0 +		0x10c 0 0 0 +		0x10d 0 0 0 +		0x10e 0 0 0 +		0x10f 0 0 0>; +}; + +msi2: msi@41a00 { +	compatible = "fsl,mpic-msi-v4.3"; +	reg = <0x41a00 0x200 0x46148 4>; +	interrupts = < +		0xf0 0 0 0 +		0xf1 0 0 0 +		0xf2 0 0 0 +		0xf3 0 0 0 +		0xf4 0 0 0 +		0xf5 0 0 0 +		0xf6 0 0 0 +		0xf7 0 0 0 +		0x110 0 0 0 +		0x111 0 0 0 +		0x112 0 0 0 +		0x113 0 0 0 +		0x114 0 0 0 +		0x115 0 0 0 +		0x116 0 0 0 +		0x117 0 0 0>; +}; + +msi3: msi@41c00 { +	compatible = "fsl,mpic-msi-v4.3"; +	reg = <0x41c00 0x200 0x47148 4>; +	interrupts = < +		0xf8 0 0 0 +		0xf9 0 0 0 +		0xfa 0 0 0 +		0xfb 0 0 0 +		0xfc 0 0 0 +		0xfd 0 0 0 +		0xfe 0 0 0 +		0xff 0 0 0 +		0x118 0 0 0 +		0x119 0 0 0 +		0x11a 0 0 0 +		0x11b 0 0 0 +		0x11c 0 0 0 +		0x11d 0 0 0 +		0x11e 0 0 0 +		0x11f 0 0 0>; +}; + +timer@42100 { +	compatible = "fsl,mpic-global-timer"; +	reg = <0x42100 0x100 0x42300 4>; +	interrupts = <4 0 3 0 +		      5 0 3 0 +		      6 0 3 0 +		      7 0 3 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi new file mode 100644 index 00000000000..8d2e8aa6cf8 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi @@ -0,0 +1,85 @@ +/* + * QorIQ RAID 1.0 device tree stub [ controller @ offset 0x320000 ] + * + * 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. + */ + +raideng: raideng@320000 { +	compatible = "fsl,raideng-v1.0"; +	#address-cells = <1>; +	#size-cells = <1>; +	reg = <0x320000 0x10000>; +	ranges = <0 0x320000 0x10000>; + +	raideng_jq0@1000 { +		compatible = "fsl,raideng-v1.0-job-queue"; +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0x1000 0x1000>; +		ranges = <0x0 0x1000 0x1000>; + +		raideng_jr0: jr@0 { +			compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-hp-ring"; +			reg = <0x0 0x400>; +			interrupts = <139 2 0 0>; +			interrupt-parent = <&mpic>; +		}; + +		raideng_jr1: jr@400 { +			compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-lp-ring"; +			reg = <0x400 0x400>; +			interrupts = <140 2 0 0>; +			interrupt-parent = <&mpic>; +		}; +	}; + +	raideng_jq1@2000 { +		compatible = "fsl,raideng-v1.0-job-queue"; +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0x2000 0x1000>; +		ranges = <0x0 0x2000 0x1000>; + +		raideng_jr2: jr@0 { +			compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-hp-ring"; +			reg = <0x0 0x400>; +			interrupts = <141 2 0 0>; +			interrupt-parent = <&mpic>; +		}; + +		raideng_jr3: jr@400 { +			compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-lp-ring"; +			reg = <0x400 0x400>; +			interrupts = <142 2 0 0>; +			interrupt-parent = <&mpic>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi new file mode 100644 index 00000000000..ca7fec792e5 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi @@ -0,0 +1,68 @@ +/* + * QorIQ RIO Message Unit device tree stub [ controller @ offset 0xd3000 ] + * + * 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. + */ + +rmu: rmu@d3000 { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,srio-rmu"; +	reg = <0xd3000 0x500>; +	ranges = <0x0 0xd3000 0x500>; + +	message-unit@0 { +		compatible = "fsl,srio-msg-unit"; +		reg = <0x0 0x100>; +		interrupts = < +			60 2 0 0  /* msg1_tx_irq */ +			61 2 0 0>;/* msg1_rx_irq */ +	}; +	message-unit@100 { +		compatible = "fsl,srio-msg-unit"; +		reg = <0x100 0x100>; +		interrupts = < +			62 2 0 0  /* msg2_tx_irq */ +			63 2 0 0>;/* msg2_rx_irq */ +	}; +	doorbell-unit@400 { +		compatible = "fsl,srio-dbell-unit"; +		reg = <0x400 0x80>; +		interrupts = < +			56 2 0 0  /* bell_outb_irq */ +			57 2 0 0>;/* bell_inb_irq */ +	}; +	port-write-unit@4e0 { +		compatible = "fsl,srio-port-write-unit"; +		reg = <0x4e0 0x20>; +		interrupts = <16 2 1 11>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi new file mode 100644 index 00000000000..b642047fdec --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi @@ -0,0 +1,39 @@ +/* + * QorIQ SATAv2 device tree stub [ controller @ offset 0x220000 ] + * + * 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. + */ + +sata@220000 { +	compatible = "fsl,pq-sata-v2"; +	reg = <0x220000 0x1000>; +	interrupts = <68 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi new file mode 100644 index 00000000000..c5737025975 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi @@ -0,0 +1,39 @@ +/* + * QorIQ SATAv2 device tree stub [ controller @ offset 0x221000 ] + * + * 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. + */ + +sata@221000 { +	compatible = "fsl,pq-sata-v2"; +	reg = <0x221000 0x1000>; +	interrupts = <69 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi new file mode 100644 index 00000000000..02bee5fcbb9 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi @@ -0,0 +1,101 @@ +/* + * QorIQ Sec/Crypto 4.0 device tree stub [ controller @ offset 0x300000 ] + * + * 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. + */ + +crypto: crypto@300000 { +	compatible = "fsl,sec-v4.0"; +	fsl,sec-era = <1>; +	#address-cells = <1>; +	#size-cells = <1>; +	reg = <0x300000 0x10000>; +	ranges = <0 0x300000 0x10000>; +	interrupts = <92 2 0 0>; + +	sec_jr0: jr@1000 { +		compatible = "fsl,sec-v4.0-job-ring"; +		reg = <0x1000 0x1000>; +		interrupts = <88 2 0 0>; +	}; + +	sec_jr1: jr@2000 { +		compatible = "fsl,sec-v4.0-job-ring"; +		reg = <0x2000 0x1000>; +		interrupts = <89 2 0 0>; +	}; + +	sec_jr2: jr@3000 { +		compatible = "fsl,sec-v4.0-job-ring"; +		reg = <0x3000 0x1000>; +		interrupts = <90 2 0 0>; +	}; + +	sec_jr3: jr@4000 { +		compatible = "fsl,sec-v4.0-job-ring"; +		reg = <0x4000 0x1000>; +		interrupts = <91 2 0 0>; +	}; + +	rtic@6000 { +		compatible = "fsl,sec-v4.0-rtic"; +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0x6000 0x100>; +		ranges = <0x0 0x6100 0xe00>; + +		rtic_a: rtic-a@0 { +			compatible = "fsl,sec-v4.0-rtic-memory"; +			reg = <0x00 0x20 0x100 0x80>; +		}; + +		rtic_b: rtic-b@20 { +			compatible = "fsl,sec-v4.0-rtic-memory"; +			reg = <0x20 0x20 0x200 0x80>; +		}; + +		rtic_c: rtic-c@40 { +			compatible = "fsl,sec-v4.0-rtic-memory"; +			reg = <0x40 0x20 0x300 0x80>; +		}; + +		rtic_d: rtic-d@60 { +			compatible = "fsl,sec-v4.0-rtic-memory"; +			reg = <0x60 0x20 0x500 0x80>; +		}; +	}; +}; + +sec_mon: sec_mon@314000 { +	compatible = "fsl,sec-v4.0-mon"; +	reg = <0x314000 0x1000>; +	interrupts = <93 2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi new file mode 100644 index 00000000000..7f7574e5332 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi @@ -0,0 +1,110 @@ +/* + * QorIQ Sec/Crypto 4.2 device tree stub [ controller @ offset 0x300000 ] + * + * 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. + */ + +crypto: crypto@300000 { +	compatible = "fsl,sec-v4.2", "fsl,sec-v4.0"; +	fsl,sec-era = <3>; +	#address-cells = <1>; +	#size-cells = <1>; +	reg		 = <0x300000 0x10000>; +	ranges		 = <0 0x300000 0x10000>; +	interrupts	 = <92 2 0 0>; + +	sec_jr0: jr@1000 { +		compatible = "fsl,sec-v4.2-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x1000 0x1000>; +		interrupts = <88 2 0 0>; +	}; + +	sec_jr1: jr@2000 { +		compatible = "fsl,sec-v4.2-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x2000 0x1000>; +		interrupts = <89 2 0 0>; +	}; + +	sec_jr2: jr@3000 { +		compatible = "fsl,sec-v4.2-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x3000 0x1000>; +		interrupts = <90 2 0 0>; +	}; + +	sec_jr3: jr@4000 { +		compatible = "fsl,sec-v4.2-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x4000 0x1000>; +		interrupts = <91 2 0 0>; +	}; + +	rtic@6000 { +		compatible = "fsl,sec-v4.2-rtic", +			     "fsl,sec-v4.0-rtic"; +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0x6000 0x100>; +		ranges = <0x0 0x6100 0xe00>; + +		rtic_a: rtic-a@0 { +			compatible = "fsl,sec-v4.2-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x00 0x20 0x100 0x80>; +		}; + +		rtic_b: rtic-b@20 { +			compatible = "fsl,sec-v4.2-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x20 0x20 0x200 0x80>; +		}; + +		rtic_c: rtic-c@40 { +			compatible = "fsl,sec-v4.2-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x40 0x20 0x300 0x80>; +		}; + +		rtic_d: rtic-d@60 { +			compatible = "fsl,sec-v4.2-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x60 0x20 0x500 0x80>; +		}; +	}; +}; + +sec_mon: sec_mon@314000 { +	compatible = "fsl,sec-v4.2-mon", "fsl,sec-v4.0-mon"; +	reg = <0x314000 0x1000>; +	interrupts = <93 2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec5.0-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec5.0-0.dtsi new file mode 100644 index 00000000000..e298efbb0f3 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-sec5.0-0.dtsi @@ -0,0 +1,110 @@ +/* + * QorIQ Sec/Crypto 5.0 device tree stub [ controller @ offset 0x300000 ] + * + * 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. + */ + +crypto: crypto@300000 { +	compatible = "fsl,sec-v5.0", "fsl,sec-v4.0"; +	fsl,sec-era = <5>; +	#address-cells = <1>; +	#size-cells = <1>; +	reg		 = <0x300000 0x10000>; +	ranges		 = <0 0x300000 0x10000>; +	interrupts	 = <92 2 0 0>; + +	sec_jr0: jr@1000 { +		compatible = "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x1000 0x1000>; +		interrupts = <88 2 0 0>; +	}; + +	sec_jr1: jr@2000 { +		compatible = "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x2000 0x1000>; +		interrupts = <89 2 0 0>; +	}; + +	sec_jr2: jr@3000 { +		compatible = "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x3000 0x1000>; +		interrupts = <90 2 0 0>; +	}; + +	sec_jr3: jr@4000 { +		compatible = "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x4000 0x1000>; +		interrupts = <91 2 0 0>; +	}; + +	rtic@6000 { +		compatible = "fsl,sec-v5.0-rtic", +			     "fsl,sec-v4.0-rtic"; +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0x6000 0x100>; +		ranges = <0x0 0x6100 0xe00>; + +		rtic_a: rtic-a@0 { +			compatible = "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x00 0x20 0x100 0x80>; +		}; + +		rtic_b: rtic-b@20 { +			compatible = "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x20 0x20 0x200 0x80>; +		}; + +		rtic_c: rtic-c@40 { +			compatible = "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x40 0x20 0x300 0x80>; +		}; + +		rtic_d: rtic-d@60 { +			compatible = "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x60 0x20 0x500 0x80>; +		}; +	}; +}; + +sec_mon: sec_mon@314000 { +	compatible = "fsl,sec-v5.0-mon", "fsl,sec-v4.0-mon"; +	reg = <0x314000 0x1000>; +	interrupts = <93 2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec5.2-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec5.2-0.dtsi new file mode 100644 index 00000000000..33ff09d52e0 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-sec5.2-0.dtsi @@ -0,0 +1,119 @@ +/* + * QorIQ Sec/Crypto 5.2 device tree stub [ controller @ offset 0x300000 ] + * + * 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: + *     * 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. + */ + +crypto: crypto@300000 { +	compatible = "fsl,sec-v5.2", "fsl,sec-v5.0", "fsl,sec-v4.0"; +	fsl,sec-era = <5>; +	#address-cells = <1>; +	#size-cells = <1>; +	reg		 = <0x300000 0x10000>; +	ranges		 = <0 0x300000 0x10000>; +	interrupts	 = <92 2 0 0>; + +	sec_jr0: jr@1000 { +		compatible = "fsl,sec-v5.2-job-ring", +			     "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x1000 0x1000>; +		interrupts = <88 2 0 0>; +	}; + +	sec_jr1: jr@2000 { +		compatible = "fsl,sec-v5.2-job-ring", +			     "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x2000 0x1000>; +		interrupts = <89 2 0 0>; +	}; + +	sec_jr2: jr@3000 { +		compatible = "fsl,sec-v5.2-job-ring", +			     "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x3000 0x1000>; +		interrupts = <90 2 0 0>; +	}; + +	sec_jr3: jr@4000 { +		compatible = "fsl,sec-v5.2-job-ring", +			     "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x4000 0x1000>; +		interrupts = <91 2 0 0>; +	}; + +	rtic@6000 { +		compatible = "fsl,sec-v5.2-rtic", +			     "fsl,sec-v5.0-rtic", +			     "fsl,sec-v4.0-rtic"; +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0x6000 0x100>; +		ranges = <0x0 0x6100 0xe00>; + +		rtic_a: rtic-a@0 { +			compatible = "fsl,sec-v5.2-rtic-memory", +				     "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x00 0x20 0x100 0x80>; +		}; + +		rtic_b: rtic-b@20 { +			compatible = "fsl,sec-v5.2-rtic-memory", +				     "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x20 0x20 0x200 0x80>; +		}; + +		rtic_c: rtic-c@40 { +			compatible = "fsl,sec-v5.2-rtic-memory", +				     "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x40 0x20 0x300 0x80>; +		}; + +		rtic_d: rtic-d@60 { +			compatible = "fsl,sec-v5.2-rtic-memory", +				     "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x60 0x20 0x500 0x80>; +		}; +	}; +}; + +sec_mon: sec_mon@314000 { +	compatible = "fsl,sec-v5.2-mon", "fsl,sec-v5.0-mon", "fsl,sec-v4.0-mon"; +	reg = <0x314000 0x1000>; +	interrupts = <93 2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec5.3-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec5.3-0.dtsi new file mode 100644 index 00000000000..08778221c19 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-sec5.3-0.dtsi @@ -0,0 +1,119 @@ +/* + * QorIQ Sec/Crypto 5.3 device tree stub [ controller @ offset 0x300000 ] + * + * 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. + */ + +crypto: crypto@300000 { +	compatible = "fsl,sec-v5.3", "fsl,sec-v5.0", "fsl,sec-v4.0"; +	fsl,sec-era = <4>; +	#address-cells = <1>; +	#size-cells = <1>; +	reg		 = <0x300000 0x10000>; +	ranges		 = <0 0x300000 0x10000>; +	interrupts	 = <92 2 0 0>; + +	sec_jr0: jr@1000 { +		compatible = "fsl,sec-v5.3-job-ring", +			     "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x1000 0x1000>; +		interrupts = <88 2 0 0>; +	}; + +	sec_jr1: jr@2000 { +		compatible = "fsl,sec-v5.3-job-ring", +			     "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x2000 0x1000>; +		interrupts = <89 2 0 0>; +	}; + +	sec_jr2: jr@3000 { +		compatible = "fsl,sec-v5.3-job-ring", +			     "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x3000 0x1000>; +		interrupts = <90 2 0 0>; +	}; + +	sec_jr3: jr@4000 { +		compatible = "fsl,sec-v5.3-job-ring", +			     "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg = <0x4000 0x1000>; +		interrupts = <91 2 0 0>; +	}; + +	rtic@6000 { +		compatible = "fsl,sec-v5.3-rtic", +			     "fsl,sec-v5.0-rtic", +			     "fsl,sec-v4.0-rtic"; +		#address-cells = <1>; +		#size-cells = <1>; +		reg = <0x6000 0x100>; +		ranges = <0x0 0x6100 0xe00>; + +		rtic_a: rtic-a@0 { +			compatible = "fsl,sec-v5.3-rtic-memory", +				     "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x00 0x20 0x100 0x80>; +		}; + +		rtic_b: rtic-b@20 { +			compatible = "fsl,sec-v5.3-rtic-memory", +				     "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x20 0x20 0x200 0x80>; +		}; + +		rtic_c: rtic-c@40 { +			compatible = "fsl,sec-v5.3-rtic-memory", +				     "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x40 0x20 0x300 0x80>; +		}; + +		rtic_d: rtic-d@60 { +			compatible = "fsl,sec-v5.3-rtic-memory", +				     "fsl,sec-v5.0-rtic-memory", +				     "fsl,sec-v4.0-rtic-memory"; +			reg = <0x60 0x20 0x500 0x80>; +		}; +	}; +}; + +sec_mon: sec_mon@314000 { +	compatible = "fsl,sec-v5.3-mon", "fsl,sec-v5.0-mon", "fsl,sec-v4.0-mon"; +	reg = <0x314000 0x1000>; +	interrupts = <93 2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec6.0-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec6.0-0.dtsi new file mode 100644 index 00000000000..f75b4f820c3 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-sec6.0-0.dtsi @@ -0,0 +1,56 @@ +/* + * QorIQ Sec/Crypto 6.0 device tree stub + * + * Copyright 2013 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. + */ + +	compatible = "fsl,sec-v6.0"; +	fsl,sec-era = <6>; +	#address-cells = <1>; +	#size-cells = <1>; + +	jr@1000 { +		compatible = "fsl,sec-v6.0-job-ring", +			     "fsl,sec-v5.2-job-ring", +			     "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.4-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg	   = <0x1000 0x1000>; +	}; + +	jr@2000 { +		compatible = "fsl,sec-v6.0-job-ring", +			     "fsl,sec-v5.2-job-ring", +			     "fsl,sec-v5.0-job-ring", +			     "fsl,sec-v4.4-job-ring", +			     "fsl,sec-v4.0-job-ring"; +		reg	   = <0x2000 0x1000>; +	}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi new file mode 100644 index 00000000000..4dd6f84c239 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi @@ -0,0 +1,41 @@ +/* + * QorIQ USB DR device tree stub [ controller @ offset 0x211000 ] + * + * 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. + */ + +usb@211000 { +	compatible = "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr"; +	reg = <0x211000 0x1000>; +	#address-cells = <1>; +	#size-cells = <0>; +	interrupts = <45 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi new file mode 100644 index 00000000000..f053835aa1c --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi @@ -0,0 +1,41 @@ +/* + * QorIQ USB Host device tree stub [ controller @ offset 0x210000 ] + * + * 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. + */ + +usb@210000 { +	compatible = "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph"; +	reg = <0x210000 0x1000>; +	#address-cells = <1>; +	#size-cells = <0>; +	interrupts = <44 0x2 0 0>; +}; diff --git a/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi b/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi new file mode 100644 index 00000000000..12e597eea3c --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi @@ -0,0 +1,430 @@ +/* + * T1040 Silicon/SoC Device Tree Source (post include) + * + * Copyright 2013 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. + */ + +&ifc { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,ifc", "simple-bus"; +	interrupts = <25 2 0 0>; +}; + +&pci0 { +	compatible = "fsl,t1040-pcie", "fsl,qoriq-pcie-v2.4", "fsl,qoriq-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	interrupts = <20 2 0 0>; +	fsl,iommu-parent = <&pamu0>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <20 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 40 1 0 0 +			0000 0 0 2 &mpic 1 1 0 0 +			0000 0 0 3 &mpic 2 1 0 0 +			0000 0 0 4 &mpic 3 1 0 0 +			>; +	}; +}; + +&pci1 { +	compatible = "fsl,t1040-pcie", "fsl,qoriq-pcie-v2.4", "fsl,qoriq-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 0xff>; +	interrupts = <21 2 0 0>; +	fsl,iommu-parent = <&pamu0>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <21 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 41 1 0 0 +			0000 0 0 2 &mpic 5 1 0 0 +			0000 0 0 3 &mpic 6 1 0 0 +			0000 0 0 4 &mpic 7 1 0 0 +			>; +	}; +}; + +&pci2 { +	compatible = "fsl,t1040-pcie", "fsl,qoriq-pcie-v2.4", "fsl,qoriq-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	interrupts = <22 2 0 0>; +	fsl,iommu-parent = <&pamu0>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <22 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 42 1 0 0 +			0000 0 0 2 &mpic 9 1 0 0 +			0000 0 0 3 &mpic 10 1 0 0 +			0000 0 0 4 &mpic 11 1 0 0 +			>; +	}; +}; + +&pci3 { +	compatible = "fsl,t1040-pcie", "fsl,qoriq-pcie-v2.4", "fsl,qoriq-pcie"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	interrupts = <23 2 0 0>; +	fsl,iommu-parent = <&pamu0>; +	pcie@0 { +		reg = <0 0 0 0 0>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		interrupts = <23 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 43 1 0 0 +			0000 0 0 2 &mpic 0 1 0 0 +			0000 0 0 3 &mpic 4 1 0 0 +			0000 0 0 4 &mpic 8 1 0 0 +			>; +	}; +}; + +&dcsr { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,dcsr", "simple-bus"; + +	dcsr-epu@0 { +		compatible = "fsl,t1040-dcsr-epu", "fsl,dcsr-epu"; +		interrupts = <52 2 0 0 +			      84 2 0 0 +			      85 2 0 0>; +		reg = <0x0 0x1000>; +	}; +	dcsr-npc { +		compatible = "fsl,t1040-dcsr-cnpc", "fsl,dcsr-cnpc"; +		reg = <0x1000 0x1000 0x1002000 0x10000>; +	}; +	dcsr-nxc@2000 { +		compatible = "fsl,dcsr-nxc"; +		reg = <0x2000 0x1000>; +	}; +	dcsr-corenet { +		compatible = "fsl,dcsr-corenet"; +		reg = <0x8000 0x1000 0x1A000 0x1000>; +	}; +	dcsr-dpaa@9000 { +		compatible = "fsl,t1040-dcsr-dpaa", "fsl,dcsr-dpaa"; +		reg = <0x9000 0x1000>; +	}; +	dcsr-ocn@11000 { +		compatible = "fsl,t1040-dcsr-ocn", "fsl,dcsr-ocn"; +		reg = <0x11000 0x1000>; +	}; +	dcsr-ddr@12000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr1>; +		reg = <0x12000 0x1000>; +	}; +	dcsr-nal@18000 { +		compatible = "fsl,t1040-dcsr-nal", "fsl,dcsr-nal"; +		reg = <0x18000 0x1000>; +	}; +	dcsr-rcpm@22000 { +		compatible = "fsl,t1040-dcsr-rcpm", "fsl,dcsr-rcpm"; +		reg = <0x22000 0x1000>; +	}; +	dcsr-snpc@30000 { +		compatible = "fsl,t1040-dcsr-snpc", "fsl,dcsr-snpc"; +		reg = <0x30000 0x1000 0x1022000 0x10000>; +	}; +	dcsr-snpc@31000 { +		compatible = "fsl,t1040-dcsr-snpc", "fsl,dcsr-snpc"; +		reg = <0x31000 0x1000 0x1042000 0x10000>; +	}; +	dcsr-cpu-sb-proxy@100000 { +		compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu0>; +		reg = <0x100000 0x1000 0x101000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@108000 { +		compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu1>; +		reg = <0x108000 0x1000 0x109000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@110000 { +		compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu2>; +		reg = <0x110000 0x1000 0x111000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@118000 { +		compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu3>; +		reg = <0x118000 0x1000 0x119000 0x1000>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; + +	soc-sram-error { +		compatible = "fsl,soc-sram-error"; +		interrupts = <16 2 1 29>; +	}; + +	corenet-law@0 { +		compatible = "fsl,corenet-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <16>; +	}; + +	ddr1: memory-controller@8000 { +		compatible = "fsl,qoriq-memory-controller-v5.0", +				"fsl,qoriq-memory-controller"; +		reg = <0x8000 0x1000>; +		interrupts = <16 2 1 23>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,t1040-l3-cache-controller", "cache"; +		reg = <0x10000 0x1000>; +		interrupts = <16 2 1 27>; +	}; + +	corenet-cf@18000 { +		compatible = "fsl,corenet2-cf", "fsl,corenet-cf"; +		reg = <0x18000 0x1000>; +		interrupts = <16 2 1 31>; +		fsl,ccf-num-csdids = <32>; +		fsl,ccf-num-snoopids = <32>; +	}; + +	iommu@20000 { +		compatible = "fsl,pamu-v1.0", "fsl,pamu"; +		reg = <0x20000 0x1000>; +		ranges = <0 0x20000 0x1000>; +		#address-cells = <1>; +		#size-cells = <1>; +		interrupts = < +			24 2 0 0 +			16 2 1 30>; +		pamu0: pamu@0 { +			reg = <0 0x1000>; +			fsl,primary-cache-geometry = <128 1>; +			fsl,secondary-cache-geometry = <16 2>; +		}; +	}; + +/include/ "qoriq-mpic.dtsi" + +	guts: global-utilities@e0000 { +		compatible = "fsl,t1040-device-config", "fsl,qoriq-device-config-2.0"; +		reg = <0xe0000 0xe00>; +		fsl,has-rstcr; +		fsl,liodn-bits = <12>; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,t1040-clockgen", "fsl,qoriq-clockgen-2.0"; +		ranges = <0x0 0xe1000 0x1000>; +		reg = <0xe1000 0x1000>; +		#address-cells = <1>; +		#size-cells = <1>; + +		sysclk: sysclk { +			#clock-cells = <0>; +			compatible = "fsl,qoriq-sysclk-2.0"; +			clock-output-names = "sysclk", "fixed-clock"; +		}; + + +		pll0: pll0@800 { +			#clock-cells = <1>; +			reg = <0x800 4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll0", "pll0-div2", "pll0-div4"; +		}; + +		pll1: pll1@820 { +			#clock-cells = <1>; +			reg = <0x820 4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll1", "pll1-div2", "pll1-div4"; +		}; + +		mux0: mux0@0 { +			#clock-cells = <0>; +			reg = <0x0 4>; +			compatible = "fsl,qoriq-core-mux-2.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>, +				 <&pll1 0>, <&pll1 1>, <&pll1 2>; +			clock-names = "pll0", "pll0-div2", "pll1-div4", +				"pll1", "pll1-div2", "pll1-div4"; +			clock-output-names = "cmux0"; +		}; + +		mux1: mux1@20 { +			#clock-cells = <0>; +			reg = <0x20 4>; +			compatible = "fsl,qoriq-core-mux-2.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>, +				 <&pll1 0>, <&pll1 1>, <&pll1 2>; +			clock-names = "pll0", "pll0-div2", "pll1-div4", +				"pll1", "pll1-div2", "pll1-div4"; +			clock-output-names = "cmux1"; +		}; + +		mux2: mux2@40 { +			#clock-cells = <0>; +			reg = <0x40 4>; +			compatible = "fsl,qoriq-core-mux-2.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>, +				 <&pll1 0>, <&pll1 1>, <&pll1 2>; +			clock-names = "pll0", "pll0-div2", "pll1-div4", +				"pll1", "pll1-div2", "pll1-div4"; +			clock-output-names = "cmux2"; +		}; + +		mux3: mux3@60 { +			#clock-cells = <0>; +			reg = <0x60 4>; +			compatible = "fsl,qoriq-core-mux-2.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>, +				 <&pll1 0>, <&pll1 1>, <&pll1 2>; +			clock-names = "pll0_0", "pll0_1", "pll0_2", +				"pll1_0", "pll1_1", "pll1_2"; +			clock-output-names = "cmux3"; +		}; +	}; + +	rcpm: global-utilities@e2000 { +		compatible = "fsl,t1040-rcpm", "fsl,qoriq-rcpm-2.0"; +		reg = <0xe2000 0x1000>; +	}; + +	sfp: sfp@e8000 { +		compatible = "fsl,t1040-sfp"; +		reg	   = <0xe8000 0x1000>; +	}; + +	serdes: serdes@ea000 { +		compatible = "fsl,t1040-serdes"; +		reg	   = <0xea000 0x4000>; +	}; + +/include/ "elo3-dma-0.dtsi" +/include/ "elo3-dma-1.dtsi" +/include/ "qoriq-espi-0.dtsi" +	spi@110000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "qoriq-esdhc-0.dtsi" +	sdhc@114000 { +		compatible = "fsl,t1040-esdhc", "fsl,esdhc"; +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */ +		sdhci,auto-cmd12; +	}; +/include/ "qoriq-i2c-0.dtsi" +/include/ "qoriq-i2c-1.dtsi" +/include/ "qoriq-duart-0.dtsi" +/include/ "qoriq-duart-1.dtsi" +/include/ "qoriq-gpio-0.dtsi" +/include/ "qoriq-gpio-1.dtsi" +/include/ "qoriq-gpio-2.dtsi" +/include/ "qoriq-gpio-3.dtsi" +/include/ "qoriq-usb2-mph-0.dtsi" +		usb0: usb@210000 { +			compatible = "fsl-usb2-mph-v2.4", "fsl-usb2-mph"; +			fsl,iommu-parent = <&pamu0>; +			fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */ +			phy_type = "utmi"; +			port0; +		}; +/include/ "qoriq-usb2-dr-0.dtsi" +		usb1: usb@211000 { +			compatible = "fsl-usb2-dr-v2.4", "fsl-usb2-dr"; +			fsl,iommu-parent = <&pamu0>; +			fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */ +			dr_mode = "host"; +			phy_type = "utmi"; +		}; + +	display@180000 { +		compatible = "fsl,t1040-diu", "fsl,diu"; +		reg = <0x180000 1000>; +		interrupts = <74 2 0 0>; +	}; + +/include/ "qoriq-sata2-0.dtsi" +	sata@220000 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x550>; /* SATA1LIODNR */ +	}; +/include/ "qoriq-sata2-1.dtsi" +	sata@221000 { +		fsl,iommu-parent = <&pamu0>; +		fsl,liodn-reg = <&guts 0x554>; /* SATA2LIODNR */ +	}; +/include/ "qoriq-sec5.0-0.dtsi" +}; diff --git a/arch/powerpc/boot/dts/fsl/t1042si-post.dtsi b/arch/powerpc/boot/dts/fsl/t1042si-post.dtsi new file mode 100644 index 00000000000..319b74f2972 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/t1042si-post.dtsi @@ -0,0 +1,37 @@ +/* + * T1042 Silicon/SoC Device Tree Source (post include) + * + * Copyright 2013 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/ "t1040si-post.dtsi" + +/* Place holder for ethernet related device tree nodes */ diff --git a/arch/powerpc/boot/dts/fsl/t104xsi-pre.dtsi b/arch/powerpc/boot/dts/fsl/t104xsi-pre.dtsi new file mode 100644 index 00000000000..bbb7025ca9c --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/t104xsi-pre.dtsi @@ -0,0 +1,104 @@ +/* + * T1040/T1042 Silicon/SoC Device Tree Source (pre include) + * + * Copyright 2013 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. + */ + +/dts-v1/; + +/include/ "e5500_power_isa.dtsi" + +/ { +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; +		dcsr = &dcsr; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +		pci3 = &pci3; +		usb0 = &usb0; +		usb1 = &usb1; +		sdhc = &sdhc; + +		crypto = &crypto; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e5500@0 { +			device_type = "cpu"; +			reg = <0>; +			clocks = <&mux0>; +			next-level-cache = <&L2_1>; +			L2_1: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu1: PowerPC,e5500@1 { +			device_type = "cpu"; +			reg = <1>; +			clocks = <&mux1>; +			next-level-cache = <&L2_2>; +			L2_2: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu2: PowerPC,e5500@2 { +			device_type = "cpu"; +			reg = <2>; +			clocks = <&mux2>; +			next-level-cache = <&L2_3>; +			L2_3: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +		cpu3: PowerPC,e5500@3 { +			device_type = "cpu"; +			reg = <3>; +			clocks = <&mux3>; +			next-level-cache = <&L2_4>; +			L2_4: l2-cache { +				next-level-cache = <&cpc>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi b/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi new file mode 100644 index 00000000000..793669baa13 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi @@ -0,0 +1,529 @@ +/* + * T4240 Silicon/SoC Device Tree Source (post include) + * + * 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. + */ + +&ifc { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,ifc", "simple-bus"; +	interrupts = <25 2 0 0>; +}; + +/* controller at 0x240000 */ +&pci0 { +	compatible = "fsl,t4240-pcie", "fsl,qoriq-pcie-v3.0"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	interrupts = <20 2 0 0>; +	pcie@0 { +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		reg = <0 0 0 0 0>; +		interrupts = <20 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 40 1 0 0 +			0000 0 0 2 &mpic 1 1 0 0 +			0000 0 0 3 &mpic 2 1 0 0 +			0000 0 0 4 &mpic 3 1 0 0 +			>; +	}; +}; + +/* controller at 0x250000 */ +&pci1 { +	compatible = "fsl,t4240-pcie", "fsl,qoriq-pcie-v3.0"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0 0xff>; +	interrupts = <21 2 0 0>; +	pcie@0 { +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		reg = <0 0 0 0 0>; +		interrupts = <21 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 41 1 0 0 +			0000 0 0 2 &mpic 5 1 0 0 +			0000 0 0 3 &mpic 6 1 0 0 +			0000 0 0 4 &mpic 7 1 0 0 +			>; +	}; +}; + +/* controller at 0x260000 */ +&pci2 { +	compatible = "fsl,t4240-pcie", "fsl,qoriq-pcie-v3.0"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	interrupts = <22 2 0 0>; +	pcie@0 { +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		reg = <0 0 0 0 0>; +		interrupts = <22 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 42 1 0 0 +			0000 0 0 2 &mpic 9 1 0 0 +			0000 0 0 3 &mpic 10 1 0 0 +			0000 0 0 4 &mpic 11 1 0 0 +			>; +	}; +}; + +/* controller at 0x270000 */ +&pci3 { +	compatible = "fsl,t4240-pcie", "fsl,qoriq-pcie-v3.0"; +	device_type = "pci"; +	#size-cells = <2>; +	#address-cells = <3>; +	bus-range = <0x0 0xff>; +	interrupts = <23 2 0 0>; +	pcie@0 { +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		reg = <0 0 0 0 0>; +		interrupts = <23 2 0 0>; +		interrupt-map-mask = <0xf800 0 0 7>; +		interrupt-map = < +			/* IDSEL 0x0 */ +			0000 0 0 1 &mpic 43 1 0 0 +			0000 0 0 2 &mpic 0 1 0 0 +			0000 0 0 3 &mpic 4 1 0 0 +			0000 0 0 4 &mpic 8 1 0 0 +			>; +	}; +}; + +&rio { +	compatible = "fsl,srio"; +	interrupts = <16 2 1 11>; +	#address-cells = <2>; +	#size-cells = <2>; +	ranges; + +	port1 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <1>; +	}; + +	port2 { +		#address-cells = <2>; +		#size-cells = <2>; +		cell-index = <2>; +	}; +}; + +&dcsr { +	#address-cells = <1>; +	#size-cells = <1>; +	compatible = "fsl,dcsr", "simple-bus"; + +	dcsr-epu@0 { +		compatible = "fsl,t4240-dcsr-epu", "fsl,dcsr-epu"; +		interrupts = <52 2 0 0 +			      84 2 0 0 +			      85 2 0 0 +			      94 2 0 0 +			      95 2 0 0>; +		reg = <0x0 0x1000>; +	}; +	dcsr-npc { +		compatible = "fsl,t4240-dcsr-cnpc", "fsl,dcsr-cnpc"; +		reg = <0x1000 0x1000 0x1002000 0x10000>; +	}; +	dcsr-nxc@2000 { +		compatible = "fsl,dcsr-nxc"; +		reg = <0x2000 0x1000>; +	}; +	dcsr-corenet { +		compatible = "fsl,dcsr-corenet"; +		reg = <0x8000 0x1000 0x1A000 0x1000>; +	}; +	dcsr-dpaa@9000 { +		compatible = "fsl,t4240-dcsr-dpaa", "fsl,dcsr-dpaa"; +		reg = <0x9000 0x1000>; +	}; +	dcsr-ocn@11000 { +		compatible = "fsl,t4240-dcsr-ocn", "fsl,dcsr-ocn"; +		reg = <0x11000 0x1000>; +	}; +	dcsr-ddr@12000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr1>; +		reg = <0x12000 0x1000>; +	}; +	dcsr-ddr@13000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr2>; +		reg = <0x13000 0x1000>; +	}; +	dcsr-ddr@14000 { +		compatible = "fsl,dcsr-ddr"; +		dev-handle = <&ddr3>; +		reg = <0x14000 0x1000>; +	}; +	dcsr-nal@18000 { +		compatible = "fsl,t4240-dcsr-nal", "fsl,dcsr-nal"; +		reg = <0x18000 0x1000>; +	}; +	dcsr-rcpm@22000 { +		compatible = "fsl,t4240-dcsr-rcpm", "fsl,dcsr-rcpm"; +		reg = <0x22000 0x1000>; +	}; +	dcsr-snpc@30000 { +		compatible = "fsl,t4240-dcsr-snpc", "fsl,dcsr-snpc"; +		reg = <0x30000 0x1000 0x1022000 0x10000>; +	}; +	dcsr-snpc@31000 { +		compatible = "fsl,t4240-dcsr-snpc", "fsl,dcsr-snpc"; +		reg = <0x31000 0x1000 0x1042000 0x10000>; +	}; +	dcsr-snpc@32000 { +		compatible = "fsl,t4240-dcsr-snpc", "fsl,dcsr-snpc"; +		reg = <0x32000 0x1000 0x1062000 0x10000>; +	}; +	dcsr-cpu-sb-proxy@100000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu0>; +		reg = <0x100000 0x1000 0x101000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@108000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu1>; +		reg = <0x108000 0x1000 0x109000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@110000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu2>; +		reg = <0x110000 0x1000 0x111000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@118000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu3>; +		reg = <0x118000 0x1000 0x119000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@120000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu4>; +		reg = <0x120000 0x1000 0x121000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@128000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu5>; +		reg = <0x128000 0x1000 0x129000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@130000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu6>; +		reg = <0x130000 0x1000 0x131000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@138000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu7>; +		reg = <0x138000 0x1000 0x139000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@140000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu8>; +		reg = <0x140000 0x1000 0x141000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@148000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu9>; +		reg = <0x148000 0x1000 0x149000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@150000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu10>; +		reg = <0x150000 0x1000 0x151000 0x1000>; +	}; +	dcsr-cpu-sb-proxy@158000 { +		compatible = "fsl,dcsr-e6500-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; +		cpu-handle = <&cpu11>; +		reg = <0x158000 0x1000 0x159000 0x1000>; +	}; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; + +	soc-sram-error { +		compatible = "fsl,soc-sram-error"; +		interrupts = <16 2 1 29>; +	}; + +	corenet-law@0 { +		compatible = "fsl,corenet-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <32>; +	}; + +	ddr1: memory-controller@8000 { +		compatible = "fsl,qoriq-memory-controller-v4.7", +				"fsl,qoriq-memory-controller"; +		reg = <0x8000 0x1000>; +		interrupts = <16 2 1 23>; +	}; + +	ddr2: memory-controller@9000 { +		compatible = "fsl,qoriq-memory-controller-v4.7", +				"fsl,qoriq-memory-controller"; +		reg = <0x9000 0x1000>; +		interrupts = <16 2 1 22>; +	}; + +	ddr3: memory-controller@a000 { +		compatible = "fsl,qoriq-memory-controller-v4.7", +				"fsl,qoriq-memory-controller"; +		reg = <0xa000 0x1000>; +		interrupts = <16 2 1 21>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,t4240-l3-cache-controller", "cache"; +		reg = <0x10000 0x1000 +		       0x11000 0x1000 +		       0x12000 0x1000>; +		interrupts = <16 2 1 27 +			      16 2 1 26 +			      16 2 1 25>; +	}; + +	corenet-cf@18000 { +		compatible = "fsl,corenet2-cf", "fsl,corenet-cf"; +		reg = <0x18000 0x1000>; +		interrupts = <16 2 1 31>; +		fsl,ccf-num-csdids = <32>; +		fsl,ccf-num-snoopids = <32>; +	}; + +	iommu@20000 { +		compatible = "fsl,pamu-v1.0", "fsl,pamu"; +		reg = <0x20000 0x6000>; +		fsl,portid-mapping = <0x8000>; +		interrupts = < +			24 2 0 0 +			16 2 1 30>; +	}; + +/include/ "qoriq-mpic4.3.dtsi" + +	guts: global-utilities@e0000 { +		compatible = "fsl,t4240-device-config", "fsl,qoriq-device-config-2.0"; +		reg = <0xe0000 0xe00>; +		fsl,has-rstcr; +		fsl,liodn-bits = <12>; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,t4240-clockgen", "fsl,qoriq-clockgen-2.0"; +		ranges = <0x0 0xe1000 0x1000>; +		reg = <0xe1000 0x1000>; +		#address-cells = <1>; +		#size-cells = <1>; + +		sysclk: sysclk { +			#clock-cells = <0>; +			compatible = "fsl,qoriq-sysclk-2.0"; +			clock-output-names = "sysclk"; +		}; + +		pll0: pll0@800 { +			#clock-cells = <1>; +			reg = <0x800 0x4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll0", "pll0-div2", "pll0-div4"; +		}; + +		pll1: pll1@820 { +			#clock-cells = <1>; +			reg = <0x820 0x4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll1", "pll1-div2", "pll1-div4"; +		}; + +		pll2: pll2@840 { +			#clock-cells = <1>; +			reg = <0x840 0x4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll2", "pll2-div2", "pll2-div4"; +		}; + +		pll3: pll3@860 { +			#clock-cells = <1>; +			reg = <0x860 0x4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll3", "pll3-div2", "pll3-div4"; +		}; + +		pll4: pll4@880 { +			#clock-cells = <1>; +			reg = <0x880 0x4>; +			compatible = "fsl,qoriq-core-pll-2.0"; +			clocks = <&sysclk>; +			clock-output-names = "pll4", "pll4-div2", "pll4-div4"; +		}; + +		mux0: mux0@0 { +			#clock-cells = <0>; +			reg = <0x0 0x4>; +			compatible = "fsl,qoriq-core-mux-2.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>, +				<&pll1 0>, <&pll1 1>, <&pll1 2>, +				<&pll2 0>, <&pll2 1>, <&pll2 2>; +			clock-names = "pll0", "pll0-div2", "pll0-div4", +				"pll1", "pll1-div2", "pll1-div4", +				"pll2", "pll2-div2", "pll2-div4"; +			clock-output-names = "cmux0"; +		}; + +		mux1: mux1@20 { +			#clock-cells = <0>; +			reg = <0x20 0x4>; +			compatible = "fsl,qoriq-core-mux-2.0"; +			clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>, +				<&pll1 0>, <&pll1 1>, <&pll1 2>, +				<&pll2 0>, <&pll2 1>, <&pll2 2>; +			clock-names = "pll0", "pll0-div2", "pll0-div4", +				"pll1", "pll1-div2", "pll1-div4", +				"pll2", "pll2-div2", "pll2-div4"; +			clock-output-names = "cmux1"; +		}; + +		mux2: mux2@40 { +			#clock-cells = <0>; +			reg = <0x40 0x4>; +			compatible = "fsl,qoriq-core-mux-2.0"; +			clocks = <&pll3 0>, <&pll3 1>, <&pll3 2>, +				<&pll4 0>, <&pll4 1>, <&pll4 2>; +			clock-names = "pll3", "pll3-div2", "pll3-div4", +				"pll4", "pll4-div2", "pll4-div4"; +			clock-output-names = "cmux2"; +		}; +	}; + +	rcpm: global-utilities@e2000 { +		compatible = "fsl,t4240-rcpm", "fsl,qoriq-rcpm-2.0"; +		reg = <0xe2000 0x1000>; +	}; + +	sfp: sfp@e8000 { +		compatible = "fsl,t4240-sfp"; +		reg	   = <0xe8000 0x1000>; +	}; + +	serdes: serdes@ea000 { +		compatible = "fsl,t4240-serdes"; +		reg	   = <0xea000 0x4000>; +	}; + +/include/ "elo3-dma-0.dtsi" +/include/ "elo3-dma-1.dtsi" + +/include/ "qoriq-espi-0.dtsi" +	spi@110000 { +		fsl,espi-num-chipselects = <4>; +	}; + +/include/ "qoriq-esdhc-0.dtsi" +	sdhc@114000 { +		compatible = "fsl,t4240-esdhc", "fsl,esdhc"; +		sdhci,auto-cmd12; +	}; +/include/ "qoriq-i2c-0.dtsi" +/include/ "qoriq-i2c-1.dtsi" +/include/ "qoriq-duart-0.dtsi" +/include/ "qoriq-duart-1.dtsi" +/include/ "qoriq-gpio-0.dtsi" +/include/ "qoriq-gpio-1.dtsi" +/include/ "qoriq-gpio-2.dtsi" +/include/ "qoriq-gpio-3.dtsi" +/include/ "qoriq-usb2-mph-0.dtsi" +		usb0: usb@210000 { +			compatible = "fsl-usb2-mph-v2.4", "fsl-usb2-mph"; +			phy_type = "utmi"; +			port0; +		}; +/include/ "qoriq-usb2-dr-0.dtsi" +		usb1: usb@211000 { +			compatible = "fsl-usb2-dr-v2.4", "fsl-usb2-dr"; +			dr_mode = "host"; +			phy_type = "utmi"; +		}; +/include/ "qoriq-sata2-0.dtsi" +/include/ "qoriq-sata2-1.dtsi" +/include/ "qoriq-sec5.0-0.dtsi" + +	L2_1: l2-cache-controller@c20000 { +		compatible = "fsl,t4240-l2-cache-controller"; +		reg = <0xc20000 0x40000>; +		next-level-cache = <&cpc>; +	}; +	L2_2: l2-cache-controller@c60000 { +		compatible = "fsl,t4240-l2-cache-controller"; +		reg = <0xc60000 0x40000>; +		next-level-cache = <&cpc>; +	}; +	L2_3: l2-cache-controller@ca0000 { +		compatible = "fsl,t4240-l2-cache-controller"; +		reg = <0xca0000 0x40000>; +		next-level-cache = <&cpc>; +	}; +}; diff --git a/arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi b/arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi new file mode 100644 index 00000000000..d2f157edbe8 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi @@ -0,0 +1,152 @@ +/* + * T4240 Silicon/SoC Device Tree Source (pre include) + * + * 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. + */ + +/dts-v1/; + +/include/ "e6500_power_isa.dtsi" + +/ { +	compatible = "fsl,T4240"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; +		dcsr = &dcsr; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		crypto = &crypto; +		pci0 = &pci0; +		pci1 = &pci1; +		pci2 = &pci2; +		pci3 = &pci3; +		dma0 = &dma0; +		dma1 = &dma1; +		sdhc = &sdhc; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e6500@0 { +			device_type = "cpu"; +			reg = <0 1>; +			clocks = <&mux0>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu1: PowerPC,e6500@2 { +			device_type = "cpu"; +			reg = <2 3>; +			clocks = <&mux0>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu2: PowerPC,e6500@4 { +			device_type = "cpu"; +			reg = <4 5>; +			clocks = <&mux0>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu3: PowerPC,e6500@6 { +			device_type = "cpu"; +			reg = <6 7>; +			clocks = <&mux0>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu4: PowerPC,e6500@8 { +			device_type = "cpu"; +			reg = <8 9>; +			clocks = <&mux1>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x40000000>; +		}; +		cpu5: PowerPC,e6500@10 { +			device_type = "cpu"; +			reg = <10 11>; +			clocks = <&mux1>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x40000000>; +		}; +		cpu6: PowerPC,e6500@12 { +			device_type = "cpu"; +			reg = <12 13>; +			clocks = <&mux1>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x40000000>; +		}; +		cpu7: PowerPC,e6500@14 { +			device_type = "cpu"; +			reg = <14 15>; +			clocks = <&mux1>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x40000000>; +		}; +		cpu8: PowerPC,e6500@16 { +			device_type = "cpu"; +			reg = <16 17>; +			clocks = <&mux2>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x20000000>; +		}; +		cpu9: PowerPC,e6500@18 { +			device_type = "cpu"; +			reg = <18 19>; +			clocks = <&mux2>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x20000000>; +		}; +		cpu10: PowerPC,e6500@20 { +			device_type = "cpu"; +			reg = <20 21>; +			clocks = <&mux2>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x20000000>; +		}; +		cpu11: PowerPC,e6500@22 { +			device_type = "cpu"; +			reg = <22 23>; +			clocks = <&mux2>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x20000000>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/ge_imp3a.dts b/arch/powerpc/boot/dts/ge_imp3a.dts new file mode 100644 index 00000000000..fefae416a09 --- /dev/null +++ b/arch/powerpc/boot/dts/ge_imp3a.dts @@ -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" diff --git a/arch/powerpc/boot/dts/gef_ppc9a.dts b/arch/powerpc/boot/dts/gef_ppc9a.dts index 83f4b79dff8..83eb0fda266 100644 --- a/arch/powerpc/boot/dts/gef_ppc9a.dts +++ b/arch/powerpc/boot/dts/gef_ppc9a.dts @@ -269,14 +269,16 @@  		enet0: ethernet@24000 {  			#address-cells = <1>;  			#size-cells = <1>; +			cell-index = <0>;  			device_type = "network"; -			model = "eTSEC"; +			model = "TSEC";  			compatible = "gianfar";  			reg = <0x24000 0x1000>;  			ranges = <0x0 0x24000 0x1000>;  			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>; +			interrupts = <29 2 30  2 34 2>;  			interrupt-parent = <&mpic>; +			tbi-handle = <&tbi0>;  			phy-handle = <&phy0>;  			phy-connection-type = "gmii"; @@ -296,25 +298,46 @@  					interrupts = <0x8 0x4>;  					reg = <3>;  				}; +				tbi0: tbi-phy@11 { +					reg = <0x11>; +					device_type = "tbi-phy"; +				};  			};  		};  		enet1: ethernet@26000 { +			#address-cells = <1>; +			#size-cells = <1>; +			cell-index = <2>;  			device_type = "network"; -			model = "eTSEC"; +			model = "TSEC";  			compatible = "gianfar";  			reg = <0x26000 0x1000>; +			ranges = <0x0 0x26000 0x1000>;  			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <0x1f 0x2 0x20 0x2 0x21 0x2>; +			interrupts = <31 2 32 2 33 2>;  			interrupt-parent = <&mpic>; +			tbi-handle = <&tbi2>;  			phy-handle = <&phy2>;  			phy-connection-type = "gmii"; + +			mdio@520 { +				#address-cells = <1>; +				#size-cells = <0>; +				compatible = "fsl,gianfar-tbi"; +				reg = <0x520 0x20>; + +				tbi2: tbi-phy@11 { +					reg = <0x11>; +					device_type = "tbi-phy"; +				}; +			};  		};  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <0x2a 0x2>; @@ -324,7 +347,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <0x1c 0x2>; diff --git a/arch/powerpc/boot/dts/gef_sbc310.dts b/arch/powerpc/boot/dts/gef_sbc310.dts index fc3a331dd39..d426dd3de9e 100644 --- a/arch/powerpc/boot/dts/gef_sbc310.dts +++ b/arch/powerpc/boot/dts/gef_sbc310.dts @@ -267,14 +267,16 @@  		enet0: ethernet@24000 {  			#address-cells = <1>;  			#size-cells = <1>; +			cell-index = <0>;  			device_type = "network"; -			model = "eTSEC"; +			model = "TSEC";  			compatible = "gianfar";  			reg = <0x24000 0x1000>;  			ranges = <0x0 0x24000 0x1000>;  			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>; +			interrupts = <29 2 30  2 34 2>;  			interrupt-parent = <&mpic>; +			tbi-handle = <&tbi0>;  			phy-handle = <&phy0>;  			phy-connection-type = "gmii"; @@ -294,25 +296,46 @@  					interrupts = <0x8 0x4>;  					reg = <3>;  				}; +				tbi0: tbi-phy@11 { +					reg = <0x11>; +					device_type = "tbi-phy"; +				};  			};  		};  		enet1: ethernet@26000 { +			#address-cells = <1>; +			#size-cells = <1>; +			cell-index = <2>;  			device_type = "network"; -			model = "eTSEC"; +			model = "TSEC";  			compatible = "gianfar";  			reg = <0x26000 0x1000>; +			ranges = <0x0 0x26000 0x1000>;  			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <0x1f 0x2 0x20 0x2 0x21 0x2>; +			interrupts = <31 2 32 2 33 2>;  			interrupt-parent = <&mpic>; +			tbi-handle = <&tbi2>;  			phy-handle = <&phy2>;  			phy-connection-type = "gmii"; + +			mdio@520 { +				#address-cells = <1>; +				#size-cells = <0>; +				compatible = "fsl,gianfar-tbi"; +				reg = <0x520 0x20>; + +				tbi2: tbi-phy@11 { +					reg = <0x11>; +					device_type = "tbi-phy"; +				}; +			};  		};  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <0x2a 0x2>; @@ -322,7 +345,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <0x1c 0x2>; diff --git a/arch/powerpc/boot/dts/gef_sbc610.dts b/arch/powerpc/boot/dts/gef_sbc610.dts index c0671cc9812..5db3399b76b 100644 --- a/arch/powerpc/boot/dts/gef_sbc610.dts +++ b/arch/powerpc/boot/dts/gef_sbc610.dts @@ -267,14 +267,16 @@  		enet0: ethernet@24000 {  			#address-cells = <1>;  			#size-cells = <1>; +			cell-index = <0>;  			device_type = "network"; -			model = "eTSEC"; +			model = "TSEC";  			compatible = "gianfar";  			reg = <0x24000 0x1000>;  			ranges = <0x0 0x24000 0x1000>;  			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>; +			interrupts = <29 2 30  2 34 2>;  			interrupt-parent = <&mpic>; +			tbi-handle = <&tbi0>;  			phy-handle = <&phy0>;  			phy-connection-type = "gmii"; @@ -294,25 +296,46 @@  					interrupts = <0x8 0x4>;  					reg = <3>;  				}; +				tbi0: tbi-phy@11 { +					reg = <0x11>; +					device_type = "tbi-phy"; +				};  			};  		};  		enet1: ethernet@26000 { +			#address-cells = <1>; +			#size-cells = <1>; +			cell-index = <2>;  			device_type = "network"; -			model = "eTSEC"; +			model = "TSEC";  			compatible = "gianfar";  			reg = <0x26000 0x1000>; +			ranges = <0x0 0x26000 0x1000>;  			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <0x1f 0x2 0x20 0x2 0x21 0x2>; +			interrupts = <31 2 32 2 33 2>;  			interrupt-parent = <&mpic>; +			tbi-handle = <&tbi2>;  			phy-handle = <&phy2>;  			phy-connection-type = "gmii"; + +			mdio@520 { +				#address-cells = <1>; +				#size-cells = <0>; +				compatible = "fsl,gianfar-tbi"; +				reg = <0x520 0x20>; + +				tbi2: tbi-phy@11 { +					reg = <0x11>; +					device_type = "tbi-phy"; +				}; +			};  		};  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <0x2a 0x2>; @@ -322,7 +345,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <0x1c 0x2>; diff --git a/arch/powerpc/boot/dts/glacier.dts b/arch/powerpc/boot/dts/glacier.dts index e618fc4cbc9..2000060386d 100644 --- a/arch/powerpc/boot/dts/glacier.dts +++ b/arch/powerpc/boot/dts/glacier.dts @@ -130,12 +130,18 @@  		};  		CRYPTO: crypto@180000 { -			compatible = "amcc,ppc460gt-crypto", "amcc,ppc4xx-crypto"; +			compatible = "amcc,ppc460gt-crypto", "amcc,ppc460ex-crypto", +				"amcc,ppc4xx-crypto";  			reg = <4 0x00180000 0x80400>;  			interrupt-parent = <&UIC0>;  			interrupts = <0x1d 0x4>;  		}; +		HWRNG: hwrng@110000 { +			compatible = "amcc,ppc460ex-rng", "ppc4xx-rng"; +			reg = <4 0x00110000 0x50>; +		}; +  		MAL0: mcmal {  			compatible = "ibm,mcmal-460gt", "ibm,mcmal2";  			dcr-reg = <0x180 0x062>; diff --git a/arch/powerpc/boot/dts/hcu4.dts b/arch/powerpc/boot/dts/hcu4.dts deleted file mode 100644 index 7988598da4c..00000000000 --- a/arch/powerpc/boot/dts/hcu4.dts +++ /dev/null @@ -1,168 +0,0 @@ -/* -* Device Tree Source for Netstal Maschinen HCU4 -* based on the IBM Walnut -* -* Copyright 2008 -* Niklaus Giger <niklaus.giger@member.fsf.org> -* -* Copyright 2007 IBM Corp. -* Josh Boyer <jwboyer@linux.vnet.ibm.com> -* -* This file is licensed under the terms of the GNU General Public -* License version 2.  This program is licensed "as is" without -* any warranty of any kind, whether express or implied. -*/ - -/dts-v1/; - -/ { -	#address-cells = <0x1>; -	#size-cells = <0x1>; -	model = "netstal,hcu4"; -	compatible = "netstal,hcu4"; -	dcr-parent = <0x1>; - -	aliases { -		ethernet0 = "/plb/opb/ethernet@ef600800"; -		serial0 = "/plb/opb/serial@ef600300"; -	}; - -	cpus { -		#address-cells = <0x1>; -		#size-cells = <0x0>; - -		cpu@0 { -			device_type = "cpu"; -			model = "PowerPC,405GPr"; -			reg = <0x0>; -			clock-frequency = <0>;		/* Filled in by U-Boot */ -			timebase-frequency = <0x0>;	/* Filled in by U-Boot */ -			i-cache-line-size = <0x20>; -			d-cache-line-size = <0x20>; -			i-cache-size = <0x4000>; -			d-cache-size = <0x4000>; -			dcr-controller; -			dcr-access-method = "native"; -			linux,phandle = <0x1>; -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <0x0 0x0>;	/* Filled in by U-Boot */ -	}; - -	UIC0: interrupt-controller { -		compatible = "ibm,uic"; -		interrupt-controller; -		cell-index = <0x0>; -		dcr-reg = <0xc0 0x9>; -		#address-cells = <0x0>; -		#size-cells = <0x0>; -		#interrupt-cells = <0x2>; -		linux,phandle = <0x2>; -	}; - -	plb { -		compatible = "ibm,plb3"; -		#address-cells = <0x1>; -		#size-cells = <0x1>; -		ranges; -		clock-frequency = <0x0>;	/* Filled in by U-Boot */ - -		SDRAM0: memory-controller { -			compatible = "ibm,sdram-405gp"; -			dcr-reg = <0x10 0x2>; -		}; - -		MAL: mcmal { -			compatible = "ibm,mcmal-405gp", "ibm,mcmal"; -			dcr-reg = <0x180 0x62>; -			num-tx-chans = <0x1>; -			num-rx-chans = <0x1>; -			interrupt-parent = <0x2>; -			interrupts = <0xb 0x4 0xc 0x4 0xa 0x4 0xd 0x4 0xe 0x4>; -			linux,phandle = <0x3>; -		}; - -		POB0: opb { -			compatible = "ibm,opb-405gp", "ibm,opb"; -			#address-cells = <0x1>; -			#size-cells = <0x1>; -			ranges = <0xef600000 0xef600000 0xa00000>; -			dcr-reg = <0xa0 0x5>; -			clock-frequency = <0x0>;	/* Filled in by U-Boot */ - -			UART0: serial@ef600300 { -				device_type = "serial"; -				compatible = "ns16550"; -				reg = <0xef600300 0x8>; -				virtual-reg = <0xef600300>; -				clock-frequency = <0x0>;/* Filled in by U-Boot */ -				current-speed = <0>;	/* Filled in by U-Boot */ -				interrupt-parent = <0x2>; -				interrupts = <0x0 0x4>; -			}; - -			IIC: i2c@ef600500 { -				compatible = "ibm,iic-405gp", "ibm,iic"; -				reg = <0xef600500 0x11>; -				interrupt-parent = <0x2>; -				interrupts = <0x2 0x4>; -			}; - -			GPIO: gpio@ef600700 { -				compatible = "ibm,gpio-405gp"; -				reg = <0xef600700 0x20>; -			}; - -			EMAC: ethernet@ef600800 { -				device_type = "network"; -				compatible = "ibm,emac-405gp", "ibm,emac"; -				interrupt-parent = <0x2>; -				interrupts = <0xf 0x4 0x9 0x4>; -				local-mac-address = [00 00 00 00 00 00]; -				reg = <0xef600800 0x70>; -				mal-device = <0x3>; -				mal-tx-channel = <0x0>; -				mal-rx-channel = <0x0>; -				cell-index = <0x0>; -				max-frame-size = <0x5dc>; -				rx-fifo-size = <0x1000>; -				tx-fifo-size = <0x800>; -				phy-mode = "rmii"; -				phy-map = <0x1>; -			}; -		}; - -		EBC0: ebc { -			compatible = "ibm,ebc-405gp", "ibm,ebc"; -			dcr-reg = <0x12 0x2>; -			#address-cells = <0x2>; -			#size-cells = <0x1>; -			clock-frequency = <0x0>;	/* Filled in by U-Boot */ - -			sram@0,0 { -				reg = <0x0 0x0 0x80000>; -			}; - -			flash@0,80000 { -				compatible = "jedec-flash"; -				bank-width = <0x1>; -				reg = <0x0 0x80000 0x80000>; -				#address-cells = <0x1>; -				#size-cells = <0x1>; - -				partition@0 { -					label = "OpenBIOS"; -					reg = <0x0 0x80000>; -					read-only; -				}; -			}; -		}; -	}; - -	chosen { -		linux,stdout-path = "/plb/opb/serial@ef600300"; -	}; -}; diff --git a/arch/powerpc/boot/dts/holly.dts b/arch/powerpc/boot/dts/holly.dts index c6e11ebeceb..43e6f0c8e44 100644 --- a/arch/powerpc/boot/dts/holly.dts +++ b/arch/powerpc/boot/dts/holly.dts @@ -58,7 +58,6 @@  		};  		MDIO: mdio@6000 { -			device_type = "mdio";  			compatible = "tsi109-mdio", "tsi108-mdio";  			reg = <0x00006000 0x00000050>;  			#address-cells = <1>; diff --git a/arch/powerpc/boot/dts/hotfoot.dts b/arch/powerpc/boot/dts/hotfoot.dts index cad9c3840af..71d3bb4931d 100644 --- a/arch/powerpc/boot/dts/hotfoot.dts +++ b/arch/powerpc/boot/dts/hotfoot.dts @@ -117,6 +117,8 @@  			};  			IIC: i2c@ef600500 { +				#address-cells = <1>; +				#size-cells = <0>;  				compatible = "ibm,iic-405ep", "ibm,iic";  				reg = <0xef600500 0x00000011>;  				interrupt-parent = <&UIC0>; diff --git a/arch/powerpc/boot/dts/include/dt-bindings b/arch/powerpc/boot/dts/include/dt-bindings new file mode 120000 index 00000000000..08c00e4972f --- /dev/null +++ b/arch/powerpc/boot/dts/include/dt-bindings @@ -0,0 +1 @@ +../../../../../include/dt-bindings
\ No newline at end of file diff --git a/arch/powerpc/boot/dts/katmai.dts b/arch/powerpc/boot/dts/katmai.dts index 7c3be5e4574..f913dbe25d3 100644 --- a/arch/powerpc/boot/dts/katmai.dts +++ b/arch/powerpc/boot/dts/katmai.dts @@ -442,6 +442,24 @@  				0x0 0x0 0x0 0x4 &UIC3 0xb 0x4 /* swizzled int D */>;  		}; +		MSI: ppc4xx-msi@400300000 { +				compatible = "amcc,ppc4xx-msi", "ppc4xx-msi"; +				reg = < 0x4 0x00300000 0x100>; +				sdr-base = <0x3B0>; +				msi-data = <0x00000000>; +				msi-mask = <0x44440000>; +				interrupt-count = <3>; +				interrupts =<0 1 2 3>; +				interrupt-parent = <&UIC0>; +				#interrupt-cells = <1>; +				#address-cells = <0>; +				#size-cells = <0>; +				interrupt-map = <0 &UIC0 0xC 1 +					1 &UIC0 0x0D 1 +					2 &UIC0 0x0E 1 +					3 &UIC0 0x0F 1>; +		}; +  		I2O: i2o@400100000 {  			compatible = "ibm,i2o-440spe";  			reg = <0x00000004 0x00100000 0x100>; diff --git a/arch/powerpc/boot/dts/kilauea.dts b/arch/powerpc/boot/dts/kilauea.dts index 083e68eeaca..5ba7f01e2a2 100644 --- a/arch/powerpc/boot/dts/kilauea.dts +++ b/arch/powerpc/boot/dts/kilauea.dts @@ -82,6 +82,15 @@  		interrupt-parent = <&UIC0>;  	}; +	CPM0: cpm { +		compatible = "ibm,cpm"; +		dcr-access-method = "native"; +		dcr-reg = <0x0b0 0x003>; +		unused-units = <0x00000000>; +		idle-doze = <0x02000000>; +		standby = <0xe3e74800>; +	}; +  	plb {  		compatible = "ibm,plb-405ex", "ibm,plb4";  		#address-cells = <1>; @@ -394,5 +403,33 @@  				0x0 0x0 0x0 0x3 &UIC2 0xd 0x4 /* swizzled int C */  				0x0 0x0 0x0 0x4 &UIC2 0xe 0x4 /* swizzled int D */>;  		}; + +		MSI: ppc4xx-msi@C10000000 { +			compatible = "amcc,ppc4xx-msi", "ppc4xx-msi"; +			reg = <0xEF620000 0x100>; +			sdr-base = <0x4B0>; +			msi-data = <0x00000000>; +			msi-mask = <0x44440000>; +			interrupt-count = <12>; +			interrupts = <0 1 2 3 4 5 6 7 8 9 0xA 0xB 0xC 0xD>; +			interrupt-parent = <&UIC2>; +			#interrupt-cells = <1>; +			#address-cells = <0>; +			#size-cells = <0>; +			interrupt-map = <0 &UIC2 0x10 1 +					1 &UIC2 0x11 1 +					2 &UIC2 0x12 1 +					2 &UIC2 0x13 1 +					2 &UIC2 0x14 1 +					2 &UIC2 0x15 1 +					2 &UIC2 0x16 1 +					2 &UIC2 0x17 1 +					2 &UIC2 0x18 1 +					2 &UIC2 0x19 1 +					2 &UIC2 0x1A 1 +					2 &UIC2 0x1B 1 +					2 &UIC2 0x1C 1 +					3 &UIC2 0x1D 1>; +		};  	};  }; diff --git a/arch/powerpc/boot/dts/klondike.dts b/arch/powerpc/boot/dts/klondike.dts new file mode 100644 index 00000000000..8c942903361 --- /dev/null +++ b/arch/powerpc/boot/dts/klondike.dts @@ -0,0 +1,227 @@ +/* + * Device Tree for Klondike (APM8018X) board. + * + * Copyright (c) 2010, Applied Micro Circuits Corporation + * Author: Tanmay Inamdar <tinamdar@apm.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + */ + +/dts-v1/; + +/ { +	#address-cells = <1>; +	#size-cells = <1>; +	model = "apm,klondike"; +	compatible = "apm,klondike"; +	dcr-parent = <&{/cpus/cpu@0}>; + +	aliases { +		ethernet0 = &EMAC0; +		ethernet1 = &EMAC1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu@0 { +			device_type = "cpu"; +			model = "PowerPC,apm8018x"; +			reg = <0x00000000>; +			clock-frequency = <300000000>; /* Filled in by U-Boot */ +			timebase-frequency = <300000000>; /* Filled in by U-Boot */ +			i-cache-line-size = <32>; +			d-cache-line-size = <32>; +			i-cache-size = <16384>; /* 16 kB */ +			d-cache-size = <16384>; /* 16 kB */ +			dcr-controller; +			dcr-access-method = "native"; +		}; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x00000000 0x20000000>; /* Filled in by U-Boot */ +	}; + +	UIC0: interrupt-controller { +		compatible = "ibm,uic"; +		interrupt-controller; +		cell-index = <0>; +		dcr-reg = <0x0c0 0x010>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +	}; + +	UIC1: interrupt-controller1 { +		compatible = "ibm,uic"; +		interrupt-controller; +		cell-index = <1>; +		dcr-reg = <0x0d0 0x010>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ +		interrupt-parent = <&UIC0>; +	}; + +	UIC2: interrupt-controller2 { +		compatible = "ibm,uic"; +		interrupt-controller; +		cell-index = <2>; +		dcr-reg = <0x0e0 0x010>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +		interrupts = <0x0a 0x4 0x0b 0x4>; /* cascade */ +		interrupt-parent = <&UIC0>; +	}; + +	UIC3: interrupt-controller3 { +		compatible = "ibm,uic"; +		interrupt-controller; +		cell-index = <3>; +		dcr-reg = <0x0f0 0x010>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +		interrupts = <0x10 0x4 0x11 0x4>; /* cascade */ +		interrupt-parent = <&UIC0>; +	}; + +	plb { +		compatible = "ibm,plb4"; +		#address-cells = <1>; +		#size-cells = <1>; +		ranges; +		clock-frequency = <0>; /* Filled in by U-Boot */ + +		SDRAM0: memory-controller { +			compatible = "ibm,sdram-apm8018x"; +			dcr-reg = <0x010 0x002>; +		}; + +		MAL0: mcmal { +			compatible = "ibm,mcmal2"; +			dcr-reg = <0x180 0x062>; +			num-tx-chans = <2>; +			num-rx-chans = <16>; +			#address-cells = <0>; +			#size-cells = <0>; +			interrupt-parent = <&UIC1>; +			interrupts = </*TXEOB*/   0x6 0x4 +					/*RXEOB*/ 0x7 0x4 +					/*SERR*/  0x1 0x4 +					/*TXDE*/  0x2 0x4 +					/*RXDE*/  0x3 0x4>; +		}; + +		POB0: opb { +			compatible = "ibm,opb"; +			#address-cells = <1>; +			#size-cells = <1>; +			ranges = <0x20000000 0x20000000 0x30000000 +				  0x50000000 0x50000000 0x10000000 +				  0x60000000 0x60000000 0x10000000 +				  0xFE000000 0xFE000000 0x00010000>; +			dcr-reg = <0x100 0x020>; +			clock-frequency = <300000000>; /* Filled in by U-Boot */ + +			RGMII0: emac-rgmii@400a2000 { +				compatible = "ibm,rgmii"; +				reg = <0x400a2000 0x00000010>; +				has-mdio; +			}; + +			TAH0: emac-tah@400a3000 { +				compatible = "ibm,tah"; +				reg = <0x400a3000 0x100>; +			}; + +			TAH1: emac-tah@400a4000 { +				compatible = "ibm,tah"; +				reg = <0x400a4000 0x100>; +			}; + +			EMAC0: ethernet@400a0000 { +				compatible = "ibm,emac4", "ibm-emac4sync"; +				interrupt-parent = <&EMAC0>; +				interrupts = <0x0>; +				#interrupt-cells = <1>; +				#address-cells = <0>; +				#size-cells = <0>; +				interrupt-map = </*Status*/ 0x0 &UIC0 0x13 0x4>; +				reg = <0x400a0000 0x00000100>; +				local-mac-address = [000000000000]; /* Filled in by U-Boot */ +				mal-device = <&MAL0>; +				mal-tx-channel = <0x0>; +				mal-rx-channel = <0x0>; +				cell-index = <0>; +				max-frame-size = <9000>; +				rx-fifo-size = <4096>; +				tx-fifo-size = <2048>; +				phy-mode = "rgmii"; +				phy-address = <0x2>; +				turbo = "no"; +				phy-map = <0x00000000>; +				rgmii-device = <&RGMII0>; +				rgmii-channel = <0>; +				tah-device = <&TAH0>; +				tah-channel = <0>; +				has-inverted-stacr-oc; +				has-new-stacr-staopc; +			}; + +			EMAC1: ethernet@400a1000 { +				compatible = "ibm,emac4", "ibm-emac4sync"; +				status = "disabled"; +				interrupt-parent = <&EMAC1>; +				interrupts = <0x0>; +				#interrupt-cells = <1>; +				#address-cells = <0>; +				#size-cells = <0>; +				interrupt-map = </*Status*/ 0x0 &UIC0 0x14 0x4>; +				reg = <0x400a1000 0x00000100>; +				local-mac-address = [000000000000]; /* Filled in by U-Boot */ +				mal-device = <&MAL0>; +				mal-tx-channel = <1>; +				mal-rx-channel = <8>; +				cell-index = <1>; +				max-frame-size = <9000>; +				rx-fifo-size = <4096>; +				tx-fifo-size = <2048>; +				phy-mode = "rgmii"; +				phy-address = <0x3>; +				turbo = "no"; +				phy-map = <0x00000000>; +				rgmii-device = <&RGMII0>; +				rgmii-channel = <1>; +				tah-device = <&TAH1>; +				tah-channel = <0>; +				has-inverted-stacr-oc; +				has-new-stacr-staopc; +				mdio-device = <&EMAC0>; +			}; +		}; +	}; + +	chosen { +		linux,stdout-path = "/plb/opb/serial@50001000"; +	}; +}; diff --git a/arch/powerpc/boot/dts/kmcoge4.dts b/arch/powerpc/boot/dts/kmcoge4.dts new file mode 100644 index 00000000000..89b4119f3b1 --- /dev/null +++ b/arch/powerpc/boot/dts/kmcoge4.dts @@ -0,0 +1,152 @@ +/* + * Keymile kmcoge4 Device Tree Source, based on the P2041RDB DTS + * + * (C) Copyright 2014 + * Valentin Longchamp, Keymile AG, valentin.longchamp@keymile.com + * + * Copyright 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 + * Free Software Foundation;  either version 2 of the  License, or (at your + * option) any later version. + */ + +/include/ "fsl/p2041si-pre.dtsi" + +/ { +	model = "keymile,kmcoge4"; +	compatible = "keymile,kmcoge4", "keymile,kmp204x"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	memory { +		device_type = "memory"; +	}; + +	dcsr: dcsr@f00000000 { +		ranges = <0x00000000 0xf 0x00000000 0x01008000>; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; +		spi@110000 { +			flash@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "spansion,s25fl256s1"; +				reg = <0>; +				spi-max-frequency = <20000000>; /* input clock */ +			}; + +			network_clock@1 { +				compatible = "zarlink,zl30343"; +				reg = <1>; +				spi-max-frequency = <8000000>; +			}; + +			flash@2 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "micron,m25p32"; +				reg = <2>; +				spi-max-frequency = <15000000>; +			}; +		}; + +		i2c@119000 { +			status = "disabled"; +		}; + +		i2c@119100 { +			status = "disabled"; +		}; + +		usb0: usb@210000 { +			status = "disabled"; +		}; + +		usb1: usb@211000 { +			status = "disabled"; +		}; + +		sata@220000 { +			status = "disabled"; +		}; + +		sata@221000 { +			status = "disabled"; +		}; +	}; + +	rio: rapidio@ffe0c0000 { +		status = "disabled"; +	}; + +	lbc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x1000>; +		ranges = <0 0 0xf 0xffa00000 0x00040000		/* LB 0 */ +			  1 0 0xf 0xfb000000 0x00010000		/* LB 1 */ +			  2 0 0xf 0xd0000000 0x10000000		/* LB 2 */ +			  3 0 0xf 0xe0000000 0x10000000>;	/* LB 3 */ + +		nand@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,elbc-fcm-nand"; +			reg = <0 0 0x40000>; +		}; + +		board-control@1,0 { +			compatible = "keymile,qriox"; +			reg = <1 0 0x80>; +		}; + +		chassis-mgmt@3,0 { +			compatible = "keymile,bfticu"; +			interrupt-controller; +			#interrupt-cells = <2>; +			reg = <3 0 0x100>; +			interrupt-parent = <&mpic>; +			interrupts = <6 1 0 0>; +		}; +	}; + +	pci0: pcie@ffe200000 { +		reg = <0xf 0xfe200000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci1: pcie@ffe201000 { +		status = "disabled"; +	}; + +	pci2: pcie@ffe202000 { +		reg = <0xf 0xfe202000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x20000000 0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8010000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; +}; + +/include/ "fsl/p2041si-post.dtsi" diff --git a/arch/powerpc/boot/dts/kmeter1.dts b/arch/powerpc/boot/dts/kmeter1.dts index d8b5d12fb66..983aee18579 100644 --- a/arch/powerpc/boot/dts/kmeter1.dts +++ b/arch/powerpc/boot/dts/kmeter1.dts @@ -1,7 +1,7 @@  /*   * Keymile KMETER1 Device Tree Source   * - * 2008 DENX Software Engineering GmbH + * 2008-2011 DENX Software Engineering GmbH   *   * 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 @@ -70,17 +70,17 @@  			#address-cells = <1>;  			#size-cells = <0>;  			cell-index = <0>; -			compatible = "fsl-i2c"; +			compatible = "fsl,mpc8313-i2c","fsl-i2c";  			reg = <0x3000 0x100>;  			interrupts = <14 0x8>;  			interrupt-parent = <&ipic>; -			dfsrr; +			clock-frequency = <400000>;  		};  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <264000000>;  			interrupts = <9 0x8>; @@ -137,6 +137,13 @@  			compatible = "fsl,mpc8360-par_io";  			num-ports = <7>; +			qe_pio_c: gpio-controller@30 { +				#gpio-cells = <2>; +				compatible = "fsl,mpc8360-qe-pario-bank", +					     "fsl,mpc8323-qe-pario-bank"; +				reg = <0x1430 0x18>; +				gpio-controller; +			};  			pio_ucc1: ucc_pin@0 {  				reg = <0>; @@ -472,7 +479,17 @@  				#address-cells = <0>;  				#interrupt-cells = <1>;  				reg = <0x80 0x80>; -				interrupts = <32 8 33 8>; +				big-endian; +				interrupts = < +					32 0x8 +					33 0x8 +					34 0x8 +					35 0x8 +					40 0x8 +					41 0x8 +					42 0x8 +					43 0x8 +				>;  				interrupt-parent = <&ipic>;  			};  		}; @@ -484,43 +501,31 @@  		compatible = "fsl,mpc8360-localbus", "fsl,pq2pro-localbus",  			     "simple-bus";  		reg = <0xe0005000 0xd8>; -		ranges = <0 0 0xf0000000 0x04000000>;	/* Filled in by U-Boot */ +		ranges = <0 0 0xf0000000 0x04000000	/* LB 0 */ +			  1 0 0xe8000000 0x01000000	/* LB 1 */ +			  3 0 0xa0000000 0x10000000>;	/* LB 3 */ -		flash@f0000000,0 { +		flash@0,0 {  			compatible = "cfi-flash"; -			/* -			 * The Intel P30 chip has 2 non-identical chips on -			 * one die, so we need to define 2 separate regions -			 * that are scanned by physmap_of independantly. -			 */ -			reg = <0 0x00000000 0x02000000 -			       0 0x02000000 0x02000000>;	/* Filled in by U-Boot */ -			bank-width = <2>; +			reg = <0 0 0x04000000>;  			#address-cells = <1>;  			#size-cells = <1>; -			partition@0 { +			bank-width = <2>; +			partition@0 { /* 768KB */  				label = "u-boot"; -				reg = <0 0x40000>; +				reg = <0 0xC0000>;  			}; -			partition@40000 { +			partition@c0000 { /* 128KB */  				label = "env"; -				reg = <0x40000 0x40000>; -			}; -			partition@80000 { -				label = "dtb"; -				reg = <0x80000 0x20000>; -			}; -			partition@a0000 { -				label = "kernel"; -				reg = <0xa0000 0x300000>; +				reg = <0xC0000 0x20000>;  			}; -			partition@3a0000 { -				label = "ramdisk"; -				reg = <0x3a0000 0x800000>; +			partition@e0000 { /* 128KB */ +				label = "envred"; +				reg = <0xE0000 0x20000>;  			}; -			partition@ba0000 { -				label = "user"; -				reg = <0xba0000 0x3460000>; +			partition@100000 { /* 64512KB */ +				label = "ubi0"; +				reg = <0x100000 0x3F00000>;  			};  		};  	}; diff --git a/arch/powerpc/boot/dts/ksi8560.dts b/arch/powerpc/boot/dts/ksi8560.dts index bdb7fc0fa33..5d68236e7c3 100644 --- a/arch/powerpc/boot/dts/ksi8560.dts +++ b/arch/powerpc/boot/dts/ksi8560.dts @@ -161,13 +161,11 @@  				PHY1: ethernet-phy@1 {  					interrupt-parent = <&mpic>;  					reg = <0x1>; -					device_type = "ethernet-phy";  				};  				PHY2: ethernet-phy@2 {  					interrupt-parent = <&mpic>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -284,7 +282,6 @@  				PHY0: ethernet-phy@0 {  					interrupt-parent = <&mpic>;  					reg = <0x0>; -					device_type = "ethernet-phy";  				};  			}; @@ -306,7 +303,7 @@  	localbus@fdf05000 {  		#address-cells = <2>;  		#size-cells = <1>; -		compatible = "fsl,mpc8560-localbus"; +		compatible = "fsl,mpc8560-localbus", "simple-bus";  		reg = <0xfdf05000 0x68>;  		ranges = <0x0 0x0 0xe0000000 0x00800000 diff --git a/arch/powerpc/boot/dts/kuroboxHD.dts b/arch/powerpc/boot/dts/kuroboxHD.dts index 8d725d10882..0a4545159e8 100644 --- a/arch/powerpc/boot/dts/kuroboxHD.dts +++ b/arch/powerpc/boot/dts/kuroboxHD.dts @@ -84,7 +84,7 @@ XXXX add flash parts, rtc, ??  		serial0: serial@80004500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x80004500 0x8>;  			clock-frequency = <97553800>;  			current-speed = <9600>; @@ -95,7 +95,7 @@ XXXX add flash parts, rtc, ??  		serial1: serial@80004600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x80004600 0x8>;  			clock-frequency = <97553800>;  			current-speed = <57600>; diff --git a/arch/powerpc/boot/dts/kuroboxHG.dts b/arch/powerpc/boot/dts/kuroboxHG.dts index b13a11eb81b..0e758b347cd 100644 --- a/arch/powerpc/boot/dts/kuroboxHG.dts +++ b/arch/powerpc/boot/dts/kuroboxHG.dts @@ -84,7 +84,7 @@ XXXX add flash parts, rtc, ??  		serial0: serial@80004500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x80004500 0x8>;  			clock-frequency = <130041000>;  			current-speed = <9600>; @@ -95,7 +95,7 @@ XXXX add flash parts, rtc, ??  		serial1: serial@80004600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x80004600 0x8>;  			clock-frequency = <130041000>;  			current-speed = <57600>; diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts index 59702ace900..5abb46c5cc9 100644 --- a/arch/powerpc/boot/dts/lite5200b.dts +++ b/arch/powerpc/boot/dts/lite5200b.dts @@ -10,256 +10,90 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc5200b.dtsi" + +&gpt0 { fsl,has-wdt; }; +&gpt2 { gpio-controller; }; +&gpt3 { gpio-controller; };  / {  	model = "fsl,lite5200b";  	compatible = "fsl,lite5200b"; -	#address-cells = <1>; -	#size-cells = <1>; -	interrupt-parent = <&mpc5200_pic>; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; -		PowerPC,5200@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <32>; -			i-cache-line-size = <32>; -			d-cache-size = <0x4000>;	// L1, 16K -			i-cache-size = <0x4000>;	// L1, 16K -			timebase-frequency = <0>;	// from bootloader -			bus-frequency = <0>;		// from bootloader -			clock-frequency = <0>;		// from bootloader +	leds { +		compatible = "gpio-leds"; +		tmr2 { +			gpios = <&gpt2 0 1>;  		}; +		tmr3 { +			gpios = <&gpt3 0 1>; +			linux,default-trigger = "heartbeat"; +		}; +		led1 { gpios = <&gpio_wkup 2 1>; }; +		led2 { gpios = <&gpio_simple 3 1>; }; +		led3 { gpios = <&gpio_wkup 3 1>; }; +		led4 { gpios = <&gpio_simple 2 1>; };  	};  	memory { -		device_type = "memory";  		reg = <0x00000000 0x10000000>;	// 256MB  	};  	soc5200@f0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		compatible = "fsl,mpc5200b-immr"; -		ranges = <0 0xf0000000 0x0000c000>; -		reg = <0xf0000000 0x00000100>; -		bus-frequency = <0>;		// from bootloader -		system-frequency = <0>;		// from bootloader - -		cdm@200 { -			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; -			reg = <0x200 0x38>; -		}; - -		mpc5200_pic: interrupt-controller@500 { -			// 5200 interrupts are encoded into two levels; -			interrupt-controller; -			#interrupt-cells = <3>; -			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; -			reg = <0x500 0x80>; -		}; - -		timer@600 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x600 0x10>; -			interrupts = <1 9 0>; -			fsl,has-wdt; -		}; - -		timer@610 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x610 0x10>; -			interrupts = <1 10 0>; -		}; - -		timer@620 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x620 0x10>; -			interrupts = <1 11 0>; -		}; - -		timer@630 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x630 0x10>; -			interrupts = <1 12 0>; -		}; - -		timer@640 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x640 0x10>; -			interrupts = <1 13 0>; -		}; - -		timer@650 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x650 0x10>; -			interrupts = <1 14 0>; -		}; - -		timer@660 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x660 0x10>; -			interrupts = <1 15 0>; -		}; - -		timer@670 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x670 0x10>; -			interrupts = <1 16 0>; -		}; - -		rtc@800 {	// Real time clock -			compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc"; -			reg = <0x800 0x100>; -			interrupts = <1 5 0 1 6 0>; -		}; - -		can@900 { -			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; -			interrupts = <2 17 0>; -			reg = <0x900 0x80>; -		}; - -		can@980 { -			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; -			interrupts = <2 18 0>; -			reg = <0x980 0x80>; -		}; - -		gpio_simple: gpio@b00 { -			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; -			reg = <0xb00 0x40>; -			interrupts = <1 7 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpio_wkup: gpio@c00 { -			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; -			reg = <0xc00 0x40>; -			interrupts = <1 8 0 0 3 0>; -			gpio-controller; -			#gpio-cells = <2>; +		psc@2000 {		// PSC1 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; +			cell-index = <0>;  		}; -		spi@f00 { -			compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; -			reg = <0xf00 0x20>; -			interrupts = <2 13 0 2 14 0>; +		psc@2200 {		// PSC2 +			status = "disabled";  		}; -		usb@1000 { -			compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; -			reg = <0x1000 0xff>; -			interrupts = <2 6 0>; +		psc@2400 {		// PSC3 +			status = "disabled";  		}; -		dma-controller@1200 { -			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; -			reg = <0x1200 0x80>; -			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 -			              3 4 0  3 5 0  3 6 0  3 7 0 -			              3 8 0  3 9 0  3 10 0  3 11 0 -			              3 12 0  3 13 0  3 14 0  3 15 0>; +		psc@2600 {		// PSC4 +			status = "disabled";  		}; -		xlb@1f00 { -			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; -			reg = <0x1f00 0x100>; +		psc@2800 {		// PSC5 +			status = "disabled";  		}; -		serial@2000 {		// PSC1 -			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			cell-index = <0>; -			reg = <0x2000 0x100>; -			interrupts = <2 1 0>; +		psc@2c00 {		// PSC6 +			status = "disabled";  		};  		// PSC2 in ac97 mode example  		//ac97@2200 {		// PSC2  		//	compatible = "fsl,mpc5200b-psc-ac97","fsl,mpc5200-psc-ac97";  		//	cell-index = <1>; -		//	reg = <0x2200 0x100>; -		//	interrupts = <2 2 0>;  		//};  		// PSC3 in CODEC mode example  		//i2s@2400 {		// PSC3  		//	compatible = "fsl,mpc5200b-psc-i2s"; //not 5200 compatible  		//	cell-index = <2>; -		//	reg = <0x2400 0x100>; -		//	interrupts = <2 3 0>; -		//}; - -		// PSC4 in uart mode example -		//serial@2600 {		// PSC4 -		//	compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -		//	cell-index = <3>; -		//	reg = <0x2600 0x100>; -		//	interrupts = <2 11 0>; -		//}; - -		// PSC5 in uart mode example -		//serial@2800 {		// PSC5 -		//	compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -		//	cell-index = <4>; -		//	reg = <0x2800 0x100>; -		//	interrupts = <2 12 0>;  		//};  		// PSC6 in spi mode example  		//spi@2c00 {		// PSC6  		//	compatible = "fsl,mpc5200b-psc-spi","fsl,mpc5200-psc-spi";  		//	cell-index = <5>; -		//	reg = <0x2c00 0x100>; -		//	interrupts = <2 4 0>;  		//};  		ethernet@3000 { -			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; -			reg = <0x3000 0x400>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <2 5 0>;  			phy-handle = <&phy0>;  		};  		mdio@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; -			reg = <0x3000 0x400>;	// fec range, since we need to setup fec interrupts -			interrupts = <2 5 0>;	// these are for "mii command finished", not link changes & co. -  			phy0: ethernet-phy@0 {  				reg = <0>;  			};  		}; -		ata@3a00 { -			compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; -			reg = <0x3a00 0x100>; -			interrupts = <2 7 0>; -		}; - -		i2c@3d00 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d00 0x40>; -			interrupts = <2 15 0>; -		}; -  		i2c@3d40 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d40 0x40>; -			interrupts = <2 16 0>; -  			eeprom@50 {  				compatible = "atmel,24c02";  				reg = <0x50>; @@ -273,12 +107,6 @@  	};  	pci@f0000d00 { -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		device_type = "pci"; -		compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci"; -		reg = <0xf0000d00 0x100>;  		interrupt-map-mask = <0xf800 0 0 7>;  		interrupt-map = <0xc000 0 0 1 &mpc5200_pic 0 0 3 // 1st slot  				 0xc000 0 0 2 &mpc5200_pic 1 1 3 @@ -298,11 +126,6 @@  	};  	localbus { -		compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus"; - -		#address-cells = <2>; -		#size-cells = <1>; -  		ranges = <0 0 0xfe000000 0x02000000>;  		flash@0,0 { diff --git a/arch/powerpc/boot/dts/media5200.dts b/arch/powerpc/boot/dts/media5200.dts index 0c3902bc5b6..b5413cb85f1 100644 --- a/arch/powerpc/boot/dts/media5200.dts +++ b/arch/powerpc/boot/dts/media5200.dts @@ -11,14 +11,13 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc5200b.dtsi" + +&gpt0 { fsl,has-wdt; };  / {  	model = "fsl,media5200";  	compatible = "fsl,media5200"; -	#address-cells = <1>; -	#size-cells = <1>; -	interrupt-parent = <&mpc5200_pic>;  	aliases {  		console = &console; @@ -30,16 +29,7 @@  	};  	cpus { -		#address-cells = <1>; -		#size-cells = <0>; -  		PowerPC,5200@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <32>; -			i-cache-line-size = <32>; -			d-cache-size = <0x4000>;		// L1, 16K -			i-cache-size = <0x4000>;		// L1, 16K  			timebase-frequency = <33000000>;	// 33 MHz, these were configured by U-Boot  			bus-frequency = <132000000>;		// 132 MHz  			clock-frequency = <396000000>;		// 396 MHz @@ -47,205 +37,53 @@  	};  	memory { -		device_type = "memory";  		reg = <0x00000000 0x08000000>;	// 128MB RAM  	}; -	soc@f0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		compatible = "fsl,mpc5200b-immr"; -		ranges = <0 0xf0000000 0x0000c000>; -		reg = <0xf0000000 0x00000100>; +	soc5200@f0000000 {  		bus-frequency = <132000000>;// 132 MHz -		system-frequency = <0>;		// from bootloader - -		cdm@200 { -			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; -			reg = <0x200 0x38>; -		}; - -		mpc5200_pic: interrupt-controller@500 { -			// 5200 interrupts are encoded into two levels; -			interrupt-controller; -			#interrupt-cells = <3>; -			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; -			reg = <0x500 0x80>; -		}; - -		timer@600 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x600 0x10>; -			interrupts = <1 9 0>; -			fsl,has-wdt; -		}; - -		timer@610 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x610 0x10>; -			interrupts = <1 10 0>; -		}; - -		timer@620 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x620 0x10>; -			interrupts = <1 11 0>; -		}; - -		timer@630 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x630 0x10>; -			interrupts = <1 12 0>; -		}; - -		timer@640 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x640 0x10>; -			interrupts = <1 13 0>; -		}; - -		timer@650 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x650 0x10>; -			interrupts = <1 14 0>; -		}; - -		timer@660 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x660 0x10>; -			interrupts = <1 15 0>; -		}; - -		timer@670 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x670 0x10>; -			interrupts = <1 16 0>; -		}; -		rtc@800 {	// Real time clock -			compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc"; -			reg = <0x800 0x100>; -			interrupts = <1 5 0 1 6 0>; +		psc@2000 {	// PSC1 +			status = "disabled";  		}; -		can@900 { -			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; -			interrupts = <2 17 0>; -			reg = <0x900 0x80>; +		psc@2200 {	// PSC2 +			status = "disabled";  		}; -		can@980 { -			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; -			interrupts = <2 18 0>; -			reg = <0x980 0x80>; +		psc@2400 {	// PSC3 +			status = "disabled";  		}; -		gpio_simple: gpio@b00 { -			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; -			reg = <0xb00 0x40>; -			interrupts = <1 7 0>; -			gpio-controller; -			#gpio-cells = <2>; +		psc@2600 {	// PSC4 +			status = "disabled";  		}; -		gpio_wkup: gpio@c00 { -			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; -			reg = <0xc00 0x40>; -			interrupts = <1 8 0 0 3 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		spi@f00 { -			compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; -			reg = <0xf00 0x20>; -			interrupts = <2 13 0 2 14 0>; -		}; - -		usb@1000 { -			compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; -			reg = <0x1000 0x100>; -			interrupts = <2 6 0>; -		}; - -		dma-controller@1200 { -			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; -			reg = <0x1200 0x80>; -			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 -			              3 4 0  3 5 0  3 6 0  3 7 0 -			              3 8 0  3 9 0  3 10 0  3 11 0 -			              3 12 0  3 13 0  3 14 0  3 15 0>; -		}; - -		xlb@1f00 { -			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; -			reg = <0x1f00 0x100>; +		psc@2800 {	// PSC5 +			status = "disabled";  		};  		// PSC6 in uart mode -		console: serial@2c00 {		// PSC6 +		console: psc@2c00 {		// PSC6  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			cell-index = <5>; -			port-number = <0>;  // Logical port assignment -			reg = <0x2c00 0x100>; -			interrupts = <2 4 0>;  		}; -		eth0: ethernet@3000 { -			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; -			reg = <0x3000 0x400>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <2 5 0>; +		ethernet@3000 {  			phy-handle = <&phy0>;  		};  		mdio@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; -			reg = <0x3000 0x400>;	// fec range, since we need to setup fec interrupts -			interrupts = <2 5 0>;	// these are for "mii command finished", not link changes & co. -  			phy0: ethernet-phy@0 {  				reg = <0>;  			};  		}; -		ata@3a00 { -			compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; -			reg = <0x3a00 0x100>; -			interrupts = <2 7 0>; -		}; - -		i2c@3d00 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d00 0x40>; -			interrupts = <2 15 0>; -		}; - -		i2c@3d40 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d40 0x40>; -			interrupts = <2 16 0>; -		}; - -		sram@8000 { -			compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; -			reg = <0x8000 0x4000>; +		usb@1000 { +			reg = <0x1000 0x100>;  		};  	};  	pci@f0000d00 { -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		device_type = "pci"; -		compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci"; -		reg = <0xf0000d00 0x100>;  		interrupt-map-mask = <0xf800 0 0 7>;  		interrupt-map = <0xc000 0 0 1 &media5200_fpga 0 2 // 1st slot  				 0xc000 0 0 2 &media5200_fpga 0 3 @@ -262,37 +100,29 @@  				 0xe000 0 0 1 &media5200_fpga 0 5 // CoralIP  				>; -		clock-frequency = <0>; // From boot loader -		interrupts = <2 8 0 2 9 0 2 10 0>; -		interrupt-parent = <&mpc5200_pic>; -		bus-range = <0 0>;  		ranges = <0x42000000 0 0x80000000 0x80000000 0 0x20000000  			  0x02000000 0 0xa0000000 0xa0000000 0 0x10000000  			  0x01000000 0 0x00000000 0xb0000000 0 0x01000000>; +		interrupt-parent = <&mpc5200_pic>;  	};  	localbus { -		compatible = "fsl,mpc5200b-lpb","simple-bus"; -		#address-cells = <2>; -		#size-cells = <1>; -  		ranges = < 0 0 0xfc000000 0x02000000  			   1 0 0xfe000000 0x02000000  			   2 0 0xf0010000 0x00010000  			   3 0 0xf0020000 0x00010000 >; -  		flash@0,0 {  			compatible = "amd,am29lv28ml", "cfi-flash"; -			reg = <0 0x0 0x2000000>;		// 32 MB -			bank-width = <4>;			// Width in bytes of the flash bank -			device-width = <2>;			// Two devices on each bank +			reg = <0 0x0 0x2000000>;                // 32 MB +			bank-width = <4>;                       // Width in bytes of the flash bank +			device-width = <2>;                     // Two devices on each bank  		};  		flash@1,0 {  			compatible = "amd,am29lv28ml", "cfi-flash"; -			reg = <1 0 0x2000000>;			// 32 MB -			bank-width = <4>;			// Width in bytes of the flash bank -			device-width = <2>;			// Two devices on each bank +			reg = <1 0 0x2000000>;                  // 32 MB +			bank-width = <4>;                       // Width in bytes of the flash bank +			device-width = <2>;                     // Two devices on each bank  		};  		media5200_fpga: fpga@2,0 { diff --git a/arch/powerpc/boot/dts/mgcoge.dts b/arch/powerpc/boot/dts/mgcoge.dts index 0ce96644176..d72fb5e219d 100644 --- a/arch/powerpc/boot/dts/mgcoge.dts +++ b/arch/powerpc/boot/dts/mgcoge.dts @@ -13,7 +13,7 @@  /dts-v1/;  / {  	model = "MGCOGE"; -	compatible = "keymile,mgcoge"; +	compatible = "keymile,km82xx";  	#address-cells = <1>;  	#size-cells = <1>; @@ -48,8 +48,10 @@  		reg = <0xf0010100 0x40>;  		ranges = <0 0 0xfe000000 0x00400000 -			  5 0 0x50000000 0x20000000 -			>; /* Filled in by U-Boot */ +			  1 0 0x30000000 0x00010000 +			  2 0 0x40000000 0x00010000 +			  5 0 0x50000000 0x04000000 +			>;  		flash@0,0 {  			compatible = "cfi-flash"; @@ -60,36 +62,32 @@  			device-width = <1>;  			partition@0 {  				label = "u-boot"; -				reg = <0 0x40000>; +				reg = <0x00000 0xC0000>;  			}; -			partition@40000 { +			partition@1 {  				label = "env"; -				reg = <0x40000 0x20000>; +				reg = <0xC0000 0x20000>;  			}; -			partition@60000 { -				label = "kernel"; -				reg = <0x60000 0x220000>; +			partition@2 { +				label = "envred"; +				reg = <0xE0000 0x20000>;  			}; -			partition@280000 { -				label = "dtb"; -				reg = <0x280000 0x20000>; +			partition@3 { +				label = "free"; +				reg = <0x100000 0x300000>;  			};  		};  		flash@5,0 {  			compatible = "cfi-flash"; -			reg = <5 0x0 0x2000000>; +			reg = <5 0x00000000 0x02000000 +			       5 0x02000000 0x02000000>;  			#address-cells = <1>;  			#size-cells = <1>;  			bank-width = <2>; -			device-width = <2>; -			partition@0 { -				label = "ramdisk"; -				reg = <0 0x7a0000>; -			}; -			partition@7a0000 { -				label = "user"; -				reg = <0x7a0000 0x1860000>; +			partition@app { /* 64 MBytes */ +				label = "ubi0"; +				reg = <0x00000000 0x04000000>;  			};  		};  	}; @@ -215,6 +213,45 @@  				linux,network-index = <2>;  				fsl,cpm-command = <0x16200300>;  			}; + +			usb@11b60 { +				compatible = "fsl,mpc8272-cpm-usb"; +				mode = "peripheral"; +				reg = <0x11b60 0x40 0x8b00 0x100>; +				interrupts = <11 8>; +				interrupt-parent = <&PIC>; +				usb-clock = <5>; +			}; +			spi@11aa0 { +				cell-index = <0>; +				compatible = "fsl,spi", "fsl,cpm2-spi"; +				reg = <0x11a80 0x40 0x89fc 0x2>; +				interrupts = <2 8>; +				interrupt-parent = <&PIC>; +				gpios = < &cpm2_pio_d 19 0>; +				#address-cells = <1>; +				#size-cells = <0>; +				ds3106@1 { +					compatible = "gen,spidev"; +					reg = <0>; +					spi-max-frequency = <8000000>; +				}; +			}; + +		}; + +		cpm2_pio_d: gpio-controller@10d60 { +			#gpio-cells = <2>; +			compatible = "fsl,cpm2-pario-bank"; +			reg = <0x10d60 0x14>; +			gpio-controller; +		}; + +		cpm2_pio_c: gpio-controller@10d40 { +			#gpio-cells = <2>; +			compatible = "fsl,cpm2-pario-bank"; +			reg = <0x10d40 0x14>; +			gpio-controller;  		};  		PIC: interrupt-controller@10c00 { diff --git a/arch/powerpc/boot/dts/mgsuvd.dts b/arch/powerpc/boot/dts/mgsuvd.dts deleted file mode 100644 index e4fc53ab42b..00000000000 --- a/arch/powerpc/boot/dts/mgsuvd.dts +++ /dev/null @@ -1,163 +0,0 @@ -/* - * MGSUVD Device Tree Source - * - * Copyright 2008 DENX Software Engineering GmbH - * Heiko Schocher <hs@denx.de> - * - * 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. - */ - -/dts-v1/; -/ { -	model = "MGSUVD"; -	compatible = "keymile,mgsuvd"; -	#address-cells = <1>; -	#size-cells = <1>; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,852@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <16>; -			i-cache-line-size = <16>; -			d-cache-size = <8192>; -			i-cache-size = <8192>; -			timebase-frequency = <0>;	/* Filled in by u-boot */ -			bus-frequency = <0>;		/* Filled in by u-boot */ -			clock-frequency = <0>;		/* Filled in by u-boot */ -			interrupts = <15 2>;		/* decrementer interrupt */ -			interrupt-parent = <&PIC>; -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <00000000 0x4000000>;  /* Filled in by u-boot */ -	}; - -	localbus@fff00100 { -		compatible = "fsl,mpc852-localbus", "fsl,pq1-localbus", "simple-bus"; -		#address-cells = <2>; -		#size-cells = <1>; -		reg = <0xfff00100 0x40>; - -		ranges = <0 0 0xf0000000 0x01000000>;  /* Filled in by u-boot */ - -		flash@0,0 { -			compatible = "cfi-flash"; -			reg = <0 0 0x1000000>; -			#address-cells = <1>; -			#size-cells = <1>; -			bank-width = <1>; -			device-width = <1>; -			partition@0 { -				label = "u-boot"; -				reg = <0 0x80000>; -			}; -			partition@80000 { -				label = "env"; -				reg = <0x80000 0x20000>; -			}; -			partition@a0000 { -				label = "kernel"; -				reg = <0xa0000 0x1e0000>; -			}; -			partition@280000 { -				label = "dtb"; -				reg = <0x280000 0x20000>; -			}; -			partition@2a0000 { -			        label = "root"; -			        reg = <0x2a0000 0x500000>; -			}; -			partition@7a0000 { -			        label = "user"; -			        reg = <0x7a0000 0x860000>; -			}; -		}; -	}; - -	soc@fff00000 { -		compatible = "fsl,mpc852", "fsl,pq1-soc", "simple-bus"; -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		ranges = <0 0xfff00000 0x00004000>; - -		PIC: interrupt-controller@0 { -			interrupt-controller; -			#interrupt-cells = <2>; -			reg = <0 24>; -			compatible = "fsl,mpc852-pic", "fsl,pq1-pic"; -		}; - -		cpm@9c0 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc852-cpm", "fsl,cpm1", "simple-bus"; -			interrupts = <0>;	/* cpm error interrupt */ -			interrupt-parent = <&CPM_PIC>; -			reg = <0x9c0 10>; -			ranges; - -			muram@2000 { -				compatible = "fsl,cpm-muram"; -				#address-cells = <1>; -				#size-cells = <1>; -				ranges = <0 0x2000 0x2000>; - -				data@0 { -					compatible = "fsl,cpm-muram-data"; -					reg = <0x800 0x1800>; -				}; -			}; - -			brg@9f0 { -				compatible = "fsl,mpc852-brg", -				             "fsl,cpm1-brg", -				             "fsl,cpm-brg"; -				reg = <0x9f0 0x10>; -				clock-frequency = <0>; /* Filled in by u-boot */ -			}; - -			CPM_PIC: interrupt-controller@930 { -				interrupt-controller; -				#interrupt-cells = <1>; -				interrupts = <5 2 0 2>; -				interrupt-parent = <&PIC>; -				reg = <0x930 0x20>; -				compatible = "fsl,cpm1-pic"; -			}; - -			/* MON-1 */ -			serial@a80 { -				device_type = "serial"; -				compatible = "fsl,cpm1-smc-uart"; -				reg = <0xa80 0x10 0x3fc0 0x40>; -				interrupts = <4>; -				interrupt-parent = <&CPM_PIC>; -				fsl,cpm-brg = <1>; -				fsl,cpm-command = <0x0090>; -				current-speed = <0>; /* Filled in by u-boot */ -			}; - -			ethernet@a40 { -				device_type = "network"; -				compatible  = "fsl,mpc866-scc-enet", -				              "fsl,cpm1-scc-enet"; -				reg = <0xa40 0x18 0x3e00 0x100>; -				local-mac-address = [ 00 00 00 00 00 00 ];  /* Filled in by u-boot */ -				interrupts = <28>; -				interrupt-parent = <&CPM_PIC>; -				fsl,cpm-command = <0x80>; -				fixed-link = <0 0 10 0 0>; -			}; -		}; -	}; -}; diff --git a/arch/powerpc/boot/dts/motionpro.dts b/arch/powerpc/boot/dts/motionpro.dts index 6ca4fc144a3..bbabd97492a 100644 --- a/arch/powerpc/boot/dts/motionpro.dts +++ b/arch/powerpc/boot/dts/motionpro.dts @@ -10,219 +10,69 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc5200b.dtsi" + +&gpt0 { fsl,has-wdt; }; +&gpt6 { // Motion-PRO status LED +	compatible = "promess,motionpro-led"; +	label = "motionpro-statusled"; +	blink-delay = <100>; // 100 msec +}; +&gpt7 { // Motion-PRO ready LED +	compatible = "promess,motionpro-led"; +	label = "motionpro-readyled"; +};  / {  	model = "promess,motionpro";  	compatible = "promess,motionpro"; -	#address-cells = <1>; -	#size-cells = <1>; -	interrupt-parent = <&mpc5200_pic>; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,5200@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <32>; -			i-cache-line-size = <32>; -			d-cache-size = <0x4000>;	// L1, 16K -			i-cache-size = <0x4000>;	// L1, 16K -			timebase-frequency = <0>;	// from bootloader -			bus-frequency = <0>;		// from bootloader -			clock-frequency = <0>;		// from bootloader -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <0x00000000 0x04000000>;	// 64MB -	};  	soc5200@f0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		compatible = "fsl,mpc5200b-immr"; -		ranges = <0 0xf0000000 0x0000c000>; -		reg = <0xf0000000 0x00000100>; -		bus-frequency = <0>;		// from bootloader -		system-frequency = <0>;		// from bootloader - -		cdm@200 { -			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; -			reg = <0x200 0x38>; -		}; - -		mpc5200_pic: interrupt-controller@500 { -			// 5200 interrupts are encoded into two levels; -			interrupt-controller; -			#interrupt-cells = <3>; -			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; -			reg = <0x500 0x80>; -		}; - -		timer@600 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x600 0x10>; -			interrupts = <1 9 0>; -			fsl,has-wdt; +		can@900 { +			status = "disabled";  		}; -		timer@610 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x610 0x10>; -			interrupts = <1 10 0>; -		}; - -		timer@620 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x620 0x10>; -			interrupts = <1 11 0>; -		}; - -		timer@630 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x630 0x10>; -			interrupts = <1 12 0>; -		}; - -		timer@640 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x640 0x10>; -			interrupts = <1 13 0>; -		}; - -		timer@650 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x650 0x10>; -			interrupts = <1 14 0>; -		}; - -		motionpro-led@660 {	// Motion-PRO status LED -			compatible = "promess,motionpro-led"; -			label = "motionpro-statusled"; -			reg = <0x660 0x10>; -			interrupts = <1 15 0>; -			blink-delay = <100>; // 100 msec -		}; - -		motionpro-led@670 {	// Motion-PRO ready LED -			compatible = "promess,motionpro-led"; -			label = "motionpro-readyled"; -			reg = <0x670 0x10>; -			interrupts = <1 16 0>; -		}; - -		rtc@800 {	// Real time clock -			compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc"; -			reg = <0x800 0x100>; -			interrupts = <1 5 0 1 6 0>; -		}; - -		can@980 { -			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; -			interrupts = <2 18 0>; -			reg = <0x980 0x80>; -		}; - -		gpio_simple: gpio@b00 { -			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; -			reg = <0xb00 0x40>; -			interrupts = <1 7 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpio_wkup: gpio@c00 { -			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; -			reg = <0xc00 0x40>; -			interrupts = <1 8 0 0 3 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		spi@f00 { -			compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; -			reg = <0xf00 0x20>; -			interrupts = <2 13 0 2 14 0>; +		psc@2000 {		// PSC1 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";  		}; -		usb@1000 { -			compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; -			reg = <0x1000 0xff>; -			interrupts = <2 6 0>; +		// PSC2 in spi master mode  +		psc@2200 {		// PSC2 +			compatible = "fsl,mpc5200b-psc-spi","fsl,mpc5200-psc-spi"; +			cell-index = <1>;  		}; -		dma-controller@1200 { -			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; -			reg = <0x1200 0x80>; -			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 -			              3 4 0  3 5 0  3 6 0  3 7 0 -			              3 8 0  3 9 0  3 10 0  3 11 0 -			              3 12 0  3 13 0  3 14 0  3 15 0>; +		psc@2400 {		// PSC3 +			status = "disabled";  		}; -		xlb@1f00 { -			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; -			reg = <0x1f00 0x100>; +		psc@2600 {		// PSC4 +			status = "disabled";  		}; -		serial@2000 {		// PSC1 +		psc@2800 {		// PSC5  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2000 0x100>; -			interrupts = <2 1 0>;  		}; -		// PSC2 in spi master mode  -		spi@2200 {		// PSC2 -			compatible = "fsl,mpc5200b-psc-spi","fsl,mpc5200-psc-spi"; -			cell-index = <1>; -			reg = <0x2200 0x100>; -			interrupts = <2 2 0>; -		}; - -		// PSC5 in uart mode -		serial@2800 {		// PSC5 -			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2800 0x100>; -			interrupts = <2 12 0>; +		psc@2c00 {		// PSC6 +			status = "disabled";  		};  		ethernet@3000 { -			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; -			reg = <0x3000 0x400>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <2 5 0>;  			phy-handle = <&phy0>;  		};  		mdio@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; -			reg = <0x3000 0x400>;       // fec range, since we need to setup fec interrupts -			interrupts = <2 5 0>;   // these are for "mii command finished", not link changes & co. -  			phy0: ethernet-phy@2 {  				reg = <2>;  			};  		}; -		ata@3a00 { -			compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; -			reg = <0x3a00 0x100>; -			interrupts = <2 7 0>; +		i2c@3d00 { +			status = "disabled";  		};  		i2c@3d40 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d40 0x40>; -			interrupts = <2 16 0>; -  			rtc@68 {  				compatible = "dallas,ds1339";  				reg = <0x68>; @@ -235,10 +85,11 @@  		};  	}; +	pci@f0000d00 { +		status = "disabled"; +	}; +  	localbus { -		compatible = "fsl,mpc5200b-lpb","simple-bus"; -		#address-cells = <2>; -		#size-cells = <1>;  		ranges = <0 0 0xff000000 0x01000000  			  1 0 0x50000000 0x00010000  			  2 0 0x50010000 0x00010000 @@ -280,5 +131,6 @@  			#size-cells = <1>;  			#address-cells = <1>;  		}; +  	};  }; diff --git a/arch/powerpc/boot/dts/mpc5121.dtsi b/arch/powerpc/boot/dts/mpc5121.dtsi new file mode 100644 index 00000000000..2c0e1552d20 --- /dev/null +++ b/arch/powerpc/boot/dts/mpc5121.dtsi @@ -0,0 +1,522 @@ +/* + * base MPC5121 Device Tree Source + * + * Copyright 2007-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 <dt-bindings/clock/mpc512x-clock.h> + +/dts-v1/; + +/ { +	model = "mpc5121"; +	compatible = "fsl,mpc5121"; +	#address-cells = <1>; +	#size-cells = <1>; +        interrupt-parent = <&ipic>; + +	aliases { +		ethernet0 = ð0; +		pci = &pci; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,5121@0 { +			device_type = "cpu"; +			reg = <0>; +			d-cache-line-size = <0x20>;	/* 32 bytes */ +			i-cache-line-size = <0x20>;	/* 32 bytes */ +			d-cache-size = <0x8000>;	/* L1, 32K */ +			i-cache-size = <0x8000>;	/* L1, 32K */ +			timebase-frequency = <49500000>;/* 49.5 MHz (csb/4) */ +			bus-frequency = <198000000>;	/* 198 MHz csb bus */ +			clock-frequency = <396000000>;	/* 396 MHz ppc core */ +		}; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x00000000 0x10000000>;	/* 256MB at 0 */ +	}; + +	mbx@20000000 { +		compatible = "fsl,mpc5121-mbx"; +		reg = <0x20000000 0x4000>; +		interrupts = <66 0x8>; +		clocks = <&clks MPC512x_CLK_MBX_BUS>, +			 <&clks MPC512x_CLK_MBX_3D>, +			 <&clks MPC512x_CLK_MBX>; +		clock-names = "mbx-bus", "mbx-3d", "mbx"; +	}; + +	sram@30000000 { +		compatible = "fsl,mpc5121-sram"; +		reg = <0x30000000 0x20000>;	/* 128K at 0x30000000 */ +	}; + +	nfc@40000000 { +		compatible = "fsl,mpc5121-nfc"; +		reg = <0x40000000 0x100000>;	/* 1M at 0x40000000 */ +		interrupts = <6 8>; +		#address-cells = <1>; +		#size-cells = <1>; +		clocks = <&clks MPC512x_CLK_NFC>; +		clock-names = "ipg"; +	}; + +	localbus@80000020 { +		compatible = "fsl,mpc5121-localbus"; +		#address-cells = <2>; +		#size-cells = <1>; +		reg = <0x80000020 0x40>; +		interrupts = <7 0x8>; +		ranges = <0x0 0x0 0xfc000000 0x04000000>; +	}; + +	clocks { +		#address-cells = <1>; +		#size-cells = <0>; + +		osc: osc { +			compatible = "fixed-clock"; +			#clock-cells = <0>; +			clock-frequency = <33000000>; +		}; +	}; + +	soc@80000000 { +		compatible = "fsl,mpc5121-immr"; +		#address-cells = <1>; +		#size-cells = <1>; +		ranges = <0x0 0x80000000 0x400000>; +		reg = <0x80000000 0x400000>; +		bus-frequency = <66000000>;	/* 66 MHz ips bus */ + + +		/* +		 * IPIC +		 * interrupts cell = <intr #, sense> +		 * sense values match linux IORESOURCE_IRQ_* defines: +		 * sense == 8: Level, low assertion +		 * sense == 2: Edge, high-to-low change +		 */ +		ipic: interrupt-controller@c00 { +			compatible = "fsl,mpc5121-ipic", "fsl,ipic"; +			interrupt-controller; +			#address-cells = <0>; +			#interrupt-cells = <2>; +			reg = <0xc00 0x100>; +		}; + +		/* Watchdog timer */ +		wdt@900 { +			compatible = "fsl,mpc5121-wdt"; +			reg = <0x900 0x100>; +		}; + +		/* Real time clock */ +		rtc@a00 { +			compatible = "fsl,mpc5121-rtc"; +			reg = <0xa00 0x100>; +			interrupts = <79 0x8 80 0x8>; +		}; + +		/* Reset module */ +		reset@e00 { +			compatible = "fsl,mpc5121-reset"; +			reg = <0xe00 0x100>; +		}; + +		/* Clock control */ +		clks: clock@f00 { +			compatible = "fsl,mpc5121-clock"; +			reg = <0xf00 0x100>; +			#clock-cells = <1>; +			clocks = <&osc>; +			clock-names = "osc"; +		}; + +		/* Power Management Controller */ +		pmc@1000{ +			compatible = "fsl,mpc5121-pmc"; +			reg = <0x1000 0x100>; +			interrupts = <83 0x8>; +		}; + +		gpio@1100 { +			compatible = "fsl,mpc5121-gpio"; +			reg = <0x1100 0x100>; +			interrupts = <78 0x8>; +		}; + +		can@1300 { +			compatible = "fsl,mpc5121-mscan"; +			reg = <0x1300 0x80>; +			interrupts = <12 0x8>; +			clocks = <&clks MPC512x_CLK_BDLC>, +				 <&clks MPC512x_CLK_IPS>, +				 <&clks MPC512x_CLK_SYS>, +				 <&clks MPC512x_CLK_REF>, +				 <&clks MPC512x_CLK_MSCAN0_MCLK>; +			clock-names = "ipg", "ips", "sys", "ref", "mclk"; +		}; + +		can@1380 { +			compatible = "fsl,mpc5121-mscan"; +			reg = <0x1380 0x80>; +			interrupts = <13 0x8>; +			clocks = <&clks MPC512x_CLK_BDLC>, +				 <&clks MPC512x_CLK_IPS>, +				 <&clks MPC512x_CLK_SYS>, +				 <&clks MPC512x_CLK_REF>, +				 <&clks MPC512x_CLK_MSCAN1_MCLK>; +			clock-names = "ipg", "ips", "sys", "ref", "mclk"; +		}; + +		sdhc@1500 { +			compatible = "fsl,mpc5121-sdhc"; +			reg = <0x1500 0x100>; +			interrupts = <8 0x8>; +			dmas = <&dma0 30>; +			dma-names = "rx-tx"; +			clocks = <&clks MPC512x_CLK_IPS>, +				 <&clks MPC512x_CLK_SDHC>; +			clock-names = "ipg", "per"; +		}; + +		i2c@1700 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5121-i2c", "fsl-i2c"; +			reg = <0x1700 0x20>; +			interrupts = <9 0x8>; +			clocks = <&clks MPC512x_CLK_I2C>; +			clock-names = "ipg"; +		}; + +		i2c@1720 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5121-i2c", "fsl-i2c"; +			reg = <0x1720 0x20>; +			interrupts = <10 0x8>; +			clocks = <&clks MPC512x_CLK_I2C>; +			clock-names = "ipg"; +		}; + +		i2c@1740 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5121-i2c", "fsl-i2c"; +			reg = <0x1740 0x20>; +			interrupts = <11 0x8>; +			clocks = <&clks MPC512x_CLK_I2C>; +			clock-names = "ipg"; +		}; + +		i2ccontrol@1760 { +			compatible = "fsl,mpc5121-i2c-ctrl"; +			reg = <0x1760 0x8>; +		}; + +		axe@2000 { +			compatible = "fsl,mpc5121-axe"; +			reg = <0x2000 0x100>; +			interrupts = <42 0x8>; +			clocks = <&clks MPC512x_CLK_AXE>; +			clock-names = "ipg"; +		}; + +		display@2100 { +			compatible = "fsl,mpc5121-diu"; +			reg = <0x2100 0x100>; +			interrupts = <64 0x8>; +			clocks = <&clks MPC512x_CLK_DIU>; +			clock-names = "ipg"; +		}; + +		can@2300 { +			compatible = "fsl,mpc5121-mscan"; +			reg = <0x2300 0x80>; +			interrupts = <90 0x8>; +			clocks = <&clks MPC512x_CLK_BDLC>, +				 <&clks MPC512x_CLK_IPS>, +				 <&clks MPC512x_CLK_SYS>, +				 <&clks MPC512x_CLK_REF>, +				 <&clks MPC512x_CLK_MSCAN2_MCLK>; +			clock-names = "ipg", "ips", "sys", "ref", "mclk"; +		}; + +		can@2380 { +			compatible = "fsl,mpc5121-mscan"; +			reg = <0x2380 0x80>; +			interrupts = <91 0x8>; +			clocks = <&clks MPC512x_CLK_BDLC>, +				 <&clks MPC512x_CLK_IPS>, +				 <&clks MPC512x_CLK_SYS>, +				 <&clks MPC512x_CLK_REF>, +				 <&clks MPC512x_CLK_MSCAN3_MCLK>; +			clock-names = "ipg", "ips", "sys", "ref", "mclk"; +		}; + +		viu@2400 { +			compatible = "fsl,mpc5121-viu"; +			reg = <0x2400 0x400>; +			interrupts = <67 0x8>; +			clocks = <&clks MPC512x_CLK_VIU>; +			clock-names = "ipg"; +		}; + +		mdio@2800 { +			compatible = "fsl,mpc5121-fec-mdio"; +			reg = <0x2800 0x800>; +			#address-cells = <1>; +			#size-cells = <0>; +			clocks = <&clks MPC512x_CLK_FEC>; +			clock-names = "per"; +		}; + +		eth0: ethernet@2800 { +			device_type = "network"; +			compatible = "fsl,mpc5121-fec"; +			reg = <0x2800 0x800>; +			local-mac-address = [ 00 00 00 00 00 00 ]; +			interrupts = <4 0x8>; +			clocks = <&clks MPC512x_CLK_FEC>; +			clock-names = "per"; +		}; + +		/* USB1 using external ULPI PHY */ +		usb@3000 { +			compatible = "fsl,mpc5121-usb2-dr"; +			reg = <0x3000 0x600>; +			#address-cells = <1>; +			#size-cells = <0>; +			interrupts = <43 0x8>; +			dr_mode = "otg"; +			phy_type = "ulpi"; +			clocks = <&clks MPC512x_CLK_USB1>; +			clock-names = "ipg"; +		}; + +		/* USB0 using internal UTMI PHY */ +		usb@4000 { +			compatible = "fsl,mpc5121-usb2-dr"; +			reg = <0x4000 0x600>; +			#address-cells = <1>; +			#size-cells = <0>; +			interrupts = <44 0x8>; +			dr_mode = "otg"; +			phy_type = "utmi_wide"; +			clocks = <&clks MPC512x_CLK_USB2>; +			clock-names = "ipg"; +		}; + +		/* IO control */ +		ioctl@a000 { +			compatible = "fsl,mpc5121-ioctl"; +			reg = <0xA000 0x1000>; +		}; + +		/* LocalPlus controller */ +		lpc@10000 { +			compatible = "fsl,mpc5121-lpc"; +			reg = <0x10000 0x200>; +		}; + +		pata@10200 { +			compatible = "fsl,mpc5121-pata"; +			reg = <0x10200 0x100>; +			interrupts = <5 0x8>; +			clocks = <&clks MPC512x_CLK_PATA>; +			clock-names = "ipg"; +		}; + +		/* 512x PSCs are not 52xx PSC compatible */ + +		/* PSC0 */ +		psc@11000 { +			compatible = "fsl,mpc5121-psc"; +			reg = <0x11000 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC0>, +				 <&clks MPC512x_CLK_PSC0_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC1 */ +		psc@11100 { +			compatible = "fsl,mpc5121-psc"; +			reg = <0x11100 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC1>, +				 <&clks MPC512x_CLK_PSC1_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC2 */ +		psc@11200 { +			compatible = "fsl,mpc5121-psc"; +			reg = <0x11200 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC2>, +				 <&clks MPC512x_CLK_PSC2_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC3 */ +		psc@11300 { +			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; +			reg = <0x11300 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC3>, +				 <&clks MPC512x_CLK_PSC3_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC4 */ +		psc@11400 { +			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; +			reg = <0x11400 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC4>, +				 <&clks MPC512x_CLK_PSC4_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC5 */ +		psc@11500 { +			compatible = "fsl,mpc5121-psc"; +			reg = <0x11500 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC5>, +				 <&clks MPC512x_CLK_PSC5_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC6 */ +		psc@11600 { +			compatible = "fsl,mpc5121-psc"; +			reg = <0x11600 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC6>, +				 <&clks MPC512x_CLK_PSC6_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC7 */ +		psc@11700 { +			compatible = "fsl,mpc5121-psc"; +			reg = <0x11700 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC7>, +				 <&clks MPC512x_CLK_PSC7_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC8 */ +		psc@11800 { +			compatible = "fsl,mpc5121-psc"; +			reg = <0x11800 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC8>, +				 <&clks MPC512x_CLK_PSC8_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC9 */ +		psc@11900 { +			compatible = "fsl,mpc5121-psc"; +			reg = <0x11900 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC9>, +				 <&clks MPC512x_CLK_PSC9_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC10 */ +		psc@11a00 { +			compatible = "fsl,mpc5121-psc"; +			reg = <0x11a00 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC10>, +				 <&clks MPC512x_CLK_PSC10_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		/* PSC11 */ +		psc@11b00 { +			compatible = "fsl,mpc5121-psc"; +			reg = <0x11b00 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC11>, +				 <&clks MPC512x_CLK_PSC11_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		pscfifo@11f00 { +			compatible = "fsl,mpc5121-psc-fifo"; +			reg = <0x11f00 0x100>; +			interrupts = <40 0x8>; +			clocks = <&clks MPC512x_CLK_PSC_FIFO>; +			clock-names = "ipg"; +		}; + +		dma0: dma@14000 { +			compatible = "fsl,mpc5121-dma"; +			reg = <0x14000 0x1800>; +			interrupts = <65 0x8>; +		}; +	}; + +	pci: pci@80008500 { +		compatible = "fsl,mpc5121-pci"; +		device_type = "pci"; +		interrupts = <1 0x8>; +		clock-frequency = <0>; +		#address-cells = <3>; +		#size-cells = <2>; +		#interrupt-cells = <1>; +		clocks = <&clks MPC512x_CLK_PCI>; +		clock-names = "ipg"; + +		reg = <0x80008500 0x100	/* internal registers */ +		       0x80008300 0x8>;	/* config space access registers */ +		bus-range = <0x0 0x0>; +		ranges = <0x42000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 +			  0x02000000 0x0 0xb0000000 0xb0000000 0x0 0x10000000 +			  0x01000000 0x0 0x00000000 0x84000000 0x0 0x01000000>; +	}; +}; diff --git a/arch/powerpc/boot/dts/mpc5121ads.dts b/arch/powerpc/boot/dts/mpc5121ads.dts index c9ef6bbe26c..c228a0a232a 100644 --- a/arch/powerpc/boot/dts/mpc5121ads.dts +++ b/arch/powerpc/boot/dts/mpc5121ads.dts @@ -1,7 +1,7 @@  /*   * MPC5121E ADS Device Tree Source   * - * Copyright 2007,2008 Freescale Semiconductor Inc. + * Copyright 2007-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 @@ -9,74 +9,26 @@   * option) any later version.   */ -/dts-v1/; +#include <mpc5121.dtsi>  / {  	model = "mpc5121ads"; -	compatible = "fsl,mpc5121ads"; -	#address-cells = <1>; -	#size-cells = <1>; - -	aliases { -		pci = &pci; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,5121@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <0x20>;	// 32 bytes -			i-cache-line-size = <0x20>;	// 32 bytes -			d-cache-size = <0x8000>;	// L1, 32K -			i-cache-size = <0x8000>;	// L1, 32K -			timebase-frequency = <49500000>;// 49.5 MHz (csb/4) -			bus-frequency = <198000000>;	// 198 MHz csb bus -			clock-frequency = <396000000>;	// 396 MHz ppc core -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <0x00000000 0x10000000>;	// 256MB at 0 -	}; - -	mbx@20000000 { -		compatible = "fsl,mpc5121-mbx"; -		reg = <0x20000000 0x4000>; -		interrupts = <66 0x8>; -		interrupt-parent = < &ipic >; -	}; - -	sram@30000000 { -		compatible = "fsl,mpc5121-sram"; -		reg = <0x30000000 0x20000>;		// 128K at 0x30000000 -	}; +	compatible = "fsl,mpc5121ads", "fsl,mpc5121";  	nfc@40000000 { -		compatible = "fsl,mpc5121-nfc"; -		reg = <0x40000000 0x100000>;	// 1M at 0x40000000 -		interrupts = <6 8>; -		interrupt-parent = < &ipic >; -		#address-cells = <1>; -		#size-cells = <1>; -		// ADS has two Hynix 512MB Nand flash chips in a single -		// stacked package. +		/* +		 * ADS has two Hynix 512MB Nand flash chips in a single +		 * stacked package. +		 */  		chips = <2>; +  		nand@0 {  			label = "nand"; -			reg = <0x00000000 0x40000000>;	// 512MB + 512MB +			reg = <0x00000000 0x40000000>;	/* 512MB + 512MB */  		};  	};  	localbus@80000020 { -		compatible = "fsl,mpc5121-localbus"; -		#address-cells = <2>; -		#size-cells = <1>; -		reg = <0x80000020 0x40>; -  		ranges = <0x0 0x0 0xfc000000 0x04000000  			  0x2 0x0 0x82000000 0x00008000>; @@ -87,6 +39,7 @@  			#size-cells = <1>;  			bank-width = <4>;  			device-width = <2>; +  			protected@0 {  				label = "protected";  				reg = <0x00000000 0x00040000>;  // first sector is protected @@ -121,91 +74,18 @@  			interrupt-controller;  			#interrupt-cells = <2>;  			reg = <0x2 0xa 0x5>; -			interrupt-parent = < &ipic >; -			// irq routing -			//	all irqs but touch screen are routed to irq0 (ipic 48) -			//	touch screen is statically routed to irq1 (ipic 17) -			//	so don't use it here +			/* irq routing: +			 * all irqs but touch screen are routed to irq0 (ipic 48) +			 * touch screen is statically routed to irq1 (ipic 17) +			 * so don't use it here +			 */  			interrupts = <48 0x8>;  		};  	};  	soc@80000000 { -		compatible = "fsl,mpc5121-immr"; -		#address-cells = <1>; -		#size-cells = <1>; -		#interrupt-cells = <2>; -		ranges = <0x0 0x80000000 0x400000>; -		reg = <0x80000000 0x400000>; -		bus-frequency = <66000000>;	// 66 MHz ips bus - - -		// IPIC -		// interrupts cell = <intr #, sense> -		// sense values match linux IORESOURCE_IRQ_* defines: -		// sense == 8: Level, low assertion -		// sense == 2: Edge, high-to-low change -		// -		ipic: interrupt-controller@c00 { -			compatible = "fsl,mpc5121-ipic", "fsl,ipic"; -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0xc00 0x100>; -		}; - -		rtc@a00 {	// Real time clock -			compatible = "fsl,mpc5121-rtc"; -			reg = <0xa00 0x100>; -			interrupts = <79 0x8 80 0x8>; -			interrupt-parent = < &ipic >; -		}; - -		reset@e00 {	// Reset module -			compatible = "fsl,mpc5121-reset"; -			reg = <0xe00 0x100>; -		}; - -		clock@f00 {	// Clock control -			compatible = "fsl,mpc5121-clock"; -			reg = <0xf00 0x100>; -		}; - -		pmc@1000{  //Power Management Controller -			compatible = "fsl,mpc5121-pmc"; -			reg = <0x1000 0x100>; -			interrupts = <83 0x2>; -			interrupt-parent = < &ipic >; -		}; - -		gpio@1100 { -			compatible = "fsl,mpc5121-gpio"; -			reg = <0x1100 0x100>; -			interrupts = <78 0x8>; -			interrupt-parent = < &ipic >; -		}; - -		can@1300 { -			compatible = "fsl,mpc5121-mscan"; -			interrupts = <12 0x8>; -			interrupt-parent = < &ipic >; -			reg = <0x1300 0x80>; -		}; - -		can@1380 { -			compatible = "fsl,mpc5121-mscan"; -			interrupts = <13 0x8>; -			interrupt-parent = < &ipic >; -			reg = <0x1380 0x80>; -		};  		i2c@1700 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5121-i2c", "fsl-i2c"; -			reg = <0x1700 0x20>; -			interrupts = <9 0x8>; -			interrupt-parent = < &ipic >;  			fsl,preserve-clocking;  			hwmon@4a { @@ -224,196 +104,75 @@  			};  		}; -		i2c@1720 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5121-i2c", "fsl-i2c"; -			reg = <0x1720 0x20>; -			interrupts = <10 0x8>; -			interrupt-parent = < &ipic >; -		}; - -		i2c@1740 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5121-i2c", "fsl-i2c"; -			reg = <0x1740 0x20>; -			interrupts = <11 0x8>; -			interrupt-parent = < &ipic >; +		eth0: ethernet@2800 { +			phy-handle = <&phy0>;  		}; -		i2ccontrol@1760 { -			compatible = "fsl,mpc5121-i2c-ctrl"; -			reg = <0x1760 0x8>; +		can@2300 { +			status = "disabled";  		}; -		axe@2000 { -			compatible = "fsl,mpc5121-axe"; -			reg = <0x2000 0x100>; -			interrupts = <42 0x8>; -			interrupt-parent = < &ipic >; +		can@2380 { +			status = "disabled";  		}; -		display@2100 { -			compatible = "fsl,mpc5121-diu"; -			reg = <0x2100 0x100>; -			interrupts = <64 0x8>; -			interrupt-parent = < &ipic >; +		viu@2400 { +			status = "disabled";  		};  		mdio@2800 { -			compatible = "fsl,mpc5121-fec-mdio"; -			reg = <0x2800 0x800>; -			#address-cells = <1>; -			#size-cells = <0>; -			phy: ethernet-phy@0 { +			phy0: ethernet-phy@0 {  				reg = <1>; -				device_type = "ethernet-phy";  			};  		}; -		ethernet@2800 { -			device_type = "network"; -			compatible = "fsl,mpc5121-fec"; -			reg = <0x2800 0x800>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <4 0x8>; -			interrupt-parent = < &ipic >; -			phy-handle = < &phy >; -			fsl,align-tx-packets = <4>; +		/* mpc5121ads only uses USB0 */ +		usb@3000 { +			status = "disabled";  		}; -		// 5121e has two dr usb modules -		// mpc5121_ads only uses USB0 - -		// USB1 using external ULPI PHY -		//usb@3000 { -		//	compatible = "fsl,mpc5121-usb2-dr"; -		//	reg = <0x3000 0x1000>; -		//	#address-cells = <1>; -		//	#size-cells = <0>; -		//	interrupt-parent = < &ipic >; -		//	interrupts = <43 0x8>; -		//	dr_mode = "otg"; -		//	phy_type = "ulpi"; -		//}; - -		// USB0 using internal UTMI PHY +		/* USB0 using internal UTMI PHY */  		usb@4000 { -			compatible = "fsl,mpc5121-usb2-dr"; -			reg = <0x4000 0x1000>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupt-parent = < &ipic >; -			interrupts = <44 0x8>; -			dr_mode = "otg"; -			phy_type = "utmi_wide"; +			dr_mode = "host";  			fsl,invert-drvvbus;  			fsl,invert-pwr-fault;  		}; -		// IO control -		ioctl@a000 { -			compatible = "fsl,mpc5121-ioctl"; -			reg = <0xA000 0x1000>; -		}; - -		pata@10200 { -			compatible = "fsl,mpc5121-pata"; -			reg = <0x10200 0x100>; -			interrupts = <5 0x8>; -			interrupt-parent = < &ipic >; -		}; - -		// 512x PSCs are not 52xx PSC compatible -		// PSC3 serial port A aka ttyPSC0 -		serial@11300 { -			device_type = "serial"; +		/* PSC3 serial port A aka ttyPSC0 */ +		psc@11300 {  			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; -			// Logical port assignment needed until driver -			// learns to use aliases -			port-number = <0>; -			cell-index = <3>; -			reg = <0x11300 0x100>; -			interrupts = <40 0x8>; -			interrupt-parent = < &ipic >; -			rx-fifo-size = <16>; -			tx-fifo-size = <16>;  		}; -		// PSC4 serial port B aka ttyPSC1 -		serial@11400 { -			device_type = "serial"; +		/* PSC4 serial port B aka ttyPSC1 */ +		psc@11400 {  			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; -			// Logical port assignment needed until driver -			// learns to use aliases -			port-number = <1>; -			cell-index = <4>; -			reg = <0x11400 0x100>; -			interrupts = <40 0x8>; -			interrupt-parent = < &ipic >; -			rx-fifo-size = <16>; -			tx-fifo-size = <16>;  		}; -		// PSC5 in ac97 mode -		ac97@11500 { +		/* PSC5 in ac97 mode */ +		ac97: psc@11500 {  			compatible = "fsl,mpc5121-psc-ac97", "fsl,mpc5121-psc"; -			cell-index = <5>; -			reg = <0x11500 0x100>; -			interrupts = <40 0x8>; -			interrupt-parent = < &ipic >;  			fsl,mode = "ac97-slave"; -			rx-fifo-size = <384>; -			tx-fifo-size = <384>; -		}; - -		pscfifo@11f00 { -			compatible = "fsl,mpc5121-psc-fifo"; -			reg = <0x11f00 0x100>; -			interrupts = <40 0x8>; -			interrupt-parent = < &ipic >; +			fsl,rx-fifo-size = <384>; +			fsl,tx-fifo-size = <384>;  		}; - -		dma@14000 { -			compatible = "fsl,mpc5121-dma"; -			reg = <0x14000 0x1800>; -			interrupts = <65 0x8>; -			interrupt-parent = < &ipic >; -		}; -  	};  	pci: pci@80008500 {  		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;  		interrupt-map = < -				// IDSEL 0x15 - Slot 1 PCI +				/* IDSEL 0x15 - Slot 1 PCI */  				 0xa800 0x0 0x0 0x1 &cpld_pic 0x0 0x8  				 0xa800 0x0 0x0 0x2 &cpld_pic 0x1 0x8  				 0xa800 0x0 0x0 0x3 &cpld_pic 0x2 0x8  				 0xa800 0x0 0x0 0x4 &cpld_pic 0x3 0x8 -				// IDSEL 0x16 - Slot 2 MiniPCI +				/* IDSEL 0x16 - Slot 2 MiniPCI */  				 0xb000 0x0 0x0 0x1 &cpld_pic 0x4 0x8  				 0xb000 0x0 0x0 0x2 &cpld_pic 0x5 0x8 -				// IDSEL 0x17 - Slot 3 MiniPCI +				/* IDSEL 0x17 - Slot 3 MiniPCI */  				 0xb800 0x0 0x0 0x1 &cpld_pic 0x6 0x8  				 0xb800 0x0 0x0 0x2 &cpld_pic 0x7 0x8  				>; -		interrupt-parent = < &ipic >; -		interrupts = <1 0x8>; -		bus-range = <0 0>; -		ranges = <0x42000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 -			  0x02000000 0x0 0xb0000000 0xb0000000 0x0 0x10000000 -			  0x01000000 0x0 0x00000000 0x84000000 0x0 0x01000000>; -		clock-frequency = <0>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0x80008500 0x100		/* internal registers */ -		       0x80008300 0x8>;		/* config space access registers */ -		compatible = "fsl,mpc5121-pci"; -		device_type = "pci";  	};  }; diff --git a/arch/powerpc/boot/dts/mpc5125twr.dts b/arch/powerpc/boot/dts/mpc5125twr.dts new file mode 100644 index 00000000000..e4f29747174 --- /dev/null +++ b/arch/powerpc/boot/dts/mpc5125twr.dts @@ -0,0 +1,288 @@ +/* + * STx/Freescale ADS5125 MPC5125 silicon + * + * Copyright (C) 2009 Freescale Semiconductor Inc. All rights reserved. + * + * Reworked by Matteo Facchinetti (engineering@sirius-es.it) + * Copyright (C) 2013 Sirius Electronic Systems + * + * 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 <dt-bindings/clock/mpc512x-clock.h> + +/dts-v1/; + +/ { +	model = "mpc5125twr"; // In BSP "mpc5125ads" +	compatible = "fsl,mpc5125ads", "fsl,mpc5125"; +	#address-cells = <1>; +	#size-cells = <1>; +	interrupt-parent = <&ipic>; + +	aliases { +		gpio0 = &gpio0; +		gpio1 = &gpio1; +		ethernet0 = ð0; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,5125@0 { +			device_type = "cpu"; +			reg = <0>; +			d-cache-line-size = <0x20>;	// 32 bytes +			i-cache-line-size = <0x20>;	// 32 bytes +			d-cache-size = <0x8000>;	// L1, 32K +			i-cache-size = <0x8000>;	// L1, 32K +			timebase-frequency = <49500000>;// 49.5 MHz (csb/4) +			bus-frequency = <198000000>;	// 198 MHz csb bus +			clock-frequency = <396000000>;	// 396 MHz ppc core +		}; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x00000000 0x10000000>;	// 256MB at 0 +	}; + +	sram@30000000 { +		compatible = "fsl,mpc5121-sram"; +		reg = <0x30000000 0x08000>;		// 32K at 0x30000000 +	}; + +	clocks { +		#address-cells = <1>; +		#size-cells = <0>; + +		osc: osc { +			compatible = "fixed-clock"; +			#clock-cells = <0>; +			clock-frequency = <33000000>; +		}; +	}; + +	soc@80000000 { +		compatible = "fsl,mpc5121-immr"; +		#address-cells = <1>; +		#size-cells = <1>; +		ranges = <0x0 0x80000000 0x400000>; +		reg = <0x80000000 0x400000>; +		bus-frequency = <66000000>;	// 66 MHz ips bus + +		// IPIC +		// interrupts cell = <intr #, sense> +		// sense values match linux IORESOURCE_IRQ_* defines: +		// sense == 8: Level, low assertion +		// sense == 2: Edge, high-to-low change +		// +		ipic: interrupt-controller@c00 { +			compatible = "fsl,mpc5121-ipic", "fsl,ipic"; +			interrupt-controller; +			#address-cells = <0>; +			#interrupt-cells = <2>; +			reg = <0xc00 0x100>; +		}; + +		rtc@a00 {	// Real time clock +			compatible = "fsl,mpc5121-rtc"; +			reg = <0xa00 0x100>; +			interrupts = <79 0x8 80 0x8>; +		}; + +		reset@e00 {	// Reset module +			compatible = "fsl,mpc5125-reset"; +			reg = <0xe00 0x100>; +		}; + +		clks: clock@f00 {	// Clock control +			compatible = "fsl,mpc5121-clock"; +			reg = <0xf00 0x100>; +			#clock-cells = <1>; +			clocks = <&osc>; +			clock-names = "osc"; +		}; + +		pmc@1000{  // Power Management Controller +			compatible = "fsl,mpc5121-pmc"; +			reg = <0x1000 0x100>; +			interrupts = <83 0x2>; +		}; + +		gpio0: gpio@1100 { +			compatible = "fsl,mpc5125-gpio"; +			reg = <0x1100 0x080>; +			interrupts = <78 0x8>; +		}; + +		gpio1: gpio@1180 { +			compatible = "fsl,mpc5125-gpio"; +			reg = <0x1180 0x080>; +			interrupts = <86 0x8>; +		}; + +		can@1300 { // CAN rev.2 +			compatible = "fsl,mpc5121-mscan"; +			interrupts = <12 0x8>; +			reg = <0x1300 0x80>; +			clocks = <&clks MPC512x_CLK_BDLC>, +				 <&clks MPC512x_CLK_IPS>, +				 <&clks MPC512x_CLK_SYS>, +				 <&clks MPC512x_CLK_REF>, +				 <&clks MPC512x_CLK_MSCAN0_MCLK>; +			clock-names = "ipg", "ips", "sys", "ref", "mclk"; +		}; + +		can@1380 { +			compatible = "fsl,mpc5121-mscan"; +			interrupts = <13 0x8>; +			reg = <0x1380 0x80>; +			clocks = <&clks MPC512x_CLK_BDLC>, +				 <&clks MPC512x_CLK_IPS>, +				 <&clks MPC512x_CLK_SYS>, +				 <&clks MPC512x_CLK_REF>, +				 <&clks MPC512x_CLK_MSCAN1_MCLK>; +			clock-names = "ipg", "ips", "sys", "ref", "mclk"; +		}; + +		sdhc@1500 { +			compatible = "fsl,mpc5121-sdhc"; +			interrupts = <8 0x8>; +			reg = <0x1500 0x100>; +			clocks = <&clks MPC512x_CLK_IPS>, +				 <&clks MPC512x_CLK_SDHC>; +			clock-names = "ipg", "per"; +		}; + +		i2c@1700 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5121-i2c", "fsl-i2c"; +			reg = <0x1700 0x20>; +			interrupts = <0x9 0x8>; +			clocks = <&clks MPC512x_CLK_I2C>; +			clock-names = "ipg"; +		}; + +		i2c@1720 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5121-i2c", "fsl-i2c"; +			reg = <0x1720 0x20>; +			interrupts = <0xa 0x8>; +			clocks = <&clks MPC512x_CLK_I2C>; +			clock-names = "ipg"; +		}; + +		i2c@1740 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5121-i2c", "fsl-i2c"; +			reg = <0x1740 0x20>; +			interrupts = <0xb 0x8>; +			clocks = <&clks MPC512x_CLK_I2C>; +			clock-names = "ipg"; +		}; + +		i2ccontrol@1760 { +			compatible = "fsl,mpc5121-i2c-ctrl"; +			reg = <0x1760 0x8>; +		}; + +		diu@2100 { +			compatible = "fsl,mpc5121-diu"; +			reg = <0x2100 0x100>; +			interrupts = <64 0x8>; +			clocks = <&clks MPC512x_CLK_DIU>; +			clock-names = "ipg"; +		}; + +		mdio@2800 { +			compatible = "fsl,mpc5121-fec-mdio"; +			reg = <0x2800 0x800>; +			#address-cells = <1>; +			#size-cells = <0>; +			phy0: ethernet-phy@0 { +				reg = <1>; +			}; +		}; + +		eth0: ethernet@2800 { +			compatible = "fsl,mpc5125-fec"; +			reg = <0x2800 0x800>; +			local-mac-address = [ 00 00 00 00 00 00 ]; +			interrupts = <4 0x8>; +			phy-handle = < &phy0 >; +			phy-connection-type = "rmii"; +			clocks = <&clks MPC512x_CLK_FEC>; +			clock-names = "per"; +		}; + +		// IO control +		ioctl@a000 { +			compatible = "fsl,mpc5125-ioctl"; +			reg = <0xA000 0x1000>; +		}; + +		// disable USB1 port +		// TODO: +		// correct pinmux config and fix USB3320 ulpi dependency +		// before re-enabling it +		usb@3000 { +			compatible = "fsl,mpc5121-usb2-dr"; +			reg = <0x3000 0x400>; +			#address-cells = <1>; +			#size-cells = <0>; +			interrupts = <43 0x8>; +			dr_mode = "host"; +			phy_type = "ulpi"; +			clocks = <&clks MPC512x_CLK_USB1>; +			clock-names = "ipg"; +			status = "disabled"; +		}; + +		// 5125 PSCs are not 52xx or 5121 PSC compatible +		// PSC1 uart0 aka ttyPSC0 +		serial@11100 { +			compatible = "fsl,mpc5125-psc-uart", "fsl,mpc5125-psc"; +			reg = <0x11100 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC1>, +				 <&clks MPC512x_CLK_PSC1_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		// PSC9 uart1 aka ttyPSC1 +		serial@11900 { +			compatible = "fsl,mpc5125-psc-uart", "fsl,mpc5125-psc"; +			reg = <0x11900 0x100>; +			interrupts = <40 0x8>; +			fsl,rx-fifo-size = <16>; +			fsl,tx-fifo-size = <16>; +			clocks = <&clks MPC512x_CLK_PSC9>, +				 <&clks MPC512x_CLK_PSC9_MCLK>; +			clock-names = "ipg", "mclk"; +		}; + +		pscfifo@11f00 { +			compatible = "fsl,mpc5121-psc-fifo"; +			reg = <0x11f00 0x100>; +			interrupts = <40 0x8>; +			clocks = <&clks MPC512x_CLK_PSC_FIFO>; +			clock-names = "ipg"; +		}; + +		dma@14000 { +			compatible = "fsl,mpc5121-dma"; // BSP name: "mpc512x-dma2" +			reg = <0x14000 0x1800>; +			interrupts = <65 0x8>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/mpc5200b.dtsi b/arch/powerpc/boot/dts/mpc5200b.dtsi new file mode 100644 index 00000000000..969b2200b2f --- /dev/null +++ b/arch/powerpc/boot/dts/mpc5200b.dtsi @@ -0,0 +1,292 @@ +/* + * base MPC5200b Device Tree Source + * + * Copyright (C) 2010 SecretLab + * Grant Likely <grant@secretlab.ca> + * John Bonesio <bones@secretlab.ca> + * + * 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. + */ + +/dts-v1/; + +/ { +	model = "fsl,mpc5200b"; +	compatible = "fsl,mpc5200b"; +	#address-cells = <1>; +	#size-cells = <1>; +	interrupt-parent = <&mpc5200_pic>; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		powerpc: PowerPC,5200@0 { +			device_type = "cpu"; +			reg = <0>; +			d-cache-line-size = <32>; +			i-cache-line-size = <32>; +			d-cache-size = <0x4000>;	// L1, 16K +			i-cache-size = <0x4000>;	// L1, 16K +			timebase-frequency = <0>;	// from bootloader +			bus-frequency = <0>;		// from bootloader +			clock-frequency = <0>;		// from bootloader +		}; +	}; + +	memory: memory { +		device_type = "memory"; +		reg = <0x00000000 0x04000000>;	// 64MB +	}; + +	soc: soc5200@f0000000 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,mpc5200b-immr"; +		ranges = <0 0xf0000000 0x0000c000>; +		reg = <0xf0000000 0x00000100>; +		bus-frequency = <0>;		// from bootloader +		system-frequency = <0>;		// from bootloader + +		cdm@200 { +			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; +			reg = <0x200 0x38>; +		}; + +		mpc5200_pic: interrupt-controller@500 { +			// 5200 interrupts are encoded into two levels; +			interrupt-controller; +			#interrupt-cells = <3>; +			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; +			reg = <0x500 0x80>; +		}; + +		gpt0: timer@600 {	// General Purpose Timer +			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; +			#gpio-cells = <2>;  // Add 'gpio-controller;' to enable gpio mode +			reg = <0x600 0x10>; +			interrupts = <1 9 0>; +			// add 'fsl,has-wdt' to enable watchdog +		}; + +		gpt1: timer@610 {	// General Purpose Timer +			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; +			#gpio-cells = <2>;  // Add 'gpio-controller;' to enable gpio mode +			reg = <0x610 0x10>; +			interrupts = <1 10 0>; +		}; + +		gpt2: timer@620 {	// General Purpose Timer +			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; +			#gpio-cells = <2>;  // Add 'gpio-controller;' to enable gpio mode +			reg = <0x620 0x10>; +			interrupts = <1 11 0>; +		}; + +		gpt3: timer@630 {	// General Purpose Timer +			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; +			#gpio-cells = <2>;  // Add 'gpio-controller;' to enable gpio mode +			reg = <0x630 0x10>; +			interrupts = <1 12 0>; +		}; + +		gpt4: timer@640 {	// General Purpose Timer +			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; +			#gpio-cells = <2>;  // Add 'gpio-controller;' to enable gpio mode +			reg = <0x640 0x10>; +			interrupts = <1 13 0>; +		}; + +		gpt5: timer@650 {	// General Purpose Timer +			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; +			#gpio-cells = <2>;  // Add 'gpio-controller;' to enable gpio mode +			reg = <0x650 0x10>; +			interrupts = <1 14 0>; +		}; + +		gpt6: timer@660 {	// General Purpose Timer +			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; +			#gpio-cells = <2>;  // Add 'gpio-controller;' to enable gpio mode +			reg = <0x660 0x10>; +			interrupts = <1 15 0>; +		}; + +		gpt7: timer@670 {	// General Purpose Timer +			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; +			#gpio-cells = <2>;  // Add 'gpio-controller;' to enable gpio mode +			reg = <0x670 0x10>; +			interrupts = <1 16 0>; +		}; + +		rtc@800 {	// Real time clock +			compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc"; +			reg = <0x800 0x100>; +			interrupts = <1 5 0 1 6 0>; +		}; + +		can@900 { +			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; +			interrupts = <2 17 0>; +			reg = <0x900 0x80>; +		}; + +		can@980 { +			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; +			interrupts = <2 18 0>; +			reg = <0x980 0x80>; +		}; + +		gpio_simple: gpio@b00 { +			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; +			reg = <0xb00 0x40>; +			interrupts = <1 7 0>; +			gpio-controller; +			#gpio-cells = <2>; +		}; + +		gpio_wkup: gpio@c00 { +			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; +			reg = <0xc00 0x40>; +			interrupts = <1 8 0 0 3 0>; +			gpio-controller; +			#gpio-cells = <2>; +		}; + +		spi@f00 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; +			reg = <0xf00 0x20>; +			interrupts = <2 13 0 2 14 0>; +		}; + +		usb: usb@1000 { +			compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; +			reg = <0x1000 0xff>; +			interrupts = <2 6 0>; +		}; + +		dma-controller@1200 { +			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; +			reg = <0x1200 0x80>; +			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 +			              3 4 0  3 5 0  3 6 0  3 7 0 +			              3 8 0  3 9 0  3 10 0  3 11 0 +			              3 12 0  3 13 0  3 14 0  3 15 0>; +		}; + +		xlb@1f00 { +			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; +			reg = <0x1f00 0x100>; +		}; + +		psc1: psc@2000 {		// PSC1 +			compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; +			reg = <0x2000 0x100>; +			interrupts = <2 1 0>; +		}; + +		psc2: psc@2200 {		// PSC2 +			compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; +			reg = <0x2200 0x100>; +			interrupts = <2 2 0>; +		}; + +		psc3: psc@2400 {		// PSC3 +			compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; +			reg = <0x2400 0x100>; +			interrupts = <2 3 0>; +		}; + +		psc4: psc@2600 {		// PSC4 +			compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; +			reg = <0x2600 0x100>; +			interrupts = <2 11 0>; +		}; + +		psc5: psc@2800 {		// PSC5 +			compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; +			reg = <0x2800 0x100>; +			interrupts = <2 12 0>; +		}; + +		psc6: psc@2c00 {		// PSC6 +			compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; +			reg = <0x2c00 0x100>; +			interrupts = <2 4 0>; +		}; + +		eth0: ethernet@3000 { +			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; +			reg = <0x3000 0x400>; +			local-mac-address = [ 00 00 00 00 00 00 ]; +			interrupts = <2 5 0>; +		}; + +		mdio@3000 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; +			reg = <0x3000 0x400>;	// fec range, since we need to setup fec interrupts +			interrupts = <2 5 0>;	// these are for "mii command finished", not link changes & co. +		}; + +		ata@3a00 { +			compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; +			reg = <0x3a00 0x100>; +			interrupts = <2 7 0>; +		}; + +		sclpc@3c00 { +			compatible = "fsl,mpc5200-lpbfifo"; +			reg = <0x3c00 0x60>; +			interrupts = <2 23 0>; +		}; + +		i2c@3d00 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; +			reg = <0x3d00 0x40>; +			interrupts = <2 15 0>; +		}; + +		i2c@3d40 { +			#address-cells = <1>; +			#size-cells = <0>; +			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; +			reg = <0x3d40 0x40>; +			interrupts = <2 16 0>; +		}; + +		sram@8000 { +			compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; +			reg = <0x8000 0x4000>; +		}; +	}; + +	pci: pci@f0000d00 { +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		device_type = "pci"; +		compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci"; +		reg = <0xf0000d00 0x100>; +		// interrupt-map-mask = need to add +		// interrupt-map = need to add +		clock-frequency = <0>; // From boot loader +		interrupts = <2 8 0 2 9 0 2 10 0>; +		bus-range = <0 0>; +		// ranges = need to add +	}; + +	localbus: localbus { +		compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus"; +		#address-cells = <2>; +		#size-cells = <1>; +		ranges = <0 0 0xfc000000 0x2000000>; +	}; +}; diff --git a/arch/powerpc/boot/dts/mpc7448hpc2.dts b/arch/powerpc/boot/dts/mpc7448hpc2.dts index 2544f3ecd6e..20a0d22df47 100644 --- a/arch/powerpc/boot/dts/mpc7448hpc2.dts +++ b/arch/powerpc/boot/dts/mpc7448hpc2.dts @@ -68,7 +68,6 @@  		};  		MDIO: mdio@6000 { -			device_type = "mdio";  			compatible = "tsi108-mdio";  			reg = <0x6000 0x50>;  			#address-cells = <1>; diff --git a/arch/powerpc/boot/dts/mpc8272ads.dts b/arch/powerpc/boot/dts/mpc8272ads.dts index e802ebd88cb..6d2cddf64cf 100644 --- a/arch/powerpc/boot/dts/mpc8272ads.dts +++ b/arch/powerpc/boot/dts/mpc8272ads.dts @@ -182,7 +182,6 @@  			};  			mdio@10d40 { -				device_type = "mdio";  				compatible = "fsl,mpc8272ads-mdio-bitbang",  				             "fsl,mpc8272-mdio-bitbang",  				             "fsl,cpm2-mdio-bitbang"; @@ -196,14 +195,12 @@  					interrupt-parent = <&PIC>;  					interrupts = <23 8>;  					reg = <0x0>; -					device_type = "ethernet-phy";  				};  				PHY1: ethernet-phy@1 {  					interrupt-parent = <&PIC>;  					interrupts = <23 8>;  					reg = <0x3>; -					device_type = "ethernet-phy";  				};  			}; diff --git a/arch/powerpc/boot/dts/mpc8308_p1m.dts b/arch/powerpc/boot/dts/mpc8308_p1m.dts index 05a76ccfd49..57f86cdf9f3 100644 --- a/arch/powerpc/boot/dts/mpc8308_p1m.dts +++ b/arch/powerpc/boot/dts/mpc8308_p1m.dts @@ -189,13 +189,11 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x1>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@2 {  					interrupt-parent = <&ipic>;  					interrupts = <19 0x8>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -233,7 +231,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <133333333>;  			interrupts = <9 0x8>; @@ -243,7 +241,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <133333333>;  			interrupts = <10 0x8>; @@ -297,6 +295,14 @@  			interrupt-parent = < &ipic >;  		}; +		dma@2c000 { +			compatible = "fsl,mpc8308-dma"; +			reg = <0x2c000 0x1800>; +			interrupts = <3 0x8 +					94 0x8>; +			interrupt-parent = < &ipic >; +		}; +  	};  	pci0: pcie@e0009000 { diff --git a/arch/powerpc/boot/dts/mpc8308rdb.dts b/arch/powerpc/boot/dts/mpc8308rdb.dts index a97eb2db5a1..d0211f0413c 100644 --- a/arch/powerpc/boot/dts/mpc8308rdb.dts +++ b/arch/powerpc/boot/dts/mpc8308rdb.dts @@ -109,7 +109,7 @@  		#address-cells = <1>;  		#size-cells = <1>;  		device_type = "soc"; -		compatible = "fsl,mpc8315-immr", "simple-bus"; +		compatible = "fsl,mpc8308-immr", "simple-bus";  		ranges = <0 0xe0000000 0x00100000>;  		reg = <0xe0000000 0x00000200>;  		bus-frequency = <0>; @@ -166,7 +166,6 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -208,7 +207,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <133333333>;  			interrupts = <9 0x8>; @@ -218,7 +217,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <133333333>;  			interrupts = <10 0x8>; @@ -265,6 +264,14 @@  			interrupt-parent = < &ipic >;  		}; +		dma@2c000 { +			compatible = "fsl,mpc8308-dma"; +			reg = <0x2c000 0x1800>; +			interrupts = <3 0x8 +					94 0x8>; +			interrupt-parent = < &ipic >; +		}; +  	};  	pci0: pcie@e0009000 { diff --git a/arch/powerpc/boot/dts/mpc8313erdb.dts b/arch/powerpc/boot/dts/mpc8313erdb.dts index 761faa7b696..4b635dc4ecd 100644 --- a/arch/powerpc/boot/dts/mpc8313erdb.dts +++ b/arch/powerpc/boot/dts/mpc8313erdb.dts @@ -176,6 +176,19 @@  			sleep = <&pmc 0x00300000>;  		}; +		ptp_clock@24E00 { +			compatible = "fsl,etsec-ptp"; +			reg = <0x24E00 0xB0>; +			interrupts = <12 0x8 13 0x8>; +			interrupt-parent = < &ipic >; +			fsl,tclk-period = <10>; +			fsl,tmr-prsc    = <100>; +			fsl,tmr-add     = <0x999999A4>; +			fsl,tmr-fiper1  = <0x3B9AC9F6>; +			fsl,tmr-fiper2  = <0x00018696>; +			fsl,max-adj     = <659999998>; +		}; +  		enet0: ethernet@24000 {  			#address-cells = <1>;  			#size-cells = <1>; @@ -204,7 +217,6 @@  					interrupt-parent = <&ipic>;  					interrupts = <20 0x8>;  					reg = <0x4>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -248,7 +260,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -258,7 +270,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc8315erdb.dts b/arch/powerpc/boot/dts/mpc8315erdb.dts index 4dd08c32297..43546844ea5 100644 --- a/arch/powerpc/boot/dts/mpc8315erdb.dts +++ b/arch/powerpc/boot/dts/mpc8315erdb.dts @@ -216,14 +216,12 @@  					interrupt-parent = <&ipic>;  					interrupts = <20 0x8>;  					reg = <0x0>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@1 {  					interrupt-parent = <&ipic>;  					interrupts = <19 0x8>;  					reg = <0x1>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -265,7 +263,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <133333333>;  			interrupts = <9 0x8>; @@ -275,7 +273,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <133333333>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc832x_mds.dts b/arch/powerpc/boot/dts/mpc832x_mds.dts index 05ad8c98e52..0793cdf0d46 100644 --- a/arch/powerpc/boot/dts/mpc832x_mds.dts +++ b/arch/powerpc/boot/dts/mpc832x_mds.dts @@ -105,7 +105,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -115,7 +115,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; @@ -356,13 +356,11 @@  				interrupt-parent = <&ipic>;  				interrupts = <17 0x8>;  				reg = <0x3>; -				device_type = "ethernet-phy";  			};  			phy4: ethernet-phy@04 {  				interrupt-parent = <&ipic>;  				interrupts = <18 0x8>;  				reg = <0x4>; -				device_type = "ethernet-phy";  			};  		}; diff --git a/arch/powerpc/boot/dts/mpc832x_rdb.dts b/arch/powerpc/boot/dts/mpc832x_rdb.dts index f4fadb23ad6..91df1eb1666 100644 --- a/arch/powerpc/boot/dts/mpc832x_rdb.dts +++ b/arch/powerpc/boot/dts/mpc832x_rdb.dts @@ -83,7 +83,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -93,7 +93,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; @@ -314,13 +314,11 @@  				interrupt-parent = <&ipic>;  				interrupts = <0>;  				reg = <0x0>; -				device_type = "ethernet-phy";  			};  			phy04:ethernet-phy@04 {  				interrupt-parent = <&ipic>;  				interrupts = <0>;  				reg = <0x4>; -				device_type = "ethernet-phy";  			};  		}; diff --git a/arch/powerpc/boot/dts/mpc8349emitx.dts b/arch/powerpc/boot/dts/mpc8349emitx.dts index b53d1df11e2..cf8542401a3 100644 --- a/arch/powerpc/boot/dts/mpc8349emitx.dts +++ b/arch/powerpc/boot/dts/mpc8349emitx.dts @@ -240,7 +240,6 @@  					interrupt-parent = <&ipic>;  					interrupts = <18 0x8>;  					reg = <0x1c>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -283,7 +282,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;		// from bootloader  			interrupts = <9 0x8>; @@ -293,7 +292,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;		// from bootloader  			interrupts = <10 0x8>; @@ -390,7 +389,8 @@  		#address-cells = <2>;  		#size-cells = <1>;  		compatible = "fsl,mpc8349e-localbus", -			     "fsl,pq2pro-localbus"; +			     "fsl,pq2pro-localbus", +			     "simple-bus";  		reg = <0xe0005000 0xd8>;  		ranges = <0x0 0x0 0xfe000000 0x1000000	/* flash */  			  0x1 0x0 0xf8000000 0x20000	/* VSC 7385 */ diff --git a/arch/powerpc/boot/dts/mpc8349emitxgp.dts b/arch/powerpc/boot/dts/mpc8349emitxgp.dts index eb732115f01..f00066dcc8d 100644 --- a/arch/powerpc/boot/dts/mpc8349emitxgp.dts +++ b/arch/powerpc/boot/dts/mpc8349emitxgp.dts @@ -176,7 +176,6 @@  					interrupt-parent = <&ipic>;  					interrupts = <18 0x8>;  					reg = <0x1c>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -189,7 +188,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;		// from bootloader  			interrupts = <9 0x8>; @@ -199,7 +198,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;		// from bootloader  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc834x_mds.dts b/arch/powerpc/boot/dts/mpc834x_mds.dts index 230febb9b72..4843c3ff716 100644 --- a/arch/powerpc/boot/dts/mpc834x_mds.dts +++ b/arch/powerpc/boot/dts/mpc834x_mds.dts @@ -193,14 +193,12 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x0>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@1 {  					interrupt-parent = <&ipic>;  					interrupts = <18 0x8>;  					reg = <0x1>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -242,7 +240,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -252,7 +250,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc836x_mds.dts b/arch/powerpc/boot/dts/mpc836x_mds.dts index 45cfa1c50a2..ecb6ccd3a6a 100644 --- a/arch/powerpc/boot/dts/mpc836x_mds.dts +++ b/arch/powerpc/boot/dts/mpc836x_mds.dts @@ -136,7 +136,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <264000000>;  			interrupts = <9 0x8>; @@ -146,7 +146,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <264000000>;  			interrupts = <10 0x8>; @@ -397,13 +397,15 @@  				interrupt-parent = <&ipic>;  				interrupts = <17 0x8>;  				reg = <0x0>; -				device_type = "ethernet-phy";  			};  			phy1: ethernet-phy@01 {  				interrupt-parent = <&ipic>;  				interrupts = <18 0x8>;  				reg = <0x1>; -				device_type = "ethernet-phy"; +			}; +			tbi-phy@2 { +				device_type = "tbi-phy"; +				reg = <0x2>;  			};  		}; diff --git a/arch/powerpc/boot/dts/mpc836x_rdk.dts b/arch/powerpc/boot/dts/mpc836x_rdk.dts index bdf4459677b..daeacbdcf8b 100644 --- a/arch/powerpc/boot/dts/mpc836x_rdk.dts +++ b/arch/powerpc/boot/dts/mpc836x_rdk.dts @@ -102,7 +102,7 @@  		serial0: serial@4500 {  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			interrupts = <9 8>;  			interrupt-parent = <&ipic>; @@ -112,7 +112,7 @@  		serial1: serial@4600 {  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			interrupts = <10 8>;  			interrupt-parent = <&ipic>; @@ -332,25 +332,21 @@  				reg = <0x2120 0x18>;  				phy1: ethernet-phy@1 { -					device_type = "ethernet-phy";  					compatible = "national,DP83848VV";  					reg = <1>;  				};  				phy2: ethernet-phy@2 { -					device_type = "ethernet-phy";  					compatible = "broadcom,BCM5481UA2KMLG";  					reg = <2>;  				};  				phy3: ethernet-phy@3 { -					device_type = "ethernet-phy";  					compatible = "national,DP83848VV";  					reg = <3>;  				};  				phy4: ethernet-phy@4 { -					device_type = "ethernet-phy";  					compatible = "broadcom,BCM5481UA2KMLG";  					reg = <4>;  				}; diff --git a/arch/powerpc/boot/dts/mpc8377_mds.dts b/arch/powerpc/boot/dts/mpc8377_mds.dts index 855782c5e5e..c2c062e8175 100644 --- a/arch/powerpc/boot/dts/mpc8377_mds.dts +++ b/arch/powerpc/boot/dts/mpc8377_mds.dts @@ -225,14 +225,12 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&ipic>;  					interrupts = <18 0x8>;  					reg = <0x3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -276,7 +274,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -286,7 +284,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc8377_rdb.dts b/arch/powerpc/boot/dts/mpc8377_rdb.dts index dbc1b988b29..2b4b6532d69 100644 --- a/arch/powerpc/boot/dts/mpc8377_rdb.dts +++ b/arch/powerpc/boot/dts/mpc8377_rdb.dts @@ -277,7 +277,6 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -321,7 +320,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -331,7 +330,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc8377_wlan.dts b/arch/powerpc/boot/dts/mpc8377_wlan.dts index 9ea78305696..c0c790168b9 100644 --- a/arch/powerpc/boot/dts/mpc8377_wlan.dts +++ b/arch/powerpc/boot/dts/mpc8377_wlan.dts @@ -253,14 +253,12 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&ipic>;  					interrupts = <18 0x8>;  					reg = <0x3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -304,7 +302,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -314,7 +312,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc8378_mds.dts b/arch/powerpc/boot/dts/mpc8378_mds.dts index f70cf600083..1b82b77f941 100644 --- a/arch/powerpc/boot/dts/mpc8378_mds.dts +++ b/arch/powerpc/boot/dts/mpc8378_mds.dts @@ -264,14 +264,12 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&ipic>;  					interrupts = <18 0x8>;  					reg = <0x3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -315,7 +313,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -325,7 +323,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc8378_rdb.dts b/arch/powerpc/boot/dts/mpc8378_rdb.dts index 3447eb9f6e8..74b6a535a41 100644 --- a/arch/powerpc/boot/dts/mpc8378_rdb.dts +++ b/arch/powerpc/boot/dts/mpc8378_rdb.dts @@ -277,7 +277,6 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -321,7 +320,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -331,7 +330,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc8379_mds.dts b/arch/powerpc/boot/dts/mpc8379_mds.dts index 645ec51cc6e..38e5048d65d 100644 --- a/arch/powerpc/boot/dts/mpc8379_mds.dts +++ b/arch/powerpc/boot/dts/mpc8379_mds.dts @@ -262,14 +262,12 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&ipic>;  					interrupts = <18 0x8>;  					reg = <0x3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -313,7 +311,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -323,7 +321,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc8379_rdb.dts b/arch/powerpc/boot/dts/mpc8379_rdb.dts index 15560c619b0..3b5cbac8536 100644 --- a/arch/powerpc/boot/dts/mpc8379_rdb.dts +++ b/arch/powerpc/boot/dts/mpc8379_rdb.dts @@ -275,7 +275,6 @@  					interrupt-parent = <&ipic>;  					interrupts = <17 0x8>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -319,7 +318,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -329,7 +328,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/mpc8536ds.dts b/arch/powerpc/boot/dts/mpc8536ds.dts index a75c10eed26..19736222a0b 100644 --- a/arch/powerpc/boot/dts/mpc8536ds.dts +++ b/arch/powerpc/boot/dts/mpc8536ds.dts @@ -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 @@ -9,24 +9,11 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/mpc8536si-pre.dtsi"  / {  	model = "fsl,mpc8536ds";  	compatible = "fsl,mpc8536ds"; -	#address-cells = <2>; -	#size-cells = <2>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		serial0 = &serial0; -		serial1 = &serial1; -		pci0 = &pci0; -		pci1 = &pci1; -		pci2 = &pci2; -		pci3 = &pci3; -	};  	cpus {  		#cpus = <1>; @@ -45,403 +32,38 @@  		reg = <0 0 0 0>;	// Filled by U-Boot  	}; -	soc@ffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "simple-bus"; -		ranges = <0x0 0 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8536-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8536-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 0x2>; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8536-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <16 0x2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 0x2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 0x2>; -			interrupt-parent = <&mpic>; -			dfsrr; -			rtc@68 { -				compatible = "dallas,ds3232"; -				reg = <0x68>; -				interrupts = <0 0x1>; -				interrupt-parent = <&mpic>; -			}; -		}; - -		spi@7000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc8536-espi"; -			reg = <0x7000 0x1000>; -			interrupts = <59 0x2>; -			interrupt-parent = <&mpic>; -			fsl,espi-num-chipselects = <4>; +	lbc: localbus@ffe05000 { +		reg = <0 0xffe05000 0 0x1000>; -			flash@0 { -				#address-cells = <1>; -				#size-cells = <1>; -				compatible = "spansion,s25sl12801"; -				reg = <0>; -				spi-max-frequency = <40000000>; -				partition@u-boot { -					label = "u-boot"; -					reg = <0x00000000 0x00100000>; -					read-only; -				}; -				partition@kernel { -					label = "kernel"; -					reg = <0x00100000 0x00500000>; -					read-only; -				}; -				partition@dtb { -					label = "dtb"; -					reg = <0x00600000 0x00100000>; -					read-only; -				}; -				partition@fs { -					label = "file system"; -					reg = <0x00700000 0x00900000>; -				}; -			}; -			flash@1 { -				compatible = "spansion,s25sl12801"; -				reg = <1>; -				spi-max-frequency = <40000000>; -			}; -			flash@2 { -				compatible = "spansion,s25sl12801"; -				reg = <2>; -				spi-max-frequency = <40000000>; -			}; -			flash@3 { -				compatible = "spansion,s25sl12801"; -				reg = <3>; -				spi-max-frequency = <40000000>; -			}; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8536-dma", "fsl,eloplus-dma"; -			reg = <0x21300 4>; -			ranges = <0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8536-dma-channel", -					     "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8536-dma-channel", -					     "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8536-dma-channel", -					     "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8536-dma-channel", -					     "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		usb@22000 { -			compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph"; -			reg = <0x22000 0x1000>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupt-parent = <&mpic>; -			interrupts = <28 0x2>; -			phy_type = "ulpi"; -		}; - -		usb@23000 { -			compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph"; -			reg = <0x23000 0x1000>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupt-parent = <&mpic>; -			interrupts = <46 0x2>; -			phy_type = "ulpi"; -		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi0>; -			phy-handle = <&phy1>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@0 { -					interrupt-parent = <&mpic>; -					interrupts = <10 0x1>; -					reg = <0>; -					device_type = "ethernet-phy"; -				}; -				phy1: ethernet-phy@1 { -					interrupt-parent = <&mpic>; -					interrupts = <10 0x1>; -					reg = <1>; -					device_type = "ethernet-phy"; -				}; -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet1: ethernet@26000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x26000 0x1000>; -			ranges = <0x0 0x26000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <31 2 32 2 33 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi1>; -			phy-handle = <&phy0>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi1: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		usb@2b000 { -			compatible = "fsl,mpc8536-usb2-dr", "fsl-usb2-dr"; -			reg = <0x2b000 0x1000>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupt-parent = <&mpic>; -			interrupts = <60 0x2>; -			dr_mode = "peripheral"; -			phy_type = "ulpi"; -		}; - -		sdhci@2e000 { -			compatible = "fsl,mpc8536-esdhc", "fsl,esdhc"; -			reg = <0x2e000 0x1000>; -			interrupts = <72 0x2>; -			interrupt-parent = <&mpic>; -			clock-frequency = <250000000>; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -			interrupts = <42 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -			interrupts = <42 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2", -				     "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0x9fe>; -			fsl,descriptor-types-mask = <0x3ab0ebf>; -		}; - -		sata@18000 { -			compatible = "fsl,mpc8536-sata", "fsl,pq-sata"; -			reg = <0x18000 0x1000>; -			cell-index = <1>; -			interrupts = <74 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		sata@19000 { -			compatible = "fsl,mpc8536-sata", "fsl,pq-sata"; -			reg = <0x19000 0x1000>; -			cell-index = <2>; -			interrupts = <41 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,mpc8548-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; - -		mpic: pic@40000 { -			clock-frequency = <0>; -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -			big-endian; -		}; +		ranges = <0x0 0x0 0x0 0xe8000000 0x08000000 +			  0x2 0x0 0x0 0xffa00000 0x00040000 +			  0x3 0x0 0x0 0xffdf0000 0x00008000>; +	}; -		msi@41600 { -			compatible = "fsl,mpc8536-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; +	board_soc: soc: soc@ffe00000 { +		ranges = <0x0 0 0xffe00000 0x100000>;  	};  	pci0: pci@ffe08000 { -		compatible = "fsl,mpc8540-pci"; -		device_type = "pci"; +		reg = <0 0xffe08000 0 0x1000>; +		ranges = <0x02000000 0 0x80000000 0 0x80000000 0 0x10000000 +			  0x01000000 0 0x00000000 0 0xffc00000 0 0x00010000>; +		clock-frequency = <66666666>;  		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;  		interrupt-map = <  			/* IDSEL 0x11 J17 Slot 1 */ -			0x8800 0 0 1 &mpic 1 1 -			0x8800 0 0 2 &mpic 2 1 -			0x8800 0 0 3 &mpic 3 1 -			0x8800 0 0 4 &mpic 4 1>; - -		interrupt-parent = <&mpic>; -		interrupts = <24 0x2>; -		bus-range = <0 0xff>; -		ranges = <0x02000000 0 0x80000000 0 0x80000000 0 0x10000000 -			  0x01000000 0 0x00000000 0 0xffc00000 0 0x00010000>; -		clock-frequency = <66666666>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0 0xffe08000 0 0x1000>; +			0x8800 0 0 1 &mpic 1 1 0 0 +			0x8800 0 0 2 &mpic 2 1 0 0 +			0x8800 0 0 3 &mpic 3 1 0 0 +			0x8800 0 0 4 &mpic 4 1 0 0>;  	};  	pci1: pcie@ffe09000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0 0xffe09000 0 0x1000>; -		bus-range = <0 0xff>;  		ranges = <0x02000000 0 0x98000000 0 0x98000000 0 0x08000000  			  0x01000000 0 0x00000000 0 0xffc20000 0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <25 0x2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 4 1 -			0000 0 0 2 &mpic 5 1 -			0000 0 0 3 &mpic 6 1 -			0000 0 0 4 &mpic 7 1 -			>;  		pcie@0 { -			reg = <0 0 0 0 0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x02000000 0 0x98000000  				  0x02000000 0 0x98000000  				  0 0x08000000 @@ -453,31 +75,10 @@  	};  	pci2: pcie@ffe0a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0 0xffe0a000 0 0x1000>; -		bus-range = <0 0xff>;  		ranges = <0x02000000 0 0x90000000 0 0x90000000 0 0x08000000  			  0x01000000 0 0x00000000 0 0xffc10000 0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <26 0x2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 0 1 -			0000 0 0 2 &mpic 1 1 -			0000 0 0 3 &mpic 2 1 -			0000 0 0 4 &mpic 3 1 -			>;  		pcie@0 { -			reg = <0 0 0 0 0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x02000000 0 0x90000000  				  0x02000000 0 0x90000000  				  0 0x08000000 @@ -489,32 +90,10 @@  	};  	pci3: pcie@ffe0b000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0 0xffe0b000 0 0x1000>; -		bus-range = <0 0xff>;  		ranges = <0x02000000 0 0xa0000000 0 0xa0000000 0 0x20000000  			  0x01000000 0 0x00000000 0 0xffc30000 0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <27 0x2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 8 1 -			0000 0 0 2 &mpic 9 1 -			0000 0 0 3 &mpic 10 1 -			0000 0 0 4 &mpic 11 1 -			>; -  		pcie@0 { -			reg = <0 0 0 0 0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x02000000 0 0xa0000000  				  0x02000000 0 0xa0000000  				  0 0x20000000 @@ -525,3 +104,6 @@  		};  	};  }; + +/include/ "fsl/mpc8536si-post.dtsi" +/include/ "mpc8536ds.dtsi" diff --git a/arch/powerpc/boot/dts/mpc8536ds.dtsi b/arch/powerpc/boot/dts/mpc8536ds.dtsi new file mode 100644 index 00000000000..937ad7e4611 --- /dev/null +++ b/arch/powerpc/boot/dts/mpc8536ds.dtsi @@ -0,0 +1,244 @@ +/* + * MPC8536DS 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 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 { +			compatible = "dallas,ds3232"; +			reg = <0x68>; +			interrupts = <0 0x1 0 0>; +		}; +		adt7461@4c { +			compatible = "adi,adt7461"; +			reg = <0x4c>; +		}; +	}; + +	spi@7000 { +		flash@0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "spansion,s25sl12801"; +			reg = <0>; +			spi-max-frequency = <40000000>; +			partition@u-boot { +				label = "u-boot"; +				reg = <0x00000000 0x00100000>; +				read-only; +			}; +			partition@kernel { +				label = "kernel"; +				reg = <0x00100000 0x00500000>; +				read-only; +			}; +			partition@dtb { +				label = "dtb"; +				reg = <0x00600000 0x00100000>; +				read-only; +			}; +			partition@fs { +				label = "file system"; +				reg = <0x00700000 0x00900000>; +			}; +		}; +		flash@1 { +			compatible = "spansion,s25sl12801"; +			reg = <1>; +			spi-max-frequency = <40000000>; +		}; +		flash@2 { +			compatible = "spansion,s25sl12801"; +			reg = <2>; +			spi-max-frequency = <40000000>; +		}; +		flash@3 { +			compatible = "spansion,s25sl12801"; +			reg = <3>; +			spi-max-frequency = <40000000>; +		}; +	}; + +	usb@22000 { +		phy_type = "ulpi"; +	}; + +	usb@23000 { +		phy_type = "ulpi"; +	}; + +	enet0: ethernet@24000 { +		tbi-handle = <&tbi0>; +		phy-handle = <&phy1>; +		phy-connection-type = "rgmii-id"; +	}; + +	mdio@24520 { +		phy0: ethernet-phy@0 { +			interrupts = <10 0x1 0 0>; +			reg = <0>; +		}; +		phy1: ethernet-phy@1 { +			interrupts = <10 0x1 0 0>; +			reg = <1>; +		}; +		sgmii_phy0: sgmii-phy@0 { +			interrupts = <6 1 0 0>; +			reg = <0x1d>; +		}; +		sgmii_phy1: sgmii-phy@1 { +			interrupts = <6 1 0 0>; +			reg = <0x1c>; +		}; +		tbi0: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	enet2: ethernet@26000 { +		tbi-handle = <&tbi1>; +		phy-handle = <&phy0>; +		phy-connection-type = "rgmii-id"; +	}; + +	mdio@26520 { +		#address-cells = <1>; +		#size-cells = <0>; +		compatible = "fsl,gianfar-tbi"; +		reg = <0x26520 0x20>; + +		tbi1: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	usb@2b000 { +		dr_mode = "peripheral"; +		phy_type = "ulpi"; +	}; +}; diff --git a/arch/powerpc/boot/dts/mpc8536ds_36b.dts b/arch/powerpc/boot/dts/mpc8536ds_36b.dts index d95b26021e6..6c723ee108c 100644 --- a/arch/powerpc/boot/dts/mpc8536ds_36b.dts +++ b/arch/powerpc/boot/dts/mpc8536ds_36b.dts @@ -1,7 +1,7 @@  /* - * MPC8536 DS Device Tree Source + * 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 @@ -9,24 +9,11 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/mpc8536si-pre.dtsi"  / {  	model = "fsl,mpc8536ds";  	compatible = "fsl,mpc8536ds"; -	#address-cells = <2>; -	#size-cells = <2>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		serial0 = &serial0; -		serial1 = &serial1; -		pci0 = &pci0; -		pci1 = &pci1; -		pci2 = &pci2; -		pci3 = &pci3; -	};  	cpus {  		#cpus = <1>; @@ -45,351 +32,38 @@  		reg = <0 0 0 0>;	// Filled by U-Boot  	}; -	soc@fffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "simple-bus"; -		ranges = <0x0 0xf 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8536-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8536-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 0x2>; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8536-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <16 0x2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 0x2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 0x2>; -			interrupt-parent = <&mpic>; -			dfsrr; -			rtc@68 { -				compatible = "dallas,ds3232"; -				reg = <0x68>; -				interrupts = <0 0x1>; -				interrupt-parent = <&mpic>; -			}; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8536-dma", "fsl,eloplus-dma"; -			reg = <0x21300 4>; -			ranges = <0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8536-dma-channel", -					     "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8536-dma-channel", -					     "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8536-dma-channel", -					     "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8536-dma-channel", -					     "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		usb@22000 { -			compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph"; -			reg = <0x22000 0x1000>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupt-parent = <&mpic>; -			interrupts = <28 0x2>; -			phy_type = "ulpi"; -		}; - -		usb@23000 { -			compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph"; -			reg = <0x23000 0x1000>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupt-parent = <&mpic>; -			interrupts = <46 0x2>; -			phy_type = "ulpi"; -		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi0>; -			phy-handle = <&phy1>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@0 { -					interrupt-parent = <&mpic>; -					interrupts = <10 0x1>; -					reg = <0>; -					device_type = "ethernet-phy"; -				}; -				phy1: ethernet-phy@1 { -					interrupt-parent = <&mpic>; -					interrupts = <10 0x1>; -					reg = <1>; -					device_type = "ethernet-phy"; -				}; -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet1: ethernet@26000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x26000 0x1000>; -			ranges = <0x0 0x26000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <31 2 32 2 33 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi1>; -			phy-handle = <&phy0>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi1: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		usb@2b000 { -			compatible = "fsl,mpc8536-usb2-dr", "fsl-usb2-dr"; -			reg = <0x2b000 0x1000>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupt-parent = <&mpic>; -			interrupts = <60 0x2>; -			dr_mode = "peripheral"; -			phy_type = "ulpi"; -		}; - -		sdhci@2e000 { -			compatible = "fsl,mpc8536-esdhc", "fsl,esdhc"; -			reg = <0x2e000 0x1000>; -			interrupts = <72 0x2>; -			interrupt-parent = <&mpic>; -			clock-frequency = <250000000>; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -			interrupts = <42 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -			interrupts = <42 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2", -				     "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0x9fe>; -			fsl,descriptor-types-mask = <0x3ab0ebf>; -		}; - -		sata@18000 { -			compatible = "fsl,mpc8536-sata", "fsl,pq-sata"; -			reg = <0x18000 0x1000>; -			cell-index = <1>; -			interrupts = <74 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		sata@19000 { -			compatible = "fsl,mpc8536-sata", "fsl,pq-sata"; -			reg = <0x19000 0x1000>; -			cell-index = <2>; -			interrupts = <41 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,mpc8548-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; +	lbc: localbus@fffe05000 { +		reg = <0xf 0xffe05000 0 0x1000>; -		mpic: pic@40000 { -			clock-frequency = <0>; -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -			big-endian; -		}; +		ranges = <0x0 0x0 0xf 0xe8000000 0x08000000 +			  0x2 0x0 0xf 0xffa00000 0x00040000 +			  0x3 0x0 0xf 0xffdf0000 0x00008000>; +	}; -		msi@41600 { -			compatible = "fsl,mpc8536-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; +	board_soc: soc: soc@fffe00000 { +		ranges = <0x0 0xf 0xffe00000 0x100000>;  	};  	pci0: pci@fffe08000 { -		compatible = "fsl,mpc8540-pci"; -		device_type = "pci"; +		reg = <0xf 0xffe08000 0 0x1000>; +		ranges = <0x02000000 0 0xf0000000 0xc 0x00000000 0 0x10000000 +			  0x01000000 0 0x00000000 0xf 0xffc00000 0 0x00010000>; +		clock-frequency = <66666666>;  		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;  		interrupt-map = <  			/* IDSEL 0x11 J17 Slot 1 */ -			0x8800 0 0 1 &mpic 1 1 -			0x8800 0 0 2 &mpic 2 1 -			0x8800 0 0 3 &mpic 3 1 -			0x8800 0 0 4 &mpic 4 1>; - -		interrupt-parent = <&mpic>; -		interrupts = <24 0x2>; -		bus-range = <0 0xff>; -		ranges = <0x02000000 0 0xf0000000 0xc 0x00000000 0 0x10000000 -			  0x01000000 0 0x00000000 0xf 0xffc00000 0 0x00010000>; -		clock-frequency = <66666666>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xf 0xffe08000 0 0x1000>; +			0x8800 0 0 1 &mpic 1 1 0 0 +			0x8800 0 0 2 &mpic 2 1 0 0 +			0x8800 0 0 3 &mpic 3 1 0 0 +			0x8800 0 0 4 &mpic 4 1 0 0>;  	};  	pci1: pcie@fffe09000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0xf 0xffe09000 0 0x1000>; -		bus-range = <0 0xff>;  		ranges = <0x02000000 0 0xf8000000 0xc 0x18000000 0 0x08000000  			  0x01000000 0 0x00000000 0xf 0xffc20000 0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <25 0x2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 4 1 -			0000 0 0 2 &mpic 5 1 -			0000 0 0 3 &mpic 6 1 -			0000 0 0 4 &mpic 7 1 -			>;  		pcie@0 { -			reg = <0 0 0 0 0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x02000000 0 0xf8000000  				  0x02000000 0 0xf8000000  				  0 0x08000000 @@ -401,31 +75,10 @@  	};  	pci2: pcie@fffe0a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0xf 0xffe0a000 0 0x1000>; -		bus-range = <0 0xff>;  		ranges = <0x02000000 0 0xf8000000 0xc 0x10000000 0 0x08000000  			  0x01000000 0 0x00000000 0xf 0xffc10000 0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <26 0x2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 0 1 -			0000 0 0 2 &mpic 1 1 -			0000 0 0 3 &mpic 2 1 -			0000 0 0 4 &mpic 3 1 -			>;  		pcie@0 { -			reg = <0 0 0 0 0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x02000000 0 0xf8000000  				  0x02000000 0 0xf8000000  				  0 0x08000000 @@ -437,32 +90,10 @@  	};  	pci3: pcie@fffe0b000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0xf 0xffe0b000 0 0x1000>; -		bus-range = <0 0xff>;  		ranges = <0x02000000 0 0xe0000000 0xc 0x20000000 0 0x20000000  			  0x01000000 0 0x00000000 0xf 0xffc30000 0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <27 0x2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 8 1 -			0000 0 0 2 &mpic 9 1 -			0000 0 0 3 &mpic 10 1 -			0000 0 0 4 &mpic 11 1 -			>; -  		pcie@0 { -			reg = <0 0 0 0 0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x02000000 0 0xe0000000  				  0x02000000 0 0xe0000000  				  0 0x20000000 @@ -473,3 +104,6 @@  		};  	};  }; + +/include/ "fsl/mpc8536si-post.dtsi" +/include/ "mpc8536ds.dtsi" diff --git a/arch/powerpc/boot/dts/mpc8540ads.dts b/arch/powerpc/boot/dts/mpc8540ads.dts index 8d1bf0fd926..7ce274c9a2d 100644 --- a/arch/powerpc/boot/dts/mpc8540ads.dts +++ b/arch/powerpc/boot/dts/mpc8540ads.dts @@ -11,6 +11,8 @@  /dts-v1/; +/include/ "fsl/e500v2_power_isa.dtsi" +  / {  	model = "MPC8540ADS";  	compatible = "MPC8540ADS", "MPC85xxADS"; @@ -163,19 +165,16 @@  					interrupt-parent = <&mpic>;  					interrupts = <5 1>;  					reg = <0x0>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@1 {  					interrupt-parent = <&mpic>;  					interrupts = <5 1>;  					reg = <0x1>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&mpic>;  					interrupts = <7 1>;  					reg = <0x3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -243,7 +242,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>; 	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; @@ -253,7 +252,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; diff --git a/arch/powerpc/boot/dts/mpc8541cds.dts b/arch/powerpc/boot/dts/mpc8541cds.dts index 87ff96549fa..4d35a3e0fb0 100644 --- a/arch/powerpc/boot/dts/mpc8541cds.dts +++ b/arch/powerpc/boot/dts/mpc8541cds.dts @@ -11,6 +11,8 @@  /dts-v1/; +/include/ "fsl/e500v2_power_isa.dtsi" +  / {  	model = "MPC8541CDS";  	compatible = "MPC8541CDS", "MPC85xxCDS"; @@ -163,13 +165,11 @@  					interrupt-parent = <&mpic>;  					interrupts = <5 1>;  					reg = <0x0>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@1 {  					interrupt-parent = <&mpic>;  					interrupts = <5 1>;  					reg = <0x1>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -209,7 +209,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>; 	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; @@ -219,7 +219,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts index d793968743c..ed38874c3a3 100644 --- a/arch/powerpc/boot/dts/mpc8544ds.dts +++ b/arch/powerpc/boot/dts/mpc8544ds.dts @@ -9,339 +9,54 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/mpc8544si-pre.dtsi" +  / {  	model = "MPC8544DS";  	compatible = "MPC8544DS", "MPC85xxDS"; -	#address-cells = <1>; -	#size-cells = <1>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		serial0 = &serial0; -		serial1 = &serial1; -		pci0 = &pci0; -		pci1 = &pci1; -		pci2 = &pci2; -		pci3 = &pci3; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,8544@0 { -			device_type = "cpu"; -			reg = <0x0>; -			d-cache-line-size = <32>;	// 32 bytes -			i-cache-line-size = <32>;	// 32 bytes -			d-cache-size = <0x8000>;		// L1, 32K -			i-cache-size = <0x8000>;		// L1, 32K -			timebase-frequency = <0>; -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>; -		}; -	};  	memory {  		device_type = "memory"; -		reg = <0x0 0x0>;	// Filled by U-Boot +		reg = <0 0 0 0>;	// Filled by U-Boot  	}; -	soc8544@e0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "simple-bus"; - -		ranges = <0x0 0xe0000000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <10>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8544-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8544-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8544-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x40000>;	// L2, 256K -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8544-dma", "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8544-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8544-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8544-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8544-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "TSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>; -			phy-handle = <&phy0>; -			tbi-handle = <&tbi0>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@0 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x0>; -					device_type = "ethernet-phy"; -				}; -				phy1: ethernet-phy@1 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x1>; -					device_type = "ethernet-phy"; -				}; - -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet1: ethernet@26000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "TSEC"; -			compatible = "gianfar"; -			reg = <0x26000 0x1000>; -			ranges = <0x0 0x26000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <31 2 32 2 33 2>; -			interrupt-parent = <&mpic>; -			phy-handle = <&phy1>; -			tbi-handle = <&tbi1>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi1: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; +	board_lbc: lbc: localbus@e0005000 { +		reg = <0 0xe0005000 0 0x1000>; -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,mpc8548-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; - -		crypto@30000 { -			compatible = "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0xfe>; -			fsl,descriptor-types-mask = <0x12b0ebf>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; +		ranges = <0x0 0x0 0x0 0xff800000 0x800000>; +	}; -		msi@41600 { -			compatible = "fsl,mpc8544-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; +	board_soc: soc: soc8544@e0000000 { +		ranges = <0x0 0x0 0xe0000000 0x100000>;  	};  	pci0: pci@e0008000 { -		compatible = "fsl,mpc8540-pci"; -		device_type = "pci"; +		reg = <0 0xe0008000 0 0x1000>; +		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0 0xe1000000 0x0 0x10000>; +		clock-frequency = <66666666>;  		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;  		interrupt-map = <  			/* IDSEL 0x11 J17 Slot 1 */ -			0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8800 0x0 0x0 0x4 &mpic 0x1 0x1 +			0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 +			0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 +			0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 0 0 +			0x8800 0x0 0x0 0x4 &mpic 0x1 0x1 0 0  			/* IDSEL 0x12 J16 Slot 2 */ -			0x9000 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9000 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0x9000 0x0 0x0 0x4 &mpic 0x1 0x1>; - -		interrupt-parent = <&mpic>; -		interrupts = <24 2>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000 -			  0x1000000 0x0 0x0 0xe1000000 0x0 0x10000>; -		clock-frequency = <66666666>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe0008000 0x1000>; +			0x9000 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 +			0x9000 0x0 0x0 0x2 &mpic 0x4 0x1 0 0 +			0x9000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0 +			0x9000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0>;  	};  	pci1: pcie@e0009000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe0009000 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000 -			  0x1000000 0x0 0x0 0xe1010000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <25 2>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0x0 0x0 0x1 &mpic 0x4 0x1 -			0000 0x0 0x0 0x2 &mpic 0x5 0x1 -			0000 0x0 0x0 0x3 &mpic 0x6 0x1 -			0000 0x0 0x0 0x4 &mpic 0x7 0x1 -			>; +		reg = <0x0 0xe0009000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0 0xe1010000 0x0 0x10000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0x80000000  				  0x2000000 0x0 0x80000000  				  0x0 0x20000000 @@ -353,31 +68,10 @@  	};  	pci2: pcie@e000a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe000a000 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 -			  0x1000000 0x0 0x0 0xe1020000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <26 2>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0000 0x0 0x0 0x4 &mpic 0x3 0x1 -			>; +		reg = <0x0 0xe000a000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x10000000 +			  0x1000000 0x0 0x00000000 0 0xe1020000 0x0 0x10000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xa0000000  				  0x2000000 0x0 0xa0000000  				  0x0 0x10000000 @@ -388,44 +82,11 @@  		};  	}; -	pci3: pcie@e000b000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe000b000 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xb0000000 0xb0000000 0x0 0x100000 -			  0x1000000 0x0 0x0 0xb0100000 0x0 0x100000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <27 2>; -		interrupt-map-mask = <0xff00 0x0 0x0 0x1>; -		interrupt-map = < -			// IDSEL 0x1c  USB -			0xe000 0x0 0x0 0x1 &i8259 0xc 0x2 -			0xe100 0x0 0x0 0x2 &i8259 0x9 0x2 -			0xe200 0x0 0x0 0x3 &i8259 0xa 0x2 -			0xe300 0x0 0x0 0x4 &i8259 0xb 0x2 - -			// IDSEL 0x1d  Audio -			0xe800 0x0 0x0 0x1 &i8259 0x6 0x2 - -			// IDSEL 0x1e Legacy -			0xf000 0x0 0x0 0x1 &i8259 0x7 0x2 -			0xf100 0x0 0x0 0x1 &i8259 0x7 0x2 - -			// IDSEL 0x1f IDE/SATA -			0xf800 0x0 0x0 0x1 &i8259 0xe 0x2 -			0xf900 0x0 0x0 0x1 &i8259 0x5 0x2 -		>; - +	board_pci3: pci3: pcie@e000b000 { +		reg = <0x0 0xe000b000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0xb0000000 0 0xb0000000 0x0 0x100000 +			  0x1000000 0x0 0x00000000 0 0xb0100000 0x0 0x100000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xb0000000  				  0x2000000 0x0 0xb0000000  				  0x0 0x100000 @@ -433,70 +94,14 @@  				  0x1000000 0x0 0x0  				  0x1000000 0x0 0x0  				  0x0 0x100000>; - -			uli1575@0 { -				reg = <0x0 0x0 0x0 0x0 0x0>; -				#size-cells = <2>; -				#address-cells = <3>; -				ranges = <0x2000000 0x0 0xb0000000 -					  0x2000000 0x0 0xb0000000 -					  0x0 0x100000 - -					  0x1000000 0x0 0x0 -					  0x1000000 0x0 0x0 -					  0x0 0x100000>; -				isa@1e { -					device_type = "isa"; -					#interrupt-cells = <2>; -					#size-cells = <1>; -					#address-cells = <2>; -					reg = <0xf000 0x0 0x0 0x0 0x0>; -					ranges = <0x1 0x0 -						  0x1000000 0x0 0x0 -						  0x1000>; -					interrupt-parent = <&i8259>; - -					i8259: interrupt-controller@20 { -						reg = <0x1 0x20 0x2 -						       0x1 0xa0 0x2 -						       0x1 0x4d0 0x2>; -						interrupt-controller; -						device_type = "interrupt-controller"; -						#address-cells = <0>; -						#interrupt-cells = <2>; -						compatible = "chrp,iic"; -						interrupts = <9 2>; -						interrupt-parent = <&mpic>; -					}; - -					i8042@60 { -						#size-cells = <0>; -						#address-cells = <1>; -						reg = <0x1 0x60 0x1 0x1 0x64 0x1>; -						interrupts = <1 3 12 3>; -						interrupt-parent = <&i8259>; - -						keyboard@0 { -							reg = <0x0>; -							compatible = "pnpPNP,303"; -						}; - -						mouse@1 { -							reg = <0x1>; -							compatible = "pnpPNP,f03"; -						}; -					}; - -					rtc@70 { -						compatible = "pnpPNP,b00"; -						reg = <0x1 0x70 0x2>; -					}; - -					gpio@400 { -						reg = <0x1 0x400 0x80>; -					}; -				}; -			};  		};  	};  }; + +/* + * mpc8544ds.dtsi must be last to ensure board_pci3 overrides pci3 settings + * for interrupt-map & interrupt-map-mask + */ + +/include/ "fsl/mpc8544si-post.dtsi" +/include/ "mpc8544ds.dtsi" diff --git a/arch/powerpc/boot/dts/mpc8544ds.dtsi b/arch/powerpc/boot/dts/mpc8544ds.dtsi new file mode 100644 index 00000000000..47d986b041f --- /dev/null +++ b/arch/powerpc/boot/dts/mpc8544ds.dtsi @@ -0,0 +1,207 @@ +/* + * MPC8544DS 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. + */ + +&board_lbc { +	nor@0,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "cfi-flash"; +		reg = <0x0 0x0 0x800000>; +		bank-width = <2>; +		device-width = <1>; + +		partition@0 { +			reg = <0x0 0x10000>; +			label = "dtb-nor"; +		}; + +		partition@20000 { +			reg = <0x20000 0x30000>; +			label = "diagnostic-nor"; +			read-only; +		}; + +		partition@200000 { +			reg = <0x200000 0x200000>; +			label = "dink-nor"; +			read-only; +		}; + +		partition@400000 { +			reg = <0x400000 0x380000>; +			label = "kernel-nor"; +		}; + +		partition@780000 { +			reg = <0x780000 0x80000>; +			label = "u-boot-nor"; +			read-only; +		}; +	}; +}; + +&board_soc { +	enet0: ethernet@24000 { +		phy-handle = <&phy0>; +		tbi-handle = <&tbi0>; +		phy-connection-type = "rgmii-id"; +	}; + +	mdio@24520 { +		phy0: ethernet-phy@0 { +			interrupts = <10 1 0 0>; +			reg = <0x0>; +		}; +		phy1: ethernet-phy@1 { +			interrupts = <10 1 0 0>; +			reg = <0x1>; +		}; + +		sgmii_phy0: sgmii-phy@0 { +			interrupts = <6 1 0 0>; +			reg = <0x1c>; +		}; +		sgmii_phy1: sgmii-phy@1 { +			interrupts = <6 1 0 0>; +			reg = <0x1d>; +		}; + +		tbi0: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	enet2: ethernet@26000 { +		phy-handle = <&phy1>; +		tbi-handle = <&tbi1>; +		phy-connection-type = "rgmii-id"; +	}; + +	mdio@26520 { +		tbi1: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; +}; + +&board_pci3 { +	pcie@0 { +		interrupt-map-mask = <0xff00 0x0 0x0 0x7>; +		interrupt-map = < +			// IDSEL 0x1c  USB +			0xe000 0x0 0x0 0x1 &i8259 0xc 0x2 +			0xe100 0x0 0x0 0x2 &i8259 0x9 0x2 +			0xe200 0x0 0x0 0x3 &i8259 0xa 0x2 +			0xe300 0x0 0x0 0x4 &i8259 0xb 0x2 + +			// IDSEL 0x1d  Audio +			0xe800 0x0 0x0 0x1 &i8259 0x6 0x2 + +			// IDSEL 0x1e Legacy +			0xf000 0x0 0x0 0x1 &i8259 0x7 0x2 +			0xf100 0x0 0x0 0x1 &i8259 0x7 0x2 + +			// IDSEL 0x1f IDE/SATA +			0xf800 0x0 0x0 0x1 &i8259 0xe 0x2 +			0xf900 0x0 0x0 0x1 &i8259 0x5 0x2 +			>; + + +		uli1575@0 { +			reg = <0x0 0x0 0x0 0x0 0x0>; +			#size-cells = <2>; +			#address-cells = <3>; +			ranges = <0x2000000 0x0 0xb0000000 +				  0x2000000 0x0 0xb0000000 +				  0x0 0x100000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +			isa@1e { +				device_type = "isa"; +				#interrupt-cells = <2>; +				#size-cells = <1>; +				#address-cells = <2>; +				reg = <0xf000 0x0 0x0 0x0 0x0>; +				ranges = <0x1 0x0 0x1000000 0x0 0x0 +					  0x1000>; +				interrupt-parent = <&i8259>; + +				i8259: interrupt-controller@20 { +					reg = <0x1 0x20 0x2 +					       0x1 0xa0 0x2 +					       0x1 0x4d0 0x2>; +					interrupt-controller; +					device_type = "interrupt-controller"; +					#address-cells = <0>; +					#interrupt-cells = <2>; +					compatible = "chrp,iic"; +					interrupts = <9 2 0 0>; +					interrupt-parent = <&mpic>; +				}; + +				i8042@60 { +					#size-cells = <0>; +					#address-cells = <1>; +					reg = <0x1 0x60 0x1 0x1 0x64 0x1>; +					interrupts = <1 3 12 3>; +					interrupt-parent = +						<&i8259>; + +					keyboard@0 { +						reg = <0x0>; +						compatible = "pnpPNP,303"; +					}; + +					mouse@1 { +						reg = <0x1>; +						compatible = "pnpPNP,f03"; +					}; +				}; + +				rtc@70 { +					compatible = "pnpPNP,b00"; +					reg = <0x1 0x70 0x2>; +				}; + +				gpio@400 { +					reg = <0x1 0x400 0x80>; +				}; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts deleted file mode 100644 index a17a5572fb7..00000000000 --- a/arch/powerpc/boot/dts/mpc8548cds.dts +++ /dev/null @@ -1,567 +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. - */ - -/dts-v1/; - -/ { -	model = "MPC8548CDS"; -	compatible = "MPC8548CDS", "MPC85xxCDS"; -	#address-cells = <1>; -	#size-cells = <1>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		ethernet2 = &enet2; -		ethernet3 = &enet3; -		serial0 = &serial0; -		serial1 = &serial1; -		pci0 = &pci0; -		pci1 = &pci1; -		pci2 = &pci2; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,8548@0 { -			device_type = "cpu"; -			reg = <0x0>; -			d-cache-line-size = <32>;	// 32 bytes -			i-cache-line-size = <32>;	// 32 bytes -			d-cache-size = <0x8000>;		// L1, 32K -			i-cache-size = <0x8000>;		// L1, 32K -			timebase-frequency = <0>;	//  33 MHz, from uboot -			bus-frequency = <0>;	// 166 MHz -			clock-frequency = <0>;	// 825 MHz, from uboot -			next-level-cache = <&L2>; -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <0x0 0x8000000>;	// 128M at 0x0 -	}; - -	soc8548@e0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "simple-bus"; -		ranges = <0x0 0xe0000000 0x100000>; -		bus-frequency = <0>; - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <10>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8548-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8548-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8548-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x80000>;	// L2, 512K -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; - -			eeprom@50 { -				compatible = "atmel,24c64"; -				reg = <0x50>; -			}; - -			eeprom@56 { -				compatible = "atmel,24c64"; -				reg = <0x56>; -			}; - -			eeprom@57 { -				compatible = "atmel,24c64"; -				reg = <0x57>; -			}; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; - -			eeprom@50 { -				compatible = "atmel,24c64"; -				reg = <0x50>; -			}; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8548-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8548-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8548-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8548-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi0>; -			phy-handle = <&phy0>; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@0 { -					interrupt-parent = <&mpic>; -					interrupts = <5 1>; -					reg = <0x0>; -					device_type = "ethernet-phy"; -				}; -				phy1: ethernet-phy@1 { -					interrupt-parent = <&mpic>; -					interrupts = <5 1>; -					reg = <0x1>; -					device_type = "ethernet-phy"; -				}; -				phy2: ethernet-phy@2 { -					interrupt-parent = <&mpic>; -					interrupts = <5 1>; -					reg = <0x2>; -					device_type = "ethernet-phy"; -				}; -				phy3: ethernet-phy@3 { -					interrupt-parent = <&mpic>; -					interrupts = <5 1>; -					reg = <0x3>; -					device_type = "ethernet-phy"; -				}; -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet1: ethernet@25000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x25000 0x1000>; -			ranges = <0x0 0x25000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <35 2 36 2 40 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi1>; -			phy-handle = <&phy1>; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi1: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet2: ethernet@26000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <2>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x26000 0x1000>; -			ranges = <0x0 0x26000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <31 2 32 2 33 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi2>; -			phy-handle = <&phy2>; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi2: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet3: ethernet@27000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <3>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x27000 0x1000>; -			ranges = <0x0 0x27000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <37 2 38 2 39 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi3>; -			phy-handle = <&phy3>; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi3: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>;	// reg base, size -			clock-frequency = <0>;	// should we fill in in uboot? -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>;	// reg base, size -			clock-frequency = <0>;	// should we fill in in uboot? -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 {	//global utilities reg -			compatible = "fsl,mpc8548-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; - -		crypto@30000 { -			compatible = "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0xfe>; -			fsl,descriptor-types-mask = <0x12b0ebf>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; -	}; - -	pci0: pci@e0008000 { -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x4 (PCIX Slot 2) */ -			0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 - -			/* IDSEL 0x5 (PCIX Slot 3) */ -			0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 -			0x2800 0x0 0x0 0x2 &mpic 0x2 0x1 -			0x2800 0x0 0x0 0x3 &mpic 0x3 0x1 -			0x2800 0x0 0x0 0x4 &mpic 0x0 0x1 - -			/* IDSEL 0x6 (PCIX Slot 4) */ -			0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 -			0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x8 (PCIX Slot 5) */ -			0x4000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0x4000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0x4000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0x4000 0x0 0x0 0x4 &mpic 0x3 0x1 - -			/* IDSEL 0xC (Tsi310 bridge) */ -			0x6000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0x6000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0x6000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0x6000 0x0 0x0 0x4 &mpic 0x3 0x1 - -			/* IDSEL 0x14 (Slot 2) */ -			0xa000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0xa000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0xa000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0xa000 0x0 0x0 0x4 &mpic 0x3 0x1 - -			/* IDSEL 0x15 (Slot 3) */ -			0xa800 0x0 0x0 0x1 &mpic 0x1 0x1 -			0xa800 0x0 0x0 0x2 &mpic 0x2 0x1 -			0xa800 0x0 0x0 0x3 &mpic 0x3 0x1 -			0xa800 0x0 0x0 0x4 &mpic 0x0 0x1 - -			/* IDSEL 0x16 (Slot 4) */ -			0xb000 0x0 0x0 0x1 &mpic 0x2 0x1 -			0xb000 0x0 0x0 0x2 &mpic 0x3 0x1 -			0xb000 0x0 0x0 0x3 &mpic 0x0 0x1 -			0xb000 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x18 (Slot 5) */ -			0xc000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0xc000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0xc000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0xc000 0x0 0x0 0x4 &mpic 0x3 0x1 - -			/* IDSEL 0x1C (Tsi310 bridge PCI primary) */ -			0xe000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0xe000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0xe000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0xe000 0x0 0x0 0x4 &mpic 0x3 0x1>; - -		interrupt-parent = <&mpic>; -		interrupts = <24 2>; -		bus-range = <0 0>; -		ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x10000000 -			  0x1000000 0x0 0x0 0xe2000000 0x0 0x800000>; -		clock-frequency = <66666666>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe0008000 0x1000>; -		compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; -		device_type = "pci"; - -		pci_bridge@1c { -			interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -			interrupt-map = < - -				/* IDSEL 0x00 (PrPMC Site) */ -				0000 0x0 0x0 0x1 &mpic 0x0 0x1 -				0000 0x0 0x0 0x2 &mpic 0x1 0x1 -				0000 0x0 0x0 0x3 &mpic 0x2 0x1 -				0000 0x0 0x0 0x4 &mpic 0x3 0x1 - -				/* IDSEL 0x04 (VIA chip) */ -				0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 -				0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 -				0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 -				0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 - -				/* IDSEL 0x05 (8139) */ -				0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 - -				/* IDSEL 0x06 (Slot 6) */ -				0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 -				0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 -				0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 -				0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 - -				/* IDESL 0x07 (Slot 7) */ -				0x3800 0x0 0x0 0x1 &mpic 0x3 0x1 -				0x3800 0x0 0x0 0x2 &mpic 0x0 0x1 -				0x3800 0x0 0x0 0x3 &mpic 0x1 0x1 -				0x3800 0x0 0x0 0x4 &mpic 0x2 0x1>; - -			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>; -					interrupt-parent = <&mpic>; -				}; - -				rtc@70 { -					compatible = "pnpPNP,b00"; -					reg = <0x1 0x70 0x2>; -				}; -			}; -		}; -	}; - -	pci1: pci@e0009000 { -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < - -			/* IDSEL 0x15 */ -			0xa800 0x0 0x0 0x1 &mpic 0xb 0x1 -			0xa800 0x0 0x0 0x2 &mpic 0x1 0x1 -			0xa800 0x0 0x0 0x3 &mpic 0x2 0x1 -			0xa800 0x0 0x0 0x4 &mpic 0x3 0x1>; - -		interrupt-parent = <&mpic>; -		interrupts = <25 2>; -		bus-range = <0 0>; -		ranges = <0x2000000 0x0 0x90000000 0x90000000 0x0 0x10000000 -			  0x1000000 0x0 0x0 0xe2800000 0x0 0x800000>; -		clock-frequency = <66666666>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe0009000 0x1000>; -		compatible = "fsl,mpc8540-pci"; -		device_type = "pci"; -	}; - -	pci2: pcie@e000a000 { -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < - -			/* IDSEL 0x0 (PEX) */ -			00000 0x0 0x0 0x1 &mpic 0x0 0x1 -			00000 0x0 0x0 0x2 &mpic 0x1 0x1 -			00000 0x0 0x0 0x3 &mpic 0x2 0x1 -			00000 0x0 0x0 0x4 &mpic 0x3 0x1>; - -		interrupt-parent = <&mpic>; -		interrupts = <26 2>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000 -			  0x1000000 0x0 0x0 0xe3000000 0x0 0x100000>; -		clock-frequency = <33333333>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe000a000 0x1000>; -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0xa0000000 -				  0x2000000 0x0 0xa0000000 -				  0x0 0x20000000 - -				  0x1000000 0x0 0x0 -				  0x1000000 0x0 0x0 -				  0x0 0x100000>; -		}; -	}; -}; diff --git a/arch/powerpc/boot/dts/mpc8548cds.dtsi b/arch/powerpc/boot/dts/mpc8548cds.dtsi new file mode 100644 index 00000000000..3bc7d471122 --- /dev/null +++ b/arch/powerpc/boot/dts/mpc8548cds.dtsi @@ -0,0 +1,302 @@ +/* + * 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>; +		}; +		phy1: ethernet-phy@1 { +			interrupts = <5 1 0 0>; +			reg = <0x1>; +		}; +		phy2: ethernet-phy@2 { +			interrupts = <5 1 0 0>; +			reg = <0x2>; +		}; +		phy3: ethernet-phy@3 { +			interrupts = <5 1 0 0>; +			reg = <0x3>; +		}; +		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>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/mpc8548cds_32b.dts b/arch/powerpc/boot/dts/mpc8548cds_32b.dts new file mode 100644 index 00000000000..6fd63163fc6 --- /dev/null +++ b/arch/powerpc/boot/dts/mpc8548cds_32b.dts @@ -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" diff --git a/arch/powerpc/boot/dts/mpc8548cds_36b.dts b/arch/powerpc/boot/dts/mpc8548cds_36b.dts new file mode 100644 index 00000000000..10e551b11bd --- /dev/null +++ b/arch/powerpc/boot/dts/mpc8548cds_36b.dts @@ -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" diff --git a/arch/powerpc/boot/dts/mpc8555cds.dts b/arch/powerpc/boot/dts/mpc8555cds.dts index 5c5614f9eb1..f115f21cb0a 100644 --- a/arch/powerpc/boot/dts/mpc8555cds.dts +++ b/arch/powerpc/boot/dts/mpc8555cds.dts @@ -11,6 +11,8 @@  /dts-v1/; +/include/ "fsl/e500v2_power_isa.dtsi" +  / {  	model = "MPC8555CDS";  	compatible = "MPC8555CDS", "MPC85xxCDS"; @@ -163,13 +165,11 @@  					interrupt-parent = <&mpic>;  					interrupts = <5 1>;  					reg = <0x0>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@1 {  					interrupt-parent = <&mpic>;  					interrupts = <5 1>;  					reg = <0x1>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -209,7 +209,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>; 	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; @@ -219,7 +219,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; diff --git a/arch/powerpc/boot/dts/mpc8560ads.dts b/arch/powerpc/boot/dts/mpc8560ads.dts index 6e85e1ba085..0d70921d612 100644 --- a/arch/powerpc/boot/dts/mpc8560ads.dts +++ b/arch/powerpc/boot/dts/mpc8560ads.dts @@ -11,6 +11,8 @@  /dts-v1/; +/include/ "fsl/e500v2_power_isa.dtsi" +  / {  	model = "MPC8560ADS";  	compatible = "MPC8560ADS", "MPC85xxADS"; @@ -152,25 +154,21 @@  					interrupt-parent = <&mpic>;  					interrupts = <5 1>;  					reg = <0x0>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@1 {  					interrupt-parent = <&mpic>;  					interrupts = <5 1>;  					reg = <0x1>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@2 {  					interrupt-parent = <&mpic>;  					interrupts = <7 1>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&mpic>;  					interrupts = <7 1>;  					reg = <0x3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; diff --git a/arch/powerpc/boot/dts/mpc8568mds.dts b/arch/powerpc/boot/dts/mpc8568mds.dts index 30cf0e098bb..bead2b655b9 100644 --- a/arch/powerpc/boot/dts/mpc8568mds.dts +++ b/arch/powerpc/boot/dts/mpc8568mds.dts @@ -9,58 +9,25 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/mpc8568si-pre.dtsi"  / {  	model = "MPC8568EMDS";  	compatible = "MPC8568EMDS", "MPC85xxMDS"; -	#address-cells = <1>; -	#size-cells = <1>;  	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		ethernet2 = &enet2; -		ethernet3 = &enet3; -		serial0 = &serial0; -		serial1 = &serial1;  		pci0 = &pci0;  		pci1 = &pci1; -		rapidio0 = &rio0; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,8568@0 { -			device_type = "cpu"; -			reg = <0x0>; -			d-cache-line-size = <32>;	// 32 bytes -			i-cache-line-size = <32>;	// 32 bytes -			d-cache-size = <0x8000>;		// L1, 32K -			i-cache-size = <0x8000>;		// L1, 32K -			sleep = <&pmc 0x00008000	// core -				 &pmc 0x00004000>;	// timebase -			timebase-frequency = <0>; -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>; -		}; +		rapidio0 = &rio;  	};  	memory {  		device_type = "memory"; -		reg = <0x0 0x10000000>; +		reg = <0x0 0x0 0x0 0x0>;  	}; -	localbus@e0005000 { -		#address-cells = <2>; -		#size-cells = <1>; -		compatible = "fsl,mpc8568-localbus", "fsl,pq3-localbus", -			     "simple-bus"; -		reg = <0xe0005000 0x1000>; - +	lbc: localbus@e0005000 { +		reg = <0x0 0xe0005000 0x0 0x1000>;  		ranges = <0x0 0x0 0xfe000000 0x02000000  			  0x1 0x0 0xf8000000 0x00008000  			  0x2 0x0 0xf0000000 0x04000000 @@ -102,288 +69,61 @@  		};  	}; -	soc8568@e0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "simple-bus"; -		ranges = <0x0 0xe0000000 0x100000>; -		bus-frequency = <0>; - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <10>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8568-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8568-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8568-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x80000>;	// L2, 512K -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; +	soc: soc8568@e0000000 { +		ranges = <0x0 0x0 0xe0000000 0x100000>;  		i2c-sleep-nexus { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "simple-bus"; -			sleep = <&pmc 0x00000004>; -			ranges; -  			i2c@3000 { -				#address-cells = <1>; -				#size-cells = <0>; -				cell-index = <0>; -				compatible = "fsl-i2c"; -				reg = <0x3000 0x100>; -				interrupts = <43 2>; -				interrupt-parent = <&mpic>; -				dfsrr; -  				rtc@68 {  					compatible = "dallas,ds1374";  					reg = <0x68>; -					interrupts = <3 1>; -					interrupt-parent = <&mpic>; +					interrupts = <3 1 0 0>;  				};  			}; +		}; -			i2c@3100 { -				#address-cells = <1>; -				#size-cells = <0>; -				cell-index = <1>; -				compatible = "fsl-i2c"; -				reg = <0x3100 0x100>; -				interrupts = <43 2>; -				interrupt-parent = <&mpic>; -				dfsrr; -			}; +		enet0: ethernet@24000 { +			tbi-handle = <&tbi0>; +			phy-handle = <&phy2>;  		}; -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8568-dma", "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			sleep = <&pmc 0x00000400>; - -			dma-channel@0 { -				compatible = "fsl,mpc8568-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; +		mdio@24520 { +			phy0: ethernet-phy@7 { +				interrupts = <1 1 0 0>; +				reg = <0x7>;  			}; -			dma-channel@80 { -				compatible = "fsl,mpc8568-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; +			phy1: ethernet-phy@1 { +				interrupts = <2 1 0 0>; +				reg = <0x1>;  			}; -			dma-channel@100 { -				compatible = "fsl,mpc8568-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; +			phy2: ethernet-phy@2 { +				interrupts = <1 1 0 0>; +				reg = <0x2>;  			}; -			dma-channel@180 { -				compatible = "fsl,mpc8568-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; +			phy3: ethernet-phy@3 { +				interrupts = <2 1 0 0>; +				reg = <0x3>;  			}; -		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; - 			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi0>; -			phy-handle = <&phy2>; -			sleep = <&pmc 0x00000080>; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@7 { -					interrupt-parent = <&mpic>; -					interrupts = <1 1>; -					reg = <0x7>; -					device_type = "ethernet-phy"; -				}; -				phy1: ethernet-phy@1 { -					interrupt-parent = <&mpic>; -					interrupts = <2 1>; -					reg = <0x1>; -					device_type = "ethernet-phy"; -				}; -				phy2: ethernet-phy@2 { -					interrupt-parent = <&mpic>; -					interrupts = <1 1>; -					reg = <0x2>; -					device_type = "ethernet-phy"; -				}; -				phy3: ethernet-phy@3 { -					interrupt-parent = <&mpic>; -					interrupts = <2 1>; -					reg = <0x3>; -					device_type = "ethernet-phy"; -				}; -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; +			tbi0: tbi-phy@11 { +				reg = <0x11>; +				device_type = "tbi-phy";  			};  		};  		enet1: ethernet@25000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x25000 0x1000>; -			ranges = <0x0 0x25000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; - 			interrupts = <35 2 36 2 40 2>; -			interrupt-parent = <&mpic>;  			tbi-handle = <&tbi1>;  			phy-handle = <&phy3>;  			sleep = <&pmc 0x00000040>; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi1: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			};  		}; -		duart-sleep-nexus { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "simple-bus"; -			sleep = <&pmc 0x00000002>; -			ranges; - -			serial0: serial@4500 { -				cell-index = <0>; -				device_type = "serial"; -				compatible = "ns16550"; -				reg = <0x4500 0x100>; -				clock-frequency = <0>; -				interrupts = <42 2>; -				interrupt-parent = <&mpic>; -			}; - -			serial1: serial@4600 { -				cell-index = <1>; -				device_type = "serial"; -				compatible = "ns16550"; -				reg = <0x4600 0x100>; -				clock-frequency = <0>; -				interrupts = <42 2>; -				interrupt-parent = <&mpic>; +		mdio@25520 { +			tbi1: tbi-phy@11 { +				reg = <0x11>; +				device_type = "tbi-phy";  			};  		}; -		global-utilities@e0000 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8568-guts", "fsl,mpc8548-guts"; -			reg = <0xe0000 0x1000>; -			ranges = <0 0xe0000 0x1000>; -			fsl,has-rstcr; - -			pmc: power@70 { -				compatible = "fsl,mpc8568-pmc", -					     "fsl,mpc8548-pmc"; -				reg = <0x70 0x20>; -			}; -		}; - -		crypto@30000 { -			compatible = "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0xfe>; -			fsl,descriptor-types-mask = <0x12b0ebf>; -			sleep = <&pmc 0x01000000>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; - -		msi@41600 { -			compatible = "fsl,mpc8568-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; -  		par_io@e0100 { -			reg = <0xe0100 0x100>; -			device_type = "par_io";  			num-ports = <7>;  			pio1: ucc_pin@01 { @@ -446,57 +186,21 @@  		};  	}; -	qe@e0080000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "qe"; -		compatible = "fsl,qe"; -		ranges = <0x0 0xe0080000 0x40000>; -		reg = <0xe0080000 0x480>; -		sleep = <&pmc 0x00000800>; -		brg-frequency = <0>; -		bus-frequency = <396000000>; -		fsl,qe-num-riscs = <2>; -		fsl,qe-num-snums = <28>; - -		muram@10000 { - 			#address-cells = <1>; - 			#size-cells = <1>; -			compatible = "fsl,qe-muram", "fsl,cpm-muram"; -			ranges = <0x0 0x10000 0x10000>; - -			data-only@0 { -				compatible = "fsl,qe-muram-data", -					     "fsl,cpm-muram-data"; -				reg = <0x0 0x10000>; -			}; -		}; +	qe: qe@e0080000 { +		ranges = <0x0 0x0 0xe0080000 0x40000>; +		reg = <0x0 0xe0080000 0x0 0x480>;  		spi@4c0 { -			cell-index = <0>; -			compatible = "fsl,spi"; -			reg = <0x4c0 0x40>; -			interrupts = <2>; -			interrupt-parent = <&qeic>;  			mode = "cpu";  		};  		spi@500 { -			cell-index = <1>; -			compatible = "fsl,spi"; -			reg = <0x500 0x40>; -			interrupts = <1>; -			interrupt-parent = <&qeic>;  			mode = "cpu";  		};  		enet2: ucc@2000 {  			device_type = "network";  			compatible = "ucc_geth"; -			cell-index = <1>; -			reg = <0x2000 0x200>; -			interrupts = <32>; -			interrupt-parent = <&qeic>;  			local-mac-address = [ 00 00 00 00 00 00 ];  			rx-clock-name = "none";  			tx-clock-name = "clk16"; @@ -508,10 +212,6 @@  		enet3: ucc@3000 {  			device_type = "network";  			compatible = "ucc_geth"; -			cell-index = <2>; -			reg = <0x3000 0x200>; -			interrupts = <33>; -			interrupt-parent = <&qeic>;  			local-mac-address = [ 00 00 00 00 00 00 ];  			rx-clock-name = "none";  			tx-clock-name = "clk16"; @@ -530,102 +230,53 @@  			 * gianfar's MDIO bus */  			qe_phy0: ethernet-phy@07 {  				interrupt-parent = <&mpic>; -				interrupts = <1 1>; +				interrupts = <1 1 0 0>;  				reg = <0x7>; -				device_type = "ethernet-phy";  			};  			qe_phy1: ethernet-phy@01 {  				interrupt-parent = <&mpic>; -				interrupts = <2 1>; +				interrupts = <2 1 0 0>;  				reg = <0x1>; -				device_type = "ethernet-phy";  			};  			qe_phy2: ethernet-phy@02 {  				interrupt-parent = <&mpic>; -				interrupts = <1 1>; +				interrupts = <1 1 0 0>;  				reg = <0x2>; -				device_type = "ethernet-phy";  			};  			qe_phy3: ethernet-phy@03 {  				interrupt-parent = <&mpic>; -				interrupts = <2 1>; +				interrupts = <2 1 0 0>;  				reg = <0x3>; -				device_type = "ethernet-phy";  			};  		}; - -		qeic: interrupt-controller@80 { -			interrupt-controller; -			compatible = "fsl,qe-ic"; -			#address-cells = <0>; -			#interrupt-cells = <1>; -			reg = <0x80 0x80>; -			big-endian; -			interrupts = <46 2 46 2>; //high:30 low:30 -			interrupt-parent = <&mpic>; -		}; -  	};  	pci0: pci@e0008000 { +		reg = <0x0 0xe0008000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0x80000000 0x0 0x80000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0x0 0xe2000000 0x0 0x800000>; +		clock-frequency = <66666666>;  		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;  		interrupt-map = <  			/* IDSEL 0x12 AD18 */ -			0x9000 0x0 0x0 0x1 &mpic 0x5 0x1 -			0x9000 0x0 0x0 0x2 &mpic 0x6 0x1 -			0x9000 0x0 0x0 0x3 &mpic 0x7 0x1 -			0x9000 0x0 0x0 0x4 &mpic 0x4 0x1 +			0x9000 0x0 0x0 0x1 &mpic 0x5 0x1 0 0 +			0x9000 0x0 0x0 0x2 &mpic 0x6 0x1 0 0 +			0x9000 0x0 0x0 0x3 &mpic 0x7 0x1 0 0 +			0x9000 0x0 0x0 0x4 &mpic 0x4 0x1 0 0  			/* IDSEL 0x13 AD19 */ -			0x9800 0x0 0x0 0x1 &mpic 0x6 0x1 -			0x9800 0x0 0x0 0x2 &mpic 0x7 0x1 -			0x9800 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x9800 0x0 0x0 0x4 &mpic 0x5 0x1>; - -		interrupt-parent = <&mpic>; -		interrupts = <24 2>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000 -			  0x1000000 0x0 0x0 0xe2000000 0x0 0x800000>; -		sleep = <&pmc 0x80000000>; -		clock-frequency = <66666666>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe0008000 0x1000>; -		compatible = "fsl,mpc8540-pci"; -		device_type = "pci"; +			0x9800 0x0 0x0 0x1 &mpic 0x6 0x1 0 0 +			0x9800 0x0 0x0 0x2 &mpic 0x7 0x1 0 0 +			0x9800 0x0 0x0 0x3 &mpic 0x4 0x1 0 0 +			0x9800 0x0 0x0 0x4 &mpic 0x5 0x1 0 0>;  	};  	/* PCI Express */  	pci1: pcie@e000a000 { -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < - -			/* IDSEL 0x0 (PEX) */ -			00000 0x0 0x0 0x1 &mpic 0x0 0x1 -			00000 0x0 0x0 0x2 &mpic 0x1 0x1 -			00000 0x0 0x0 0x3 &mpic 0x2 0x1 -			00000 0x0 0x0 0x4 &mpic 0x3 0x1>; - -		interrupt-parent = <&mpic>; -		interrupts = <26 2>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 -			  0x1000000 0x0 0x0 0xe2800000 0x0 0x800000>; -		sleep = <&pmc 0x20000000>; -		clock-frequency = <33333333>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe000a000 0x1000>; -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; +		ranges = <0x2000000 0x0 0xa0000000 0x0 0xa0000000 0x0 0x10000000 +			  0x1000000 0x0 0x00000000 0x0 0xe2800000 0x0 0x800000>; +		reg = <0x0 0xe000a000 0x0 0x1000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xa0000000  				  0x2000000 0x0 0xa0000000  				  0x0 0x10000000 @@ -636,22 +287,11 @@  		};  	}; -	rio0: rapidio@e00c00000 { -		#address-cells = <2>; -		#size-cells = <2>; -		compatible = "fsl,mpc8568-rapidio", "fsl,rapidio-delta"; -		reg = <0xe00c0000 0x20000>; -		ranges = <0x0 0x0 0xc0000000 0x0 0x20000000>; -		interrupts = <48 2 /* error     */ -			      49 2 /* bell_outb */ -			      50 2 /* bell_inb  */ -			      53 2 /* msg1_tx   */ -			      54 2 /* msg1_rx   */ -			      55 2 /* msg2_tx   */ -			      56 2 /* msg2_rx   */>; -		interrupt-parent = <&mpic>; -		sleep = <&pmc 0x00080000   /* controller */ -			 &pmc 0x00040000>; /* message unit */ +	rio: rapidio@e00c00000 { +		reg = <0x0 0xe00c0000 0x0 0x20000>; +		port1 { +			ranges = <0x0 0x0 0x0 0xc0000000 0x0 0x20000000>; +		};  	};  	leds { @@ -670,3 +310,5 @@  		};  	};  }; + +/include/ "fsl/mpc8568si-post.dtsi" diff --git a/arch/powerpc/boot/dts/mpc8569mds.dts b/arch/powerpc/boot/dts/mpc8569mds.dts index 8b72eaff5b0..d0dcdafa5eb 100644 --- a/arch/powerpc/boot/dts/mpc8569mds.dts +++ b/arch/powerpc/boot/dts/mpc8569mds.dts @@ -9,66 +9,36 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/mpc8569si-pre.dtsi"  / {  	model = "MPC8569EMDS";  	compatible = "fsl,MPC8569EMDS"; -	#address-cells = <1>; -	#size-cells = <1>; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>;  	aliases { -		serial0 = &serial0; -		serial1 = &serial1; -		ethernet0 = &enet0; -		ethernet1 = &enet1;  		ethernet2 = &enet2;  		ethernet3 = &enet3;  		ethernet5 = &enet5;  		ethernet7 = &enet7; -		pci1 = &pci1; -		rapidio0 = &rio0; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,8569@0 { -			device_type = "cpu"; -			reg = <0x0>; -			d-cache-line-size = <32>;	// 32 bytes -			i-cache-line-size = <32>;	// 32 bytes -			d-cache-size = <0x8000>;		// L1, 32K -			i-cache-size = <0x8000>;		// L1, 32K -			sleep = <&pmc 0x00008000	// core -				 &pmc 0x00004000>;	// timebase -			timebase-frequency = <0>; -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>; -		}; +		rapidio0 = &rio;  	};  	memory {  		device_type = "memory";  	}; -	localbus@e0005000 { -		#address-cells = <2>; -		#size-cells = <1>; -		compatible = "fsl,mpc8569-elbc", "fsl,elbc", "simple-bus"; -		reg = <0xe0005000 0x1000>; -		interrupts = <19 2>; -		interrupt-parent = <&mpic>; -		sleep = <&pmc 0x08000000>; - -		ranges = <0x0 0x0 0xfe000000 0x02000000 -			  0x1 0x0 0xf8000000 0x00008000 -			  0x2 0x0 0xf0000000 0x04000000 -			  0x3 0x0 0xfc000000 0x00008000 -			  0x4 0x0 0xf8008000 0x00008000 -			  0x5 0x0 0xf8010000 0x00008000>; +	lbc: localbus@e0005000 { +		reg = <0x0 0xe0005000 0x0 0x1000>; + +		ranges = <0x0 0x0 0x0 0xfe000000 0x02000000 +			  0x1 0x0 0x0 0xf8000000 0x00008000 +			  0x2 0x0 0x0 0xf0000000 0x04000000 +			  0x3 0x0 0x0 0xfc000000 0x00008000 +			  0x4 0x0 0x0 0xf8008000 0x00008000 +			  0x5 0x0 0x0 0xf8010000 0x00008000>;  		nor@0,0 {  			#address-cells = <1>; @@ -133,220 +103,26 @@  		};  	}; -	soc@e0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "fsl,mpc8569-immr", "simple-bus"; -		ranges = <0x0 0xe0000000 0x100000>; -		bus-frequency = <0>; - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <10>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8569-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8569-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; +	soc: soc@e0000000 { +		ranges = <0x0 0x0 0xe0000000 0x100000>;  		i2c-sleep-nexus { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "simple-bus"; -			sleep = <&pmc 0x00000004>; -			ranges; -  			i2c@3000 { -				#address-cells = <1>; -				#size-cells = <0>; -				cell-index = <0>; -				compatible = "fsl-i2c"; -				reg = <0x3000 0x100>; -				interrupts = <43 2>; -				interrupt-parent = <&mpic>; -				dfsrr; -  				rtc@68 {  					compatible = "dallas,ds1374";  					reg = <0x68>; -					interrupts = <3 1>; -					interrupt-parent = <&mpic>; +					interrupts = <3 1 0 0>;  				};  			}; - -			i2c@3100 { -				#address-cells = <1>; -				#size-cells = <0>; -				cell-index = <1>; -				compatible = "fsl-i2c"; -				reg = <0x3100 0x100>; -				interrupts = <43 2>; -				interrupt-parent = <&mpic>; -				dfsrr; -			}; -		}; - -		duart-sleep-nexus { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "simple-bus"; -			sleep = <&pmc 0x00000002>; -			ranges; - -			serial0: serial@4500 { -				cell-index = <0>; -				device_type = "serial"; -				compatible = "ns16550"; -				reg = <0x4500 0x100>; -				clock-frequency = <0>; -				interrupts = <42 2>; -				interrupt-parent = <&mpic>; -			}; - -			serial1: serial@4600 { -				cell-index = <1>; -				device_type = "serial"; -				compatible = "ns16550"; -				reg = <0x4600 0x100>; -				clock-frequency = <0>; -				interrupts = <42 2>; -				interrupt-parent = <&mpic>; -			}; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8569-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x80000>;	// L2, 512K -			interrupt-parent = <&mpic>; -			interrupts = <16 2>;  		}; -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8569-dma", "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8569-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8569-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8569-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8569-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		sdhci@2e000 { -			compatible = "fsl,mpc8569-esdhc", "fsl,esdhc"; -			reg = <0x2e000 0x1000>; -			interrupts = <72 0x8>; -			interrupt-parent = <&mpic>; -			sleep = <&pmc 0x00200000>; -			/* Filled in by U-Boot */ -			clock-frequency = <0>; +		sdhc@2e000 {  			status = "disabled";  			sdhci,1-bit-only; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", -				"fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0xbfe>; -			fsl,descriptor-types-mask = <0x3ab0ebf>; -			sleep = <&pmc 0x01000000>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; - -		msi@41600 { -			compatible = "fsl,mpc8568-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8569-guts", "fsl,mpc8548-guts"; -			reg = <0xe0000 0x1000>; -			ranges = <0 0xe0000 0x1000>; -			fsl,has-rstcr; - -			pmc: power@70 { -				compatible = "fsl,mpc8569-pmc", -					     "fsl,mpc8548-pmc"; -				reg = <0x70 0x20>; -			}; +			bus-width = <1>;  		};  		par_io@e0100 { -			#address-cells = <1>; -			#size-cells = <1>; -			reg = <0xe0100 0x100>; -			ranges = <0x0 0xe0100 0x100>; -			device_type = "par_io";  			num-ports = <7>;  			qe_pio_e: gpio-controller@80 { @@ -447,47 +223,11 @@  		};  	}; -	qe@e0080000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "qe"; -		compatible = "fsl,qe"; -		ranges = <0x0 0xe0080000 0x40000>; -		reg = <0xe0080000 0x480>; -		sleep = <&pmc 0x00000800>; -		brg-frequency = <0>; -		bus-frequency = <0>; -		fsl,qe-num-riscs = <4>; -		fsl,qe-num-snums = <46>; - -		qeic: interrupt-controller@80 { -			interrupt-controller; -			compatible = "fsl,qe-ic"; -			#address-cells = <0>; -			#interrupt-cells = <1>; -			reg = <0x80 0x80>; -			interrupts = <46 2 46 2>; //high:30 low:30 -			interrupt-parent = <&mpic>; -		}; - -		timer@440 { -			compatible = "fsl,mpc8569-qe-gtm", -				     "fsl,qe-gtm", "fsl,gtm"; -			reg = <0x440 0x40>; -			interrupts = <12 13 14 15>; -			interrupt-parent = <&qeic>; -			/* Filled in by U-Boot */ -			clock-frequency = <0>; -		}; +	qe: qe@e0080000 { +		ranges = <0x0 0x0 0xe0080000 0x40000>; +		reg = <0x0 0xe0080000 0x0 0x480>;  		spi@4c0 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc8569-qe-spi", "fsl,spi"; -			reg = <0x4c0 0x40>; -			cell-index = <0>; -			interrupts = <2>; -			interrupt-parent = <&qeic>;  			gpios = <&qe_pio_e 30 0>;  			mode = "cpu-qe"; @@ -499,20 +239,10 @@  		};  		spi@500 { -			cell-index = <1>; -			compatible = "fsl,spi"; -			reg = <0x500 0x40>; -			interrupts = <1>; -			interrupt-parent = <&qeic>;  			mode = "cpu";  		};  		usb@6c0 { -			compatible = "fsl,mpc8569-qe-usb", -				     "fsl,mpc8323-qe-usb"; -			reg = <0x6c0 0x40 0x8b00 0x100>; -			interrupts = <11>; -			interrupt-parent = <&qeic>;  			fsl,fullspeed-clock = "clk5";  			fsl,lowspeed-clock = "brg10";  			gpios = <&qe_pio_f 3 0   /* USBOE */ @@ -527,10 +257,6 @@  		enet0: ucc@2000 {  			device_type = "network";  			compatible = "ucc_geth"; -			cell-index = <1>; -			reg = <0x2000 0x200>; -			interrupts = <32>; -			interrupt-parent = <&qeic>;  			local-mac-address = [ 00 00 00 00 00 00 ];  			rx-clock-name = "none";  			tx-clock-name = "clk12"; @@ -548,37 +274,29 @@  			qe_phy0: ethernet-phy@07 {  				interrupt-parent = <&mpic>; -				interrupts = <1 1>; +				interrupts = <1 1 0 0>;  				reg = <0x7>; -				device_type = "ethernet-phy";  			};  			qe_phy1: ethernet-phy@01 {  				interrupt-parent = <&mpic>; -				interrupts = <2 1>; +				interrupts = <2 1 0 0>;  				reg = <0x1>; -				device_type = "ethernet-phy";  			};  			qe_phy2: ethernet-phy@02 {  				interrupt-parent = <&mpic>; -				interrupts = <3 1>; +				interrupts = <3 1 0 0>;  				reg = <0x2>; -				device_type = "ethernet-phy";  			};  			qe_phy3: ethernet-phy@03 {  				interrupt-parent = <&mpic>; -				interrupts = <4 1>; +				interrupts = <4 1 0 0>;  				reg = <0x3>; -				device_type = "ethernet-phy";  			};  			qe_phy5: ethernet-phy@04 { -				interrupt-parent = <&mpic>;  				reg = <0x04>; -				device_type = "ethernet-phy";  			};  			qe_phy7: ethernet-phy@06 { -				interrupt-parent = <&mpic>;  				reg = <0x6>; -				device_type = "ethernet-phy";  			};  			tbi1: tbi-phy@11 {  				reg = <0x11>; @@ -610,10 +328,6 @@  		enet2: ucc@2200 {  			device_type = "network";  			compatible = "ucc_geth"; -			cell-index = <3>; -			reg = <0x2200 0x200>; -			interrupts = <34>; -			interrupt-parent = <&qeic>;  			local-mac-address = [ 00 00 00 00 00 00 ];  			rx-clock-name = "none";  			tx-clock-name = "clk12"; @@ -637,10 +351,6 @@  		enet1: ucc@3000 {  			device_type = "network";  			compatible = "ucc_geth"; -			cell-index = <2>; -			reg = <0x3000 0x200>; -			interrupts = <33>; -			interrupt-parent = <&qeic>;  			local-mac-address = [ 00 00 00 00 00 00 ];  			rx-clock-name = "none";  			tx-clock-name = "clk17"; @@ -664,10 +374,6 @@  		enet3: ucc@3200 {  			device_type = "network";  			compatible = "ucc_geth"; -			cell-index = <4>; -			reg = <0x3200 0x200>; -			interrupts = <35>; -			interrupt-parent = <&qeic>;  			local-mac-address = [ 00 00 00 00 00 00 ];  			rx-clock-name = "none";  			tx-clock-name = "clk17"; @@ -691,10 +397,6 @@  		enet5: ucc@3400 {  			device_type = "network";  			compatible = "ucc_geth"; -			cell-index = <6>; -			reg = <0x3400 0x200>; -			interrupts = <41>; -			interrupt-parent = <&qeic>;  			local-mac-address = [ 00 00 00 00 00 00 ];  			rx-clock-name = "none";  			tx-clock-name = "none"; @@ -706,10 +408,6 @@  		enet7: ucc@3600 {  			device_type = "network";  			compatible = "ucc_geth"; -			cell-index = <8>; -			reg = <0x3600 0x200>; -			interrupts = <43>; -			interrupt-parent = <&qeic>;  			local-mac-address = [ 00 00 00 00 00 00 ];  			rx-clock-name = "none";  			tx-clock-name = "none"; @@ -717,50 +415,14 @@  			phy-handle = <&qe_phy7>;  			phy-connection-type = "sgmii";  		}; - -		muram@10000 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,qe-muram", "fsl,cpm-muram"; -			ranges = <0x0 0x10000 0x20000>; - -			data-only@0 { -				compatible = "fsl,qe-muram-data", -					     "fsl,cpm-muram-data"; -				reg = <0x0 0x20000>; -			}; -		}; -  	};  	/* PCI Express */  	pci1: pcie@e000a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe000a000 0x1000>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 (PEX) */ -			00000 0x0 0x0 0x1 &mpic 0x0 0x1 -			00000 0x0 0x0 0x2 &mpic 0x1 0x1 -			00000 0x0 0x0 0x3 &mpic 0x2 0x1 -			00000 0x0 0x0 0x4 &mpic 0x3 0x1>; - -		interrupt-parent = <&mpic>; -		interrupts = <26 2>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 -			  0x1000000 0x0 0x00000000 0xe2800000 0x0 0x00800000>; -		sleep = <&pmc 0x20000000>; -		clock-frequency = <33333333>; +		reg = <0x0 0xe000a000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x10000000 +			  0x1000000 0x0 0x00000000 0 0xe2800000 0x0 0x00800000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xa0000000  				  0x2000000 0x0 0xa0000000  				  0x0 0x10000000 @@ -771,20 +433,15 @@  		};  	}; -	rio0: rapidio@e00c00000 { -		#address-cells = <2>; -		#size-cells = <2>; -		compatible = "fsl,mpc8569-rapidio", "fsl,rapidio-delta"; -		reg = <0xe00c0000 0x20000>; -		ranges = <0x0 0x0 0xc0000000 0x0 0x20000000>; -		interrupts = <48 2 /* error     */ -			      49 2 /* bell_outb */ -			      50 2 /* bell_inb  */ -			      53 2 /* msg1_tx   */ -			      54 2 /* msg1_rx   */ -			      55 2 /* msg2_tx   */ -			      56 2 /* msg2_rx   */>; -		interrupt-parent = <&mpic>; -		sleep = <&pmc 0x00080000>; +	rio: rapidio@e00c00000 { +		reg = <0x0 0xe00c0000 0x0 0x20000>; +		port1 { +			ranges = <0x0 0x0 0x0 0xc0000000 0x0 0x20000000>; +		}; +		port2 { +			status = "disabled"; +		};  	};  }; + +/include/ "fsl/mpc8569si-post.dtsi" diff --git a/arch/powerpc/boot/dts/mpc8572ds.dts b/arch/powerpc/boot/dts/mpc8572ds.dts index cafc1285c14..0c9f2955deb 100644 --- a/arch/powerpc/boot/dts/mpc8572ds.dts +++ b/arch/powerpc/boot/dts/mpc8572ds.dts @@ -9,67 +9,18 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/mpc8572si-pre.dtsi" +  / {  	model = "fsl,MPC8572DS";  	compatible = "fsl,MPC8572DS"; -	#address-cells = <2>; -	#size-cells = <2>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		ethernet2 = &enet2; -		ethernet3 = &enet3; -		serial0 = &serial0; -		serial1 = &serial1; -		pci0 = &pci0; -		pci1 = &pci1; -		pci2 = &pci2; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,8572@0 { -			device_type = "cpu"; -			reg = <0x0>; -			d-cache-line-size = <32>;	// 32 bytes -			i-cache-line-size = <32>;	// 32 bytes -			d-cache-size = <0x8000>;		// L1, 32K -			i-cache-size = <0x8000>;		// L1, 32K -			timebase-frequency = <0>; -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>; -		}; - -		PowerPC,8572@1 { -			device_type = "cpu"; -			reg = <0x1>; -			d-cache-line-size = <32>;	// 32 bytes -			i-cache-line-size = <32>;	// 32 bytes -			d-cache-size = <0x8000>;		// L1, 32K -			i-cache-size = <0x8000>;		// L1, 32K -			timebase-frequency = <0>; -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>; -		}; -	};  	memory {  		device_type = "memory";  	}; -	localbus@ffe05000 { -		#address-cells = <2>; -		#size-cells = <1>; -		compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus"; +	board_lbc: lbc: localbus@ffe05000 {  		reg = <0 0xffe05000 0 0x1000>; -		interrupts = <19 2>; -		interrupt-parent = <&mpic>;  		ranges = <0x0 0x0 0x0 0xe8000000 0x08000000  			  0x1 0x0 0x0 0xe0000000 0x08000000 @@ -78,588 +29,17 @@  			  0x4 0x0 0x0 0xffa40000 0x00040000  			  0x5 0x0 0x0 0xffa80000 0x00040000  			  0x6 0x0 0x0 0xffac0000 0x00040000>; - -		nor@0,0 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "cfi-flash"; -			reg = <0x0 0x0 0x8000000>; -			bank-width = <2>; -			device-width = <1>; - -			ramdisk@0 { -				reg = <0x0 0x03000000>; -				read-only; -			}; - -			diagnostic@3000000 { -				reg = <0x03000000 0x00e00000>; -				read-only; -			}; - -			dink@3e00000 { -				reg = <0x03e00000 0x00200000>; -				read-only; -			}; - -			kernel@4000000 { -				reg = <0x04000000 0x00400000>; -				read-only; -			}; - -			jffs2@4400000 { -				reg = <0x04400000 0x03b00000>; -			}; - -			dtb@7f00000 { -				reg = <0x07f00000 0x00080000>; -				read-only; -			}; - -			u-boot@7f80000 { -				reg = <0x07f80000 0x00080000>; -				read-only; -			}; -		}; - -		nand@2,0 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8572-fcm-nand", -				     "fsl,elbc-fcm-nand"; -			reg = <0x2 0x0 0x40000>; - -			u-boot@0 { -				reg = <0x0 0x02000000>; -				read-only; -			}; - -			jffs2@2000000 { -				reg = <0x02000000 0x10000000>; -			}; - -			ramdisk@12000000 { -				reg = <0x12000000 0x08000000>; -				read-only; -			}; - -			kernel@1a000000 { -				reg = <0x1a000000 0x04000000>; -			}; - -			dtb@1e000000 { -				reg = <0x1e000000 0x01000000>; -				read-only; -			}; - -			empty@1f000000 { -				reg = <0x1f000000 0x21000000>; -			}; -		}; - -		nand@4,0 { -			compatible = "fsl,mpc8572-fcm-nand", -				     "fsl,elbc-fcm-nand"; -			reg = <0x4 0x0 0x40000>; -		}; - -		nand@5,0 { -			compatible = "fsl,mpc8572-fcm-nand", -				     "fsl,elbc-fcm-nand"; -			reg = <0x5 0x0 0x40000>; -		}; - -		nand@6,0 { -			compatible = "fsl,mpc8572-fcm-nand", -				     "fsl,elbc-fcm-nand"; -			reg = <0x6 0x0 0x40000>; -		};  	}; -	soc8572@ffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "simple-bus"; +	board_soc: soc: soc8572@ffe00000 {  		ranges = <0x0 0 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8572-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8572-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; - -		memory-controller@6000 { -			compatible = "fsl,mpc8572-memory-controller"; -			reg = <0x6000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8572-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x100000>; // L2, 1M -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		dma@c300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; -			reg = <0xc300 0x4>; -			ranges = <0x0 0xc100 0x200>; -			cell-index = <1>; -			dma-channel@0 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <76 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <77 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <78 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <79 2>; -			}; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi0>; -			phy-handle = <&phy0>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@0 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x0>; -				}; -				phy1: ethernet-phy@1 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x1>; -				}; -				phy2: ethernet-phy@2 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x2>; -				}; -				phy3: ethernet-phy@3 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x3>; -				}; - -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet1: ethernet@25000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x25000 0x1000>; -			ranges = <0x0 0x25000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <35 2 36 2 40 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi1>; -			phy-handle = <&phy1>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi1: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet2: ethernet@26000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <2>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x26000 0x1000>; -			ranges = <0x0 0x26000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <31 2 32 2 33 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi2>; -			phy-handle = <&phy2>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi2: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet3: ethernet@27000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <3>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x27000 0x1000>; -			ranges = <0x0 0x27000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <37 2 38 2 39 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi3>; -			phy-handle = <&phy3>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi3: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,mpc8572-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; - -		msi@41600 { -			compatible = "fsl,mpc8572-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2", -				     "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0x9fe>; -			fsl,descriptor-types-mask = <0x3ab0ebf>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		};  	}; -	pci0: pcie@ffe08000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; +	board_pci0: pci0: pcie@ffe08000 {  		reg = <0 0xffe08000 0 0x1000>; -		bus-range = <0 255>;  		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <24 2>; -		interrupt-map-mask = <0xff00 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x11 func 0 - PCI slot 1 */ -			0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8800 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 1 - PCI slot 1 */ -			0x8900 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8900 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8900 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8900 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 2 - PCI slot 1 */ -			0x8a00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8a00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8a00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8a00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 3 - PCI slot 1 */ -			0x8b00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8b00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8b00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8b00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 4 - PCI slot 1 */ -			0x8c00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8c00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8c00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8c00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 5 - PCI slot 1 */ -			0x8d00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8d00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8d00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8d00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 6 - PCI slot 1 */ -			0x8e00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8e00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8e00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8e00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 7 - PCI slot 1 */ -			0x8f00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8f00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8f00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8f00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x12 func 0 - PCI slot 2 */ -			0x9000 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9000 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9000 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9000 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 1 - PCI slot 2 */ -			0x9100 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9100 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9100 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9100 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 2 - PCI slot 2 */ -			0x9200 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9200 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9200 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9200 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 3 - PCI slot 2 */ -			0x9300 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9300 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9300 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9300 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 4 - PCI slot 2 */ -			0x9400 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9400 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9400 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9400 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 5 - PCI slot 2 */ -			0x9500 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9500 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9500 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9500 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 6 - PCI slot 2 */ -			0x9600 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9600 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9600 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9600 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 7 - PCI slot 2 */ -			0x9700 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9700 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9700 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9700 0x0 0x0 0x4 &mpic 0x2 0x1 - -			// IDSEL 0x1c  USB -			0xe000 0x0 0x0 0x1 &i8259 0xc 0x2 -			0xe100 0x0 0x0 0x2 &i8259 0x9 0x2 -			0xe200 0x0 0x0 0x3 &i8259 0xa 0x2 -			0xe300 0x0 0x0 0x4 &i8259 0xb 0x2 - -			// IDSEL 0x1d  Audio -			0xe800 0x0 0x0 0x1 &i8259 0x6 0x2 - -			// IDSEL 0x1e Legacy -			0xf000 0x0 0x0 0x1 &i8259 0x7 0x2 -			0xf100 0x0 0x0 0x1 &i8259 0x7 0x2 - -			// IDSEL 0x1f IDE/SATA -			0xf800 0x0 0x0 0x1 &i8259 0xe 0x2 -			0xf900 0x0 0x0 0x1 &i8259 0x5 0x2 - -			>; -  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0x80000000  				  0x2000000 0x0 0x80000000  				  0x0 0x20000000 @@ -667,99 +47,14 @@  				  0x1000000 0x0 0x0  				  0x1000000 0x0 0x0  				  0x0 0x10000>; -			uli1575@0 { -				reg = <0x0 0x0 0x0 0x0 0x0>; -				#size-cells = <2>; -				#address-cells = <3>; -				ranges = <0x2000000 0x0 0x80000000 -					  0x2000000 0x0 0x80000000 -					  0x0 0x20000000 - -					  0x1000000 0x0 0x0 -					  0x1000000 0x0 0x0 -					  0x0 0x10000>; -				isa@1e { -					device_type = "isa"; -					#interrupt-cells = <2>; -					#size-cells = <1>; -					#address-cells = <2>; -					reg = <0xf000 0x0 0x0 0x0 0x0>; -					ranges = <0x1 0x0 0x1000000 0x0 0x0 -						  0x1000>; -					interrupt-parent = <&i8259>; - -					i8259: interrupt-controller@20 { -						reg = <0x1 0x20 0x2 -						       0x1 0xa0 0x2 -						       0x1 0x4d0 0x2>; -						interrupt-controller; -						device_type = "interrupt-controller"; -						#address-cells = <0>; -						#interrupt-cells = <2>; -						compatible = "chrp,iic"; -						interrupts = <9 2>; -						interrupt-parent = <&mpic>; -					}; - -					i8042@60 { -						#size-cells = <0>; -						#address-cells = <1>; -						reg = <0x1 0x60 0x1 0x1 0x64 0x1>; -						interrupts = <1 3 12 3>; -						interrupt-parent = -							<&i8259>; - -						keyboard@0 { -							reg = <0x0>; -							compatible = "pnpPNP,303"; -						}; - -						mouse@1 { -							reg = <0x1>; -							compatible = "pnpPNP,f03"; -						}; -					}; - -					rtc@70 { -						compatible = "pnpPNP,b00"; -						reg = <0x1 0x70 0x2>; -					}; - -					gpio@400 { -						reg = <0x1 0x400 0x80>; -					}; -				}; -			};  		}; -  	};  	pci1: pcie@ffe09000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0 0xffe09000 0 0x1000>; -		bus-range = <0 255>;  		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <25 2>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0x0 0x0 0x1 &mpic 0x4 0x1 -			0000 0x0 0x0 0x2 &mpic 0x5 0x1 -			0000 0x0 0x0 0x3 &mpic 0x6 0x1 -			0000 0x0 0x0 0x4 &mpic 0x7 0x1 -			>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xa0000000  				  0x2000000 0x0 0xa0000000  				  0x0 0x20000000 @@ -771,31 +66,10 @@  	};  	pci2: pcie@ffe0a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0 0xffe0a000 0 0x1000>; -		bus-range = <0 255>;  		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <26 2>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0000 0x0 0x0 0x4 &mpic 0x3 0x1 -			>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xc0000000  				  0x2000000 0x0 0xc0000000  				  0x0 0x20000000 @@ -806,3 +80,11 @@  		};  	};  }; + +/* + * mpc8572ds.dtsi must be last to ensure board_pci0 overrides pci0 settings + * for interrupt-map & interrupt-map-mask + */ + +/include/ "fsl/mpc8572si-post.dtsi" +/include/ "mpc8572ds.dtsi" diff --git a/arch/powerpc/boot/dts/mpc8572ds.dtsi b/arch/powerpc/boot/dts/mpc8572ds.dtsi new file mode 100644 index 00000000000..357490bb84d --- /dev/null +++ b/arch/powerpc/boot/dts/mpc8572ds.dtsi @@ -0,0 +1,428 @@ +/* + * MPC8572DS 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. + */ + +&board_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 0x00060000>; +			label = "dtb-nor"; +		}; + +		partition@7f60000 { +			reg = <0x07f60000 0x00020000>; +			label = "env-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,mpc8572-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"; +		}; +	}; + +	nand@4,0 { +		compatible = "fsl,mpc8572-fcm-nand", +			     "fsl,elbc-fcm-nand"; +		reg = <0x4 0x0 0x40000>; +	}; + +	nand@5,0 { +		compatible = "fsl,mpc8572-fcm-nand", +			     "fsl,elbc-fcm-nand"; +		reg = <0x5 0x0 0x40000>; +	}; + +	nand@6,0 { +		compatible = "fsl,mpc8572-fcm-nand", +			     "fsl,elbc-fcm-nand"; +		reg = <0x6 0x0 0x40000>; +	}; +}; + +&board_soc { +	enet0: ethernet@24000 { +		tbi-handle = <&tbi0>; +		phy-handle = <&phy0>; +		phy-connection-type = "rgmii-id"; +	}; + +	mdio@24520 { +		phy0: ethernet-phy@0 { +			interrupts = <10 1 0 0>; +			reg = <0x0>; +		}; +		phy1: ethernet-phy@1 { +			interrupts = <10 1 0 0>; +			reg = <0x1>; +		}; +		phy2: ethernet-phy@2 { +			interrupts = <10 1 0 0>; +			reg = <0x2>; +		}; +		phy3: ethernet-phy@3 { +			interrupts = <10 1 0 0>; +			reg = <0x3>; +		}; + +		sgmii_phy0: sgmii-phy@0 { +			interrupts = <6 1 0 0>; +			reg = <0x1c>; +		}; +		sgmii_phy1: sgmii-phy@1 { +			interrupts = <6 1 0 0>; +			reg = <0x1d>; +		}; +		sgmii_phy2: sgmii-phy@2 { +			interrupts = <7 1 0 0>; +			reg = <0x1e>; +		}; +		sgmii_phy3: sgmii-phy@3 { +			interrupts = <7 1 0 0>; +			reg = <0x1f>; +		}; + +		tbi0: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	ptp_clock@24e00 { +		fsl,tclk-period = <5>; +		fsl,tmr-prsc = <200>; +		fsl,tmr-add = <0xAAAAAAAB>; +		fsl,tmr-fiper1 = <0x3B9AC9FB>; +		fsl,tmr-fiper2 = <0x3B9AC9FB>; +		fsl,max-adj = <499999999>; +	}; + +	enet1: ethernet@25000 { +		tbi-handle = <&tbi1>; +		phy-handle = <&phy1>; +		phy-connection-type = "rgmii-id"; + +	}; + +	mdio@25520 { +		tbi1: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	enet2: ethernet@26000 { +		tbi-handle = <&tbi2>; +		phy-handle = <&phy2>; +		phy-connection-type = "rgmii-id"; + +	}; +	mdio@26520 { +		tbi2: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	enet3: ethernet@27000 { +		tbi-handle = <&tbi3>; +		phy-handle = <&phy3>; +		phy-connection-type = "rgmii-id"; +	}; + +	mdio@27520 { +		tbi3: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; +}; + +&board_pci0 { +	pcie@0 { +		interrupt-map-mask = <0xff00 0x0 0x0 0x7>; +		interrupt-map = < +			/* IDSEL 0x11 func 0 - PCI slot 1 */ +			0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 +			0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 +			0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 0 0 +			0x8800 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 + +			/* IDSEL 0x11 func 1 - PCI slot 1 */ +			0x8900 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 +			0x8900 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 +			0x8900 0x0 0x0 0x3 &mpic 0x4 0x1 0 0 +			0x8900 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 + +			/* IDSEL 0x11 func 2 - PCI slot 1 */ +			0x8a00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 +			0x8a00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 +			0x8a00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0 +			0x8a00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 + +			/* IDSEL 0x11 func 3 - PCI slot 1 */ +			0x8b00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 +			0x8b00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 +			0x8b00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0 +			0x8b00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 + +			/* IDSEL 0x11 func 4 - PCI slot 1 */ +			0x8c00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 +			0x8c00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 +			0x8c00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0 +			0x8c00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 + +			/* IDSEL 0x11 func 5 - PCI slot 1 */ +			0x8d00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 +			0x8d00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 +			0x8d00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0 +			0x8d00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 + +			/* IDSEL 0x11 func 6 - PCI slot 1 */ +			0x8e00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 +			0x8e00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 +			0x8e00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0 +			0x8e00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 + +			/* IDSEL 0x11 func 7 - PCI slot 1 */ +			0x8f00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0 +			0x8f00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0 +			0x8f00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0 +			0x8f00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0 + +			/* IDSEL 0x12 func 0 - PCI slot 2 */ +			0x9000 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 +			0x9000 0x0 0x0 0x2 &mpic 0x4 0x1 0 0 +			0x9000 0x0 0x0 0x3 &mpic 0x1 0x1 0 0 +			0x9000 0x0 0x0 0x4 &mpic 0x2 0x1 0 0 + +			/* IDSEL 0x12 func 1 - PCI slot 2 */ +			0x9100 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 +			0x9100 0x0 0x0 0x2 &mpic 0x4 0x1 0 0 +			0x9100 0x0 0x0 0x3 &mpic 0x1 0x1 0 0 +			0x9100 0x0 0x0 0x4 &mpic 0x2 0x1 0 0 + +			/* IDSEL 0x12 func 2 - PCI slot 2 */ +			0x9200 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 +			0x9200 0x0 0x0 0x2 &mpic 0x4 0x1 0 0 +			0x9200 0x0 0x0 0x3 &mpic 0x1 0x1 0 0 +			0x9200 0x0 0x0 0x4 &mpic 0x2 0x1 0 0 + +			/* IDSEL 0x12 func 3 - PCI slot 2 */ +			0x9300 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 +			0x9300 0x0 0x0 0x2 &mpic 0x4 0x1 0 0 +			0x9300 0x0 0x0 0x3 &mpic 0x1 0x1 0 0 +			0x9300 0x0 0x0 0x4 &mpic 0x2 0x1 0 0 + +			/* IDSEL 0x12 func 4 - PCI slot 2 */ +			0x9400 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 +			0x9400 0x0 0x0 0x2 &mpic 0x4 0x1 0 0 +			0x9400 0x0 0x0 0x3 &mpic 0x1 0x1 0 0 +			0x9400 0x0 0x0 0x4 &mpic 0x2 0x1 0 0 + +			/* IDSEL 0x12 func 5 - PCI slot 2 */ +			0x9500 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 +			0x9500 0x0 0x0 0x2 &mpic 0x4 0x1 0 0 +			0x9500 0x0 0x0 0x3 &mpic 0x1 0x1 0 0 +			0x9500 0x0 0x0 0x4 &mpic 0x2 0x1 0 0 + +			/* IDSEL 0x12 func 6 - PCI slot 2 */ +			0x9600 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 +			0x9600 0x0 0x0 0x2 &mpic 0x4 0x1 0 0 +			0x9600 0x0 0x0 0x3 &mpic 0x1 0x1 0 0 +			0x9600 0x0 0x0 0x4 &mpic 0x2 0x1 0 0 + +			/* IDSEL 0x12 func 7 - PCI slot 2 */ +			0x9700 0x0 0x0 0x1 &mpic 0x3 0x1 0 0 +			0x9700 0x0 0x0 0x2 &mpic 0x4 0x1 0 0 +			0x9700 0x0 0x0 0x3 &mpic 0x1 0x1 0 0 +			0x9700 0x0 0x0 0x4 &mpic 0x2 0x1 0 0 + +			// IDSEL 0x1c  USB +			0xe000 0x0 0x0 0x1 &i8259 0xc 0x2 +			0xe100 0x0 0x0 0x2 &i8259 0x9 0x2 +			0xe200 0x0 0x0 0x3 &i8259 0xa 0x2 +			0xe300 0x0 0x0 0x4 &i8259 0xb 0x2 + +			// IDSEL 0x1d  Audio +			0xe800 0x0 0x0 0x1 &i8259 0x6 0x2 + +			// IDSEL 0x1e Legacy +			0xf000 0x0 0x0 0x1 &i8259 0x7 0x2 +			0xf100 0x0 0x0 0x1 &i8259 0x7 0x2 + +			// IDSEL 0x1f IDE/SATA +			0xf800 0x0 0x0 0x1 &i8259 0xe 0x2 +			0xf900 0x0 0x0 0x1 &i8259 0x5 0x2 +			>; + + +		uli1575@0 { +			reg = <0x0 0x0 0x0 0x0 0x0>; +			#size-cells = <2>; +			#address-cells = <3>; +			ranges = <0x2000000 0x0 0x80000000 +				  0x2000000 0x0 0x80000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x10000>; +			isa@1e { +				device_type = "isa"; +				#interrupt-cells = <2>; +				#size-cells = <1>; +				#address-cells = <2>; +				reg = <0xf000 0x0 0x0 0x0 0x0>; +				ranges = <0x1 0x0 0x1000000 0x0 0x0 +					  0x1000>; +				interrupt-parent = <&i8259>; + +				i8259: interrupt-controller@20 { +					reg = <0x1 0x20 0x2 +					       0x1 0xa0 0x2 +					       0x1 0x4d0 0x2>; +					interrupt-controller; +					device_type = "interrupt-controller"; +					#address-cells = <0>; +					#interrupt-cells = <2>; +					compatible = "chrp,iic"; +					interrupts = <9 2 0 0>; +					interrupt-parent = <&mpic>; +				}; + +				i8042@60 { +					#size-cells = <0>; +					#address-cells = <1>; +					reg = <0x1 0x60 0x1 0x1 0x64 0x1>; +					interrupts = <1 3 12 3>; +					interrupt-parent = +						<&i8259>; + +					keyboard@0 { +						reg = <0x0>; +						compatible = "pnpPNP,303"; +					}; + +					mouse@1 { +						reg = <0x1>; +						compatible = "pnpPNP,f03"; +					}; +				}; + +				rtc@70 { +					compatible = "pnpPNP,b00"; +					reg = <0x1 0x70 0x2>; +				}; + +				gpio@400 { +					reg = <0x1 0x400 0x80>; +				}; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/mpc8572ds_36b.dts b/arch/powerpc/boot/dts/mpc8572ds_36b.dts index f6365db3b97..6c3d0b305e1 100644 --- a/arch/powerpc/boot/dts/mpc8572ds_36b.dts +++ b/arch/powerpc/boot/dts/mpc8572ds_36b.dts @@ -1,5 +1,5 @@  /* - * MPC8572 DS Device Tree Source + * MPC8572DS Device Tree Source (36-bit address map)   *   * Copyright 2007-2009 Freescale Semiconductor Inc.   * @@ -9,67 +9,18 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/mpc8572si-pre.dtsi" +  / {  	model = "fsl,MPC8572DS";  	compatible = "fsl,MPC8572DS"; -	#address-cells = <2>; -	#size-cells = <2>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		ethernet2 = &enet2; -		ethernet3 = &enet3; -		serial0 = &serial0; -		serial1 = &serial1; -		pci0 = &pci0; -		pci1 = &pci1; -		pci2 = &pci2; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,8572@0 { -			device_type = "cpu"; -			reg = <0x0>; -			d-cache-line-size = <32>;	// 32 bytes -			i-cache-line-size = <32>;	// 32 bytes -			d-cache-size = <0x8000>;		// L1, 32K -			i-cache-size = <0x8000>;		// L1, 32K -			timebase-frequency = <0>; -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>; -		}; - -		PowerPC,8572@1 { -			device_type = "cpu"; -			reg = <0x1>; -			d-cache-line-size = <32>;	// 32 bytes -			i-cache-line-size = <32>;	// 32 bytes -			d-cache-size = <0x8000>;		// L1, 32K -			i-cache-size = <0x8000>;		// L1, 32K -			timebase-frequency = <0>; -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>; -		}; -	};  	memory {  		device_type = "memory";  	}; -	localbus@fffe05000 { -		#address-cells = <2>; -		#size-cells = <1>; -		compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus"; +	board_lbc: lbc: localbus@fffe05000 {  		reg = <0xf 0xffe05000 0 0x1000>; -		interrupts = <19 2>; -		interrupt-parent = <&mpic>;  		ranges = <0x0 0x0 0xf 0xe8000000 0x08000000  			  0x1 0x0 0xf 0xe0000000 0x08000000 @@ -78,588 +29,17 @@  			  0x4 0x0 0xf 0xffa40000 0x00040000  			  0x5 0x0 0xf 0xffa80000 0x00040000  			  0x6 0x0 0xf 0xffac0000 0x00040000>; - -		nor@0,0 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "cfi-flash"; -			reg = <0x0 0x0 0x8000000>; -			bank-width = <2>; -			device-width = <1>; - -			ramdisk@0 { -				reg = <0x0 0x03000000>; -				read-only; -			}; - -			diagnostic@3000000 { -				reg = <0x03000000 0x00e00000>; -				read-only; -			}; - -			dink@3e00000 { -				reg = <0x03e00000 0x00200000>; -				read-only; -			}; - -			kernel@4000000 { -				reg = <0x04000000 0x00400000>; -				read-only; -			}; - -			jffs2@4400000 { -				reg = <0x04400000 0x03b00000>; -			}; - -			dtb@7f00000 { -				reg = <0x07f00000 0x00080000>; -				read-only; -			}; - -			u-boot@7f80000 { -				reg = <0x07f80000 0x00080000>; -				read-only; -			}; -		}; - -		nand@2,0 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8572-fcm-nand", -				     "fsl,elbc-fcm-nand"; -			reg = <0x2 0x0 0x40000>; - -			u-boot@0 { -				reg = <0x0 0x02000000>; -				read-only; -			}; - -			jffs2@2000000 { -				reg = <0x02000000 0x10000000>; -			}; - -			ramdisk@12000000 { -				reg = <0x12000000 0x08000000>; -				read-only; -			}; - -			kernel@1a000000 { -				reg = <0x1a000000 0x04000000>; -			}; - -			dtb@1e000000 { -				reg = <0x1e000000 0x01000000>; -				read-only; -			}; - -			empty@1f000000 { -				reg = <0x1f000000 0x21000000>; -			}; -		}; - -		nand@4,0 { -			compatible = "fsl,mpc8572-fcm-nand", -				     "fsl,elbc-fcm-nand"; -			reg = <0x4 0x0 0x40000>; -		}; - -		nand@5,0 { -			compatible = "fsl,mpc8572-fcm-nand", -				     "fsl,elbc-fcm-nand"; -			reg = <0x5 0x0 0x40000>; -		}; - -		nand@6,0 { -			compatible = "fsl,mpc8572-fcm-nand", -				     "fsl,elbc-fcm-nand"; -			reg = <0x6 0x0 0x40000>; -		};  	}; -	soc8572@fffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "simple-bus"; +	board_soc: soc: soc8572@fffe00000 {  		ranges = <0x0 0xf 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8572-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8572-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; - -		memory-controller@6000 { -			compatible = "fsl,mpc8572-memory-controller"; -			reg = <0x6000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8572-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x100000>; // L2, 1M -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		dma@c300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; -			reg = <0xc300 0x4>; -			ranges = <0x0 0xc100 0x200>; -			cell-index = <1>; -			dma-channel@0 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <76 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <77 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <78 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <79 2>; -			}; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi0>; -			phy-handle = <&phy0>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@0 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x0>; -				}; -				phy1: ethernet-phy@1 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x1>; -				}; -				phy2: ethernet-phy@2 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x2>; -				}; -				phy3: ethernet-phy@3 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x3>; -				}; - -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet1: ethernet@25000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x25000 0x1000>; -			ranges = <0x0 0x25000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <35 2 36 2 40 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi1>; -			phy-handle = <&phy1>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi1: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet2: ethernet@26000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <2>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x26000 0x1000>; -			ranges = <0x0 0x26000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <31 2 32 2 33 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi2>; -			phy-handle = <&phy2>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi2: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet3: ethernet@27000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <3>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x27000 0x1000>; -			ranges = <0x0 0x27000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <37 2 38 2 39 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi3>; -			phy-handle = <&phy3>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi3: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,mpc8572-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; - -		msi@41600 { -			compatible = "fsl,mpc8572-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2", -				     "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0x9fe>; -			fsl,descriptor-types-mask = <0x3ab0ebf>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		};  	}; -	pci0: pcie@fffe08000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; +	board_pci0: pci0: pcie@fffe08000 {  		reg = <0xf 0xffe08000 0 0x1000>; -		bus-range = <0 255>;  		ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <24 2>; -		interrupt-map-mask = <0xff00 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x11 func 0 - PCI slot 1 */ -			0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8800 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 1 - PCI slot 1 */ -			0x8900 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8900 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8900 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8900 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 2 - PCI slot 1 */ -			0x8a00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8a00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8a00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8a00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 3 - PCI slot 1 */ -			0x8b00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8b00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8b00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8b00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 4 - PCI slot 1 */ -			0x8c00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8c00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8c00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8c00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 5 - PCI slot 1 */ -			0x8d00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8d00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8d00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8d00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 6 - PCI slot 1 */ -			0x8e00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8e00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8e00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8e00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 7 - PCI slot 1 */ -			0x8f00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8f00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8f00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8f00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x12 func 0 - PCI slot 2 */ -			0x9000 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9000 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9000 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9000 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 1 - PCI slot 2 */ -			0x9100 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9100 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9100 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9100 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 2 - PCI slot 2 */ -			0x9200 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9200 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9200 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9200 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 3 - PCI slot 2 */ -			0x9300 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9300 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9300 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9300 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 4 - PCI slot 2 */ -			0x9400 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9400 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9400 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9400 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 5 - PCI slot 2 */ -			0x9500 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9500 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9500 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9500 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 6 - PCI slot 2 */ -			0x9600 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9600 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9600 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9600 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 7 - PCI slot 2 */ -			0x9700 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9700 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9700 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9700 0x0 0x0 0x4 &mpic 0x2 0x1 - -			// IDSEL 0x1c  USB -			0xe000 0x0 0x0 0x1 &i8259 0xc 0x2 -			0xe100 0x0 0x0 0x2 &i8259 0x9 0x2 -			0xe200 0x0 0x0 0x3 &i8259 0xa 0x2 -			0xe300 0x0 0x0 0x4 &i8259 0xb 0x2 - -			// IDSEL 0x1d  Audio -			0xe800 0x0 0x0 0x1 &i8259 0x6 0x2 - -			// IDSEL 0x1e Legacy -			0xf000 0x0 0x0 0x1 &i8259 0x7 0x2 -			0xf100 0x0 0x0 0x1 &i8259 0x7 0x2 - -			// IDSEL 0x1f IDE/SATA -			0xf800 0x0 0x0 0x1 &i8259 0xe 0x2 -			0xf900 0x0 0x0 0x1 &i8259 0x5 0x2 - -			>; -  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xe0000000  				  0x2000000 0x0 0xe0000000  				  0x0 0x20000000 @@ -667,99 +47,14 @@  				  0x1000000 0x0 0x0  				  0x1000000 0x0 0x0  				  0x0 0x10000>; -			uli1575@0 { -				reg = <0x0 0x0 0x0 0x0 0x0>; -				#size-cells = <2>; -				#address-cells = <3>; -				ranges = <0x2000000 0x0 0xe0000000 -					  0x2000000 0x0 0xe0000000 -					  0x0 0x20000000 - -					  0x1000000 0x0 0x0 -					  0x1000000 0x0 0x0 -					  0x0 0x10000>; -				isa@1e { -					device_type = "isa"; -					#interrupt-cells = <2>; -					#size-cells = <1>; -					#address-cells = <2>; -					reg = <0xf000 0x0 0x0 0x0 0x0>; -					ranges = <0x1 0x0 0x1000000 0x0 0x0 -						  0x1000>; -					interrupt-parent = <&i8259>; - -					i8259: interrupt-controller@20 { -						reg = <0x1 0x20 0x2 -						       0x1 0xa0 0x2 -						       0x1 0x4d0 0x2>; -						interrupt-controller; -						device_type = "interrupt-controller"; -						#address-cells = <0>; -						#interrupt-cells = <2>; -						compatible = "chrp,iic"; -						interrupts = <9 2>; -						interrupt-parent = <&mpic>; -					}; - -					i8042@60 { -						#size-cells = <0>; -						#address-cells = <1>; -						reg = <0x1 0x60 0x1 0x1 0x64 0x1>; -						interrupts = <1 3 12 3>; -						interrupt-parent = -							<&i8259>; - -						keyboard@0 { -							reg = <0x0>; -							compatible = "pnpPNP,303"; -						}; - -						mouse@1 { -							reg = <0x1>; -							compatible = "pnpPNP,f03"; -						}; -					}; - -					rtc@70 { -						compatible = "pnpPNP,b00"; -						reg = <0x1 0x70 0x2>; -					}; - -					gpio@400 { -						reg = <0x1 0x400 0x80>; -					}; -				}; -			};  		}; -  	};  	pci1: pcie@fffe09000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0xf 0xffe09000 0 0x1000>; -		bus-range = <0 255>;  		ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <25 2>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0x0 0x0 0x1 &mpic 0x4 0x1 -			0000 0x0 0x0 0x2 &mpic 0x5 0x1 -			0000 0x0 0x0 0x3 &mpic 0x6 0x1 -			0000 0x0 0x0 0x4 &mpic 0x7 0x1 -			>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xe0000000  				  0x2000000 0x0 0xe0000000  				  0x0 0x20000000 @@ -771,31 +66,10 @@  	};  	pci2: pcie@fffe0a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0xf 0xffe0a000 0 0x1000>; -		bus-range = <0 255>;  		ranges = <0x2000000 0x0 0xe0000000 0xc 0x40000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0xf 0xffc20000 0x0 0x00010000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <26 2>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0000 0x0 0x0 0x4 &mpic 0x3 0x1 -			>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xe0000000  				  0x2000000 0x0 0xe0000000  				  0x0 0x20000000 @@ -806,3 +80,11 @@  		};  	};  }; + +/* + * mpc8572ds.dtsi must be last to ensure board_pci0 overrides pci0 settings + * for interrupt-map & interrupt-map-mask + */ + +/include/ "fsl/mpc8572si-post.dtsi" +/include/ "mpc8572ds.dtsi" diff --git a/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts b/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts index 3375c2ab0c3..ef9ef56b3ee 100644 --- a/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts +++ b/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts @@ -14,494 +14,69 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc8572ds.dts" +  / {  	model = "fsl,MPC8572DS";  	compatible = "fsl,MPC8572DS", "fsl,MPC8572DS-CAMP"; -	#address-cells = <1>; -	#size-cells = <1>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		serial0 = &serial0; -		pci0 = &pci0; -		pci1 = &pci1; -	};  	cpus { -		#address-cells = <1>; -		#size-cells = <0>; -  		PowerPC,8572@0 { -			device_type = "cpu"; -			reg = <0x0>; -			d-cache-line-size = <32>;	// 32 bytes -			i-cache-line-size = <32>;	// 32 bytes -			d-cache-size = <0x8000>;		// L1, 32K -			i-cache-size = <0x8000>;		// L1, 32K -			timebase-frequency = <0>; -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>;  		}; - +		PowerPC,8572@1 { +			status = "disabled"; +		};  	}; -	memory { -		device_type = "memory"; -		reg = <0x0 0x0>;	// Filled by U-Boot +	localbus@ffe05000 { +		status = "disabled";  	};  	soc8572@ffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "simple-bus"; -		ranges = <0x0 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8572-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; +		serial@4600 { +			status = "disabled";  		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8572-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; +		dma@c300 { +			status = "disabled";  		}; - -		memory-controller@6000 { -			compatible = "fsl,mpc8572-memory-controller"; -			reg = <0x6000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; +		gpio-controller@f000 {  		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8572-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes +		l2-cache-controller@20000 {  			cache-size = <0x80000>;	// L2, 512K -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			};  		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>; -			phy-handle = <&phy0>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@0 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x0>; -				}; -				phy1: ethernet-phy@1 { -					interrupt-parent = <&mpic>; -					interrupts = <10 1>; -					reg = <0x1>; -				}; -			}; -		}; - -		enet1: ethernet@25000 { -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x25000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <35 2 36 2 40 2>; -			interrupt-parent = <&mpic>; -			phy-handle = <&phy1>; -			phy-connection-type = "rgmii-id"; +		ethernet@26000 { +			status = "disabled";  		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -		}; - -		msi@41600 { -			compatible = "fsl,mpc8572-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x80>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0>; -			interrupt-parent = <&mpic>; +		mdio@26520 { +			status = "disabled";  		}; - -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,mpc8572-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; +		ethernet@27000 { +			status = "disabled";  		}; - -		crypto@30000 { -			compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2", -				     "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0x9fe>; -			fsl,descriptor-types-mask = <0x3ab0ebf>; +		mdio@27520 { +			status = "disabled";  		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; +		pic@40000 {  			protected-sources = <  			31 32 33 37 38 39       /* enet2 enet3 */  			76 77 78 79 26 42	/* dma2 pci2 serial*/  			0xe4 0xe5 0xe6 0xe7	/* msi */  			>;  		}; -	}; - -	pci0: pcie@ffe08000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xffe08000 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000 -			  0x1000000 0x0 0x0 0xffc00000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <24 2>; -		interrupt-map-mask = <0xff00 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x11 func 0 - PCI slot 1 */ -			0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8800 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 1 - PCI slot 1 */ -			0x8900 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8900 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8900 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8900 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 2 - PCI slot 1 */ -			0x8a00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8a00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8a00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8a00 0x0 0x0 0x4 &mpic 0x1 0x1 -			/* IDSEL 0x11 func 3 - PCI slot 1 */ -			0x8b00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8b00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8b00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8b00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 4 - PCI slot 1 */ -			0x8c00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8c00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8c00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8c00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 5 - PCI slot 1 */ -			0x8d00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8d00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8d00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8d00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 6 - PCI slot 1 */ -			0x8e00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8e00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8e00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8e00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 func 7 - PCI slot 1 */ -			0x8f00 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8f00 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8f00 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8f00 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x12 func 0 - PCI slot 2 */ -			0x9000 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9000 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9000 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9000 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 1 - PCI slot 2 */ -			0x9100 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9100 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9100 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9100 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 2 - PCI slot 2 */ -			0x9200 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9200 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9200 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9200 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 3 - PCI slot 2 */ -			0x9300 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9300 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9300 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9300 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 4 - PCI slot 2 */ -			0x9400 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9400 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9400 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9400 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 5 - PCI slot 2 */ -			0x9500 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9500 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9500 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9500 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 6 - PCI slot 2 */ -			0x9600 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9600 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9600 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9600 0x0 0x0 0x4 &mpic 0x2 0x1 - -			/* IDSEL 0x12 func 7 - PCI slot 2 */ -			0x9700 0x0 0x0 0x1 &mpic 0x3 0x1 -			0x9700 0x0 0x0 0x2 &mpic 0x4 0x1 -			0x9700 0x0 0x0 0x3 &mpic 0x1 0x1 -			0x9700 0x0 0x0 0x4 &mpic 0x2 0x1 - -			// IDSEL 0x1c  USB -			0xe000 0x0 0x0 0x1 &i8259 0xc 0x2 -			0xe100 0x0 0x0 0x2 &i8259 0x9 0x2 -			0xe200 0x0 0x0 0x3 &i8259 0xa 0x2 -			0xe300 0x0 0x0 0x4 &i8259 0xb 0x2 - -			// IDSEL 0x1d  Audio -			0xe800 0x0 0x0 0x1 &i8259 0x6 0x2 - -			// IDSEL 0x1e Legacy -			0xf000 0x0 0x0 0x1 &i8259 0x7 0x2 -			0xf100 0x0 0x0 0x1 &i8259 0x7 0x2 - -			// IDSEL 0x1f IDE/SATA -			0xf800 0x0 0x0 0x1 &i8259 0xe 0x2 -			0xf900 0x0 0x0 0x1 &i8259 0x5 0x2 - -			>; - -		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0x80000000 -				  0x2000000 0x0 0x80000000 -				  0x0 0x20000000 - -				  0x1000000 0x0 0x0 -				  0x1000000 0x0 0x0 -				  0x0 0x10000>; -			uli1575@0 { -				reg = <0x0 0x0 0x0 0x0 0x0>; -				#size-cells = <2>; -				#address-cells = <3>; -				ranges = <0x2000000 0x0 0x80000000 -					  0x2000000 0x0 0x80000000 -					  0x0 0x20000000 - -					  0x1000000 0x0 0x0 -					  0x1000000 0x0 0x0 -					  0x0 0x10000>; -				isa@1e { -					device_type = "isa"; -					#interrupt-cells = <2>; -					#size-cells = <1>; -					#address-cells = <2>; -					reg = <0xf000 0x0 0x0 0x0 0x0>; -					ranges = <0x1 0x0 0x1000000 0x0 0x0 -						  0x1000>; -					interrupt-parent = <&i8259>; - -					i8259: interrupt-controller@20 { -						reg = <0x1 0x20 0x2 -						       0x1 0xa0 0x2 -						       0x1 0x4d0 0x2>; -						interrupt-controller; -						device_type = "interrupt-controller"; -						#address-cells = <0>; -						#interrupt-cells = <2>; -						compatible = "chrp,iic"; -						interrupts = <9 2>; -						interrupt-parent = <&mpic>; -					}; - -					i8042@60 { -						#size-cells = <0>; -						#address-cells = <1>; -						reg = <0x1 0x60 0x1 0x1 0x64 0x1>; -						interrupts = <1 3 12 3>; -						interrupt-parent = -							<&i8259>; - -						keyboard@0 { -							reg = <0x0>; -							compatible = "pnpPNP,303"; -						}; - -						mouse@1 { -							reg = <0x1>; -							compatible = "pnpPNP,f03"; -						}; -					}; - -					rtc@70 { -						compatible = "pnpPNP,b00"; -						reg = <0x1 0x70 0x2>; -					}; - -					gpio@400 { -						reg = <0x1 0x400 0x80>; -					}; -				}; -			}; +		msi@41600 { +			msi-available-ranges = <0 0x80>; +			interrupts = < +				0xe0 0 0 0 +				0xe1 0 0 0 +				0xe2 0 0 0 +				0xe3 0 0 0>;  		}; - -	}; - -	pci1: pcie@ffe09000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xffe09000 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000 -			  0x1000000 0x0 0x0 0xffc10000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <25 2>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0x0 0x0 0x1 &mpic 0x4 0x1 -			0000 0x0 0x0 0x2 &mpic 0x5 0x1 -			0000 0x0 0x0 0x3 &mpic 0x6 0x1 -			0000 0x0 0x0 0x4 &mpic 0x7 0x1 -			>; -		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0xa0000000 -				  0x2000000 0x0 0xa0000000 -				  0x0 0x20000000 - -				  0x1000000 0x0 0x0 -				  0x1000000 0x0 0x0 -				  0x0 0x10000>; +		timer@42100 { +			status = "disabled";  		};  	}; +	pcie@ffe0a000 { +		status = "disabled"; +	};  }; diff --git a/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts b/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts index e7b477f6a3f..24564ee108e 100644 --- a/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts +++ b/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts @@ -15,169 +15,71 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc8572ds.dts" +  / {  	model = "fsl,MPC8572DS";  	compatible = "fsl,MPC8572DS", "fsl,MPC8572DS-CAMP"; -	#address-cells = <1>; -	#size-cells = <1>; - -	aliases { -		ethernet2 = &enet2; -		ethernet3 = &enet3; -		serial0 = &serial0; -		pci2 = &pci2; -	};  	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - +		PowerPC,8572@0 { +			status = "disabled"; +		};  		PowerPC,8572@1 { -			device_type = "cpu"; -			reg = <0x1>; -			d-cache-line-size = <32>;	// 32 bytes -			i-cache-line-size = <32>;	// 32 bytes -			d-cache-size = <0x8000>;		// L1, 32K -			i-cache-size = <0x8000>;		// L1, 32K -			timebase-frequency = <0>; -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>;  		};  	}; -	memory { -		device_type = "memory"; -		reg = <0x0 0x0>;	// Filled by U-Boot +	localbus@ffe05000 { +		status = "disabled";  	};  	soc8572@ffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "simple-bus"; -		ranges = <0x0 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8572-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>; // 32 bytes -			cache-size = <0x80000>; // L2, 512K -			interrupt-parent = <&mpic>; +		ecm-law@0 { +			status = "disabled";  		}; - -		dma@c300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; -			reg = <0xc300 0x4>; -			ranges = <0x0 0xc100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <76 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <77 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <78 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8572-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <79 2>; -			}; +		ecm@1000 { +			status = "disabled";  		}; - -		mdio@24520 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,gianfar-mdio"; -			reg = <0x24520 0x20>; - -			phy2: ethernet-phy@2 { -				interrupt-parent = <&mpic>; -				reg = <0x2>; -			}; -			phy3: ethernet-phy@3 { -				interrupt-parent = <&mpic>; -				reg = <0x3>; -			}; +		memory-controller@2000 { +			status = "disabled";  		}; - -		enet2: ethernet@26000 { -			cell-index = <2>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x26000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <31 2 32 2 33 2>; -			interrupt-parent = <&mpic>; -			phy-handle = <&phy2>; -			phy-connection-type = "rgmii-id"; +		memory-controller@6000 { +			status = "disabled";  		}; - -		enet3: ethernet@27000 { -			cell-index = <3>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x27000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <37 2 38 2 39 2>; -			interrupt-parent = <&mpic>; -			phy-handle = <&phy3>; -			phy-connection-type = "rgmii-id"; +		i2c@3000 { +			status = "disabled";  		}; - -		msi@41600 { -			compatible = "fsl,mpc8572-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0x80 0x80>; -			interrupts = < -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; +		i2c@3100 { +			status = "disabled";  		}; - -		serial0: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; +		serial@4500 { +			status = "disabled";  		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; +		gpio-controller@f000 { +			status = "disabled"; +		}; +		l2-cache-controller@20000 { +			cache-size = <0x80000>;	// L2, 512K +		}; +		dma@21300 { +			status = "disabled"; +		}; +		ethernet@24000 { +			status = "disabled"; +		}; +		ptp_clock@24e00 { +			status = "disabled"; +		}; +		ethernet@25000 { +			status = "disabled"; +		}; +		mdio@25520 { +			status = "disabled"; +		}; +		crypto@30000 { +			status = "disabled"; +		}; +		pic@40000 {  			protected-sources = <  			18 16 10 42 45 58	/* MEM L2 mdio serial crypto */  			29 30 34 35 36 40	/* enet0 enet1 */ @@ -189,41 +91,25 @@  			0xe0 0xe1 0xe2 0xe3	/* msi */  			>;  		}; -	}; - -	pci2: pcie@ffe0a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xffe0a000 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000 -			  0x1000000 0x0 0x0 0xffc20000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <26 2>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0000 0x0 0x0 0x4 &mpic 0x3 0x1 -			>; -		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0xc0000000 -				  0x2000000 0x0 0xc0000000 -				  0x0 0x20000000 - -				  0x1000000 0x0 0x0 -				  0x1000000 0x0 0x0 -				  0x0 0x10000>; +		timer@41100 { +			status = "disabled";  		}; +		msi@41600 { +			msi-available-ranges = <0x80 0x80>; +			interrupts = < +				0xe4 0 0 0 +				0xe5 0 0 0 +				0xe6 0 0 0 +				0xe7 0 0 0>; +		}; +		global-utilities@e0000 { +			status = "disabled"; +		}; +	}; +	pcie@ffe08000 { +		status = "disabled"; +	}; +	pcie@ffe09000 { +		status = "disabled";  	};  }; diff --git a/arch/powerpc/boot/dts/mpc8610_hpcd.dts b/arch/powerpc/boot/dts/mpc8610_hpcd.dts index 83c3218cb4d..6a109a0ceac 100644 --- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts +++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts @@ -175,7 +175,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -186,7 +186,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/boot/dts/mpc8641_hpcn.dts index 848320e4d3c..1c03060dd0b 100644 --- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts +++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts @@ -26,13 +26,6 @@  		serial1 = &serial1;  		pci0 = &pci0;  		pci1 = &pci1; -/* - * Only one of Rapid IO or PCI can be present due to HW limitations and - * due to the fact that the 2 now share address space in the new memory - * map.  The most likely case is that we have PCI, so comment out the - * rapidio node.  Leave it here for reference. - */ -		/* rapidio0 = &rapidio0; */  	};  	cpus { @@ -218,25 +211,21 @@  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <0>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@1 {  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <1>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@2 {  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -335,7 +324,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -345,7 +334,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <28 2>; @@ -361,6 +350,41 @@  			device_type = "open-pic";  		}; +		rmu: rmu@d3000 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,srio-rmu"; +			reg = <0xd3000 0x500>; +			ranges = <0x0 0xd3000 0x500>; + +			message-unit@0 { +				compatible = "fsl,srio-msg-unit"; +				reg = <0x0 0x100>; +				interrupts = < +					53 2 /* msg1_tx_irq */ +					54 2>;/* msg1_rx_irq */ +			}; +			message-unit@100 { +				compatible = "fsl,srio-msg-unit"; +				reg = <0x100 0x100>; +				interrupts = < +					55 2  /* msg2_tx_irq */ +					56 2>;/* msg2_rx_irq */ +			}; +			doorbell-unit@400 { +				compatible = "fsl,srio-dbell-unit"; +				reg = <0x400 0x80>; +				interrupts = < +					49 2  /* bell_outb_irq */ +					50 2>;/* bell_inb_irq */ +			}; +			port-write-unit@4e0 { +				compatible = "fsl,srio-port-write-unit"; +				reg = <0x4e0 0x20>; +				interrupts = <48 2>; +			}; +		}; +  		global-utilities@e0000 {  			compatible = "fsl,mpc8641-guts";  			reg = <0xe0000 0x1000>; @@ -612,16 +636,27 @@  		};  	};  /* -	rapidio0: rapidio@ffec0000 { + * Only one of Rapid IO or PCI can be present due to HW limitations and + * due to the fact that the 2 now share address space in the new memory + * map.  The most likely case is that we have PCI, so comment out the + * rapidio node.  Leave it here for reference. + +	rapidio@ffec0000 { +		reg = <0xffec0000 0x11000>; +		compatible = "fsl,srio"; +		interrupt-parent = <&mpic>; +		interrupts = <48 2>;  		#address-cells = <2>;  		#size-cells = <2>; -		compatible = "fsl,rapidio-delta"; -		reg = <0xffec0000 0x20000>; -		ranges = <0 0 0x80000000 0 0x20000000>; -		interrupt-parent = <&mpic>; -		// err_irq bell_outb_irq bell_inb_irq -		//	msg1_tx_irq msg1_rx_irq	msg2_tx_irq msg2_rx_irq -		interrupts = <48 2 49 2 50 2 53 2 54 2 55 2 56 2>; +		fsl,srio-rmu-handle = <&rmu>; +		ranges; + +		port1 { +			#address-cells = <2>; +			#size-cells = <2>; +			cell-index = <1>; +			ranges = <0 0 0x80000000 0 0x20000000>; +		};  	};  */ diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts b/arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts index 8be8e701e1d..bb575e28042 100644 --- a/arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts +++ b/arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts @@ -211,25 +211,21 @@  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <0>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@1 {  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <1>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@2 {  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -328,7 +324,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -338,7 +334,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <28 2>; diff --git a/arch/powerpc/boot/dts/mpc866ads.dts b/arch/powerpc/boot/dts/mpc866ads.dts index bd700651f36..34c1f48b1a0 100644 --- a/arch/powerpc/boot/dts/mpc866ads.dts +++ b/arch/powerpc/boot/dts/mpc866ads.dts @@ -74,7 +74,6 @@  			#size-cells = <0>;  			PHY: ethernet-phy@f {  				reg = <0xf>; -				device_type = "ethernet-phy";  			};  		}; diff --git a/arch/powerpc/boot/dts/mpc885ads.dts b/arch/powerpc/boot/dts/mpc885ads.dts index b123e9f7a5a..4e93bd961e0 100644 --- a/arch/powerpc/boot/dts/mpc885ads.dts +++ b/arch/powerpc/boot/dts/mpc885ads.dts @@ -86,17 +86,14 @@  			PHY0: ethernet-phy@0 {  				reg = <0x0>; -				device_type = "ethernet-phy";  			};  			PHY1: ethernet-phy@1 {  				reg = <0x1>; -				device_type = "ethernet-phy";  			};  			PHY2: ethernet-phy@2 {  				reg = <0x2>; -				device_type = "ethernet-phy";  			};  		}; diff --git a/arch/powerpc/boot/dts/mucmc52.dts b/arch/powerpc/boot/dts/mucmc52.dts index b72a7581d79..d3a792bb5c1 100644 --- a/arch/powerpc/boot/dts/mucmc52.dts +++ b/arch/powerpc/boot/dts/mucmc52.dts @@ -11,172 +11,85 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc5200b.dtsi" + +/* Timer pins that need to be in GPIO mode */ +&gpt0 { gpio-controller; }; +&gpt1 { gpio-controller; }; +&gpt2 { gpio-controller; }; +&gpt3 { gpio-controller; }; + +/* Disabled timers */ +&gpt4 { status = "disabled"; }; +&gpt5 { status = "disabled"; }; +&gpt6 { status = "disabled"; }; +&gpt7 { status = "disabled"; };  / {  	model = "manroland,mucmc52";  	compatible = "manroland,mucmc52"; -	#address-cells = <1>; -	#size-cells = <1>; -	interrupt-parent = <&mpc5200_pic>; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,5200@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <32>; -			i-cache-line-size = <32>; -			d-cache-size = <0x4000>;	// L1, 16K -			i-cache-size = <0x4000>;	// L1, 16K -			timebase-frequency = <0>;	// from bootloader -			bus-frequency = <0>;		// from bootloader -			clock-frequency = <0>;		// from bootloader -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <0x00000000 0x04000000>;	// 64MB -	};  	soc5200@f0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		compatible = "fsl,mpc5200b-immr"; -		ranges = <0 0xf0000000 0x0000c000>; -		reg = <0xf0000000 0x00000100>; -		bus-frequency = <0>;		// from bootloader -		system-frequency = <0>;		// from bootloader - -		cdm@200 { -			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; -			reg = <0x200 0x38>; +		rtc@800 { +			status = "disabled";  		}; -		mpc5200_pic: interrupt-controller@500 { -			// 5200 interrupts are encoded into two levels; -			interrupt-controller; -			#interrupt-cells = <3>; -			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; -			reg = <0x500 0x80>; +		can@900 { +			status = "disabled";  		}; -		gpt0: timer@600 {	// GPT 0 in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x600 0x10>; -			interrupts = <1 9 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt1: timer@610 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x610 0x10>; -			interrupts = <1 10 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt2: timer@620 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x620 0x10>; -			interrupts = <1 11 0>; -			gpio-controller; -			#gpio-cells = <2>; +		can@980 { +			status = "disabled";  		}; -		gpt3: timer@630 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x630 0x10>; -			interrupts = <1 12 0>; -			gpio-controller; -			#gpio-cells = <2>; +		spi@f00 { +			status = "disabled";  		}; -		gpio_simple: gpio@b00 { -			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; -			reg = <0xb00 0x40>; -			interrupts = <1 7 0>; -			gpio-controller; -			#gpio-cells = <2>; +		usb@1000 { +			status = "disabled";  		}; -		gpio_wkup: gpio@c00 { -			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; -			reg = <0xc00 0x40>; -			interrupts = <1 8 0 0 3 0>; -			gpio-controller; -			#gpio-cells = <2>; +		psc@2000 {		// PSC1 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";  		}; -		dma-controller@1200 { -			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; -			reg = <0x1200 0x80>; -			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 -			              3 4 0  3 5 0  3 6 0  3 7 0 -			              3 8 0  3 9 0  3 10 0  3 11 0 -			              3 12 0  3 13 0  3 14 0  3 15 0>; +		psc@2200 {		// PSC2 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";  		}; -		xlb@1f00 { -			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; -			reg = <0x1f00 0x100>; +		psc@2400 {		// PSC3 +			status = "disabled";  		}; -		serial@2000 { /* PSC1 in UART mode */ -			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2000 0x100>; -			interrupts = <2 1 0>; +		psc@2600 {		// PSC4 +			status = "disabled";  		}; -		serial@2200 { /* PSC2 in UART mode */ -			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2200 0x100>; -			interrupts = <2 2 0>; +		psc@2800 {		// PSC5 +			status = "disabled";  		}; -		serial@2c00 { /* PSC6 in UART mode */ +		psc@2c00 {		// PSC6  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2c00 0x100>; -			interrupts = <2 4 0>;  		};  		ethernet@3000 { -			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; -			reg = <0x3000 0x400>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <2 5 0>;  			phy-handle = <&phy0>;  		};  		mdio@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; -			reg = <0x3000 0x400>; 	// fec range, since we need to setup fec interrupts -			interrupts = <2 5 0>; 	// these are for "mii command finished", not link changes & co. -  			phy0: ethernet-phy@0 {  				compatible = "intel,lxt971";  				reg = <0>;  			};  		}; -		ata@3a00 { -			compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; -			reg = <0x3a00 0x100>; -			interrupts = <2 7 0>; +		i2c@3d00 { +			status = "disabled";  		};  		i2c@3d40 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d40 0x40>; -			interrupts = <2 16 0>;  			hwmon@2c {  				compatible = "ad,adm9240";  				reg = <0x2c>; @@ -186,20 +99,9 @@  				reg = <0x51>;  			};  		}; - -		sram@8000 { -			compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; -			reg = <0x8000 0x4000>; -		};  	};  	pci@f0000d00 { -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		device_type = "pci"; -		compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci"; -		reg = <0xf0000d00 0x100>;  		interrupt-map-mask = <0xf800 0 0 7>;  		interrupt-map = <  				/* IDSEL 0x10 */ @@ -208,20 +110,12 @@  				0x8000 0 0 3 &mpc5200_pic 0 2 3  				0x8000 0 0 4 &mpc5200_pic 0 1 3  				>; -		clock-frequency = <0>; // From boot loader -		interrupts = <2 8 0 2 9 0 2 10 0>; -		bus-range = <0 0>;  		ranges = <0x42000000 0 0x60000000 0x60000000 0 0x10000000  			  0x02000000 0 0x90000000 0x90000000 0 0x10000000  			  0x01000000 0 0x00000000 0xa0000000 0 0x01000000>;  	};  	localbus { -		compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus"; - -		#address-cells = <2>; -		#size-cells = <1>; -  		ranges = <0 0 0xff800000 0x00800000  			  1 0 0x80000000 0x00800000  			  3 0 0x80000000 0x00800000>; diff --git a/arch/powerpc/boot/dts/mvme5100.dts b/arch/powerpc/boot/dts/mvme5100.dts new file mode 100644 index 00000000000..1ecb341a232 --- /dev/null +++ b/arch/powerpc/boot/dts/mvme5100.dts @@ -0,0 +1,185 @@ +/* + * Device Tree Source for Motorola/Emerson MVME5100. + * + * Copyright 2013 CSC Australia Pty. Ltd. + * + * This file is licensed under the terms of the GNU General Public + * License version 2.  This program is licensed "as is" without + * any warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +/ { +	model = "MVME5100"; +	compatible = "MVME5100"; +	#address-cells = <1>; +	#size-cells = <1>; + +	aliases { +		serial0 = &serial0; +		pci0 = &pci0; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,7410 { +			device_type = "cpu"; +			reg = <0x0>; +			/* Following required by dtc but not used */ +			d-cache-line-size = <32>; +			i-cache-line-size = <32>; +			i-cache-size = <32768>; +			d-cache-size = <32768>; +			timebase-frequency = <25000000>; +			clock-frequency = <500000000>; +			bus-frequency = <100000000>; +		}; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x0 0x20000000>; +	}; + +	hawk@fef80000 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "hawk-bridge", "simple-bus"; +		ranges = <0x0 0xfef80000 0x10000>; +		reg = <0xfef80000 0x10000>; + +		serial0: serial@8000 { +			device_type = "serial"; +			compatible = "ns16550"; +			reg = <0x8000 0x80>; +			reg-shift = <4>; +			clock-frequency = <1843200>; +			current-speed = <9600>; +			interrupts = <1 1>; // IRQ1 Level Active Low. +			interrupt-parent = <&mpic>; +		}; + +		serial1: serial@8200 { +			device_type = "serial"; +			compatible = "ns16550"; +			reg = <0x8200 0x80>; +			reg-shift = <4>; +			clock-frequency = <1843200>; +			current-speed = <9600>; +			interrupts = <1 1>; // IRQ1 Level Active Low. +			interrupt-parent = <&mpic>; +		}; + +		mpic: interrupt-controller@f3f80000 { +			#interrupt-cells = <2>; +			#address-cells = <0>; +			device_type = "open-pic"; +			compatible = "chrp,open-pic"; +			interrupt-controller; +			reg = <0xf3f80000 0x40000>; +		}; +	}; + +	pci0: pci@feff0000 { +		#address-cells = <3>; +		#size-cells = <2>; +		#interrupt-cells = <1>; +		device_type = "pci"; +		compatible = "hawk-pci"; +		reg = <0xfec00000 0x400000>; +		8259-interrupt-acknowledge = <0xfeff0030>; +		ranges = <0x1000000 0x0        0x0 0xfe000000 0x0 0x800000 +			  0x2000000 0x0 0x80000000 0x80000000 0x0 0x74000000>; +		bus-range = <0 255>; +		clock-frequency = <33333333>; +		interrupt-parent = <&mpic>; +		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; +		interrupt-map = < + +			/* +			 * This definition (IDSEL 11) duplicates the +			 * interrupts definition in the i8259 +			 * interrupt controller below. +			 * +			 * Do not change the interrupt sense/polarity from +			 * 0x2 to anything else, doing so will cause endless +			 * "spurious" i8259 interrupts to be fielded. +			 */ +			// IDSEL 11 - iPMC712 PCI/ISA Bridge +			0x5800 0x0 0x0 0x1 &mpic 0x0 0x2 +			0x5800 0x0 0x0 0x2 &mpic 0x0 0x2 +			0x5800 0x0 0x0 0x3 &mpic 0x0 0x2 +			0x5800 0x0 0x0 0x4 &mpic 0x0 0x2 + +			/* IDSEL 12 - Not Used */ + +			/* IDSEL 13 - Universe VME Bridge */ +			0x6800 0x0 0x0 0x1 &mpic 0x5 0x1 +			0x6800 0x0 0x0 0x2 &mpic 0x6 0x1 +			0x6800 0x0 0x0 0x3 &mpic 0x7 0x1 +			0x6800 0x0 0x0 0x4 &mpic 0x8 0x1 + +			/* IDSEL 14 - ENET 1 */ +			0x7000 0x0 0x0 0x1 &mpic 0x2 0x1 + +			/* IDSEL 15 - Not Used */ + +			/* IDSEL 16 - PMC Slot 1 */ +			0x8000 0x0 0x0 0x1 &mpic 0x9 0x1 +			0x8000 0x0 0x0 0x2 &mpic 0xa 0x1 +			0x8000 0x0 0x0 0x3 &mpic 0xb 0x1 +			0x8000 0x0 0x0 0x4 &mpic 0xc 0x1 + +			/* IDSEL 17 - PMC Slot 2 */ +			0x8800 0x0 0x0 0x1 &mpic 0xc 0x1 +			0x8800 0x0 0x0 0x2 &mpic 0x9 0x1 +			0x8800 0x0 0x0 0x3 &mpic 0xa 0x1 +			0x8800 0x0 0x0 0x4 &mpic 0xb 0x1 + +			/* IDSEL 18 - Not Used */ + +			/* IDSEL 19 - ENET 2 */ +			0x9800 0x0 0x0 0x1 &mpic 0xd 0x1 + +			/* IDSEL 20 - PMCSPAN (PCI-X) */ +			0xa000 0x0 0x0 0x1 &mpic 0x9 0x1 +			0xa000 0x0 0x0 0x2 &mpic 0xa 0x1 +			0xa000 0x0 0x0 0x3 &mpic 0xb 0x1 +			0xa000 0x0 0x0 0x4 &mpic 0xc 0x1 + +		>; + +		isa { +			#address-cells = <2>; +			#size-cells = <1>; +			#interrupt-cells = <2>; +			device_type = "isa"; +			compatible = "isa"; +			ranges = <0x00000001 0 0x01000000 0 0x00000000 0x00001000>; +			interrupt-parent = <&i8259>; + +			i8259: interrupt-controller@20 { +				#interrupt-cells = <2>; +				#address-cells = <0>; +				interrupts = <0 2>; +				device_type = "interrupt-controller"; +				compatible = "chrp,iic"; +				interrupt-controller; +				reg = <1 0x00000020 0x00000002 +                                       1 0x000000a0 0x00000002 +                                       1 0x000004d0 0x00000002>; +				interrupt-parent = <&mpic>; +			}; + +		}; + +	}; + +	chosen { +		linux,stdout-path = &serial0; +        }; + +}; diff --git a/arch/powerpc/boot/dts/o2d.dts b/arch/powerpc/boot/dts/o2d.dts new file mode 100644 index 00000000000..9f6dd4d889b --- /dev/null +++ b/arch/powerpc/boot/dts/o2d.dts @@ -0,0 +1,47 @@ +/* + * O2D Device Tree Source + * + * Copyright (C) 2012 DENX Software Engineering + * Anatolij Gustschin <agust@denx.de> + * + * 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/ "o2d.dtsi" + +/ { +	model = "ifm,o2d"; +	compatible = "ifm,o2d"; + +	memory { +		reg = <0x00000000 0x08000000>;  // 128MB +	}; + +	localbus { +		ranges = <0 0 0xfc000000 0x02000000 +			  3 0 0xe3000000 0x00100000>; + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x02000000>; +			bank-width = <2>; +			device-width = <2>; +			#size-cells = <1>; +			#address-cells = <1>; + +			partition@60000 { +				label = "kernel"; +				reg = <0x00060000 0x00260000>; +				read-only; +			}; +			/* o2d specific partitions */ +			partition@2c0000 { +				label = "o2d user defined"; +				reg = <0x002c0000 0x01d40000>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/o2d.dtsi b/arch/powerpc/boot/dts/o2d.dtsi new file mode 100644 index 00000000000..cf073e693f2 --- /dev/null +++ b/arch/powerpc/boot/dts/o2d.dtsi @@ -0,0 +1,122 @@ +/* + * O2D base Device Tree Source + * + * Copyright (C) 2012 DENX Software Engineering + * Anatolij Gustschin <agust@denx.de> + * + * 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/ "mpc5200b.dtsi" + +&gpt0 { +	gpio-controller; +	fsl,has-wdt; +	fsl,wdt-on-boot = <0>; +}; +&gpt1 { gpio-controller; }; + +/ { +	model = "ifm,o2d"; +	compatible = "ifm,o2d"; + +	memory { +		reg = <0x00000000 0x04000000>;	// 64MB +	}; + +	soc5200@f0000000 { + +		rtc@800 { +			status = "disabled"; +		}; + +		psc@2000 {		// PSC1 +			compatible = "fsl,mpc5200b-psc-spi","fsl,mpc5200-psc-spi"; +			#address-cells = <1>; +			#size-cells = <0>; +			cell-index = <0>; + +			spidev@0 { +				compatible = "spidev"; +				spi-max-frequency = <250000>; +				reg = <0>; +			}; +		}; + +		psc@2200 {		// PSC2 +			status = "disabled"; +		}; + +		psc@2400 {		// PSC3 +			status = "disabled"; +		}; + +		psc@2600 {		// PSC4 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; +		}; + +		psc@2800 {		// PSC5 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; +		}; + +		psc@2c00 {		// PSC6 +			status = "disabled"; +		}; + +		ethernet@3000 { +			phy-handle = <&phy0>; +		}; + +		mdio@3000 { +			phy0: ethernet-phy@0 { +				reg = <0>; +			}; +		}; +	}; + +	localbus { +		ranges = <0 0 0xff000000 0x01000000 +			  3 0 0xe3000000 0x00100000>; + +		// flash device at LocalPlus Bus CS0 +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x01000000>; +			bank-width = <1>; +			device-width = <2>; +			#size-cells = <1>; +			#address-cells = <1>; +			no-unaligned-direct-access; + +			/* common layout for all machines */ +			partition@0 { +				label = "u-boot"; +				reg = <0x00000000 0x00040000>; +				read-only; +			}; +			partition@40000 { +				label = "env"; +				reg = <0x00040000 0x00020000>; +				read-only; +			}; +		}; + +		csi@3,0 { +			compatible = "ifm,o2d-csi"; +			reg = <3 0 0x00100000>; +			ifm,csi-clk-handle = <&gpt7>; +			gpios = <&gpio_simple 23 0	/* imag_capture */ +				 &gpio_simple 26 0	/* imag_reset */ +				 &gpio_simple 29 0>;	/* imag_master_en */ + +			interrupts = <1 1 2>;		/* IRQ1, edge falling */ + +			ifm,csi-addr-bus-width = <24>; +			ifm,csi-data-bus-width = <8>; +			ifm,csi-wait-cycles = <0>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/o2d300.dts b/arch/powerpc/boot/dts/o2d300.dts new file mode 100644 index 00000000000..29affe0f0da --- /dev/null +++ b/arch/powerpc/boot/dts/o2d300.dts @@ -0,0 +1,52 @@ +/* + * O2D300 Device Tree Source + * + * Copyright (C) 2012 DENX Software Engineering + * Anatolij Gustschin <agust@denx.de> + * + * 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/ "o2d.dtsi" + +/ { +	model = "ifm,o2d300"; +	compatible = "ifm,o2d"; + +	localbus { +		ranges = <0 0 0xfc000000 0x02000000 +			  3 0 0xe3000000 0x00100000>; +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x02000000>; +			bank-width = <2>; +			device-width = <2>; +			#size-cells = <1>; +			#address-cells = <1>; + +			partition@40000 { +				label = "env_1"; +				reg = <0x00040000 0x00020000>; +				read-only; +			}; +			partition@60000 { +				label = "env_2"; +				reg = <0x00060000 0x00020000>; +				read-only; +			}; +			partition@80000 { +				label = "kernel"; +				reg = <0x00080000 0x00260000>; +				read-only; +			}; +			/* o2d300 specific partitions */ +			partition@2e0000 { +				label = "o2d300 user defined"; +				reg = <0x002e0000 0x01d20000>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/o2dnt2.dts b/arch/powerpc/boot/dts/o2dnt2.dts new file mode 100644 index 00000000000..a0f5b97a4f0 --- /dev/null +++ b/arch/powerpc/boot/dts/o2dnt2.dts @@ -0,0 +1,48 @@ +/* + * O2DNT2 Device Tree Source + * + * Copyright (C) 2012 DENX Software Engineering + * Anatolij Gustschin <agust@denx.de> + * + * 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/ "o2d.dtsi" + +/ { +	model = "ifm,o2dnt2"; +	compatible = "ifm,o2d"; + +	memory { +		reg = <0x00000000 0x08000000>;  // 128MB +	}; + +	localbus { +		ranges = <0 0 0xfc000000 0x02000000 +			  3 0 0xe3000000 0x00100000>; + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x02000000>; +			bank-width = <2>; +			device-width = <2>; +			#size-cells = <1>; +			#address-cells = <1>; + +			partition@60000 { +				label = "kernel"; +				reg = <0x00060000 0x00260000>; +				read-only; +			}; + +			/* o2dnt2 specific partitions */ +			partition@2c0000 { +				label = "o2dnt2 user defined"; +				reg = <0x002c0000 0x01d40000>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/o2i.dts b/arch/powerpc/boot/dts/o2i.dts new file mode 100644 index 00000000000..e3cc99d1360 --- /dev/null +++ b/arch/powerpc/boot/dts/o2i.dts @@ -0,0 +1,33 @@ +/* + * O2I Device Tree Source + * + * Copyright (C) 2012 DENX Software Engineering + * Anatolij Gustschin <agust@denx.de> + * + * 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/ "o2d.dtsi" + +/ { +	model = "ifm,o2i"; +	compatible = "ifm,o2d"; + +	localbus { +		flash@0,0 { +			partition@60000 { +				label = "kernel"; +				reg = <0x00060000 0x00260000>; +				read-only; +			}; +			/* o2i specific partitions */ +			partition@2c0000 { +				label = "o2i user defined"; +				reg = <0x002c0000 0x00d40000>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/o2mnt.dts b/arch/powerpc/boot/dts/o2mnt.dts new file mode 100644 index 00000000000..d91859a9e94 --- /dev/null +++ b/arch/powerpc/boot/dts/o2mnt.dts @@ -0,0 +1,33 @@ +/* + * O2MNT Device Tree Source + * + * Copyright (C) 2012 DENX Software Engineering + * Anatolij Gustschin <agust@denx.de> + * + * 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/ "o2d.dtsi" + +/ { +	model = "ifm,o2mnt"; +	compatible = "ifm,o2d"; + +	localbus { +		flash@0,0 { +			partition@60000 { +				label = "kernel"; +				reg = <0x00060000 0x00260000>; +				read-only; +			}; +			/* add o2mnt specific partitions */ +			partition@2c0000 { +				label = "o2mnt user defined"; +				reg = <0x002c0000 0x00d40000>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/o3dnt.dts b/arch/powerpc/boot/dts/o3dnt.dts new file mode 100644 index 00000000000..acce4932649 --- /dev/null +++ b/arch/powerpc/boot/dts/o3dnt.dts @@ -0,0 +1,48 @@ +/* + * O3DNT Device Tree Source + * + * Copyright (C) 2012 DENX Software Engineering + * Anatolij Gustschin <agust@denx.de> + * + * 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/ "o2d.dtsi" + +/ { +	model = "ifm,o3dnt"; +	compatible = "ifm,o2d"; + +	memory { +		reg = <0x00000000 0x04000000>;  // 64MB +	}; + +	localbus { +		ranges = <0 0 0xfc000000 0x01000000 +			  3 0 0xe3000000 0x00100000>; + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x01000000>; +			bank-width = <2>; +			device-width = <2>; +			#size-cells = <1>; +			#address-cells = <1>; + +			partition@60000 { +				label = "kernel"; +				reg = <0x00060000 0x00260000>; +				read-only; +			}; + +			/* o3dnt specific partitions */ +			partition@2c0000 { +				label = "o3dnt user defined"; +				reg = <0x002c0000 0x00d40000>; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/obs600.dts b/arch/powerpc/boot/dts/obs600.dts new file mode 100644 index 00000000000..18e7d79ee4c --- /dev/null +++ b/arch/powerpc/boot/dts/obs600.dts @@ -0,0 +1,314 @@ +/* + * Device Tree Source for PlatHome OpenBlockS 600 (405EX) + * + * Copyright 2011 Ben Herrenschmidt, IBM Corp. + * + * Based on Kilauea by: + * + * Copyright 2007-2009 DENX Software Engineering, Stefan Roese <sr@denx.de> + * + * This file is licensed under the terms of the GNU General Public + * License version 2.  This program is licensed "as is" without + * any warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +/ { +	#address-cells = <1>; +	#size-cells = <1>; +	model = "PlatHome,OpenBlockS 600"; +	compatible = "plathome,obs600"; +	dcr-parent = <&{/cpus/cpu@0}>; + +	aliases { +		ethernet0 = &EMAC0; +		ethernet1 = &EMAC1; +		serial0 = &UART0; +		serial1 = &UART1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu@0 { +			device_type = "cpu"; +			model = "PowerPC,405EX"; +			reg = <0x00000000>; +			clock-frequency = <0>; /* Filled in by U-Boot */ +			timebase-frequency = <0>; /* Filled in by U-Boot */ +			i-cache-line-size = <32>; +			d-cache-line-size = <32>; +			i-cache-size = <16384>; /* 16 kB */ +			d-cache-size = <16384>; /* 16 kB */ +			dcr-controller; +			dcr-access-method = "native"; +		}; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x00000000 0x00000000>; /* Filled in by U-Boot */ +	}; + +	UIC0: interrupt-controller { +		compatible = "ibm,uic-405ex", "ibm,uic"; +		interrupt-controller; +		cell-index = <0>; +		dcr-reg = <0x0c0 0x009>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +	}; + +	UIC1: interrupt-controller1 { +		compatible = "ibm,uic-405ex","ibm,uic"; +		interrupt-controller; +		cell-index = <1>; +		dcr-reg = <0x0d0 0x009>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ +		interrupt-parent = <&UIC0>; +	}; + +	UIC2: interrupt-controller2 { +		compatible = "ibm,uic-405ex","ibm,uic"; +		interrupt-controller; +		cell-index = <2>; +		dcr-reg = <0x0e0 0x009>; +		#address-cells = <0>; +		#size-cells = <0>; +		#interrupt-cells = <2>; +		interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */ +		interrupt-parent = <&UIC0>; +	}; + +	CPM0: cpm { +		compatible = "ibm,cpm"; +		dcr-access-method = "native"; +		dcr-reg = <0x0b0 0x003>; +		unused-units = <0x00000000>; +		idle-doze = <0x02000000>; +		standby = <0xe3e74800>; +	}; + +	plb { +		compatible = "ibm,plb-405ex", "ibm,plb4"; +		#address-cells = <1>; +		#size-cells = <1>; +		ranges; +		clock-frequency = <0>; /* Filled in by U-Boot */ + +		SDRAM0: memory-controller { +			compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2"; +			dcr-reg = <0x010 0x002>; +			interrupt-parent = <&UIC2>; +			interrupts = <0x5 0x4	/* ECC DED Error */ +				      0x6 0x4>;	/* ECC SEC Error */ +		}; + +		CRYPTO: crypto@ef700000 { +			compatible = "amcc,ppc405ex-crypto", "amcc,ppc4xx-crypto"; +			reg = <0xef700000 0x80400>; +			interrupt-parent = <&UIC0>; +			interrupts = <0x17 0x2>; +		}; + +		MAL0: mcmal { +			compatible = "ibm,mcmal-405ex", "ibm,mcmal2"; +			dcr-reg = <0x180 0x062>; +			num-tx-chans = <2>; +			num-rx-chans = <2>; +			interrupt-parent = <&MAL0>; +			interrupts = <0x0 0x1 0x2 0x3 0x4>; +			#interrupt-cells = <1>; +			#address-cells = <0>; +			#size-cells = <0>; +			interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4 +					/*RXEOB*/ 0x1 &UIC0 0xb 0x4 +					/*SERR*/  0x2 &UIC1 0x0 0x4 +					/*TXDE*/  0x3 &UIC1 0x1 0x4 +					/*RXDE*/  0x4 &UIC1 0x2 0x4>; +			interrupt-map-mask = <0xffffffff>; +		}; + +		POB0: opb { +			compatible = "ibm,opb-405ex", "ibm,opb"; +			#address-cells = <1>; +			#size-cells = <1>; +			ranges = <0x80000000 0x80000000 0x10000000 +				  0xef600000 0xef600000 0x00a00000 +				  0xf0000000 0xf0000000 0x10000000>; +			dcr-reg = <0x0a0 0x005>; +			clock-frequency = <0>; /* Filled in by U-Boot */ + +			EBC0: ebc { +				compatible = "ibm,ebc-405ex", "ibm,ebc"; +				dcr-reg = <0x012 0x002>; +				#address-cells = <2>; +				#size-cells = <1>; +				clock-frequency = <0>; /* Filled in by U-Boot */ +				/* ranges property is supplied by U-Boot */ +				interrupts = <0x5 0x1>; +				interrupt-parent = <&UIC1>; + +				nor_flash@0,0 { +					compatible = "amd,s29gl512n", "cfi-flash"; +					bank-width = <2>; +					reg = <0x00000000 0x00000000 0x08000000>; +					#address-cells = <1>; +					#size-cells = <1>; +					partition@0 { +						label = "kernel + initrd"; +						reg = <0x00000000 0x03de0000>; +					}; +					partition@3de0000 { +						label = "user config area"; +						reg = <0x03de0000 0x00080000>; +					}; +					partition@3e60000 { +						label = "user program area"; +						reg = <0x03e60000 0x04000000>; +					}; +					partition@7e60000 { +						label = "flat device tree"; +						reg = <0x07e60000 0x00080000>; +					}; +					partition@7ee0000 { +						label = "test program"; +						reg = <0x07ee0000 0x00080000>; +					}; +					partition@7f60000 { +						label = "u-boot env"; +						reg = <0x07f60000 0x00040000>; +					}; +					partition@7fa0000 { +						label = "u-boot"; +						reg = <0x07fa0000 0x00060000>; +					}; +				}; +			}; + +			UART0: serial@ef600200 { +				device_type = "serial"; +				compatible = "ns16550"; +				reg = <0xef600200 0x00000008>; +				virtual-reg = <0xef600200>; +				clock-frequency = <0>; /* Filled in by U-Boot */ +				current-speed = <0>; +				interrupt-parent = <&UIC0>; +				interrupts = <0x1a 0x4>; +			}; + +			UART1: serial@ef600300 { +				device_type = "serial"; +				compatible = "ns16550"; +				reg = <0xef600300 0x00000008>; +				virtual-reg = <0xef600300>; +				clock-frequency = <0>; /* Filled in by U-Boot */ +				current-speed = <0>; +				interrupt-parent = <&UIC0>; +				interrupts = <0x1 0x4>; +			}; + +			IIC0: i2c@ef600400 { +				compatible = "ibm,iic-405ex", "ibm,iic"; +				reg = <0xef600400 0x00000014>; +				interrupt-parent = <&UIC0>; +				interrupts = <0x2 0x4>; +				#address-cells = <1>; +				#size-cells = <0>; + +				rtc@68 { +					compatible = "dallas,ds1340"; +					reg = <0x68>; +				}; +			}; + +			IIC1: i2c@ef600500 { +				compatible = "ibm,iic-405ex", "ibm,iic"; +				reg = <0xef600500 0x00000014>; +				interrupt-parent = <&UIC0>; +				interrupts = <0x7 0x4>; +			}; + +			RGMII0: emac-rgmii@ef600b00 { +				compatible = "ibm,rgmii-405ex", "ibm,rgmii"; +				reg = <0xef600b00 0x00000104>; +				has-mdio; +			}; + +			EMAC0: ethernet@ef600900 { +				linux,network-index = <0x0>; +				device_type = "network"; +				compatible = "ibm,emac-405ex", "ibm,emac4sync"; +				interrupt-parent = <&EMAC0>; +				interrupts = <0x0 0x1>; +				#interrupt-cells = <1>; +				#address-cells = <0>; +				#size-cells = <0>; +				interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 +						/*Wake*/  0x1 &UIC1 0x1d 0x4>; +				reg = <0xef600900 0x000000c4>; +				local-mac-address = [000000000000]; /* Filled in by U-Boot */ +				mal-device = <&MAL0>; +				mal-tx-channel = <0>; +				mal-rx-channel = <0>; +				cell-index = <0>; +				max-frame-size = <9000>; +				rx-fifo-size = <4096>; +				tx-fifo-size = <2048>; +				rx-fifo-size-gige = <16384>; +				tx-fifo-size-gige = <16384>; +				phy-mode = "rgmii"; +				phy-map = <0x00000000>; +				rgmii-device = <&RGMII0>; +				rgmii-channel = <0>; +				has-inverted-stacr-oc; +				has-new-stacr-staopc; +			}; + +			EMAC1: ethernet@ef600a00 { +				linux,network-index = <0x1>; +				device_type = "network"; +				compatible = "ibm,emac-405ex", "ibm,emac4sync"; +				interrupt-parent = <&EMAC1>; +				interrupts = <0x0 0x1>; +				#interrupt-cells = <1>; +				#address-cells = <0>; +				#size-cells = <0>; +				interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4 +						/*Wake*/  0x1 &UIC1 0x1f 0x4>; +				reg = <0xef600a00 0x000000c4>; +				local-mac-address = [000000000000]; /* Filled in by U-Boot */ +				mal-device = <&MAL0>; +				mal-tx-channel = <1>; +				mal-rx-channel = <1>; +				cell-index = <1>; +				max-frame-size = <9000>; +				rx-fifo-size = <4096>; +				tx-fifo-size = <2048>; +				rx-fifo-size-gige = <16384>; +				tx-fifo-size-gige = <16384>; +				phy-mode = "rgmii"; +				phy-map = <0x00000000>; +				rgmii-device = <&RGMII0>; +				rgmii-channel = <1>; +				has-inverted-stacr-oc; +				has-new-stacr-staopc; +			}; + +			GPIO: gpio@ef600800 { +				device_type = "gpio"; +				compatible = "ibm,gpio-405ex", "ibm,ppc4xx-gpio"; +				reg = <0xef600800 0x50>; +			}; +		}; +	}; +        chosen { +                linux,stdout-path = "/plb/opb/serial@ef600200"; +        }; +}; diff --git a/arch/powerpc/boot/dts/oca4080.dts b/arch/powerpc/boot/dts/oca4080.dts new file mode 100644 index 00000000000..3d4c751d160 --- /dev/null +++ b/arch/powerpc/boot/dts/oca4080.dts @@ -0,0 +1,118 @@ +/* + * OCA4080 Device Tree Source + * + * Copyright 2014 Prodrive Technologies B.V. + * + * Based on: + * P4080DS Device Tree Source + * Copyright 2009-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/p4080si-pre.dtsi" + +/ { +	model = "fsl,OCA4080"; +	compatible = "fsl,OCA4080"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	memory { +		device_type = "memory"; +	}; + +	dcsr: dcsr@f00000000 { +		ranges = <0x00000000 0xf 0x00000000 0x01008000>; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; + +		i2c@118000 { +			status = "disabled"; +		}; + +		i2c@118100 { +			status = "disabled"; +		}; + +		i2c@119000 { +			status = "disabled"; +		}; + +		i2c@119100 { +			status = "disabled"; +		}; + +		usb0: usb@210000 { +			status = "disabled"; +		}; + +		usb1: usb@211000 { +			status = "disabled"; +		}; +	}; + +	rio: rapidio@ffe0c0000 { +		reg = <0xf 0xfe0c0000 0 0x11000>; + +		port1 { +			ranges = <0 0 0xc 0x20000000 0 0x10000000>; +		}; +	}; + +	lbc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x1000>; +		ranges = <0 0 0xf 0xef800000 0x800000>; + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x00800000>; +			bank-width = <2>; +			device-width = <2>; +		}; +	}; + +	pci0: pcie@ffe200000 { +		status = "disabled"; +	}; + +	pci1: pcie@ffe201000 { +		status = "disabled"; +	}; + +	pci2: pcie@ffe202000 { +		status = "disabled"; +	}; +}; + +/include/ "fsl/p4080si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1010rdb-pa.dts b/arch/powerpc/boot/dts/p1010rdb-pa.dts new file mode 100644 index 00000000000..767d4c03285 --- /dev/null +++ b/arch/powerpc/boot/dts/p1010rdb-pa.dts @@ -0,0 +1,23 @@ +/* + * P1010 RDB Device Tree Source + * + * Copyright 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 + * Free Software Foundation;  either version 2 of the  License, or (at your + * option) any later version. + */ + +/include/ "fsl/p1010si-pre.dtsi" + +/ { +	model = "fsl,P1010RDB"; +	compatible = "fsl,P1010RDB"; + +	/include/ "p1010rdb_32b.dtsi" +}; + +/include/ "p1010rdb.dtsi" +/include/ "p1010rdb-pa.dtsi" +/include/ "fsl/p1010si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1010rdb-pa.dtsi b/arch/powerpc/boot/dts/p1010rdb-pa.dtsi new file mode 100644 index 00000000000..434fb2d5857 --- /dev/null +++ b/arch/powerpc/boot/dts/p1010rdb-pa.dtsi @@ -0,0 +1,85 @@ +/* + * P1010 RDB Device Tree Source stub (no addresses or top-level ranges) + * + * Copyright 2013 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. + */ + +&ifc_nand { +	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 { +		/* 15MB for JFFS2 based Root file System */ +		reg = <0x00a00000 0x00f00000>; +		label = "NAND JFFS2 Root File System"; +	}; + +	partition@1900000 { +		/* 7MB for User Area */ +		reg = <0x01900000 0x00700000>; +		label = "NAND User area"; +	}; +}; + +&phy0 { +	interrupts = <1 1 0 0>; +}; + +&phy1 { +	interrupts = <2 1 0 0>; +}; + +&phy2 { +	interrupts = <4 1 0 0>; +}; diff --git a/arch/powerpc/boot/dts/p1010rdb-pa_36b.dts b/arch/powerpc/boot/dts/p1010rdb-pa_36b.dts new file mode 100644 index 00000000000..3033371bc00 --- /dev/null +++ b/arch/powerpc/boot/dts/p1010rdb-pa_36b.dts @@ -0,0 +1,46 @@ +/* + * P1010 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/p1010si-pre.dtsi" + +/ { +	model = "fsl,P1010RDB"; +	compatible = "fsl,P1010RDB"; + +	/include/ "p1010rdb_36b.dtsi" +}; + +/include/ "p1010rdb.dtsi" +/include/ "p1010rdb-pa.dtsi" +/include/ "fsl/p1010si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1010rdb-pb.dts b/arch/powerpc/boot/dts/p1010rdb-pb.dts new file mode 100644 index 00000000000..6eeb7d3185b --- /dev/null +++ b/arch/powerpc/boot/dts/p1010rdb-pb.dts @@ -0,0 +1,35 @@ +/* + * P1010 RDB Device Tree Source + * + * Copyright 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 + * Free Software Foundation;  either version 2 of the  License, or (at your + * option) any later version. + */ + +/include/ "fsl/p1010si-pre.dtsi" + +/ { +	model = "fsl,P1010RDB-PB"; +	compatible = "fsl,P1010RDB-PB"; + +	/include/ "p1010rdb_32b.dtsi" +}; + +/include/ "p1010rdb.dtsi" + +&phy0 { +	interrupts = <0 1 0 0>; +}; + +&phy1 { +	interrupts = <2 1 0 0>; +}; + +&phy2 { +	interrupts = <1 1 0 0>; +}; + +/include/ "fsl/p1010si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1010rdb-pb_36b.dts b/arch/powerpc/boot/dts/p1010rdb-pb_36b.dts new file mode 100644 index 00000000000..7ab3c907b32 --- /dev/null +++ b/arch/powerpc/boot/dts/p1010rdb-pb_36b.dts @@ -0,0 +1,58 @@ +/* + * P1010 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/p1010si-pre.dtsi" + +/ { +	model = "fsl,P1010RDB-PB"; +	compatible = "fsl,P1010RDB-PB"; + +	/include/ "p1010rdb_36b.dtsi" +}; + +/include/ "p1010rdb.dtsi" + +&phy0 { +	interrupts = <0 1 0 0>; +}; + +&phy1 { +	interrupts = <2 1 0 0>; +}; + +&phy2 { +	interrupts = <1 1 0 0>; +}; + +/include/ "fsl/p1010si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1010rdb.dtsi b/arch/powerpc/boot/dts/p1010rdb.dtsi new file mode 100644 index 00000000000..ea534efa790 --- /dev/null +++ b/arch/powerpc/boot/dts/p1010rdb.dtsi @@ -0,0 +1,205 @@ +/* + * P1010 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. + */ + +&board_ifc { +	nor@0,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "cfi-flash"; +		reg = <0x0 0x0 0x2000000>; +		bank-width = <2>; +		device-width = <1>; + +		partition@40000 { +			/* 256KB for DTB Image */ +			reg = <0x00040000 0x00040000>; +			label = "NOR DTB Image"; +		}; + +		partition@80000 { +			/* 7 MB for Linux Kernel Image */ +			reg = <0x00080000 0x00700000>; +			label = "NOR Linux Kernel Image"; +		}; + +		partition@800000 { +			/* 20MB for JFFS2 based Root file System */ +			reg = <0x00800000 0x01400000>; +			label = "NOR JFFS2 Root File System"; +		}; + +		partition@1f00000 { +			/* This location must not be altered  */ +			/* 512KB for u-boot Bootloader Image */ +			/* 512KB for u-boot Environment Variables */ +			reg = <0x01f00000 0x00100000>; +			label = "NOR U-Boot Image"; +			read-only; +		}; +	}; + +	ifc_nand: nand@1,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,ifc-nand"; +		reg = <0x1 0x0 0x10000>; +	}; + +	cpld@3,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,p1010rdb-cpld"; +		reg = <0x3 0x0 0x0000020>; +		bank-width = <1>; +		device-width = <1>; +	}; +}; + +&board_soc { +	i2c@3000 { +		eeprom@50 { +			compatible = "st,24c256"; +			reg = <0x50>; +		}; + +		rtc@68 { +			compatible = "pericom,pt7c4338"; +			reg = <0x68>; +		}; +	}; + +	i2c@3100 { +		eeprom@52 { +			compatible = "atmel,24c01"; +			reg = <0x52>; +		}; +	}; + +	spi@7000 { +		flash@0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "spansion,s25sl12801"; +			reg = <0>; +			spi-max-frequency = <40000000>; + +			partition@0 { +				/* 1MB for u-boot Bootloader Image */ +				/* 1MB for Environment */ +				reg = <0x0 0x00100000>; +				label = "SPI Flash U-Boot Image"; +				read-only; +			}; + +			partition@100000 { +				/* 512KB for DTB Image */ +				reg = <0x00100000 0x00080000>; +				label = "SPI Flash DTB Image"; +			}; + +			partition@180000 { +				/* 4MB for Linux Kernel Image */ +				reg = <0x00180000 0x00400000>; +				label = "SPI Flash Linux Kernel Image"; +			}; + +			partition@580000 { +				/* 4MB for Compressed RFS Image */ +				reg = <0x00580000 0x00400000>; +				label = "SPI Flash Compressed RFSImage"; +			}; + +			partition@980000 { +				/* 6.5MB for JFFS2 based RFS */ +				reg = <0x00980000 0x00680000>; +				label = "SPI Flash JFFS2 RFS"; +			}; +		}; +	}; + +	usb@22000 { +		phy_type = "utmi"; +		dr_mode = "host"; +	}; + +	mdio@24000 { +		phy0: ethernet-phy@0 { +			reg = <0x1>; +		}; + +		phy1: ethernet-phy@1 { +			reg = <0x0>; +		}; + +		phy2: ethernet-phy@2 { +			reg = <0x2>; +		}; + +		tbi-phy@3 { +			device_type = "tbi-phy"; +			reg = <0x3>; +		}; +	}; + +	mdio@25000 { +		tbi0: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	mdio@26000 { +		tbi1: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	enet0: ethernet@b0000 { +		phy-handle = <&phy0>; +		phy-connection-type = "rgmii-id"; +	}; + +	enet1: ethernet@b1000 { +		phy-handle = <&phy1>; +		tbi-handle = <&tbi0>; +		phy-connection-type = "sgmii"; +	}; + +	enet2: ethernet@b2000 { +		phy-handle = <&phy2>; +		tbi-handle = <&tbi1>; +		phy-connection-type = "sgmii"; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1010rdb_32b.dtsi b/arch/powerpc/boot/dts/p1010rdb_32b.dtsi new file mode 100644 index 00000000000..fdc19aab2f7 --- /dev/null +++ b/arch/powerpc/boot/dts/p1010rdb_32b.dtsi @@ -0,0 +1,79 @@ +/* + * P1010 RDB Device Tree Source stub (no addresses or top-level ranges) + * + * Copyright 2013 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. + */ + +memory { +	device_type = "memory"; +}; + +board_ifc: ifc: ifc@ffe1e000 { +	/* NOR, NAND Flashes and CPLD on board */ +	ranges = <0x0 0x0 0x0 0xee000000 0x02000000 +		  0x1 0x0 0x0 0xff800000 0x00010000 +		  0x3 0x0 0x0 0xffb00000 0x00000020>; +	reg = <0x0 0xffe1e000 0 0x2000>; +}; + +board_soc: soc: soc@ffe00000 { +	ranges = <0x0 0x0 0xffe00000 0x100000>; +}; + +pci0: pcie@ffe09000 { +	reg = <0 0xffe09000 0 0x1000>; +	ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 +		  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; +	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>; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1010rdb_36b.dtsi b/arch/powerpc/boot/dts/p1010rdb_36b.dtsi new file mode 100644 index 00000000000..de2fceed4f7 --- /dev/null +++ b/arch/powerpc/boot/dts/p1010rdb_36b.dtsi @@ -0,0 +1,79 @@ +/* + * P1010 RDB Device Tree Source stub (no addresses or top-level ranges) + * + * Copyright 2013 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. + */ + +memory { +	device_type = "memory"; +}; + +board_ifc: ifc: ifc@fffe1e000 { +	/* NOR, NAND Flashes and CPLD on board */ +	ranges = <0x0 0x0 0xf 0xee000000 0x02000000 +		  0x1 0x0 0xf 0xff800000 0x00010000 +		  0x3 0x0 0xf 0xffb00000 0x00000020>; +	reg = <0xf 0xffe1e000 0 0x2000>; +}; + +board_soc: 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 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>; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1020mbg-pc.dtsi b/arch/powerpc/boot/dts/p1020mbg-pc.dtsi new file mode 100644 index 00000000000..a24699cfea9 --- /dev/null +++ b/arch/powerpc/boot/dts/p1020mbg-pc.dtsi @@ -0,0 +1,151 @@ +/* + * P1020 MBG-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 0x4000000>; +		bank-width = <2>; +		device-width = <1>; + +		partition@0 { +			/* 128KB for DTB Image */ +			reg = <0x0 0x00020000>; +			label = "NOR DTB Image"; +		}; + +		partition@20000 { +			/* 3.875 MB for Linux Kernel Image */ +			reg = <0x00020000 0x003e0000>; +			label = "NOR Linux Kernel Image"; +		}; + +		partition@400000 { +			/* 58MB for Root file System */ +			reg = <0x00400000 0x03a00000>; +			label = "NOR Root File System"; +		}; + +		partition@3e00000 { +			/* This location must not be altered  */ +			/* 1M for Vitesse 7385 Switch firmware */ +			reg = <0x3e00000 0x00100000>; +			label = "NOR Vitesse-7385 Firmware"; +			read-only; +		}; + +		partition@3f00000 { +			/* This location must not be altered  */ +			/* 512KB for u-boot Bootloader Image */ +			/* 512KB for u-boot Environment Variables */ +			reg = <0x03f00000 0x00100000>; +			label = "NOR U-Boot Image"; +			read-only; +		}; +	}; + +	L2switch@2,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "vitesse-7385"; +		reg = <0x2 0x0 0x20000>; +	}; +}; + +&soc { +	i2c@3000 { +		rtc@68 { +			compatible = "dallas,ds1339"; +			reg = <0x68>; +		}; +	}; + +	mdio@24000 { +		phy0: ethernet-phy@0 { +			interrupts = <3 1 0 0>; +			reg = <0x0>; +		}; +		phy1: ethernet-phy@1 { +			interrupts = <2 1 0 0>; +			reg = <0x1>; +		}; +	}; + +	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"; +	}; + +	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 { +		status = "disabled"; +		phy_type = "ulpi"; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1020mbg-pc_32b.dts b/arch/powerpc/boot/dts/p1020mbg-pc_32b.dts new file mode 100644 index 00000000000..ab8f076eae9 --- /dev/null +++ b/arch/powerpc/boot/dts/p1020mbg-pc_32b.dts @@ -0,0 +1,89 @@ +/* + * P1020 MBG-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,P1020MBG-PC"; +	compatible = "fsl,P1020MBG-PC"; + +	memory { +		device_type = "memory"; +	}; + +	lbc: localbus@ffe05000 { +		reg = <0x0 0xffe05000 0x0 0x1000>; + +		/* NOR and L2 switch */ +		ranges = <0x0 0x0 0x0 0xec000000 0x04000000 +			  0x1 0x0 0x0 0xffa00000 0x00040000 +			  0x2 0x0 0x0 0xffb00000 0x00020000>; +	}; + +	soc: soc@ffe00000 { +		ranges = <0x0 0x0 0xffe00000 0x100000>; +	}; + +	pci0: pcie@ffe09000 { +		reg = <0x0 0xffe09000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0xe0000000 0x0 0xa0000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0x0 0xffc10000 0x0 0x10000>; +		pcie@0 { +			ranges = <0x2000000 0x0 0xe0000000 +				  0x2000000 0x0 0xe0000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +		}; +	}; + +	pci1: pcie@ffe0a000 { +		reg = <0x0 0xffe0a000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0xe0000000 0x0 0x80000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0x0 0xffc00000 0x0 0x10000>; +		pcie@0 { +			ranges = <0x2000000 0x0 0xe0000000 +				  0x2000000 0x0 0xe0000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +		}; +	}; +}; + +/include/ "p1020mbg-pc.dtsi" +/include/ "fsl/p1020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1020mbg-pc_36b.dts b/arch/powerpc/boot/dts/p1020mbg-pc_36b.dts new file mode 100644 index 00000000000..9e9f401419b --- /dev/null +++ b/arch/powerpc/boot/dts/p1020mbg-pc_36b.dts @@ -0,0 +1,89 @@ +/* + * P1020 MBG-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,P1020MBG-PC"; +	compatible = "fsl,P1020MBG-PC"; + +	memory { +		device_type = "memory"; +	}; + +	lbc: localbus@fffe05000 { +		reg = <0xf 0xffe05000 0x0 0x1000>; + +		/* NOR and L2 switch */ +		ranges = <0x0 0x0 0xf 0xec000000 0x04000000 +			  0x1 0x0 0xf 0xffa00000 0x00040000 +			  0x2 0x0 0xf 0xffb00000 0x00020000>; +	}; + +	soc: soc@fffe00000 { +		ranges = <0x0 0xf 0xffe00000 0x100000>; +	}; + +	pci0: pcie@fffe09000 { +		reg = <0xf 0xffe09000 0x0 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 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/ "p1020mbg-pc.dtsi" +/include/ "fsl/p1020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1020rdb-pc.dtsi b/arch/powerpc/boot/dts/p1020rdb-pc.dtsi new file mode 100644 index 00000000000..c952cd37cf6 --- /dev/null +++ b/arch/powerpc/boot/dts/p1020rdb-pc.dtsi @@ -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"; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1020rdb-pc_32b.dts b/arch/powerpc/boot/dts/p1020rdb-pc_32b.dts new file mode 100644 index 00000000000..4de69b726dc --- /dev/null +++ b/arch/powerpc/boot/dts/p1020rdb-pc_32b.dts @@ -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" diff --git a/arch/powerpc/boot/dts/p1020rdb-pc_36b.dts b/arch/powerpc/boot/dts/p1020rdb-pc_36b.dts new file mode 100644 index 00000000000..5237da7441b --- /dev/null +++ b/arch/powerpc/boot/dts/p1020rdb-pc_36b.dts @@ -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" diff --git a/arch/powerpc/boot/dts/p1020rdb-pc_camp_core0.dts b/arch/powerpc/boot/dts/p1020rdb-pc_camp_core0.dts new file mode 100644 index 00000000000..f411515937e --- /dev/null +++ b/arch/powerpc/boot/dts/p1020rdb-pc_camp_core0.dts @@ -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; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1020rdb-pc_camp_core1.dts b/arch/powerpc/boot/dts/p1020rdb-pc_camp_core1.dts new file mode 100644 index 00000000000..a91335ad82c --- /dev/null +++ b/arch/powerpc/boot/dts/p1020rdb-pc_camp_core1.dts @@ -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"; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1020rdb-pd.dts b/arch/powerpc/boot/dts/p1020rdb-pd.dts new file mode 100644 index 00000000000..987017ea36b --- /dev/null +++ b/arch/powerpc/boot/dts/p1020rdb-pd.dts @@ -0,0 +1,280 @@ +/* + * P1020 RDB-PD Device Tree Source (32-bit address map) + * + * Copyright 2013 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-PD"; +	compatible = "fsl,P1020RDB-PD"; + +	memory { +		device_type = "memory"; +	}; + +	lbc: localbus@ffe05000 { +		reg = <0x0 0xffe05000 0x0 0x1000>; + +		/* NOR, NAND flash, L2 switch and CPLD */ +		ranges = <0x0 0x0 0x0 0xec000000 0x04000000 +			  0x1 0x0 0x0 0xff800000 0x00040000 +			  0x2 0x0 0x0 0xffa00000 0x00020000 +			  0x3 0x0 0x0 0xffb00000 0x00020000>; + +		nor@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "cfi-flash"; +			reg = <0x0 0x0 0x4000000>; +			bank-width = <2>; +			device-width = <1>; + +			partition@0 { +				/* 128KB for DTB Image */ +				reg = <0x0 0x00020000>; +				label = "NOR DTB Image"; +			}; + +			partition@20000 { +				/* 3.875 MB for Linux Kernel Image */ +				reg = <0x00020000 0x003e0000>; +				label = "NOR Linux Kernel Image"; +			}; + +			partition@400000 { +				/* 58MB for Root file System */ +				reg = <0x00400000 0x03a00000>; +				label = "NOR Root File System"; +			}; + +			partition@3e00000 { +				/* This location must not be altered  */ +				/* 1M for Vitesse 7385 Switch firmware */ +				reg = <0x3e00000 0x00100000>; +				label = "NOR Vitesse-7385 Firmware"; +				read-only; +			}; + +			partition@3f00000 { +				/* This location must not be altered  */ +				/* 512KB for u-boot Bootloader Image */ +				/* 512KB for u-boot Environment Variables */ +				reg = <0x03f00000 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 { +				/* 122MB for File System Image */ +				reg = <0x00600000 0x07a00000>; +				label = "NAND File System Image"; +			}; +		}; + +		cpld@2,0 { +			compatible = "fsl,p1020rdb-pd-cpld"; +			reg = <0x2 0x0 0x20000>; +		}; + +		L2switch@3,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "vitesse-7385"; +			reg = <0x3 0x0 0x20000>; +		}; +	}; + +	soc: soc@ffe00000 { +		ranges = <0x0 0x0 0xffe00000 0x100000>; + +		i2c@3000 { +			rtc@68 { +				compatible = "dallas,ds1339"; +				reg = <0x68>; +			}; +		}; + +		spi@7000 { +			flash@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "spansion,s25sl12801"; +				reg = <0>; +				/* input clock */ +				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 { +					/* 11MB for FS System Image */ +					reg = <0x00500000 0x00b00000>; +					label = "SPI File System Image"; +				}; +			}; + +			slic@0 { +				compatible = "zarlink,le88266"; +				reg = <1>; +				spi-max-frequency = <8000000>; +			}; + +			slic@1 { +				compatible = "zarlink,le88266"; +				reg = <2>; +				spi-max-frequency = <8000000>; +			}; +		}; + +		mdio@24000 { +			phy0: ethernet-phy@0 { +				interrupts = <3 1 0 0>; +				reg = <0x0>; +			}; + +			phy1: ethernet-phy@1 { +				interrupts = <2 1 0 0>; +				reg = <0x1>; +			}; +		}; + +		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"; +		}; + +		usb@22000 { +			phy_type = "ulpi"; +		}; +	}; + +	pci0: pcie@ffe09000 { +		reg = <0x0 0xffe09000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0xa0000000 0x0 0xa0000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0x0 0xffc10000 0x0 0x10000>; +		pcie@0 { +			ranges = <0x2000000 0x0 0xa0000000 +				  0x2000000 0x0 0xa0000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +		}; +	}; + +	pci1: pcie@ffe0a000 { +		reg = <0x0 0xffe0a000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0x80000000 0x0 0x80000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0x0 0xffc00000 0x0 0x10000>; +		pcie@0 { +			ranges = <0x2000000 0x0 0x80000000 +				  0x2000000 0x0 0x80000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +		}; +	}; +}; + +/include/ "fsl/p1020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1020rdb.dts b/arch/powerpc/boot/dts/p1020rdb.dts index 22f64b62d7f..518bf99b1f5 100644 --- a/arch/powerpc/boot/dts/p1020rdb.dts +++ b/arch/powerpc/boot/dts/p1020rdb.dts @@ -1,7 +1,7 @@  /*   * P1020 RDB Device Tree Source   * - * Copyright 2009 Freescale Semiconductor Inc. + * Copyright 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 @@ -9,559 +9,33 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/p1020si-pre.dtsi"  / { -	model = "fsl,P1020"; +	model = "fsl,P1020RDB";  	compatible = "fsl,P1020RDB"; -	#address-cells = <2>; -	#size-cells = <2>; - -	aliases { -		serial0 = &serial0; -		serial1 = &serial1; -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		ethernet2 = &enet2; -		pci0 = &pci0; -		pci1 = &pci1; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,P1020@0 { -			device_type = "cpu"; -			reg = <0x0>; -			next-level-cache = <&L2>; -		}; - -		PowerPC,P1020@1 { -			device_type = "cpu"; -			reg = <0x1>; -			next-level-cache = <&L2>; -		}; -	};  	memory {  		device_type = "memory";  	}; -	localbus@ffe05000 { -		#address-cells = <2>; -		#size-cells = <1>; -		compatible = "fsl,p1020-elbc", "fsl,elbc", "simple-bus"; +	board_lbc: lbc: localbus@ffe05000 {  		reg = <0 0xffe05000 0 0x1000>; -		interrupts = <19 2>; -		interrupt-parent = <&mpic>;  		/* NOR, NAND Flashes and Vitesse 5 port L2 switch */  		ranges = <0x0 0x0 0x0 0xef000000 0x01000000  			  0x1 0x0 0x0 0xffa00000 0x00040000  			  0x2 0x0 0x0 0xffb00000 0x00020000>; - -		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 (RO) Vitesse-7385 Firmware"; -				read-only; -			}; - -			partition@40000 { -				/* 256KB for DTB Image */ -				reg = <0x00040000 0x00040000>; -				label = "NOR (RO) DTB Image"; -				read-only; -			}; - -			partition@80000 { -				/* 3.5 MB for Linux Kernel Image */ -				reg = <0x00080000 0x00380000>; -				label = "NOR (RO) Linux Kernel Image"; -				read-only; -			}; - -			partition@400000 { -				/* 11MB for JFFS2 based Root file System */ -				reg = <0x00400000 0x00b00000>; -				label = "NOR (RW) 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 (RO) 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 (RO) U-Boot Image"; -				read-only; -			}; - -			partition@100000 { -				/* 1MB for DTB Image */ -				reg = <0x00100000 0x00100000>; -				label = "NAND (RO) DTB Image"; -				read-only; -			}; - -			partition@200000 { -				/* 4MB for Linux Kernel Image */ -				reg = <0x00200000 0x00400000>; -				label = "NAND (RO) Linux Kernel Image"; -				read-only; -			}; - -			partition@600000 { -				/* 4MB for Compressed Root file System Image */ -				reg = <0x00600000 0x00400000>; -				label = "NAND (RO) Compressed RFS Image"; -				read-only; -			}; - -			partition@a00000 { -				/* 7MB for JFFS2 based Root file System */ -				reg = <0x00a00000 0x00700000>; -				label = "NAND (RW) JFFS2 Root File System"; -			}; - -			partition@1100000 { -				/* 15MB for JFFS2 based Root file System */ -				reg = <0x01100000 0x00f00000>; -				label = "NAND (RW) Writable User area"; -			}; -		}; - -		L2switch@2,0 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "vitesse-7385"; -			reg = <0x2 0x0 0x20000>; -		}; -  	}; -	soc@ffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "fsl,p1020-immr", "simple-bus"; -		ranges = <0x0  0x0 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,p1020-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <16 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,p1020-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -			rtc@68 { -				compatible = "dallas,ds1339"; -				reg = <0x68>; -			}; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		spi@7000 { -			cell-index = <0>; -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,espi"; -			reg = <0x7000 0x1000>; -			interrupts = <59 0x2>; -			interrupt-parent = <&mpic>; -			mode = "cpu"; - -			fsl_m25p80@0 { -				#address-cells = <1>; -				#size-cells = <1>; -				compatible = "fsl,espi-flash"; -				reg = <0>; -				linux,modalias = "fsl_m25p80"; -				modal = "s25sl128b"; -				spi-max-frequency = <50000000>; -				mode = <0>; - -				partition@0 { -					/* 512KB for u-boot Bootloader Image */ -					reg = <0x0 0x00080000>; -					label = "SPI (RO) U-Boot Image"; -					read-only; -				}; - -				partition@80000 { -					/* 512KB for DTB Image */ -					reg = <0x00080000 0x00080000>; -					label = "SPI (RO) DTB Image"; -					read-only; -				}; - -				partition@100000 { -					/* 4MB for Linux Kernel Image */ -					reg = <0x00100000 0x00400000>; -					label = "SPI (RO) Linux Kernel Image"; -					read-only; -				}; - -				partition@500000 { -					/* 4MB for Compressed RFS Image */ -					reg = <0x00500000 0x00400000>; -					label = "SPI (RO) Compressed RFS Image"; -					read-only; -				}; - -				partition@900000 { -					/* 7MB for JFFS2 based RFS */ -					reg = <0x00900000 0x00700000>; -					label = "SPI (RW) JFFS2 RFS"; -				}; -			}; -		}; - -		gpio: gpio-controller@f000 { -			#gpio-cells = <2>; -			compatible = "fsl,mpc8572-gpio"; -			reg = <0xf000 0x100>; -			interrupts = <47 0x2>; -			interrupt-parent = <&mpic>; -			gpio-controller; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,p1020-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x40000>; // L2,256K -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		mdio@24000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,etsec2-mdio"; -			reg = <0x24000 0x1000 0xb0030 0x4>; - -			phy0: ethernet-phy@0 { -				interrupt-parent = <&mpic>; -				interrupts = <3 1>; -				reg = <0x0>; -			}; - -			phy1: ethernet-phy@1 { -				interrupt-parent = <&mpic>; -				interrupts = <2 1>; -				reg = <0x1>; -			}; -		}; - -		mdio@25000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,etsec2-tbi"; -			reg = <0x25000 0x1000 0xb1030 0x4>; - -			tbi0: tbi-phy@11 { -				reg = <0x11>; -				device_type = "tbi-phy"; -			}; -		}; - -		enet0: ethernet@b0000 { -			#address-cells = <1>; -			#size-cells = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "fsl,etsec2"; -			fsl,num_rx_queues = <0x8>; -			fsl,num_tx_queues = <0x8>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupt-parent = <&mpic>; -			fixed-link = <1 1 1000 0 0>; -			phy-connection-type = "rgmii-id"; - -			queue-group@0 { -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xb0000 0x1000>; -				interrupts = <29 2 30 2 34 2>; -			}; - -			queue-group@1 { -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xb4000 0x1000>; -				interrupts = <17 2 18 2 24 2>; -			}; -		}; - -		enet1: ethernet@b1000 { -			#address-cells = <1>; -			#size-cells = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "fsl,etsec2"; -			fsl,num_rx_queues = <0x8>; -			fsl,num_tx_queues = <0x8>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupt-parent = <&mpic>; -			phy-handle = <&phy0>; -			tbi-handle = <&tbi0>; -			phy-connection-type = "sgmii"; - -			queue-group@0 { -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xb1000 0x1000>; -				interrupts = <35 2 36 2 40 2>; -			}; - -			queue-group@1 { -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xb5000 0x1000>; -				interrupts = <51 2 52 2 67 2>; -			}; -		}; - -		enet2: ethernet@b2000 { -			#address-cells = <1>; -			#size-cells = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "fsl,etsec2"; -			fsl,num_rx_queues = <0x8>; -			fsl,num_tx_queues = <0x8>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupt-parent = <&mpic>; -			phy-handle = <&phy1>; -			phy-connection-type = "rgmii-id"; - -			queue-group@0 { -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xb2000 0x1000>; -				interrupts = <31 2 32 2 33 2>; -			}; - -			queue-group@1 { -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xb6000 0x1000>; -				interrupts = <25 2 26 2 27 2>; -			}; -		}; - -		usb@22000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl-usb2-dr"; -			reg = <0x22000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <28 0x2>; -			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 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl-usb2-dr"; -			reg = <0x23000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <46 0x2>; -			phy_type = "ulpi"; -		}; -		*/ - -		sdhci@2e000 { -			compatible = "fsl,p1020-esdhc", "fsl,esdhc"; -			reg = <0x2e000 0x1000>; -			interrupts = <72 0x2>; -			interrupt-parent = <&mpic>; -			/* Filled in by U-Boot */ -			clock-frequency = <0>; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", -				     "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0xbfe>; -			fsl,descriptor-types-mask = <0x3ab0ebf>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; - -		msi@41600 { -			compatible = "fsl,p1020-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,p1020-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; +	board_soc: soc: soc@ffe00000 { +		ranges = <0x0 0x0 0xffe00000 0x100000>;  	};  	pci0: pcie@ffe09000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0 0xffe09000 0 0x1000>; -		bus-range = <0 255>;  		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 -			  0x1000000 0x0 0x00000000 0 0xffc30000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <16 2>; +			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; +		reg = <0 0xffe09000 0 0x1000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xa0000000  				  0x2000000 0x0 0xa0000000  				  0x0 0x20000000 @@ -573,25 +47,12 @@  	};  	pci1: pcie@ffe0a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0 0xffe0a000 0 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000 -			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <16 2>; +		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0xc0000000 -				  0x2000000 0x0 0xc0000000 +			ranges = <0x2000000 0x0 0x80000000 +				  0x2000000 0x0 0x80000000  				  0x0 0x20000000  				  0x1000000 0x0 0x0 @@ -600,3 +61,6 @@  		};  	};  }; + +/include/ "p1020rdb.dtsi" +/include/ "fsl/p1020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1020rdb.dtsi b/arch/powerpc/boot/dts/p1020rdb.dtsi new file mode 100644 index 00000000000..1fb7e0e0940 --- /dev/null +++ b/arch/powerpc/boot/dts/p1020rdb.dtsi @@ -0,0 +1,246 @@ +/* + * P1020 RDB Device Tree Source stub (no addresses or top-level ranges) + * + * 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: + *     * 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 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 (RO) Vitesse-7385 Firmware"; +			read-only; +		}; + +		partition@40000 { +			/* 256KB for DTB Image */ +			reg = <0x00040000 0x00040000>; +			label = "NOR (RO) DTB Image"; +			read-only; +		}; + +		partition@80000 { +			/* 3.5 MB for Linux Kernel Image */ +			reg = <0x00080000 0x00380000>; +			label = "NOR (RO) Linux Kernel Image"; +			read-only; +		}; + +		partition@400000 { +			/* 11MB for JFFS2 based Root file System */ +			reg = <0x00400000 0x00b00000>; +			label = "NOR (RW) 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 (RO) 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 (RO) U-Boot Image"; +			read-only; +		}; + +		partition@100000 { +			/* 1MB for DTB Image */ +			reg = <0x00100000 0x00100000>; +			label = "NAND (RO) DTB Image"; +			read-only; +		}; + +		partition@200000 { +			/* 4MB for Linux Kernel Image */ +			reg = <0x00200000 0x00400000>; +			label = "NAND (RO) Linux Kernel Image"; +			read-only; +		}; + +		partition@600000 { +			/* 4MB for Compressed Root file System Image */ +			reg = <0x00600000 0x00400000>; +			label = "NAND (RO) Compressed RFS Image"; +			read-only; +		}; + +		partition@a00000 { +			/* 7MB for JFFS2 based Root file System */ +			reg = <0x00a00000 0x00700000>; +			label = "NAND (RW) JFFS2 Root File System"; +		}; + +		partition@1100000 { +			/* 15MB for JFFS2 based Root file System */ +			reg = <0x01100000 0x00f00000>; +			label = "NAND (RW) Writable User area"; +		}; +	}; + +	L2switch@2,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "vitesse-7385"; +		reg = <0x2 0x0 0x20000>; +	}; +}; + +&board_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"; +				read-only; +			}; + +			partition@kernel { +				/* 4MB for Linux Kernel Image */ +				reg = <0x00100000 0x00400000>; +				label = "kernel"; +				read-only; +			}; + +			partition@fs { +				/* 4MB for Compressed RFS Image */ +				reg = <0x00500000 0x00400000>; +				label = "file system"; +				read-only; +			}; + +			partition@jffs-fs { +				/* 7MB for JFFS2 based RFS */ +				reg = <0x00900000 0x00700000>; +				label = "file system jffs2"; +			}; +		}; +	}; + +	usb@22000 { +		phy_type = "ulpi"; +		dr_mode = "host"; +	}; + +	/* USB2 is shared with localbus. It is used +	   only in case of SPI and SD boot after +	   appropriate device-tree fixup done by uboot */ +	usb@23000 { +		phy_type = "ulpi"; +		dr_mode = "host"; +	}; + +	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>; +		}; + +		tbi-phy@2 { +			device_type = "tbi-phy"; +			reg = <0x2>; +		}; +	}; + +	mdio@25000 { +		tbi0: 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 = <&tbi0>; +		phy-connection-type = "sgmii"; +	}; + +	enet2: ethernet@b2000 { +		phy-handle = <&phy1>; +		phy-connection-type = "rgmii-id"; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1020rdb_36b.dts b/arch/powerpc/boot/dts/p1020rdb_36b.dts new file mode 100644 index 00000000000..bdbdb6097e5 --- /dev/null +++ b/arch/powerpc/boot/dts/p1020rdb_36b.dts @@ -0,0 +1,66 @@ +/* + * P1020 RDB Device Tree Source (36-bit address map) + * + * Copyright 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 + * Free Software Foundation;  either version 2 of the  License, or (at your + * option) any later version. + */ + +/include/ "fsl/p1020si-pre.dtsi" +/ { +	model = "fsl,P1020RDB"; +	compatible = "fsl,P1020RDB"; + +	memory { +		device_type = "memory"; +	}; + +	board_lbc: 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 0xffa00000 0x00040000 +			  0x2 0x0 0xf 0xffb00000 0x00020000>; +	}; + +	board_soc: 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.dtsi" +/include/ "fsl/p1020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1020utm-pc.dtsi b/arch/powerpc/boot/dts/p1020utm-pc.dtsi new file mode 100644 index 00000000000..7ea85eabcc5 --- /dev/null +++ b/arch/powerpc/boot/dts/p1020utm-pc.dtsi @@ -0,0 +1,140 @@ +/* + * P1020 UTM-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 0x2000000>; +		bank-width = <2>; +		device-width = <1>; + +		partition@0 { +			/* 256KB for DTB Image */ +			reg = <0x0 0x00040000>; +			label = "NOR DTB Image"; +		}; + +		partition@40000 { +			/* 3.75 MB for Linux Kernel Image */ +			reg = <0x00040000 0x003c0000>; +			label = "NOR Linux Kernel Image"; +		}; + +		partition@400000 { +			/* 27MB for Root file System */ +			reg = <0x00400000 0x01b00000>; +			label = "NOR Root File System"; +		}; + +		partition@1f00000 { +			/* This location must not be altered  */ +			/* 512KB for u-boot Bootloader Image */ +			/* 512KB for u-boot Environment Variables */ +			reg = <0x01f00000 0x00100000>; +			label = "NOR U-Boot Image"; +			read-only; +		}; +	}; +}; + +&soc { +	i2c@3000 { +		rtc@68 { +			compatible = "dallas,ds1339"; +			reg = <0x68>; +		}; +	}; + +	mdio@24000 { +		phy0: ethernet-phy@0 { +			interrupts = <3 1 0 0>; +			reg = <0x0>; +		}; +		phy1: ethernet-phy@1 { +			interrupts = <2 1 0 0>; +			reg = <0x1>; +		}; +		phy2: ethernet-phy@2 { +			interrupts = <1 1 0 0>; +			reg = <0x2>; +		}; +	}; + +	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 { +		phy-handle = <&phy2>; +		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"; +	}; + +	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 { +		status = "disabled"; +		phy_type = "ulpi"; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1020utm-pc_32b.dts b/arch/powerpc/boot/dts/p1020utm-pc_32b.dts new file mode 100644 index 00000000000..4bfdd8971cd --- /dev/null +++ b/arch/powerpc/boot/dts/p1020utm-pc_32b.dts @@ -0,0 +1,89 @@ +/* + * P1020 UTM-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,P1020UTM-PC"; +	compatible = "fsl,P1020UTM-PC"; + +	memory { +		device_type = "memory"; +	}; + +	lbc: localbus@ffe05000 { +		reg = <0x0 0xffe05000 0x0 0x1000>; + +		/* NOR */ +		ranges = <0x0 0x0 0x0 0xec000000 0x02000000 +			  0x1 0x0 0x0 0xffa00000 0x00040000 +			  0x2 0x0 0x0 0xffb00000 0x00020000>; +	}; + +	soc: soc@ffe00000 { +		ranges = <0x0 0x0 0xffe00000 0x100000>; +	}; + +	pci0: pcie@ffe09000 { +		reg = <0x0 0xffe09000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0xe0000000 0x0 0xa0000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0x0 0xffc10000 0x0 0x10000>; +		pcie@0 { +			ranges = <0x2000000 0x0 0xe0000000 +				  0x2000000 0x0 0xe0000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +		}; +	}; + +	pci1: pcie@ffe0a000 { +		reg = <0x0 0xffe0a000 0x0 0x1000>; +		ranges = <0x2000000 0x0 0xe0000000 0x0 0x80000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0x0 0xffc00000 0x0 0x10000>; +		pcie@0 { +			ranges = <0x2000000 0x0 0xe0000000 +				  0x2000000 0x0 0xe0000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +		}; +	}; +}; + +/include/ "p1020utm-pc.dtsi" +/include/ "fsl/p1020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1020utm-pc_36b.dts b/arch/powerpc/boot/dts/p1020utm-pc_36b.dts new file mode 100644 index 00000000000..abec5355750 --- /dev/null +++ b/arch/powerpc/boot/dts/p1020utm-pc_36b.dts @@ -0,0 +1,89 @@ +/* + * P1020 UTM-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,P1020UTM-PC"; +	compatible = "fsl,P1020UTM-PC"; + +	memory { +		device_type = "memory"; +	}; + +	lbc: localbus@fffe05000 { +		reg = <0xf 0xffe05000 0x0 0x1000>; + +		/* NOR */ +		ranges = <0x0 0x0 0xf 0xec000000 0x02000000 +			  0x1 0x0 0xf 0xffa00000 0x00040000 +			  0x2 0x0 0xf 0xffb00000 0x00020000>; +	}; + +	soc: soc@fffe00000 { +		ranges = <0x0 0xf 0xffe00000 0x100000>; +	}; + +	pci0: pcie@fffe09000 { +		reg = <0xf 0xffe09000 0x0 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 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/ "p1020utm-pc.dtsi" +/include/ "fsl/p1020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1021mds.dts b/arch/powerpc/boot/dts/p1021mds.dts index ad5b8526900..76559044df4 100644 --- a/arch/powerpc/boot/dts/p1021mds.dts +++ b/arch/powerpc/boot/dts/p1021mds.dts @@ -1,7 +1,7 @@  /*   * P1021 MDS Device Tree Source   * - * Copyright 2010 Freescale Semiconductor Inc. + * Copyright 2010,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 @@ -9,53 +9,22 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/p1021si-pre.dtsi"  / {  	model = "fsl,P1021";  	compatible = "fsl,P1021MDS"; -	#address-cells = <2>; -	#size-cells = <2>;  	aliases { -		serial0 = &serial0; -		serial1 = &serial1; -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		ethernet2 = &enet2;  		ethernet3 = &enet3;  		ethernet4 = &enet4; -		pci0 = &pci0; -		pci1 = &pci1; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,P1021@0 { -			device_type = "cpu"; -			reg = <0x0>; -			next-level-cache = <&L2>; -		}; - -		PowerPC,P1021@1 { -			device_type = "cpu"; -			reg = <0x1>; -			next-level-cache = <&L2>; -		};  	};  	memory {  		device_type = "memory";  	}; -	localbus@ffe05000 { -		#address-cells = <2>; -		#size-cells = <1>; -		compatible = "fsl,p1021-elbc", "fsl,elbc", "simple-bus"; -		reg = <0 0xffe05000 0 0x1000>; -		interrupts = <19 2>; -		interrupt-parent = <&mpic>; +	lbc: localbus@ffe05000 { +		reg = <0x0 0xffe05000 0x0 0x1000>;  		/* NAND Flash, BCSR, PMC0/1*/  		ranges = <0x0 0x0 0x0 0xfc000000 0x02000000 @@ -138,99 +107,26 @@  		};  	}; -	soc@ffe00000 { - -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; +	soc: soc@ffe00000 {  		compatible = "fsl,p1021-immr", "simple-bus"; -		ranges = <0x0  0x0 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,p1021-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <16 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,p1021-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; +		ranges = <0x0 0x0 0xffe00000 0x100000>;  		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr;  			rtc@68 {  				compatible = "dallas,ds1374";  				reg = <0x68>;  			};  		}; -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; -  		spi@7000 { -			cell-index = <0>; -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,espi"; -			reg = <0x7000 0x1000>; -			interrupts = <59 0x2>; -			interrupt-parent = <&mpic>; -			espi,num-ss-bits = <4>; -			mode = "cpu"; - -			fsl_m25p80@0 { + +			flash@0 {  				#address-cells = <1>;  				#size-cells = <1>; -				compatible = "fsl,espi-flash"; +				compatible = "spansion,s25sl12801";  				reg = <0>; -				linux,modalias = "fsl_m25p80";  				spi-max-frequency = <40000000>; /* input clock */ +  				partition@u-boot {  					label = "u-boot-spi";  					reg = <0x00000000 0x00100000>; @@ -253,237 +149,50 @@  			};  		}; -		gpio: gpio-controller@f000 { -			#gpio-cells = <2>; -			compatible = "fsl,mpc8572-gpio"; -			reg = <0xf000 0x100>; -			interrupts = <47 0x2>; -			interrupt-parent = <&mpic>; -			gpio-controller; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,p1021-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x40000>; // L2,256K -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; -  		usb@22000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl-usb2-dr"; -			reg = <0x22000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <28 0x2>;  			phy_type = "ulpi"; +			dr_mode = "host";  		}; -		 mdio@24000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,etsec2-mdio"; -			reg = <0x24000 0x1000 0xb0030 0x4>; - +		mdio@24000 {  			phy0: ethernet-phy@0 { -				interrupt-parent = <&mpic>; -				interrupts = <1 1>; +				interrupts = <1 1 0 0>;  				reg = <0x0>;  			};  			phy1: ethernet-phy@1 { -				interrupt-parent = <&mpic>; -				interrupts = <2 1>; +				interrupts = <2 1 0 0>;  				reg = <0x1>;  			};  			phy4: ethernet-phy@4 { -				interrupt-parent = <&mpic>;  				reg = <0x4>;  			}; +			tbi-phy@5 { +				device_type = "tbi-phy"; +				reg = <0x5>; +			};  		};  		mdio@25000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,etsec2-tbi"; -			reg = <0x25000 0x1000 0xb1030 0x4>;  			tbi0: tbi-phy@11 {  				reg = <0x11>;  				device_type = "tbi-phy";  			};  		}; -		enet0: ethernet@B0000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "fsl,etsec2"; -			fsl,num_rx_queues = <0x8>; -			fsl,num_tx_queues = <0x8>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupt-parent = <&mpic>; +		ethernet@b0000 {  			phy-handle = <&phy0>;  			phy-connection-type = "rgmii-id"; -			queue-group@0{ -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xB0000 0x1000>; -				interrupts = <29 2 30 2 34 2>; -			}; -			queue-group@1{ -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xB4000 0x1000>; -				interrupts = <17 2 18 2 24 2>; -			};  		}; -		enet1: ethernet@B1000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "fsl,etsec2"; -			fsl,num_rx_queues = <0x8>; -			fsl,num_tx_queues = <0x8>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupt-parent = <&mpic>; +		ethernet@b1000 {  			phy-handle = <&phy4>;  			tbi-handle = <&tbi0>;  			phy-connection-type = "sgmii"; -			queue-group@0{ -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xB1000 0x1000>; -				interrupts = <35 2 36 2 40 2>; -			}; -			queue-group@1{ -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xB5000 0x1000>; -				interrupts = <51 2 52 2 67 2>; -			};  		}; -		enet2: ethernet@B2000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "fsl,etsec2"; -			fsl,num_rx_queues = <0x8>; -			fsl,num_tx_queues = <0x8>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupt-parent = <&mpic>; +		ethernet@b2000 {  			phy-handle = <&phy1>;  			phy-connection-type = "rgmii-id"; -			queue-group@0{ -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xB2000 0x1000>; -				interrupts = <31 2 32 2 33 2>; -			}; -			queue-group@1{ -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xB6000 0x1000>; -				interrupts = <25 2 26 2 27 2>; -			}; -		}; - -		sdhci@2e000 { -			compatible = "fsl,p1021-esdhc", "fsl,esdhc"; -			reg = <0x2e000 0x1000>; -			interrupts = <72 0x2>; -			interrupt-parent = <&mpic>; -			/* Filled in by U-Boot */ -			clock-frequency = <0>; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.3", "fsl,sec3.1", -				     "fsl,sec3.0", "fsl,sec2.4", -				     "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0x97c>; -			fsl,descriptor-types-mask = <0x3a30abf>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; - -		msi@41600 { -			compatible = "fsl,p1021-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,p1021-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr;  		};  		par_io@e0100 { @@ -499,8 +208,7 @@  					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  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 */ @@ -535,31 +243,10 @@  	};  	pci0: pcie@ffe09000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0 0xffe09000 0 0x1000>; -		bus-range = <0 255>;  		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <16 2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 4 1 -			0000 0 0 2 &mpic 5 1 -			0000 0 0 3 &mpic 6 1 -			0000 0 0 4 &mpic 7 1 -			>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xa0000000  				  0x2000000 0x0 0xa0000000  				  0x0 0x20000000 @@ -571,31 +258,10 @@  	};  	pci1: pcie@ffe0a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0 0xffe0a000 0 0x1000>; -		bus-range = <0 255>;  		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <16 2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 0 1 -			0000 0 0 2 &mpic 1 1 -			0000 0 0 3 &mpic 2 1 -			0000 0 0 4 &mpic 3 1 -			>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xc0000000  				  0x2000000 0x0 0xc0000000  				  0x0 0x20000000 @@ -606,36 +272,16 @@  		};  	}; -	qe@ffe80000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "qe"; -		compatible = "fsl,qe"; +	qe: qe@ffe80000 {  		ranges = <0x0 0x0 0xffe80000 0x40000>;  		reg = <0 0xffe80000 0 0x480>;  		brg-frequency = <0>;  		bus-frequency = <0>; -		fsl,qe-num-riscs = <1>; -		fsl,qe-num-snums = <28>;  		status = "disabled"; /* no firmware loaded */ -		qeic: interrupt-controller@80 { -			interrupt-controller; -			compatible = "fsl,qe-ic"; -			#address-cells = <0>; -			#interrupt-cells = <1>; -			reg = <0x80 0x80>; -			interrupts = <63 2 60 2>; //high:47 low:44 -			interrupt-parent = <&mpic>; -		}; -  		enet3: ucc@2000 {  			device_type = "network";  			compatible = "ucc_geth"; -			cell-index = <1>; -			reg = <0x2000 0x200>; -			interrupts = <32>; -			interrupt-parent = <&qeic>;  			local-mac-address = [ 00 00 00 00 00 00 ];  			rx-clock-name = "clk12";  			tx-clock-name = "clk9"; @@ -645,22 +291,15 @@  		};  		mdio@2120 { -			#address-cells = <1>; -			#size-cells = <0>; -			reg = <0x2120 0x18>; -			compatible = "fsl,ucc-mdio"; -  			qe_phy0: ethernet-phy@0 {  				interrupt-parent = <&mpic>; -				interrupts = <4 1>; +				interrupts = <4 1 0 0>;  				reg = <0x0>; -				device_type = "ethernet-phy";  			};  			qe_phy1: ethernet-phy@03 {  				interrupt-parent = <&mpic>; -				interrupts = <5 1>; +				interrupts = <5 1 0 0>;  				reg = <0x3>; -				device_type = "ethernet-phy";  			};  			tbi-phy@11 {  				reg = <0x11>; @@ -671,10 +310,6 @@  		enet4: ucc@2400 {  			device_type = "network";  			compatible = "ucc_geth"; -			cell-index = <5>; -			reg = <0x2400 0x200>; -			interrupts = <40>; -			interrupt-parent = <&qeic>;  			local-mac-address = [ 00 00 00 00 00 00 ];  			rx-clock-name = "none";  			tx-clock-name = "clk13"; @@ -682,18 +317,7 @@  			phy-handle = <&qe_phy1>;  			phy-connection-type = "rmii";  		}; - -		muram@10000 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,qe-muram", "fsl,cpm-muram"; -			ranges = <0x0 0x10000 0x6000>; - -			data-only@0 { -				compatible = "fsl,qe-muram-data", -				"fsl,cpm-muram-data"; -				reg = <0x0 0x6000>; -			}; -		};  	};  }; + +/include/ "fsl/p1021si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1021rdb-pc.dtsi b/arch/powerpc/boot/dts/p1021rdb-pc.dtsi new file mode 100644 index 00000000000..d6274c58f49 --- /dev/null +++ b/arch/powerpc/boot/dts/p1021rdb-pc.dtsi @@ -0,0 +1,244 @@ +/* + * P1021 RDB 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 { +			/* 10.75MB for JFFS2 based Root file System */ +			reg = <0x00400000 0x00ac0000>; +			label = "NOR JFFS2 Root File System"; +		}; + +		partition@ec0000 { +			/* This location must not be altered  */ +			/* 256KB for QE ucode firmware*/ +			reg = <0x00ec0000 0x00040000>; +			label = "NOR QE microcode firmware"; +			read-only; +		}; + +		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"; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1021rdb-pc_32b.dts b/arch/powerpc/boot/dts/p1021rdb-pc_32b.dts new file mode 100644 index 00000000000..7cefa12b629 --- /dev/null +++ b/arch/powerpc/boot/dts/p1021rdb-pc_32b.dts @@ -0,0 +1,96 @@ +/* + * P1021 RDB 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/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-pc.dtsi" +/include/ "fsl/p1021si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1021rdb-pc_36b.dts b/arch/powerpc/boot/dts/p1021rdb-pc_36b.dts new file mode 100644 index 00000000000..53d0c889039 --- /dev/null +++ b/arch/powerpc/boot/dts/p1021rdb-pc_36b.dts @@ -0,0 +1,96 @@ +/* + * P1021 RDB 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/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-pc.dtsi" +/include/ "fsl/p1021si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1022ds.dts b/arch/powerpc/boot/dts/p1022ds.dts deleted file mode 100644 index 2bbecbb4cbf..00000000000 --- a/arch/powerpc/boot/dts/p1022ds.dts +++ /dev/null @@ -1,644 +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. - */ - -/dts-v1/; -/ { -	model = "fsl,P1022"; -	compatible = "fsl,P1022DS"; -	#address-cells = <2>; -	#size-cells = <2>; -	interrupt-parent = <&mpic>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		serial0 = &serial0; -		serial1 = &serial1; -		pci0 = &pci0; -		pci1 = &pci1; -		pci2 = &pci2; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,P1022@0 { -			device_type = "cpu"; -			reg = <0x0>; -			next-level-cache = <&L2>; -		}; - -		PowerPC,P1022@1 { -			device_type = "cpu"; -			reg = <0x1>; -			next-level-cache = <&L2>; -		}; -	}; - -	memory { -		device_type = "memory"; -	}; - -	localbus@fffe05000 { -		#address-cells = <2>; -		#size-cells = <1>; -		compatible = "fsl,p1022-elbc", "fsl,elbc", "simple-bus"; -		reg = <0 0xffe05000 0 0x1000>; -		interrupts = <19 2>; - -		ranges = <0x0 0x0 0xf 0xe8000000 0x08000000 -			  0x1 0x0 0xf 0xe0000000 0x08000000 -			  0x2 0x0 0x0 0xffa00000 0x00040000 -			  0x3 0x0 0xf 0xffdf0000 0x00008000>; - -		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-pixis"; -			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>; -		}; -	}; - -	soc@fffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "fsl,p1022-immr", "simple-bus"; -		ranges = <0x0 0xf 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,p1022-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <16 2>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,p1022-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupts = <16 2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			dfsrr; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			dfsrr; - -			wm8776:codec@1a { -				compatible = "wlf,wm8776"; -				reg = <0x1a>; -				/* MCLK source is a stand-alone oscillator */ -				clock-frequency = <12288000>; -			}; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -		}; - -		spi@7000 { -			cell-index = <0>; -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,espi"; -			reg = <0x7000 0x1000>; -			interrupts = <59 0x2>; -			espi,num-ss-bits = <4>; -			mode = "cpu"; - -			fsl_m25p80@0 { -				#address-cells = <1>; -				#size-cells = <1>; -				compatible = "fsl,espi-flash"; -				reg = <0>; -				linux,modalias = "fsl_m25p80"; -				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 { -			compatible = "fsl,mpc8610-ssi"; -			cell-index = <0>; -			reg = <0x15000 0x100>; -			interrupts = <75 2>; -			fsl,mode = "i2s-slave"; -			codec-handle = <&wm8776>; -			fsl,playback-dma = <&dma00>; -			fsl,capture-dma = <&dma01>; -			fsl,fifo-depth = <16>; -		}; - -		dma@c300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,eloplus-dma"; -			reg = <0xc300 0x4>; -			ranges = <0x0 0xc100 0x200>; -			cell-index = <1>; -			dma00: dma-channel@0 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupts = <76 2>; -			}; -			dma01: dma-channel@80 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupts = <77 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupts = <78 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupts = <79 2>; -			}; -		}; - -		gpio: gpio-controller@f000 { -			#gpio-cells = <2>; -			compatible = "fsl,mpc8572-gpio"; -			reg = <0xf000 0x100>; -			interrupts = <47 0x2>; -			gpio-controller; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,p1022-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x40000>; // L2, 256K -			interrupts = <16 2>; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupts = <23 2>; -			}; -		}; - -		usb@22000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl-usb2-dr"; -			reg = <0x22000 0x1000>; -			interrupts = <28 0x2>; -			phy_type = "ulpi"; -		}; - -		mdio@24000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,etsec2-mdio"; -			reg = <0x24000 0x1000 0xb0030 0x4>; - -			phy0: ethernet-phy@0 { -				interrupts = <3 1>; -				reg = <0x1>; -			}; -			phy1: ethernet-phy@1 { -				interrupts = <9 1>; -				reg = <0x2>; -			}; -		}; - -		mdio@25000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,etsec2-mdio"; -			reg = <0x25000 0x1000 0xb1030 0x4>; -		}; - -		enet0: ethernet@B0000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "fsl,etsec2"; -			fsl,num_rx_queues = <0x8>; -			fsl,num_tx_queues = <0x8>; -			fsl,magic-packet; -			fsl,wake-on-filer; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			fixed-link = <1 1 1000 0 0>; -			phy-handle = <&phy0>; -			phy-connection-type = "rgmii-id"; -			queue-group@0{ -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xB0000 0x1000>; -				interrupts = <29 2 30 2 34 2>; -			}; -			queue-group@1{ -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xB4000 0x1000>; -				interrupts = <17 2 18 2 24 2>; -			}; -		}; - -		enet1: ethernet@B1000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "fsl,etsec2"; -			fsl,num_rx_queues = <0x8>; -			fsl,num_tx_queues = <0x8>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			fixed-link = <1 1 1000 0 0>; -			phy-handle = <&phy1>; -			phy-connection-type = "rgmii-id"; -			queue-group@0{ -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xB1000 0x1000>; -				interrupts = <35 2 36 2 40 2>; -			}; -			queue-group@1{ -				#address-cells = <1>; -				#size-cells = <1>; -				reg = <0xB5000 0x1000>; -				interrupts = <51 2 52 2 67 2>; -			}; -		}; - -		sdhci@2e000 { -			compatible = "fsl,p1022-esdhc", "fsl,esdhc"; -			reg = <0x2e000 0x1000>; -			interrupts = <72 0x2>; -			fsl,sdhci-auto-cmd12; -			/* Filled in by U-Boot */ -			clock-frequency = <0>; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.3", "fsl,sec3.1", "fsl,sec3.0", -				     "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1", -				     "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0x97c>; -			fsl,descriptor-types-mask = <0x3a30abf>; -		}; - -		sata@18000 { -			compatible = "fsl,mpc8536-sata", "fsl,pq-sata"; -			reg = <0x18000 0x1000>; -			cell-index = <1>; -			interrupts = <74 0x2>; -		}; - -		sata@19000 { -			compatible = "fsl,mpc8536-sata", "fsl,pq-sata"; -			reg = <0x19000 0x1000>; -			cell-index = <2>; -			interrupts = <41 0x2>; -		}; - -		power@e0070{ -			compatible = "fsl,mpc8536-pmc", "fsl,mpc8548-pmc"; -			reg = <0xe0070 0x20>; -		}; - -		display@10000 { -			compatible = "fsl,diu", "fsl,p1022-diu"; -			reg = <0x10000 1000>; -			interrupts = <64 2>; -		}; - -		timer@41100 { -			compatible = "fsl,mpic-global-timer"; -			reg = <0x41100 0x204>; -			interrupts = <0xf7 0x2>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; - -		msi@41600 { -			compatible = "fsl,p1022-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -		}; - -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,p1022-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; -	}; - -	pci0: pcie@fffe09000 { -		compatible = "fsl,p1022-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xf 0xffe09000 0 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xa0000000 0xc 0x20000000 0x0 0x20000000 -			  0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupts = <16 2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 4 1 -			0000 0 0 2 &mpic 5 1 -			0000 0 0 3 &mpic 6 1 -			0000 0 0 4 &mpic 7 1 -			>; -		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0xe0000000 -				  0x2000000 0x0 0xe0000000 -				  0x0 0x20000000 - -				  0x1000000 0x0 0x0 -				  0x1000000 0x0 0x0 -				  0x0 0x100000>; -		}; -	}; - -	pci1: pcie@fffe0a000 { -		compatible = "fsl,p1022-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xf 0xffe0a000 0 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xc0000000 0xc 0x40000000 0x0 0x20000000 -			  0x1000000 0x0 0x00000000 0xf 0xffc20000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupts = <16 2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 0 1 -			0000 0 0 2 &mpic 1 1 -			0000 0 0 3 &mpic 2 1 -			0000 0 0 4 &mpic 3 1 -			>; -		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0xe0000000 -				  0x2000000 0x0 0xe0000000 -				  0x0 0x20000000 - -				  0x1000000 0x0 0x0 -				  0x1000000 0x0 0x0 -				  0x0 0x100000>; -		}; -	}; - - -	pci2: pcie@fffe0b000 { -		compatible = "fsl,p1022-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xf 0xffe0b000 0 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0x80000000 0xc 0x00000000 0x0 0x20000000 -			  0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupts = <16 2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 8 1 -			0000 0 0 2 &mpic 9 1 -			0000 0 0 3 &mpic 10 1 -			0000 0 0 4 &mpic 11 1 -			>; -		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0xe0000000 -				  0x2000000 0x0 0xe0000000 -				  0x0 0x20000000 - -				  0x1000000 0x0 0x0 -				  0x1000000 0x0 0x0 -				  0x0 0x100000>; -		}; -	}; -}; diff --git a/arch/powerpc/boot/dts/p1022ds.dtsi b/arch/powerpc/boot/dts/p1022ds.dtsi new file mode 100644 index 00000000000..957e0dc1dc0 --- /dev/null +++ b/arch/powerpc/boot/dts/p1022ds.dtsi @@ -0,0 +1,227 @@ +/* + * 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 { +	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. +			 */ +		}; +		rtc@68 { +			compatible = "dallas,ds3232"; +			reg = <0x68>; +			interrupts = <0x1 0x1 0 0>; +		}; +		adt7461@4c { +			compatible = "adi,adt7461"; +			reg = <0x4c>; +		}; +	}; + +	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"; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1022ds_32b.dts b/arch/powerpc/boot/dts/p1022ds_32b.dts new file mode 100644 index 00000000000..d96cae00a9e --- /dev/null +++ b/arch/powerpc/boot/dts/p1022ds_32b.dts @@ -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" diff --git a/arch/powerpc/boot/dts/p1022ds_36b.dts b/arch/powerpc/boot/dts/p1022ds_36b.dts new file mode 100644 index 00000000000..f7aacce40bf --- /dev/null +++ b/arch/powerpc/boot/dts/p1022ds_36b.dts @@ -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" diff --git a/arch/powerpc/boot/dts/p1022rdk.dts b/arch/powerpc/boot/dts/p1022rdk.dts new file mode 100644 index 00000000000..51d82de223f --- /dev/null +++ b/arch/powerpc/boot/dts/p1022rdk.dts @@ -0,0 +1,188 @@ +/* + * P1022 RDK 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,P1022RDK"; +	compatible = "fsl,P1022RDK"; + +	memory { +		device_type = "memory"; +	}; + +	board_lbc: lbc: localbus@ffe05000 { +		/* The P1022 RDK does not have any localbus devices */ +		status = "disabled"; +	}; + +	board_soc: soc: soc@ffe00000 { +		ranges = <0x0 0x0 0xffe00000 0x100000>; + +		i2c@3100 { +			wm8960:codec@1a { +				compatible = "wlf,wm8960"; +				reg = <0x1a>; +				/* MCLK source is a stand-alone oscillator */ +				clock-frequency = <12288000>; +			}; +			rtc@68 { +				compatible = "stm,m41t62"; +				reg = <0x68>; +			}; +			adt7461@4c{ +				compatible = "adi,adt7461"; +				reg = <0x4c>; +			}; +			zl6100@21{ +				compatible = "isil,zl6100"; +				reg = <0x21>; +			}; +			zl6100@24{ +				compatible = "isil,zl6100"; +				reg = <0x24>; +			}; +			zl6100@26{ +				compatible = "isil,zl6100"; +				reg = <0x26>; +			}; +			zl6100@29{ +				compatible = "isil,zl6100"; +				reg = <0x29>; +			}; +		}; + +		spi@7000 { +			flash@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "spansion,m25p80"; +				reg = <0>; +				spi-max-frequency = <1000000>; +				partition@0 { +					label = "full-spi-flash"; +					reg = <0x00000000 0x00100000>; +				}; +			}; +		}; + +		ssi@15000 { +			fsl,mode = "i2s-slave"; +			codec-handle = <&wm8960>; +		}; + +		usb@22000 { +			phy_type = "ulpi"; +		}; + +		usb@23000 { +			phy_type = "ulpi"; +		}; + +		mdio@24000 { +			phy0: ethernet-phy@0 { +				interrupts = <3 1 0 0>; +				reg = <0x1>; +			}; +			phy1: ethernet-phy@1 { +				interrupts = <9 1 0 0>; +				reg = <0x2>; +			}; +		}; + +		mdio@25000 { +			tbi0: tbi-phy@11 { +				reg = <0x11>; +				device_type = "tbi-phy"; +			}; +		}; + +		ethernet@b0000 { +			phy-handle = <&phy0>; +			phy-connection-type = "rgmii-id"; +		}; + +		ethernet@b1000 { +			phy-handle = <&phy1>; +			tbi-handle = <&tbi0>; +			phy-connection-type = "sgmii"; +		}; +	}; + +	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" diff --git a/arch/powerpc/boot/dts/p1023rdb.dts b/arch/powerpc/boot/dts/p1023rdb.dts new file mode 100644 index 00000000000..0a06a88ddbd --- /dev/null +++ b/arch/powerpc/boot/dts/p1023rdb.dts @@ -0,0 +1,234 @@ +/* + * P1023 RDB Device Tree Source + * + *    Copyright 2013 Freescale Semiconductor Inc. + * + * Author: Chunhe Lan <Chunhe.Lan@freescale.com> + * + * 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/p1023si-pre.dtsi" + +/ { +	model = "fsl,P1023"; +	compatible = "fsl,P1023RDB"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	memory { +		device_type = "memory"; +	}; + +	soc: soc@ff600000 { +		ranges = <0x0 0x0 0xff600000 0x200000>; + +		i2c@3000 { +			eeprom@53 { +				compatible = "at24,24c04"; +				reg = <0x53>; +			}; + +			rtc@6f { +				compatible = "microchip,mcp7941x"; +				reg = <0x6f>; +			}; +		}; + +		usb@22000 { +			dr_mode = "host"; +			phy_type = "ulpi"; +		}; +	}; + +	lbc: localbus@ff605000 { +		reg = <0 0xff605000 0 0x1000>; + +		/* NOR, NAND Flashes */ +		ranges = <0x0 0x0 0x0 0xec000000 0x04000000 +			  0x1 0x0 0x0 0xffa00000 0x08000000>; + +		nor@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "cfi-flash"; +			reg = <0x0 0x0 0x04000000>; +			bank-width = <2>; +			device-width = <1>; + +			partition@0 { +				/* 48MB for Root File System */ +				reg = <0x00000000 0x03000000>; +				label = "NOR Root File System"; +			}; + +			partition@3000000 { +				/* 1MB for DTB Image */ +				reg = <0x03000000 0x00100000>; +				label = "NOR DTB Image"; +			}; + +			partition@3100000 { +				/* 14MB for Linux Kernel Image */ +				reg = <0x03100000 0x00e00000>; +				label = "NOR Linux Kernel Image"; +			}; + +			partition@3f00000 { +				/* This location must not be altered  */ +				/* 512KB for u-boot Bootloader Image */ +				/* 512KB for u-boot Environment Variables */ +				reg = <0x03f00000 0x00100000>; +				label = "NOR U-Boot Image"; +				read-only; +			}; +		}; + +		nand@1,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "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 { +				/* 14MB for Linux Kernel Image */ +				reg = <0x00200000 0x00e00000>; +				label = "NAND Linux Kernel Image"; +			}; + +			partition@1000000 { +				/* 96MB for Root File System Image */ +				reg = <0x01000000 0x06000000>; +				label = "NAND Root File System"; +			}; + +			partition@7000000 { +				/* 16MB for User Writable Area */ +				reg = <0x07000000 0x01000000>; +				label = "NAND Writable User area"; +			}; +		}; +	}; + +	pci0: pcie@ff60a000 { +		reg = <0 0xff60a000 0 0x1000>; +		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>; +		pcie@0 { +			/* IRQ[0:3] are pulled up on board, set to active-low */ +			interrupt-map-mask = <0xf800 0 0 7>; +			interrupt-map = < +				/* IDSEL 0x0 */ +				0000 0 0 1 &mpic 0 1 0 0 +				0000 0 0 2 &mpic 1 1 0 0 +				0000 0 0 3 &mpic 2 1 0 0 +				0000 0 0 4 &mpic 3 1 0 0 +				>; +			ranges = <0x2000000 0x0 0xc0000000 +				  0x2000000 0x0 0xc0000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +		}; +	}; + +	board_pci1: pci1: pcie@ff609000 { +		reg = <0 0xff609000 0 0x1000>; +		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; +		pcie@0 { +			/* +			 * IRQ[4:6] only for PCIe, set to active-high, +			 * IRQ[7] is pulled up on board, set to active-low +			 */ +			interrupt-map-mask = <0xf800 0 0 7>; +			interrupt-map = < +				/* IDSEL 0x0 */ +				0000 0 0 1 &mpic 4 2 0 0 +				0000 0 0 2 &mpic 5 2 0 0 +				0000 0 0 3 &mpic 6 2 0 0 +				0000 0 0 4 &mpic 7 1 0 0 +				>; +			ranges = <0x2000000 0x0 0xa0000000 +				  0x2000000 0x0 0xa0000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +		}; +	}; + +	pci2: pcie@ff60b000 { +		reg = <0 0xff60b000 0 0x1000>; +		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; +		pcie@0 { +			/* +			 * IRQ[8:10] are pulled up on board, set to active-low +			 * IRQ[11] only for PCIe, set to active-high, +			 */ +			interrupt-map-mask = <0xf800 0 0 7>; +			interrupt-map = < +				/* IDSEL 0x0 */ +				0000 0 0 1 &mpic 8 1 0 0 +				0000 0 0 2 &mpic 9 1 0 0 +				0000 0 0 3 &mpic 10 1 0 0 +				0000 0 0 4 &mpic 11 2 0 0 +				>; +			ranges = <0x2000000 0x0 0x80000000 +				  0x2000000 0x0 0x80000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +		}; +	}; + +}; + +/include/ "fsl/p1023si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1024rdb.dtsi b/arch/powerpc/boot/dts/p1024rdb.dtsi new file mode 100644 index 00000000000..b05dcb40f80 --- /dev/null +++ b/arch/powerpc/boot/dts/p1024rdb.dtsi @@ -0,0 +1,228 @@ +/* + * P1024 RDB 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 { +			/* 15MB for JFFS2 based Root file System */ +			reg = <0x00a00000 0x00f00000>; +			label = "NAND JFFS2 Root File System"; +		}; + +		partition@1900000 { +			/* 7MB for User Writable Area */ +			reg = <0x01900000 0x00700000>; +			label = "NAND Writable User area"; +		}; +	}; +}; + +&soc { +	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"; +			}; +		}; +	}; + +	i2c@3000 { +		rtc@68 { +			compatible = "dallas,ds1339"; +			reg = <0x68>; +		}; +	}; + +	usb@22000 { +		phy_type = "ulpi"; +	}; + +	usb@23000 { +		status = "disabled"; +	}; + +	mdio@24000 { +		phy0: ethernet-phy@0 { +			interrupts = <3 1 0 0>; +			reg = <0x0>; +		}; +		phy1: ethernet-phy@1 { +			interrupts = <2 1 0 0>; +			reg = <0x1>; +		}; +		phy2: ethernet-phy@2 { +			interrupts = <1 1 0 0>; +			reg = <0x2>; +		}; +	}; + +	mdio@25000 { +		tbi0: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	mdio@26000 { +		tbi1: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	ethernet@b0000 { +		phy-handle = <&phy2>; +		phy-connection-type = "rgmii-id"; +	}; + +	ethernet@b1000 { +		phy-handle = <&phy0>; +		tbi-handle = <&tbi0>; +		phy-connection-type = "sgmii"; +	}; + +	ethernet@b2000 { +		phy-handle = <&phy1>; +		phy-connection-type = "rgmii-id"; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1024rdb_32b.dts b/arch/powerpc/boot/dts/p1024rdb_32b.dts new file mode 100644 index 00000000000..90e803e9ba5 --- /dev/null +++ b/arch/powerpc/boot/dts/p1024rdb_32b.dts @@ -0,0 +1,87 @@ +/* + * P1024 RDB 32Bit 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/p1020si-pre.dtsi" +/ { +	model = "fsl,P1024RDB"; +	compatible = "fsl,P1024RDB"; + +	memory { +		device_type = "memory"; +	}; + +	lbc: localbus@ffe05000 { +		reg = <0x0 0xffe05000 0 0x1000>; +		ranges = <0x0 0x0 0x0 0xef000000 0x01000000 +			  0x1 0x0 0x0 0xff800000 0x00040000>; +	}; + +	soc: soc@ffe00000 { +		ranges = <0x0 0x0 0xffe00000 0x100000>; +	}; + +	pci0: pcie@ffe09000 { +		reg = <0x0 0xffe09000 0 0x1000>; +		ranges = <0x2000000 0x0 0xe0000000 0x0 0xa0000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0x0 0xffc10000 0x0 0x10000>; +		pcie@0 { +			ranges = <0x2000000 0x0 0xe0000000 +				  0x2000000 0x0 0xe0000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x100000>; +		}; +	}; + +	pci1: pcie@ffe0a000 { +		reg = <0x0 0xffe0a000 0 0x1000>; +		ranges = <0x2000000 0x0 0xe0000000 0x0 0x80000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0x0 0xffc00000 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>; +		}; +	}; +}; + +/include/ "p1024rdb.dtsi" +/include/ "fsl/p1020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1024rdb_36b.dts b/arch/powerpc/boot/dts/p1024rdb_36b.dts new file mode 100644 index 00000000000..3656825b65a --- /dev/null +++ b/arch/powerpc/boot/dts/p1024rdb_36b.dts @@ -0,0 +1,87 @@ +/* + * P1024 RDB 36Bit 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/p1020si-pre.dtsi" +/ { +	model = "fsl,P1024RDB"; +	compatible = "fsl,P1024RDB"; + +	memory { +		device_type = "memory"; +	}; + +	lbc: localbus@fffe05000 { +		reg = <0xf 0xffe05000 0 0x1000>; +		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 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 0x00000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0xf 0xffc00000 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>; +		}; +	}; +}; + +/include/ "p1024rdb.dtsi" +/include/ "fsl/p1020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1025rdb.dtsi b/arch/powerpc/boot/dts/p1025rdb.dtsi new file mode 100644 index 00000000000..f5025648229 --- /dev/null +++ b/arch/powerpc/boot/dts/p1025rdb.dtsi @@ -0,0 +1,326 @@ +/* + * 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 */ +		}; + +		pio3: ucc_pin@03 { +			pio-map = < +		/* port  pin  dir  open_drain  assignment  has_irq */ +				0x0  0x16 0x2  0x0  0x2  0x0    /* SER7_CD_B*/ +				0x0  0x12 0x2  0x0  0x2  0x0    /* SER7_CTS_B*/ +				0x0  0x13 0x1  0x0  0x2  0x0    /* SER7_RTS_B*/ +				0x0  0x14 0x2  0x0  0x2  0x0    /* SER7_RXD0*/ +				0x0  0x15 0x1  0x0  0x2  0x0>;    /* SER7_TXD0*/ +		}; + +		pio4: ucc_pin@04 { +			pio-map = < +		/* port  pin  dir  open_drain  assignment  has_irq */ +				0x1  0x0  0x2  0x0  0x2  0x0    /* SER3_CD_B*/ +				0x0  0x1c 0x2  0x0  0x2  0x0    /* SER3_CTS_B*/ +				0x0  0x1d 0x1  0x0  0x2  0x0    /* SER3_RTS_B*/ +				0x0  0x1e 0x2  0x0  0x2  0x0    /* SER3_RXD0*/ +				0x0  0x1f 0x1  0x0  0x2  0x0>;    /* SER3_TXD0*/ +		}; +	}; +}; + +&qe { +	serial2: ucc@2600 { +		device_type = "serial"; +		compatible = "ucc_uart"; +		port-number = <0>; +		rx-clock-name = "brg6"; +		tx-clock-name = "brg6"; +		pio-handle = <&pio3>; +	}; + +	serial3: ucc@2200 { +		device_type = "serial"; +		compatible = "ucc_uart"; +		port-number = <1>; +		rx-clock-name = "brg2"; +		tx-clock-name = "brg2"; +		pio-handle = <&pio4>; +	}; +}; diff --git a/arch/powerpc/boot/dts/p1025rdb_32b.dts b/arch/powerpc/boot/dts/p1025rdb_32b.dts new file mode 100644 index 00000000000..a2ed6280ba7 --- /dev/null +++ b/arch/powerpc/boot/dts/p1025rdb_32b.dts @@ -0,0 +1,133 @@ +/* + * 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>; +			}; +			qe_phy1: ethernet-phy@03 { +				interrupt-parent = <&mpic>; +				interrupts = <5 1 0 0>; +				reg = <0x3>; +			}; +			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" diff --git a/arch/powerpc/boot/dts/p1025rdb_36b.dts b/arch/powerpc/boot/dts/p1025rdb_36b.dts new file mode 100644 index 00000000000..06deb6f341b --- /dev/null +++ b/arch/powerpc/boot/dts/p1025rdb_36b.dts @@ -0,0 +1,93 @@ +/* + * 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>; +		}; +	}; + +	qe: qe@fffe80000 { +		status = "disabled"; /* no firmware loaded */ +	}; + +}; + +/include/ "p1025rdb.dtsi" +/include/ "fsl/p1021si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1025twr.dts b/arch/powerpc/boot/dts/p1025twr.dts new file mode 100644 index 00000000000..9036a498790 --- /dev/null +++ b/arch/powerpc/boot/dts/p1025twr.dts @@ -0,0 +1,95 @@ +/* + * P1025 TWR Device Tree Source (32-bit address map) + * + * Copyright 2013 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,P1025"; +	compatible = "fsl,TWR-P1025"; + +	memory { +		device_type = "memory"; +	}; + +	lbc: localbus@ffe05000 { +		reg = <0 0xffe05000 0 0x1000>; + +		/* NOR Flash and SSD1289 */ +		ranges = <0x0 0x0 0x0 0xec000000 0x04000000 +			  0x2 0x0 0x0 0xe0000000 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/ "p1025twr.dtsi" +/include/ "fsl/p1021si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1025twr.dtsi b/arch/powerpc/boot/dts/p1025twr.dtsi new file mode 100644 index 00000000000..8453501c256 --- /dev/null +++ b/arch/powerpc/boot/dts/p1025twr.dtsi @@ -0,0 +1,280 @@ +/* + * P1025 TWR Device Tree Source stub (no addresses or top-level ranges) + * + * Copyright 2013 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. + */ + +/{ +       aliases { +		ethernet3 = &enet3; +		ethernet4 = &enet4; +       }; +}; + +&lbc { +	nor@0,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "cfi-flash"; +		reg = <0x0 0x0 0x4000000>; +		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 { +			/* 5.5 MB for Linux Kernel Image */ +			reg = <0x00080000 0x00580000>; +			label = "NOR Linux Kernel Image"; +		}; + +		partition@400000 { +			/* 56.75MB for Root file System */ +			reg = <0x00600000 0x038c0000>; +			label = "NOR Root File System"; +		}; + +		partition@ec0000 { +			/* This location must not be altered  */ +			/* 256KB for QE ucode firmware*/ +			reg = <0x03ec0000 0x00040000>; +			label = "NOR QE microcode firmware"; +			read-only; +		}; + +		partition@f00000 { +			/* This location must not be altered  */ +			/* 512KB for u-boot Bootloader Image */ +			/* 512KB for u-boot Environment Variables */ +			reg = <0x03f00000 0x00100000>; +			label = "NOR U-Boot Image"; +			read-only; +		}; +	}; + +	/* CS2 for Display */ +	display@2,0 { +		compatible = "solomon,ssd1289fb"; +		reg = <0x2 0x0000 0x0004>; +	}; + +}; + +&soc { +	usb@22000 { +		phy_type = "ulpi"; +	}; + +	mdio@24000 { +		phy0: ethernet-phy@2 { +			interrupt-parent = <&mpic>; +			interrupts = <1 1 0 0>; +			reg = <0x2>; +		}; + +		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 { +		phy-handle = <&phy0>; +		phy-connection-type = "rgmii-id"; + +	}; + +	enet1: ethernet@b1000 { +		status = "disabled"; +	}; + +	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 */ +		}; + +		pio3: ucc_pin@03 { +			pio-map = < +		/* port  pin  dir  open_drain  assignment  has_irq */ +				0x0  0x16 0x2  0x0  0x2  0x0    /* SER7_CD_B*/ +				0x0  0x12 0x2  0x0  0x2  0x0    /* SER7_CTS_B*/ +				0x0  0x13 0x1  0x0  0x2  0x0    /* SER7_RTS_B*/ +				0x0  0x14 0x2  0x0  0x2  0x0    /* SER7_RXD0*/ +				0x0  0x15 0x1  0x0  0x2  0x0>;    /* SER7_TXD0*/ +		}; + +		pio4: ucc_pin@04 { +			pio-map = < +		/* port  pin  dir  open_drain  assignment  has_irq */ +				0x1  0x0  0x2  0x0  0x2  0x0    /* SER3_CD_B*/ +				0x0  0x1c 0x2  0x0  0x2  0x0    /* SER3_CTS_B*/ +				0x0  0x1d 0x1  0x0  0x2  0x0    /* SER3_RTS_B*/ +				0x0  0x1e 0x2  0x0  0x2  0x0    /* SER3_RXD0*/ +				0x0  0x1f 0x1  0x0  0x2  0x0>;    /* SER3_TXD0*/ +		}; +	}; +}; + +&qe { +	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@18 { +			interrupt-parent = <&mpic>; +			interrupts = <4 1 0 0>; +			reg = <0x18>; +			device_type = "ethernet-phy"; +		}; +		qe_phy1: ethernet-phy@19 { +			interrupt-parent = <&mpic>; +			interrupts = <5 1 0 0>; +			reg = <0x19>; +			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"; +	}; + +	serial2: ucc@2600 { +		device_type = "serial"; +		compatible = "ucc_uart"; +		port-number = <0>; +		rx-clock-name = "brg6"; +		tx-clock-name = "brg6"; +		pio-handle = <&pio3>; +	}; + +	serial3: ucc@2200 { +		device_type = "serial"; +		compatible = "ucc_uart"; +		port-number = <1>; +		rx-clock-name = "brg2"; +		tx-clock-name = "brg2"; +		pio-handle = <&pio4>; +	}; +}; diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts index 11019142813..237310cc7e6 100644 --- a/arch/powerpc/boot/dts/p2020ds.dts +++ b/arch/powerpc/boot/dts/p2020ds.dts @@ -1,7 +1,7 @@  /*   * P2020 DS Device Tree Source   * - * Copyright 2009 Freescale Semiconductor Inc. + * Copyright 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 @@ -9,53 +9,17 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/p2020si-pre.dtsi" +  / { -	model = "fsl,P2020"; +	model = "fsl,P2020DS";  	compatible = "fsl,P2020DS"; -	#address-cells = <2>; -	#size-cells = <2>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		ethernet2 = &enet2; -		serial0 = &serial0; -		serial1 = &serial1; -		pci0 = &pci0; -		pci1 = &pci1; -		pci2 = &pci2; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,P2020@0 { -			device_type = "cpu"; -			reg = <0x0>; -			next-level-cache = <&L2>; -		}; - -		PowerPC,P2020@1 { -			device_type = "cpu"; -			reg = <0x1>; -			next-level-cache = <&L2>; -		}; -	};  	memory {  		device_type = "memory";  	}; -	localbus@ffe05000 { -		#address-cells = <2>; -		#size-cells = <1>; -		compatible = "fsl,elbc", "simple-bus"; -		reg = <0 0xffe05000 0 0x1000>; -		interrupts = <19 2>; -		interrupt-parent = <&mpic>; - +	board_lbc: lbc: localbus@ffe05000 {  		ranges = <0x0 0x0 0x0 0xe8000000 0x08000000  			  0x1 0x0 0x0 0xe0000000 0x08000000  			  0x2 0x0 0x0 0xffa00000 0x00040000 @@ -63,460 +27,18 @@  			  0x4 0x0 0x0 0xffa40000 0x00040000  			  0x5 0x0 0x0 0xffa80000 0x00040000  			  0x6 0x0 0x0 0xffac0000 0x00040000>; - -		nor@0,0 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "cfi-flash"; -			reg = <0x0 0x0 0x8000000>; -			bank-width = <2>; -			device-width = <1>; - -			ramdisk@0 { -				reg = <0x0 0x03000000>; -				read-only; -			}; - -			diagnostic@3000000 { -				reg = <0x03000000 0x00e00000>; -				read-only; -			}; - -			dink@3e00000 { -				reg = <0x03e00000 0x00200000>; -				read-only; -			}; - -			kernel@4000000 { -				reg = <0x04000000 0x00400000>; -				read-only; -			}; - -			jffs2@4400000 { -				reg = <0x04400000 0x03b00000>; -			}; - -			dtb@7f00000 { -				reg = <0x07f00000 0x00080000>; -				read-only; -			}; - -			u-boot@7f80000 { -				reg = <0x07f80000 0x00080000>; -				read-only; -			}; -		}; - -		nand@2,0 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,elbc-fcm-nand"; -			reg = <0x2 0x0 0x40000>; - -			u-boot@0 { -				reg = <0x0 0x02000000>; -				read-only; -			}; - -			jffs2@2000000 { -				reg = <0x02000000 0x10000000>; -			}; - -			ramdisk@12000000 { -				reg = <0x12000000 0x08000000>; -				read-only; -			}; - -			kernel@1a000000 { -				reg = <0x1a000000 0x04000000>; -			}; - -			dtb@1e000000 { -				reg = <0x1e000000 0x01000000>; -				read-only; -			}; - -			empty@1f000000 { -				reg = <0x1f000000 0x21000000>; -			}; -		}; - -		nand@4,0 { -			compatible = "fsl,elbc-fcm-nand"; -			reg = <0x4 0x0 0x40000>; -		}; - -		nand@5,0 { -			compatible = "fsl,elbc-fcm-nand"; -			reg = <0x5 0x0 0x40000>; -		}; - -		nand@6,0 { -			compatible = "fsl,elbc-fcm-nand"; -			reg = <0x6 0x0 0x40000>; -		}; +		reg = <0 0xffe05000 0 0x1000>;  	}; -	soc@ffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "fsl,p2020-immr", "simple-bus"; -		ranges = <0x0 0 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,p2020-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,p2020-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		spi@7000 { -			compatible = "fsl,espi"; -			reg = <0x7000 0x1000>; -			interrupts = <59 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		dma@c300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,eloplus-dma"; -			reg = <0xc300 0x4>; -			ranges = <0x0 0xc100 0x200>; -			cell-index = <1>; -			dma-channel@0 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <76 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <77 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <78 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <79 2>; -			}; -		}; - -		gpio: gpio-controller@f000 { -			#gpio-cells = <2>; -			compatible = "fsl,mpc8572-gpio"; -			reg = <0xf000 0x100>; -			interrupts = <47 0x2>; -			interrupt-parent = <&mpic>; -			gpio-controller; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,p2020-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x80000>; // L2, 512k -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		usb@22000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl-usb2-dr"; -			reg = <0x22000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <28 0x2>; -			phy_type = "ulpi"; -		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi0>; -			phy-handle = <&phy0>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@0 { -					interrupt-parent = <&mpic>; -					interrupts = <3 1>; -					reg = <0x0>; -				}; -				phy1: ethernet-phy@1 { -					interrupt-parent = <&mpic>; -					interrupts = <3 1>; -					reg = <0x1>; -				}; -				phy2: ethernet-phy@2 { -					interrupt-parent = <&mpic>; -					interrupts = <3 1>; -					reg = <0x2>; -				}; -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet1: ethernet@25000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x25000 0x1000>; -			ranges = <0x0 0x25000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <35 2 36 2 40 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi1>; -			phy-handle = <&phy1>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi1: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet2: ethernet@26000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <2>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x26000 0x1000>; -			ranges = <0x0 0x26000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <31 2 32 2 33 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi2>; -			phy-handle = <&phy2>; -			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi2: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		sdhci@2e000 { -			compatible = "fsl,p2020-esdhc", "fsl,esdhc"; -			reg = <0x2e000 0x1000>; -			interrupts = <72 0x2>; -			interrupt-parent = <&mpic>; -			/* Filled in by U-Boot */ -			clock-frequency = <0>; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", -				     "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0xbfe>; -			fsl,descriptor-types-mask = <0x3ab0ebf>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; - -		msi@41600 { -			compatible = "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,p2020-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; +	board_soc: soc: soc@ffe00000 { +		ranges = <0x0 0x0 0xffe00000 0x100000>;  	}; -	pci0: pcie@ffe08000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0 0xffe08000 0 0x1000>; -		bus-range = <0 255>; +	pci2: pcie@ffe08000 {  		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <24 2>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0x0 0x0 0x1 &mpic 0x8 0x1 -			0000 0x0 0x0 0x2 &mpic 0x9 0x1 -			0000 0x0 0x0 0x3 &mpic 0xa 0x1 -			0000 0x0 0x0 0x4 &mpic 0xb 0x1 -			>; +		reg = <0 0xffe08000 0 0x1000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0x80000000  				  0x2000000 0x0 0x80000000  				  0x0 0x20000000 @@ -527,71 +49,11 @@  		};  	}; -	pci1: pcie@ffe09000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0 0xffe09000 0 0x1000>; -		bus-range = <0 255>; +	board_pci1: pci1: pcie@ffe09000 {  		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <25 2>; -		interrupt-map-mask = <0xff00 0x0 0x0 0x7>; -		interrupt-map = < - -			// IDSEL 0x11 func 0 - PCI slot 1 -			0x8800 0x0 0x0 0x1 &i8259 0x9 0x2 -			0x8800 0x0 0x0 0x2 &i8259 0xa 0x2 - -			// IDSEL 0x11 func 1 - PCI slot 1 -			0x8900 0x0 0x0 0x1 &i8259 0x9 0x2 -			0x8900 0x0 0x0 0x2 &i8259 0xa 0x2 - -			// IDSEL 0x11 func 2 - PCI slot 1 -			0x8a00 0x0 0x0 0x1 &i8259 0x9 0x2 -			0x8a00 0x0 0x0 0x2 &i8259 0xa 0x2 - -			// IDSEL 0x11 func 3 - PCI slot 1 -			0x8b00 0x0 0x0 0x1 &i8259 0x9 0x2 -			0x8b00 0x0 0x0 0x2 &i8259 0xa 0x2 - -			// IDSEL 0x11 func 4 - PCI slot 1 -			0x8c00 0x0 0x0 0x1 &i8259 0x9 0x2 -			0x8c00 0x0 0x0 0x2 &i8259 0xa 0x2 - -			// IDSEL 0x11 func 5 - PCI slot 1 -			0x8d00 0x0 0x0 0x1 &i8259 0x9 0x2 -			0x8d00 0x0 0x0 0x2 &i8259 0xa 0x2 - -			// IDSEL 0x11 func 6 - PCI slot 1 -			0x8e00 0x0 0x0 0x1 &i8259 0x9 0x2 -			0x8e00 0x0 0x0 0x2 &i8259 0xa 0x2 - -			// IDSEL 0x11 func 7 - PCI slot 1 -			0x8f00 0x0 0x0 0x1 &i8259 0x9 0x2 -			0x8f00 0x0 0x0 0x2 &i8259 0xa 0x2 - -			// IDSEL 0x1d  Audio -			0xe800 0x0 0x0 0x1 &i8259 0x6 0x2 - -			// IDSEL 0x1e Legacy -			0xf000 0x0 0x0 0x1 &i8259 0x7 0x2 -			0xf100 0x0 0x0 0x1 &i8259 0x7 0x2 - -			// IDSEL 0x1f IDE/SATA -			0xf800 0x0 0x0 0x1 &i8259 0xe 0x2 -			0xf900 0x0 0x0 0x1 &i8259 0x5 0x2 -			>; - +		reg = <0 0xffe09000 0 0x1000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xa0000000  				  0x2000000 0x0 0xa0000000  				  0x0 0x20000000 @@ -599,99 +61,14 @@  				  0x1000000 0x0 0x0  				  0x1000000 0x0 0x0  				  0x0 0x10000>; -			uli1575@0 { -				reg = <0x0 0x0 0x0 0x0 0x0>; -				#size-cells = <2>; -				#address-cells = <3>; -				ranges = <0x2000000 0x0 0xa0000000 -					  0x2000000 0x0 0xa0000000 -					  0x0 0x20000000 - -					  0x1000000 0x0 0x0 -					  0x1000000 0x0 0x0 -					  0x0 0x10000>; -				isa@1e { -					device_type = "isa"; -					#interrupt-cells = <2>; -					#size-cells = <1>; -					#address-cells = <2>; -					reg = <0xf000 0x0 0x0 0x0 0x0>; -					ranges = <0x1 0x0 0x1000000 0x0 0x0 -						  0x1000>; -					interrupt-parent = <&i8259>; - -					i8259: interrupt-controller@20 { -						reg = <0x1 0x20 0x2 -						       0x1 0xa0 0x2 -						       0x1 0x4d0 0x2>; -						interrupt-controller; -						device_type = "interrupt-controller"; -						#address-cells = <0>; -						#interrupt-cells = <2>; -						compatible = "chrp,iic"; -						interrupts = <4 1>; -						interrupt-parent = <&mpic>; -					}; - -					i8042@60 { -						#size-cells = <0>; -						#address-cells = <1>; -						reg = <0x1 0x60 0x1 0x1 0x64 0x1>; -						interrupts = <1 3 12 3>; -						interrupt-parent = -							<&i8259>; - -						keyboard@0 { -							reg = <0x0>; -							compatible = "pnpPNP,303"; -						}; - -						mouse@1 { -							reg = <0x1>; -							compatible = "pnpPNP,f03"; -						}; -					}; - -					rtc@70 { -						compatible = "pnpPNP,b00"; -						reg = <0x1 0x70 0x2>; -					}; - -					gpio@400 { -						reg = <0x1 0x400 0x80>; -					}; -				}; -			};  		}; -  	}; -	pci2: pcie@ffe0a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0 0xffe0a000 0 0x1000>; -		bus-range = <0 255>; +	pci0: pcie@ffe0a000 {  		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000  			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <26 2>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0000 0x0 0x0 0x4 &mpic 0x3 0x1 -			>; +		reg = <0 0xffe0a000 0 0x1000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xc0000000  				  0x2000000 0x0 0xc0000000  				  0x0 0x20000000 @@ -702,3 +79,11 @@  		};  	};  }; + +/* + * p2020ds.dtsi must be last to ensure board_pci0 overrides pci0 settings + * for interrupt-map & interrupt-map-mask + */ + +/include/ "fsl/p2020si-post.dtsi" +/include/ "p2020ds.dtsi" diff --git a/arch/powerpc/boot/dts/p2020ds.dtsi b/arch/powerpc/boot/dts/p2020ds.dtsi new file mode 100644 index 00000000000..e699cf95b06 --- /dev/null +++ b/arch/powerpc/boot/dts/p2020ds.dtsi @@ -0,0 +1,327 @@ +/* + * P2020DS Device Tree Source stub (no addresses or top-level ranges) + * + * 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: + *     * 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 0x8000000>; +		bank-width = <2>; +		device-width = <1>; + +		ramdisk@0 { +			reg = <0x0 0x03000000>; +			read-only; +		}; + +		diagnostic@3000000 { +			reg = <0x03000000 0x00e00000>; +			read-only; +		}; + +		dink@3e00000 { +			reg = <0x03e00000 0x00200000>; +			read-only; +		}; + +		kernel@4000000 { +			reg = <0x04000000 0x00400000>; +			read-only; +		}; + +		jffs2@4400000 { +			reg = <0x04400000 0x03b00000>; +		}; + +		dtb@7f00000 { +			reg = <0x07f00000 0x00080000>; +			read-only; +		}; + +		u-boot@7f80000 { +			reg = <0x07f80000 0x00080000>; +			read-only; +		}; +	}; + +	nand@2,0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "fsl,elbc-fcm-nand"; +		reg = <0x2 0x0 0x40000>; + +		u-boot@0 { +			reg = <0x0 0x02000000>; +			read-only; +		}; + +		jffs2@2000000 { +			reg = <0x02000000 0x10000000>; +		}; + +		ramdisk@12000000 { +			reg = <0x12000000 0x08000000>; +			read-only; +		}; + +		kernel@1a000000 { +			reg = <0x1a000000 0x04000000>; +		}; + +		dtb@1e000000 { +			reg = <0x1e000000 0x01000000>; +			read-only; +		}; + +		empty@1f000000 { +			reg = <0x1f000000 0x21000000>; +		}; +	}; + +	board-control@3,0 { +		compatible = "fsl,p2020ds-fpga", "fsl,fpga-ngpixis"; +		reg = <0x3 0x0 0x30>; +	}; + +	nand@4,0 { +		compatible = "fsl,elbc-fcm-nand"; +		reg = <0x4 0x0 0x40000>; +	}; + +	nand@5,0 { +		compatible = "fsl,elbc-fcm-nand"; +		reg = <0x5 0x0 0x40000>; +	}; + +	nand@6,0 { +		compatible = "fsl,elbc-fcm-nand"; +		reg = <0x6 0x0 0x40000>; +	}; +}; + +&board_soc { +	usb@22000 { +		phy_type = "ulpi"; +		dr_mode = "host"; +	}; + +	mdio@24520 { +		phy0: ethernet-phy@0 { +			interrupts = <3 1 0 0>; +			reg = <0x0>; +		}; +		phy1: ethernet-phy@1 { +			interrupts = <3 1 0 0>; +			reg = <0x1>; +		}; +		phy2: ethernet-phy@2 { +			interrupts = <3 1 0 0>; +			reg = <0x2>; +		}; + +		sgmii_phy1: sgmii-phy@1 { +			interrupts = <5 1 0 0>; +			reg = <0x1c>; +		}; +		sgmii_phy2: sgmii-phy@2 { +			interrupts = <5 1 0 0>; +			reg = <0x1d>; +		}; + +		tbi0: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; + +	}; + +	mdio@25520 { +		tbi1: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	mdio@26520 { +		tbi2: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; + +	}; + +	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 { +		tbi-handle = <&tbi0>; +		phy-handle = <&phy0>; +		phy-connection-type = "rgmii-id"; +	}; + +	enet1: ethernet@25000 { +		tbi-handle = <&tbi1>; +		phy-handle = <&phy1>; +		phy-connection-type = "rgmii-id"; + +	}; + +	enet2: ethernet@26000 { +		tbi-handle = <&tbi2>; +		phy-handle = <&phy2>; +		phy-connection-type = "rgmii-id"; +	}; +}; + +&board_pci1 { +	pcie@0 { +		interrupt-map-mask = <0xff00 0x0 0x0 0x7>; +		interrupt-map = < + +			// IDSEL 0x11 func 0 - PCI slot 1 +			0x8800 0x0 0x0 0x1 &i8259 0x9 0x2 +			0x8800 0x0 0x0 0x2 &i8259 0xa 0x2 + +			// IDSEL 0x11 func 1 - PCI slot 1 +			0x8900 0x0 0x0 0x1 &i8259 0x9 0x2 +			0x8900 0x0 0x0 0x2 &i8259 0xa 0x2 + +			// IDSEL 0x11 func 2 - PCI slot 1 +			0x8a00 0x0 0x0 0x1 &i8259 0x9 0x2 +			0x8a00 0x0 0x0 0x2 &i8259 0xa 0x2 + +			// IDSEL 0x11 func 3 - PCI slot 1 +			0x8b00 0x0 0x0 0x1 &i8259 0x9 0x2 +			0x8b00 0x0 0x0 0x2 &i8259 0xa 0x2 + +			// IDSEL 0x11 func 4 - PCI slot 1 +			0x8c00 0x0 0x0 0x1 &i8259 0x9 0x2 +			0x8c00 0x0 0x0 0x2 &i8259 0xa 0x2 + +			// IDSEL 0x11 func 5 - PCI slot 1 +			0x8d00 0x0 0x0 0x1 &i8259 0x9 0x2 +			0x8d00 0x0 0x0 0x2 &i8259 0xa 0x2 + +			// IDSEL 0x11 func 6 - PCI slot 1 +			0x8e00 0x0 0x0 0x1 &i8259 0x9 0x2 +			0x8e00 0x0 0x0 0x2 &i8259 0xa 0x2 + +			// IDSEL 0x11 func 7 - PCI slot 1 +			0x8f00 0x0 0x0 0x1 &i8259 0x9 0x2 +			0x8f00 0x0 0x0 0x2 &i8259 0xa 0x2 + +			// IDSEL 0x1d  Audio +			0xe800 0x0 0x0 0x1 &i8259 0x6 0x2 + +			// IDSEL 0x1e Legacy +			0xf000 0x0 0x0 0x1 &i8259 0x7 0x2 +			0xf100 0x0 0x0 0x1 &i8259 0x7 0x2 + +			// IDSEL 0x1f IDE/SATA +			0xf800 0x0 0x0 0x1 &i8259 0xe 0x2 +			0xf900 0x0 0x0 0x1 &i8259 0x5 0x2 +			>; + +		uli1575@0 { +			reg = <0x0 0x0 0x0 0x0 0x0>; +			#size-cells = <2>; +			#address-cells = <3>; +			ranges = <0x2000000 0x0 0xa0000000 +				  0x2000000 0x0 0xa0000000 +				  0x0 0x20000000 + +				  0x1000000 0x0 0x0 +				  0x1000000 0x0 0x0 +				  0x0 0x10000>; +			isa@1e { +				device_type = "isa"; +				#interrupt-cells = <2>; +				#size-cells = <1>; +				#address-cells = <2>; +				reg = <0xf000 0x0 0x0 0x0 0x0>; +				ranges = <0x1 0x0 0x1000000 0x0 0x0 +					  0x1000>; +				interrupt-parent = <&i8259>; + +				i8259: interrupt-controller@20 { +					reg = <0x1 0x20 0x2 +					       0x1 0xa0 0x2 +					       0x1 0x4d0 0x2>; +					interrupt-controller; +					device_type = "interrupt-controller"; +					#address-cells = <0>; +					#interrupt-cells = <2>; +					compatible = "chrp,iic"; +					interrupts = <4 1 0 0>; +					interrupt-parent = <&mpic>; +				}; + +				i8042@60 { +					#size-cells = <0>; +					#address-cells = <1>; +					reg = <0x1 0x60 0x1 0x1 0x64 0x1>; +					interrupts = <1 3 12 3>; +					interrupt-parent = +						<&i8259>; + +					keyboard@0 { +						reg = <0x0>; +						compatible = "pnpPNP,303"; +					}; + +					mouse@1 { +						reg = <0x1>; +						compatible = "pnpPNP,f03"; +					}; +				}; + +				rtc@70 { +					compatible = "pnpPNP,b00"; +					reg = <0x1 0x70 0x2>; +				}; + +				gpio@400 { +					reg = <0x1 0x400 0x80>; +				}; +			}; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/p2020rdb-pc.dtsi b/arch/powerpc/boot/dts/p2020rdb-pc.dtsi new file mode 100644 index 00000000000..c21d1c7d16c --- /dev/null +++ b/arch/powerpc/boot/dts/p2020rdb-pc.dtsi @@ -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"; +	}; +}; diff --git a/arch/powerpc/boot/dts/p2020rdb-pc_32b.dts b/arch/powerpc/boot/dts/p2020rdb-pc_32b.dts new file mode 100644 index 00000000000..57573bd52ca --- /dev/null +++ b/arch/powerpc/boot/dts/p2020rdb-pc_32b.dts @@ -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>; +	}; + +	pci2: 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>; +		}; +	}; + +	pci0: 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" diff --git a/arch/powerpc/boot/dts/p2020rdb-pc_36b.dts b/arch/powerpc/boot/dts/p2020rdb-pc_36b.dts new file mode 100644 index 00000000000..470247ea68b --- /dev/null +++ b/arch/powerpc/boot/dts/p2020rdb-pc_36b.dts @@ -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>; +	}; + +	pci2: 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>; +		}; +	}; + +	pci0: 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" diff --git a/arch/powerpc/boot/dts/p2020rdb.dts b/arch/powerpc/boot/dts/p2020rdb.dts index da4cb0d8d21..4d52bce1d5b 100644 --- a/arch/powerpc/boot/dts/p2020rdb.dts +++ b/arch/powerpc/boot/dts/p2020rdb.dts @@ -1,7 +1,7 @@  /*   * P2020 RDB Device Tree Source   * - * 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 @@ -9,12 +9,11 @@   * option) any later version.   */ -/dts-v1/; +/include/ "fsl/p2020si-pre.dtsi" +  / { -	model = "fsl,P2020"; +	model = "fsl,P2020RDB";  	compatible = "fsl,P2020RDB"; -	#address-cells = <2>; -	#size-cells = <2>;  	aliases {  		ethernet0 = &enet0; @@ -26,34 +25,12 @@  		pci1 = &pci1;  	}; -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,P2020@0 { -			device_type = "cpu"; -			reg = <0x0>; -			next-level-cache = <&L2>; -		}; - -		PowerPC,P2020@1 { -			device_type = "cpu"; -			reg = <0x1>; -			next-level-cache = <&L2>; -		}; -	}; -  	memory {  		device_type = "memory";  	}; -	localbus@ffe05000 { -		#address-cells = <2>; -		#size-cells = <1>; -		compatible = "fsl,p2020-elbc", "fsl,elbc", "simple-bus"; +	lbc: localbus@ffe05000 {  		reg = <0 0xffe05000 0 0x1000>; -		interrupts = <19 2>; -		interrupt-parent = <&mpic>;  		/* NOR and NAND Flashes */  		ranges = <0x0 0x0 0x0 0xef000000 0x01000000 @@ -164,99 +141,23 @@  	}; -	soc@ffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "fsl,p2020-immr", "simple-bus"; -		ranges = <0x0  0x0 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,p2020-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,p2020-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; +	soc: soc@ffe00000 { +		ranges = <0x0 0x0 0xffe00000 0x100000>;  		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr;  			rtc@68 {  				compatible = "dallas,ds1339";  				reg = <0x68>;  			};  		}; -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -			interrupts = <42 2>; -			interrupt-parent = <&mpic>; -		}; -  		spi@7000 { -			cell-index = <0>; -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,espi"; -			reg = <0x7000 0x1000>; -			interrupts = <59 0x2>; -			interrupt-parent = <&mpic>; -			mode = "cpu"; - -			fsl_m25p80@0 { +			flash@0 {  				#address-cells = <1>;  				#size-cells = <1>; -				compatible = "fsl,espi-flash"; +				compatible = "spansion,s25sl12801";  				reg = <0>; -				linux,modalias = "fsl_m25p80"; -				modal = "s25sl128b"; -				spi-max-frequency = <50000000>; -				mode = <0>; +				spi-max-frequency = <40000000>;  				partition@0 {  					/* 512KB for u-boot Bootloader Image */ @@ -294,258 +195,73 @@  			};  		}; -		dma@c300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,eloplus-dma"; -			reg = <0xc300 0x4>; -			ranges = <0x0 0xc100 0x200>; -			cell-index = <1>; -			dma-channel@0 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <76 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <77 2>; +		usb@22000 { +			phy_type = "ulpi"; +			dr_mode = "host"; +		}; + +		mdio@24520 { +			phy0: ethernet-phy@0 { +				interrupts = <3 1 0 0>; +				reg = <0x0>;  			}; -			dma-channel@100 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <78 2>; +			phy1: ethernet-phy@1 { +				interrupts = <3 1 0 0>; +				reg = <0x1>;  			}; -			dma-channel@180 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <79 2>; +			tbi-phy@2 { +				device_type = "tbi-phy"; +				reg = <0x2>;  			};  		}; -		gpio: gpio-controller@f000 { -			#gpio-cells = <2>; -			compatible = "fsl,mpc8572-gpio"; -			reg = <0xf000 0x100>; -			interrupts = <47 0x2>; -			interrupt-parent = <&mpic>; -			gpio-controller; +		mdio@25520 { +			tbi0: tbi-phy@11 { +				reg = <0x11>; +				device_type = "tbi-phy"; +			};  		}; -		L2: l2-cache-controller@20000 { -			compatible = "fsl,p2020-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x80000>; // L2,512K -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; +		mdio@26520 { +			status = "disabled";  		}; -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		usb@22000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl-usb2-dr"; -			reg = <0x22000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <28 0x2>; -			phy_type = "ulpi"; +		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 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>;  			fixed-link = <1 1 1000 0 0>;  			phy-connection-type = "rgmii-id"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@0 { -					interrupt-parent = <&mpic>; -					interrupts = <3 1>; -					reg = <0x0>; -				}; -				phy1: ethernet-phy@1 { -					interrupt-parent = <&mpic>; -					interrupts = <3 1>; -					reg = <0x1>; -				}; -			};  		};  		enet1: ethernet@25000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x25000 0x1000>; -			ranges = <0x0 0x25000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <35 2 36 2 40 2>; -			interrupt-parent = <&mpic>;  			tbi-handle = <&tbi0>;  			phy-handle = <&phy0>;  			phy-connection-type = "sgmii"; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			};  		};  		enet2: ethernet@26000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <2>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x26000 0x1000>; -			ranges = <0x0 0x26000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <31 2 32 2 33 2>; -			interrupt-parent = <&mpic>;  			phy-handle = <&phy1>;  			phy-connection-type = "rgmii-id";  		}; +	}; -		sdhci@2e000 { -			compatible = "fsl,p2020-esdhc", "fsl,esdhc"; -			reg = <0x2e000 0x1000>; -			interrupts = <72 0x2>; -			interrupt-parent = <&mpic>; -			/* Filled in by U-Boot */ -			clock-frequency = <0>; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", -				     "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0xbfe>; -			fsl,descriptor-types-mask = <0x3ab0ebf>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; - -		msi@41600 { -			compatible = "fsl,p2020-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 {	//global utilities block -			compatible = "fsl,p2020-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; +	pci0: pcie@ffe08000 { +		reg = <0 0xffe08000 0 0x1000>; +		status = "disabled";  	}; -	pci0: pcie@ffe09000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; +	pci1: pcie@ffe09000 {  		reg = <0 0xffe09000 0 0x1000>; -		bus-range = <0 255>;  		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 -			  0x1000000 0x0 0x00000000 0 0xffc30000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <25 2>; +			  0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x2000000 0x0 0xa0000000  				  0x2000000 0x0 0xa0000000  				  0x0 0x20000000 @@ -556,26 +272,13 @@  		};  	}; -	pci1: pcie@ffe0a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; +	pci2: pcie@ffe0a000 {  		reg = <0 0xffe0a000 0 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000 -			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <26 2>; +		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 +			  0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;  		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0xc0000000 -				  0x2000000 0x0 0xc0000000 +			ranges = <0x2000000 0x0 0x80000000 +				  0x2000000 0x0 0x80000000  				  0x0 0x20000000  				  0x1000000 0x0 0x0 @@ -584,3 +287,5 @@  		};  	};  }; + +/include/ "fsl/p2020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p2020rdb_camp_core0.dts b/arch/powerpc/boot/dts/p2020rdb_camp_core0.dts deleted file mode 100644 index 0fe93d0c8b2..00000000000 --- a/arch/powerpc/boot/dts/p2020rdb_camp_core0.dts +++ /dev/null @@ -1,363 +0,0 @@ -/* - * P2020 RDB  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, dma1, usb, - * eth1, eth2, sdhc, crypto, global-util, pci0. - * - * Copyright 2009 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. - */ - -/dts-v1/; -/ { -	model = "fsl,P2020"; -	compatible = "fsl,P2020RDB", "fsl,MPC85XXRDB-CAMP"; -	#address-cells = <2>; -	#size-cells = <2>; - -	aliases { -		ethernet1 = &enet1; -		ethernet2 = &enet2; -		serial0 = &serial0; -		pci0 = &pci0; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,P2020@0 { -			device_type = "cpu"; -			reg = <0x0>; -			next-level-cache = <&L2>; -		}; -	}; - -	memory { -		device_type = "memory"; -	}; - -	soc@ffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "fsl,p2020-immr", "simple-bus"; -		ranges = <0x0  0x0 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <12>; -		}; - -		ecm@1000 { -			compatible = "fsl,p2020-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,p2020-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <18 2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -			rtc@68 { -				compatible = "dallas,ds1339"; -				reg = <0x68>; -			}; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <43 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>; -			clock-frequency = <0>; -		}; - -		spi@7000 { -			cell-index = <0>; -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,espi"; -			reg = <0x7000 0x1000>; -			interrupts = <59 0x2>; -			interrupt-parent = <&mpic>; -			mode = "cpu"; - -			fsl_m25p80@0 { -				#address-cells = <1>; -				#size-cells = <1>; -				compatible = "fsl,espi-flash"; -				reg = <0>; -				linux,modalias = "fsl_m25p80"; -				modal = "s25sl128b"; -				spi-max-frequency = <50000000>; -				mode = <0>; - -				partition@0 { -					/* 512KB for u-boot Bootloader Image */ -					reg = <0x0 0x00080000>; -					label = "SPI (RO) U-Boot Image"; -					read-only; -				}; - -				partition@80000 { -					/* 512KB for DTB Image */ -					reg = <0x00080000 0x00080000>; -					label = "SPI (RO) DTB Image"; -					read-only; -				}; - -				partition@100000 { -					/* 4MB for Linux Kernel Image */ -					reg = <0x00100000 0x00400000>; -					label = "SPI (RO) Linux Kernel Image"; -					read-only; -				}; - -				partition@500000 { -					/* 4MB for Compressed RFS Image */ -					reg = <0x00500000 0x00400000>; -					label = "SPI (RO) Compressed RFS Image"; -					read-only; -				}; - -				partition@900000 { -					/* 7MB for JFFS2 based RFS */ -					reg = <0x00900000 0x00700000>; -					label = "SPI (RW) JFFS2 RFS"; -				}; -			}; -		}; - -		gpio: gpio-controller@f000 { -			#gpio-cells = <2>; -			compatible = "fsl,mpc8572-gpio"; -			reg = <0xf000 0x100>; -			interrupts = <47 0x2>; -			interrupt-parent = <&mpic>; -			gpio-controller; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,p2020-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x80000>; // L2,512K -			interrupt-parent = <&mpic>; -			interrupts = <16 2>; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		usb@22000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl-usb2-dr"; -			reg = <0x22000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <28 0x2>; -			phy_type = "ulpi"; -		}; - -		mdio@24520 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,gianfar-mdio"; -			reg = <0x24520 0x20>; - -			phy0: ethernet-phy@0 { -				interrupt-parent = <&mpic>; -				interrupts = <3 1>; -				reg = <0x0>; -			}; -			phy1: ethernet-phy@1 { -				interrupt-parent = <&mpic>; -				interrupts = <3 1>; -				reg = <0x1>; -			}; -		}; - -		mdio@25520 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,gianfar-tbi"; -			reg = <0x26520 0x20>; - -			tbi0: tbi-phy@11 { -				reg = <0x11>; -				device_type = "tbi-phy"; -			}; -		}; - -		enet1: ethernet@25000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x25000 0x1000>; -			ranges = <0x0 0x25000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <35 2 36 2 40 2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi0>; -			phy-handle = <&phy0>; -			phy-connection-type = "sgmii"; - -		}; - -		enet2: ethernet@26000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <2>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x26000 0x1000>; -			ranges = <0x0 0x26000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <31 2 32 2 33 2>; -			interrupt-parent = <&mpic>; -			phy-handle = <&phy1>; -			phy-connection-type = "rgmii-id"; -		}; - -		sdhci@2e000 { -			compatible = "fsl,p2020-esdhc", "fsl,esdhc"; -			reg = <0x2e000 0x1000>; -			interrupts = <72 0x2>; -			interrupt-parent = <&mpic>; -			/* Filled in by U-Boot */ -			clock-frequency = <0>; -		}; - -		crypto@30000 { -			compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", -				     "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2 58 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0xbfe>; -			fsl,descriptor-types-mask = <0x3ab0ebf>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -			protected-sources = < -			42 76 77 78 79 /* serial1 , dma2 */ -			29 30 34 26 /* enet0, pci1 */ -			0xe0 0xe1 0xe2 0xe3 /* msi */ -			0xe4 0xe5 0xe6 0xe7 -			>; -		}; - -		global-utilities@e0000 { -			compatible = "fsl,p2020-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; -	}; - -	pci0: pcie@ffe09000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0 0xffe09000 0 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 -			  0x1000000 0x0 0x00000000 0 0xffc30000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <25 2>; -		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0xa0000000 -				  0x2000000 0x0 0xa0000000 -				  0x0 0x20000000 - -				  0x1000000 0x0 0x0 -				  0x1000000 0x0 0x0 -				  0x0 0x100000>; -		}; -	}; -}; diff --git a/arch/powerpc/boot/dts/p2020rdb_camp_core1.dts b/arch/powerpc/boot/dts/p2020rdb_camp_core1.dts deleted file mode 100644 index e95a5128532..00000000000 --- a/arch/powerpc/boot/dts/p2020rdb_camp_core1.dts +++ /dev/null @@ -1,184 +0,0 @@ -/* - * P2020 RDB 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, dma2, eth0, pci1, msi. - * - * Please note to add "-b 1" for core1's dts compiling. - * - * Copyright 2009 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. - */ - -/dts-v1/; -/ { -	model = "fsl,P2020"; -	compatible = "fsl,P2020RDB", "fsl,MPC85XXRDB-CAMP"; -	#address-cells = <2>; -	#size-cells = <2>; - -	aliases { -		ethernet0 = &enet0; -		serial0 = &serial0; -		pci1 = &pci1; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,P2020@1 { -			device_type = "cpu"; -			reg = <0x1>; -			next-level-cache = <&L2>; -		}; -	}; - -	memory { -		device_type = "memory"; -	}; - -	soc@ffe00000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "fsl,p2020-immr", "simple-bus"; -		ranges = <0x0  0x0 0xffe00000 0x100000>; -		bus-frequency = <0>;		// Filled out by uboot. - -		serial0: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>; -			clock-frequency = <0>; -		}; - -		dma@c300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,eloplus-dma"; -			reg = <0xc300 0x4>; -			ranges = <0x0 0xc100 0x200>; -			cell-index = <1>; -			dma-channel@0 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <76 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <77 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <78 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <79 2>; -			}; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,p2020-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <32>;	// 32 bytes -			cache-size = <0x80000>; // L2,512K -			interrupt-parent = <&mpic>; -		}; - - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <29 2 30 2 34 2>; -			interrupt-parent = <&mpic>; -			fixed-link = <1 1 1000 0 0>; -			phy-connection-type = "rgmii-id"; - -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -			protected-sources = < -			17 18 43 42 59 47 /*ecm, mem, i2c, serial0, spi,gpio */ -			16 20 21 22 23 28 	/* L2, dma1, USB */ -			03 35 36 40 31 32 33 	/* mdio, enet1, enet2 */ -			72 45 58 25 		/* sdhci, crypto , pci */ -			>; -		}; - -		msi@41600 { -			compatible = "fsl,p2020-msi", "fsl,mpic-msi"; -			reg = <0x41600 0x80>; -			msi-available-ranges = <0 0x100>; -			interrupts = < -				0xe0 0 -				0xe1 0 -				0xe2 0 -				0xe3 0 -				0xe4 0 -				0xe5 0 -				0xe6 0 -				0xe7 0>; -			interrupt-parent = <&mpic>; -		}; -	}; - -	pci1: pcie@ffe0a000 { -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0 0xffe0a000 0 0x1000>; -		bus-range = <0 255>; -		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000 -			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>; -		clock-frequency = <33333333>; -		interrupt-parent = <&mpic>; -		interrupts = <26 2>; -		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x2000000 0x0 0xc0000000 -				  0x2000000 0x0 0xc0000000 -				  0x0 0x20000000 - -				  0x1000000 0x0 0x0 -				  0x1000000 0x0 0x0 -				  0x0 0x100000>; -		}; -	}; -}; diff --git a/arch/powerpc/boot/dts/p2041rdb.dts b/arch/powerpc/boot/dts/p2041rdb.dts new file mode 100644 index 00000000000..d97ad74c727 --- /dev/null +++ b/arch/powerpc/boot/dts/p2041rdb.dts @@ -0,0 +1,223 @@ +/* + * P2041RDB 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/p2041si-pre.dtsi" + +/ { +	model = "fsl,P2041RDB"; +	compatible = "fsl,P2041RDB"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	memory { +		device_type = "memory"; +	}; + +	dcsr: dcsr@f00000000 { +		ranges = <0x00000000 0xf 0x00000000 0x01008000>; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; +		spi@110000 { +			flash@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "spansion,s25sl12801"; +				reg = <0>; +				spi-max-frequency = <40000000>; /* input clock */ +				partition@u-boot { +					label = "u-boot"; +					reg = <0x00000000 0x00100000>; +					read-only; +				}; +				partition@kernel { +					label = "kernel"; +					reg = <0x00100000 0x00500000>; +					read-only; +				}; +				partition@dtb { +					label = "dtb"; +					reg = <0x00600000 0x00100000>; +					read-only; +				}; +				partition@fs { +					label = "file system"; +					reg = <0x00700000 0x00900000>; +				}; +			}; +		}; + +		i2c@118000 { +			lm75b@48 { +				compatible = "nxp,lm75a"; +				reg = <0x48>; +			}; +			eeprom@50 { +				compatible = "at24,24c256"; +				reg = <0x50>; +			}; +			rtc@68 { +				compatible = "pericom,pt7c4338"; +				reg = <0x68>; +			}; +			adt7461@4c { +				compatible = "adi,adt7461"; +				reg = <0x4c>; +			}; +		}; + +		i2c@118100 { +			eeprom@50 { +				compatible = "at24,24c256"; +				reg = <0x50>; +			}; +		}; + +		usb1: usb@211000 { +			dr_mode = "host"; +		}; +	}; + +	rio: rapidio@ffe0c0000 { +		reg = <0xf 0xfe0c0000 0 0x11000>; + +		port1 { +			ranges = <0 0 0xc 0x20000000 0 0x10000000>; +		}; +		port2 { +			ranges = <0 0 0xc 0x30000000 0 0x10000000>; +		}; +	}; + +	lbc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x1000>; +		ranges = <0 0 0xf 0xe8000000 0x08000000 +			  1 0 0xf 0xffa00000 0x00040000>; + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x08000000>; +			bank-width = <2>; +			device-width = <2>; +		}; + +		nand@1,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,elbc-fcm-nand"; +			reg = <0x1 0x0 0x40000>; + +			partition@0 { +				label = "NAND U-Boot Image"; +				reg = <0x0 0x02000000>; +				read-only; +			}; + +			partition@2000000 { +				label = "NAND Root File System"; +				reg = <0x02000000 0x10000000>; +			}; + +			partition@12000000 { +				label = "NAND Compressed RFS Image"; +				reg = <0x12000000 0x08000000>; +			}; + +			partition@1a000000 { +				label = "NAND Linux Kernel Image"; +				reg = <0x1a000000 0x04000000>; +			}; + +			partition@1e000000 { +				label = "NAND DTB Image"; +				reg = <0x1e000000 0x01000000>; +			}; + +			partition@1f000000 { +				label = "NAND Writable User area"; +				reg = <0x1f000000 0x01000000>; +			}; +		}; +	}; + +	pci0: pcie@ffe200000 { +		reg = <0xf 0xfe200000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci1: pcie@ffe201000 { +		reg = <0xf 0xfe201000 0 0x1000>; +		ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 +			  0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci2: pcie@ffe202000 { +		reg = <0xf 0xfe202000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; +}; + +/include/ "fsl/p2041si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p3041ds.dts b/arch/powerpc/boot/dts/p3041ds.dts new file mode 100644 index 00000000000..2fed3bc0b99 --- /dev/null +++ b/arch/powerpc/boot/dts/p3041ds.dts @@ -0,0 +1,237 @@ +/* + * P3041DS Device Tree Source + * + * Copyright 2010-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/p3041si-pre.dtsi" + +/ { +	model = "fsl,P3041DS"; +	compatible = "fsl,P3041DS"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	memory { +		device_type = "memory"; +	}; + +	dcsr: dcsr@f00000000 { +		ranges = <0x00000000 0xf 0x00000000 0x01008000>; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; +		spi@110000 { +			flash@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "spansion,s25sl12801"; +				reg = <0>; +				spi-max-frequency = <35000000>; /* input clock */ +				partition@u-boot { +					label = "u-boot"; +					reg = <0x00000000 0x00100000>; +					read-only; +				}; +				partition@kernel { +					label = "kernel"; +					reg = <0x00100000 0x00500000>; +					read-only; +				}; +				partition@dtb { +					label = "dtb"; +					reg = <0x00600000 0x00100000>; +					read-only; +				}; +				partition@fs { +					label = "file system"; +					reg = <0x00700000 0x00900000>; +				}; +			}; +		}; + +		i2c@118100 { +			eeprom@51 { +				compatible = "at24,24c256"; +				reg = <0x51>; +			}; +			eeprom@52 { +				compatible = "at24,24c256"; +				reg = <0x52>; +			}; +		}; + +		i2c@119100 { +			rtc@68 { +				compatible = "dallas,ds3232"; +				reg = <0x68>; +				interrupts = <0x1 0x1 0 0>; +			}; +			adt7461@4c { +				compatible = "adi,adt7461"; +				reg = <0x4c>; +			}; +		}; +	}; + +	rio: rapidio@ffe0c0000 { +		reg = <0xf 0xfe0c0000 0 0x11000>; + +		port1 { +			ranges = <0 0 0xc 0x20000000 0 0x10000000>; +		}; +		port2 { +			ranges = <0 0 0xc 0x30000000 0 0x10000000>; +		}; +	}; + +	lbc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x1000>; +		ranges = <0 0 0xf 0xe8000000 0x08000000 +			  2 0 0xf 0xffa00000 0x00040000 +			  3 0 0xf 0xffdf0000 0x00008000>; + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x08000000>; +			bank-width = <2>; +			device-width = <2>; +		}; + +		nand@2,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,elbc-fcm-nand"; +			reg = <0x2 0x0 0x40000>; + +			partition@0 { +				label = "NAND U-Boot Image"; +				reg = <0x0 0x02000000>; +				read-only; +			}; + +			partition@2000000 { +				label = "NAND Root File System"; +				reg = <0x02000000 0x10000000>; +			}; + +			partition@12000000 { +				label = "NAND Compressed RFS Image"; +				reg = <0x12000000 0x08000000>; +			}; + +			partition@1a000000 { +				label = "NAND Linux Kernel Image"; +				reg = <0x1a000000 0x04000000>; +			}; + +			partition@1e000000 { +				label = "NAND DTB Image"; +				reg = <0x1e000000 0x01000000>; +			}; + +			partition@1f000000 { +				label = "NAND Writable User area"; +				reg = <0x1f000000 0x21000000>; +			}; +		}; + +		board-control@3,0 { +			compatible = "fsl,p3041ds-fpga", "fsl,fpga-ngpixis"; +			reg = <3 0 0x30>; +		}; +	}; + +	pci0: pcie@ffe200000 { +		reg = <0xf 0xfe200000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci1: pcie@ffe201000 { +		reg = <0xf 0xfe201000 0 0x1000>; +		ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 +			  0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci2: pcie@ffe202000 { +		reg = <0xf 0xfe202000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci3: pcie@ffe203000 { +		reg = <0xf 0xfe203000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x60000000 0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8030000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; +}; + +/include/ "fsl/p3041si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p4080ds.dts b/arch/powerpc/boot/dts/p4080ds.dts index 5b7fc29dd6c..1cf6148b8b0 100644 --- a/arch/powerpc/boot/dts/p4080ds.dts +++ b/arch/powerpc/boot/dts/p4080ds.dts @@ -1,249 +1,59 @@  /*   * P4080DS Device Tree Source   * - * Copyright 2009 Freescale Semiconductor Inc. + * Copyright 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 - * Free Software Foundation;  either version 2 of the  License, or (at your - * option) any later version. + * 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.   */ -/dts-v1/; +/include/ "fsl/p4080si-pre.dtsi"  / {  	model = "fsl,P4080DS";  	compatible = "fsl,P4080DS";  	#address-cells = <2>;  	#size-cells = <2>; - -	aliases { -		ccsr = &soc; - -		serial0 = &serial0; -		serial1 = &serial1; -		serial2 = &serial2; -		serial3 = &serial3; -		pci0 = &pci0; -		pci1 = &pci1; -		pci2 = &pci2; -		usb0 = &usb0; -		usb1 = &usb1; -		dma0 = &dma0; -		dma1 = &dma1; -		sdhc = &sdhc; - -		rio0 = &rapidio0; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		cpu0: PowerPC,4080@0 { -			device_type = "cpu"; -			reg = <0>; -			next-level-cache = <&L2_0>; -			L2_0: l2-cache { -			}; -		}; -		cpu1: PowerPC,4080@1 { -			device_type = "cpu"; -			reg = <1>; -			next-level-cache = <&L2_1>; -			L2_1: l2-cache { -			}; -		}; -		cpu2: PowerPC,4080@2 { -			device_type = "cpu"; -			reg = <2>; -			next-level-cache = <&L2_2>; -			L2_2: l2-cache { -			}; -		}; -		cpu3: PowerPC,4080@3 { -			device_type = "cpu"; -			reg = <3>; -			next-level-cache = <&L2_3>; -			L2_3: l2-cache { -			}; -		}; -		cpu4: PowerPC,4080@4 { -			device_type = "cpu"; -			reg = <4>; -			next-level-cache = <&L2_4>; -			L2_4: l2-cache { -			}; -		}; -		cpu5: PowerPC,4080@5 { -			device_type = "cpu"; -			reg = <5>; -			next-level-cache = <&L2_5>; -			L2_5: l2-cache { -			}; -		}; -		cpu6: PowerPC,4080@6 { -			device_type = "cpu"; -			reg = <6>; -			next-level-cache = <&L2_6>; -			L2_6: l2-cache { -			}; -		}; -		cpu7: PowerPC,4080@7 { -			device_type = "cpu"; -			reg = <7>; -			next-level-cache = <&L2_7>; -			L2_7: l2-cache { -			}; -		}; -	}; +	interrupt-parent = <&mpic>;  	memory {  		device_type = "memory";  	}; +	dcsr: dcsr@f00000000 { +		ranges = <0x00000000 0xf 0x00000000 0x01008000>; +	}; +  	soc: soc@ffe000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		compatible = "simple-bus";  		ranges = <0x00000000 0xf 0xfe000000 0x1000000>;  		reg = <0xf 0xfe000000 0 0x00001000>; -		corenet-law@0 { -			compatible = "fsl,corenet-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <32>; -		}; - -		memory-controller@8000 { -			compatible = "fsl,p4080-memory-controller"; -			reg = <0x8000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <0x12 2>; -		}; - -		memory-controller@9000 { -			compatible = "fsl,p4080-memory-controller"; -			reg = <0x9000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <0x12 2>; -		}; - -		corenet-cf@18000 { -			compatible = "fsl,corenet-cf"; -			reg = <0x18000 0x1000>; -			fsl,ccf-num-csdids = <32>; -			fsl,ccf-num-snoopids = <32>; -		}; - -		iommu@20000 { -			compatible = "fsl,p4080-pamu"; -			reg = <0x20000 0x10000>; -			interrupts = <24 2>; -			interrupt-parent = <&mpic>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; - -		dma0: dma@100300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,p4080-dma", "fsl,eloplus-dma"; -			reg = <0x100300 0x4>; -			ranges = <0x0 0x100100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,p4080-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <28 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,p4080-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <29 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,p4080-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <30 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,p4080-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <31 2>; -			}; -		}; - -		dma1: dma@101300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,p4080-dma", "fsl,eloplus-dma"; -			reg = <0x101300 0x4>; -			ranges = <0x0 0x101100 0x200>; -			cell-index = <1>; -			dma-channel@0 { -				compatible = "fsl,p4080-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <32 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,p4080-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <33 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,p4080-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <34 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,p4080-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <35 2>; -			}; -		}; -  		spi@110000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,p4080-espi", "fsl,mpc8536-espi"; -			reg = <0x110000 0x1000>; -			interrupts = <53 0x2>; -			interrupt-parent = <&mpic>; -			fsl,espi-num-chipselects = <4>; -  			flash@0 {  				#address-cells = <1>;  				#size-cells = <1>; @@ -272,35 +82,7 @@  			};  		}; -		sdhc: sdhc@114000 { -			compatible = "fsl,p4080-esdhc", "fsl,esdhc"; -			reg = <0x114000 0x1000>; -			interrupts = <48 2>; -			interrupt-parent = <&mpic>; -			voltage-ranges = <3300 3300>; -			sdhci,auto-cmd12; -		}; - -		i2c@118000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x118000 0x100>; -			interrupts = <38 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; -  		i2c@118100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x118100 0x100>; -			interrupts = <38 2>; -			interrupt-parent = <&mpic>; -			dfsrr;  			eeprom@51 {  				compatible = "at24,24c256";  				reg = <0x51>; @@ -312,126 +94,39 @@  			rtc@68 {  				compatible = "dallas,ds3232";  				reg = <0x68>; -				interrupts = <0 0x1>; -				interrupt-parent = <&mpic>; +				interrupts = <0x1 0x1 0 0>; +			}; +			adt7461@4c { +				compatible = "adi,adt7461"; +				reg = <0x4c>;  			}; -		}; - -		i2c@119000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <2>; -			compatible = "fsl-i2c"; -			reg = <0x119000 0x100>; -			interrupts = <39 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		i2c@119100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <3>; -			compatible = "fsl-i2c"; -			reg = <0x119100 0x100>; -			interrupts = <39 2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		serial0: serial@11c500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x11c500 0x100>; -			clock-frequency = <0>; -			interrupts = <36 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@11c600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x11c600 0x100>; -			clock-frequency = <0>; -			interrupts = <36 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial2: serial@11d500 { -			cell-index = <2>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x11d500 0x100>; -			clock-frequency = <0>; -			interrupts = <37 2>; -			interrupt-parent = <&mpic>; -		}; - -		serial3: serial@11d600 { -			cell-index = <3>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x11d600 0x100>; -			clock-frequency = <0>; -			interrupts = <37 2>; -			interrupt-parent = <&mpic>; -		}; - -		gpio0: gpio@130000 { -			compatible = "fsl,p4080-gpio"; -			reg = <0x130000 0x1000>; -			interrupts = <55 2>; -			interrupt-parent = <&mpic>; -			#gpio-cells = <2>; -			gpio-controller;  		};  		usb0: usb@210000 { -			compatible = "fsl,p4080-usb2-mph", -					"fsl,mpc85xx-usb2-mph", "fsl-usb2-mph"; -			reg = <0x210000 0x1000>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupt-parent = <&mpic>; -			interrupts = <44 0x2>;  			phy_type = "ulpi";  		};  		usb1: usb@211000 { -			compatible = "fsl,p4080-usb2-dr", -					"fsl,mpc85xx-usb2-dr", "fsl-usb2-dr"; -			reg = <0x211000 0x1000>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupt-parent = <&mpic>; -			interrupts = <45 0x2>;  			dr_mode = "host";  			phy_type = "ulpi";  		};  	}; -	rapidio0: rapidio@ffe0c0000 { -		#address-cells = <2>; -		#size-cells = <2>; -		compatible = "fsl,rapidio-delta"; -		reg = <0xf 0xfe0c0000 0 0x20000>; -		ranges = <0 0 0xf 0xf5000000 0 0x01000000>; -		interrupt-parent = <&mpic>; -		/* err_irq bell_outb_irq bell_inb_irq -			msg1_tx_irq msg1_rx_irq	msg2_tx_irq msg2_rx_irq */ -		interrupts = <16 2 56 2 57 2 60 2 61 2 62 2 63 2>; +	rio: rapidio@ffe0c0000 { +		reg = <0xf 0xfe0c0000 0 0x11000>; + +		port1 { +			ranges = <0 0 0xc 0x20000000 0 0x10000000>; +		}; +		port2 { +			ranges = <0 0 0xc 0x30000000 0 0x10000000>; +		};  	}; -	localbus@ffe124000 { -		compatible = "fsl,p4080-elbc", "fsl,elbc", "simple-bus"; +	lbc: localbus@ffe124000 {  		reg = <0xf 0xfe124000 0 0x1000>; -		interrupts = <25 2>; -		#address-cells = <2>; -		#size-cells = <1>; - -		ranges = <0 0 0xf 0xe8000000 0x08000000>; +		ranges = <0 0 0xf 0xe8000000 0x08000000 +			  3 0 0xf 0xffdf0000 0x00008000>;  		flash@0,0 {  			compatible = "cfi-flash"; @@ -439,35 +134,18 @@  			bank-width = <2>;  			device-width = <2>;  		}; + +		board-control@3,0 { +			compatible = "fsl,p4080ds-fpga", "fsl,fpga-ngpixis"; +			reg = <3 0 0x30>; +		};  	};  	pci0: pcie@ffe200000 { -		compatible = "fsl,p4080-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0xf 0xfe200000 0 0x1000>; -		bus-range = <0x0 0xff>;  		ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000  			  0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; -		clock-frequency = <0x1fca055>; -		interrupt-parent = <&mpic>; -		interrupts = <16 2>; - -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 40 1 -			0000 0 0 2 &mpic 1 1 -			0000 0 0 3 &mpic 2 1 -			0000 0 0 4 &mpic 3 1 -			>;  		pcie@0 { -			reg = <0 0 0 0 0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x02000000 0 0xe0000000  				  0x02000000 0 0xe0000000  				  0 0x20000000 @@ -479,31 +157,10 @@  	};  	pci1: pcie@ffe201000 { -		compatible = "fsl,p4080-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0xf 0xfe201000 0 0x1000>; -		bus-range = <0 0xff>;  		ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000  			  0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; -		clock-frequency = <0x1fca055>; -		interrupt-parent = <&mpic>; -		interrupts = <16 2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 41 1 -			0000 0 0 2 &mpic 5 1 -			0000 0 0 3 &mpic 6 1 -			0000 0 0 4 &mpic 7 1 -			>;  		pcie@0 { -			reg = <0 0 0 0 0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x02000000 0 0xe0000000  				  0x02000000 0 0xe0000000  				  0 0x20000000 @@ -515,31 +172,10 @@  	};  	pci2: pcie@ffe202000 { -		compatible = "fsl,p4080-pcie"; -		device_type = "pci"; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>;  		reg = <0xf 0xfe202000 0 0x1000>; -		bus-range = <0x0 0xff>;  		ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000  			  0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>; -		clock-frequency = <0x1fca055>; -		interrupt-parent = <&mpic>; -		interrupts = <16 2>; -		interrupt-map-mask = <0xf800 0 0 7>; -		interrupt-map = < -			/* IDSEL 0x0 */ -			0000 0 0 1 &mpic 42 1 -			0000 0 0 2 &mpic 9 1 -			0000 0 0 3 &mpic 10 1 -			0000 0 0 4 &mpic 11 1 -			>;  		pcie@0 { -			reg = <0 0 0 0 0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci";  			ranges = <0x02000000 0 0xe0000000  				  0x02000000 0 0xe0000000  				  0 0x20000000 @@ -551,3 +187,5 @@  	};  }; + +/include/ "fsl/p4080si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p5020ds.dts b/arch/powerpc/boot/dts/p5020ds.dts new file mode 100644 index 00000000000..2869fea717d --- /dev/null +++ b/arch/powerpc/boot/dts/p5020ds.dts @@ -0,0 +1,237 @@ +/* + * P5020DS Device Tree Source + * + * Copyright 2010-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/p5020si-pre.dtsi" + +/ { +	model = "fsl,P5020DS"; +	compatible = "fsl,P5020DS"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	memory { +		device_type = "memory"; +	}; + +	dcsr: dcsr@f00000000 { +		ranges = <0x00000000 0xf 0x00000000 0x01008000>; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; +		spi@110000 { +			flash@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "spansion,s25sl12801"; +				reg = <0>; +				spi-max-frequency = <40000000>; /* input clock */ +				partition@u-boot { +					label = "u-boot"; +					reg = <0x00000000 0x00100000>; +					read-only; +				}; +				partition@kernel { +					label = "kernel"; +					reg = <0x00100000 0x00500000>; +					read-only; +				}; +				partition@dtb { +					label = "dtb"; +					reg = <0x00600000 0x00100000>; +					read-only; +				}; +				partition@fs { +					label = "file system"; +					reg = <0x00700000 0x00900000>; +				}; +			}; +		}; + +		i2c@118100 { +			eeprom@51 { +				compatible = "at24,24c256"; +				reg = <0x51>; +			}; +			eeprom@52 { +				compatible = "at24,24c256"; +				reg = <0x52>; +			}; +		}; + +		i2c@119100 { +			rtc@68 { +				compatible = "dallas,ds3232"; +				reg = <0x68>; +				interrupts = <0x1 0x1 0 0>; +			}; +			adt7461@4c { +				compatible = "adi,adt7461"; +				reg = <0x4c>; +			}; +		}; +	}; + +	rio: rapidio@ffe0c0000 { +		reg = <0xf 0xfe0c0000 0 0x11000>; + +		port1 { +			ranges = <0 0 0xc 0x20000000 0 0x10000000>; +		}; +		port2 { +			ranges = <0 0 0xc 0x30000000 0 0x10000000>; +		}; +	}; + +	lbc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x1000>; +		ranges = <0 0 0xf 0xe8000000 0x08000000 +			  2 0 0xf 0xffa00000 0x00040000 +			  3 0 0xf 0xffdf0000 0x00008000>; + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x08000000>; +			bank-width = <2>; +			device-width = <2>; +		}; + +		nand@2,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,elbc-fcm-nand"; +			reg = <0x2 0x0 0x40000>; + +			partition@0 { +				label = "NAND U-Boot Image"; +				reg = <0x0 0x02000000>; +				read-only; +			}; + +			partition@2000000 { +				label = "NAND Root File System"; +				reg = <0x02000000 0x10000000>; +			}; + +			partition@12000000 { +				label = "NAND Compressed RFS Image"; +				reg = <0x12000000 0x08000000>; +			}; + +			partition@1a000000 { +				label = "NAND Linux Kernel Image"; +				reg = <0x1a000000 0x04000000>; +			}; + +			partition@1e000000 { +				label = "NAND DTB Image"; +				reg = <0x1e000000 0x01000000>; +			}; + +			partition@1f000000 { +				label = "NAND Writable User area"; +				reg = <0x1f000000 0x21000000>; +			}; +		}; + +		board-control@3,0 { +			compatible = "fsl,p5020ds-fpga", "fsl,fpga-ngpixis"; +			reg = <3 0 0x30>; +		}; +	}; + +	pci0: pcie@ffe200000 { +		reg = <0xf 0xfe200000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci1: pcie@ffe201000 { +		reg = <0xf 0xfe201000 0 0x1000>; +		ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 +			  0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci2: pcie@ffe202000 { +		reg = <0xf 0xfe202000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci3: pcie@ffe203000 { +		reg = <0xf 0xfe203000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x60000000 0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8030000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; +}; + +/include/ "fsl/p5020si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p5040ds.dts b/arch/powerpc/boot/dts/p5040ds.dts new file mode 100644 index 00000000000..860b5ccf76c --- /dev/null +++ b/arch/powerpc/boot/dts/p5040ds.dts @@ -0,0 +1,207 @@ +/* + * P5040DS 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/p5040si-pre.dtsi" + +/ { +	model = "fsl,P5040DS"; +	compatible = "fsl,P5040DS"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	memory { +		device_type = "memory"; +	}; + +	dcsr: dcsr@f00000000 { +		ranges = <0x00000000 0xf 0x00000000 0x01008000>; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; +		spi@110000 { +			flash@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "spansion,s25sl12801"; +				reg = <0>; +				spi-max-frequency = <40000000>; /* input clock */ +				partition@u-boot { +					label = "u-boot"; +					reg = <0x00000000 0x00100000>; +				}; +				partition@kernel { +					label = "kernel"; +					reg = <0x00100000 0x00500000>; +				}; +				partition@dtb { +					label = "dtb"; +					reg = <0x00600000 0x00100000>; +				}; +				partition@fs { +					label = "file system"; +					reg = <0x00700000 0x00900000>; +				}; +			}; +		}; + +		i2c@118100 { +			eeprom@51 { +				compatible = "at24,24c256"; +				reg = <0x51>; +			}; +			eeprom@52 { +				compatible = "at24,24c256"; +				reg = <0x52>; +			}; +		}; + +		i2c@119100 { +			rtc@68 { +				compatible = "dallas,ds3232"; +				reg = <0x68>; +				interrupts = <0x1 0x1 0 0>; +			}; +			adt7461@4c { +				compatible = "adi,adt7461"; +				reg = <0x4c>; +			}; +		}; +	}; + +	lbc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x1000>; +		ranges = <0 0 0xf 0xe8000000 0x08000000 +			  2 0 0xf 0xffa00000 0x00040000 +			  3 0 0xf 0xffdf0000 0x00008000>; + +		flash@0,0 { +			compatible = "cfi-flash"; +			reg = <0 0 0x08000000>; +			bank-width = <2>; +			device-width = <2>; +		}; + +		nand@2,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,elbc-fcm-nand"; +			reg = <0x2 0x0 0x40000>; + +			partition@0 { +				label = "NAND U-Boot Image"; +				reg = <0x0 0x02000000>; +			}; + +			partition@2000000 { +				label = "NAND Root File System"; +				reg = <0x02000000 0x10000000>; +			}; + +			partition@12000000 { +				label = "NAND Compressed RFS Image"; +				reg = <0x12000000 0x08000000>; +			}; + +			partition@1a000000 { +				label = "NAND Linux Kernel Image"; +				reg = <0x1a000000 0x04000000>; +			}; + +			partition@1e000000 { +				label = "NAND DTB Image"; +				reg = <0x1e000000 0x01000000>; +			}; + +			partition@1f000000 { +				label = "NAND Writable User area"; +				reg = <0x1f000000 0x01000000>; +			}; +		}; + +		board-control@3,0 { +			compatible = "fsl,p5040ds-fpga", "fsl,fpga-ngpixis"; +			reg = <3 0 0x40>; +		}; +	}; + +	pci0: pcie@ffe200000 { +		reg = <0xf 0xfe200000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci1: pcie@ffe201000 { +		reg = <0xf 0xfe201000 0 0x1000>; +		ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 +			  0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci2: pcie@ffe202000 { +		reg = <0xf 0xfe202000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; +}; + +/include/ "fsl/p5040si-post.dtsi" diff --git a/arch/powerpc/boot/dts/pcm030.dts b/arch/powerpc/boot/dts/pcm030.dts index 8a4ec30b21a..192e66af000 100644 --- a/arch/powerpc/boot/dts/pcm030.dts +++ b/arch/powerpc/boot/dts/pcm030.dts @@ -12,246 +12,60 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc5200b.dtsi" + +&gpt0 { fsl,has-wdt; }; +&gpt2 { gpio-controller; }; +&gpt3 { gpio-controller; }; +&gpt4 { gpio-controller; }; +&gpt5 { gpio-controller; }; +&gpt6 { gpio-controller; }; +&gpt7 { gpio-controller; };  / {  	model = "phytec,pcm030";  	compatible = "phytec,pcm030"; -	#address-cells = <1>; -	#size-cells = <1>; -	interrupt-parent = <&mpc5200_pic>; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,5200@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <32>; -			i-cache-line-size = <32>; -			d-cache-size = <0x4000>;	// L1, 16K -			i-cache-size = <0x4000>;	// L1, 16K -			timebase-frequency = <0>;	// from bootloader -			bus-frequency = <0>;		// from bootloader -			clock-frequency = <0>;		// from bootloader -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <0x00000000 0x04000000>;	// 64MB -	};  	soc5200@f0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		compatible = "fsl,mpc5200b-immr"; -		ranges = <0 0xf0000000 0x0000c000>; -		bus-frequency = <0>;		// from bootloader -		system-frequency = <0>;		// from bootloader - -		cdm@200 { -			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; -			reg = <0x200 0x38>; -		}; - -		mpc5200_pic: interrupt-controller@500 { -			// 5200 interrupts are encoded into two levels; -			interrupt-controller; -			#interrupt-cells = <3>; -			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; -			reg = <0x500 0x80>; -		}; - -		timer@600 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x600 0x10>; -			interrupts = <1 9 0>; -			fsl,has-wdt; -		}; - -		timer@610 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x610 0x10>; -			interrupts = <1 10 0>; -		}; - -		gpt2: timer@620 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; -			reg = <0x620 0x10>; -			interrupts = <1 11 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt3: timer@630 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; -			reg = <0x630 0x10>; -			interrupts = <1 12 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt4: timer@640 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; -			reg = <0x640 0x10>; -			interrupts = <1 13 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt5: timer@650 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; -			reg = <0x650 0x10>; -			interrupts = <1 14 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt6: timer@660 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; -			reg = <0x660 0x10>; -			interrupts = <1 15 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt7: timer@670 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; -			reg = <0x670 0x10>; -			interrupts = <1 16 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		rtc@800 {	// Real time clock -			compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc"; -			reg = <0x800 0x100>; -			interrupts = <1 5 0 1 6 0>; -		}; - -		can@900 { -			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; -			interrupts = <2 17 0>; -			reg = <0x900 0x80>; -		}; - -		can@980 { -			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; -			interrupts = <2 18 0>; -			reg = <0x980 0x80>; -		}; - -		gpio_simple: gpio@b00 { -			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; -			reg = <0xb00 0x40>; -			interrupts = <1 7 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpio_wkup: gpio@c00 { -			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; -			reg = <0xc00 0x40>; -			interrupts = <1 8 0 0 3 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		spi@f00 { -			compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; -			reg = <0xf00 0x20>; -			interrupts = <2 13 0 2 14 0>; -		}; - -		usb@1000 { -			compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; -			reg = <0x1000 0xff>; -			interrupts = <2 6 0>; -		}; - -		dma-controller@1200 { -			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; -			reg = <0x1200 0x80>; -			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 -			              3 4 0  3 5 0  3 6 0  3 7 0 -			              3 8 0  3 9 0  3 10 0  3 11 0 -			              3 12 0  3 13 0  3 14 0  3 15 0>; -		}; - -		xlb@1f00 { -			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; -			reg = <0x1f00 0x100>; -		}; - -		ac97@2000 { /* PSC1 in ac97 mode */ +		audioplatform: psc@2000 { /* PSC1 in ac97 mode */  			compatible = "mpc5200b-psc-ac97","fsl,mpc5200b-psc-ac97";  			cell-index = <0>; -			reg = <0x2000 0x100>; -			interrupts = <2 1 0>;  		};  		/* PSC2 port is used by CAN1/2 */ +		psc@2200 { +			status = "disabled"; +		}; -		serial@2400 { /* PSC3 in UART mode */ +		psc@2400 { /* PSC3 in UART mode */  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			cell-index = <2>; -			reg = <0x2400 0x100>; -			interrupts = <2 3 0>;  		};  		/* PSC4 is ??? */ +		psc@2600 { +			status = "disabled"; +		};  		/* PSC5 is ??? */ +		psc@2800 { +			status = "disabled"; +		}; -		serial@2c00 { /* PSC6 in UART mode */ +		psc@2c00 { /* PSC6 in UART mode */  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			cell-index = <5>; -			reg = <0x2c00 0x100>; -			interrupts = <2 4 0>;  		};  		ethernet@3000 { -			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; -			reg = <0x3000 0x400>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <2 5 0>;  			phy-handle = <&phy0>;  		};  		mdio@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; -			reg = <0x3000 0x400>;	// fec range, since we need to setup fec interrupts -			interrupts = <2 5 0>;	// these are for "mii command finished", not link changes & co. -  			phy0: ethernet-phy@0 {  				reg = <0>;  			};  		}; -		ata@3a00 { -			compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; -			reg = <0x3a00 0x100>; -			interrupts = <2 7 0>; -		}; - -		i2c@3d00 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d00 0x40>; -			interrupts = <2 15 0>; -		}; -  		i2c@3d40 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d40 0x40>; -			interrupts = <2 16 0>;  			rtc@51 {  				compatible = "nxp,pcf8563";  				reg = <0x51>; @@ -259,6 +73,7 @@  			eeprom@52 {  				compatible = "catalyst,24c32";  				reg = <0x52>; +				pagesize = <32>;  			};  		}; @@ -269,12 +84,6 @@  	};  	pci@f0000d00 { -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		device_type = "pci"; -		compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci"; -		reg = <0xf0000d00 0x100>;  		interrupt-map-mask = <0xf800 0 0 7>;  		interrupt-map = <0xc000 0 0 1 &mpc5200_pic 0 0 3 // 1st slot  				 0xc000 0 0 2 &mpc5200_pic 1 1 3 @@ -285,11 +94,17 @@  				 0xc800 0 0 2 &mpc5200_pic 1 2 3  				 0xc800 0 0 3 &mpc5200_pic 1 3 3  				 0xc800 0 0 4 &mpc5200_pic 0 0 3>; -		clock-frequency = <0>; // From boot loader -		interrupts = <2 8 0 2 9 0 2 10 0>; -		bus-range = <0 0>;  		ranges = <0x42000000 0 0x80000000 0x80000000 0 0x20000000  			  0x02000000 0 0xa0000000 0xa0000000 0 0x10000000  			  0x01000000 0 0x00000000 0xb0000000 0 0x01000000>;  	}; + +	localbus { +		status = "disabled"; +	}; + +	sound { +		compatible = "phytec,pcm030-audio-fabric"; +		asoc-platform = <&audioplatform>; +	};  }; diff --git a/arch/powerpc/boot/dts/pcm032.dts b/arch/powerpc/boot/dts/pcm032.dts index 85d857a5d46..96b139bf50e 100644 --- a/arch/powerpc/boot/dts/pcm032.dts +++ b/arch/powerpc/boot/dts/pcm032.dts @@ -12,269 +12,77 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc5200b.dtsi" + +&gpt0 { fsl,has-wdt; }; +&gpt2 { gpio-controller; }; +&gpt3 { gpio-controller; }; +&gpt4 { gpio-controller; }; +&gpt5 { gpio-controller; }; +&gpt6 { gpio-controller; }; +&gpt7 { gpio-controller; };  / {  	model = "phytec,pcm032";  	compatible = "phytec,pcm032"; -	#address-cells = <1>; -	#size-cells = <1>; -	interrupt-parent = <&mpc5200_pic>; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,5200@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <32>; -			i-cache-line-size = <32>; -			d-cache-size = <0x4000>;	// L1, 16K -			i-cache-size = <0x4000>;	// L1, 16K -			timebase-frequency = <0>;	// from bootloader -			bus-frequency = <0>;		// from bootloader -			clock-frequency = <0>;		// from bootloader -		}; -	};  	memory { -		device_type = "memory";  		reg = <0x00000000 0x08000000>;	// 128MB  	};  	soc5200@f0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		compatible = "fsl,mpc5200b-immr"; -		ranges = <0 0xf0000000 0x0000c000>; -		bus-frequency = <0>;		// from bootloader -		system-frequency = <0>;		// from bootloader - -		cdm@200 { -			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; -			reg = <0x200 0x38>; -		}; - -		mpc5200_pic: interrupt-controller@500 { -			// 5200 interrupts are encoded into two levels; -			interrupt-controller; -			#interrupt-cells = <3>; -			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; -			reg = <0x500 0x80>; -		}; - -		timer@600 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x600 0x10>; -			interrupts = <1 9 0>; -			fsl,has-wdt; -		}; - -		timer@610 {	// General Purpose Timer -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x610 0x10>; -			interrupts = <1 10 0>; -		}; - -		gpt2: timer@620 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x620 0x10>; -			interrupts = <1 11 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt3: timer@630 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x630 0x10>; -			interrupts = <1 12 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt4: timer@640 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x640 0x10>; -			interrupts = <1 13 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt5: timer@650 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x650 0x10>; -			interrupts = <1 14 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt6: timer@660 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x660 0x10>; -			interrupts = <1 15 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt7: timer@670 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x670 0x10>; -			interrupts = <1 16 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		rtc@800 {	// Real time clock -			compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc"; -			reg = <0x800 0x100>; -			interrupts = <1 5 0 1 6 0>; -		}; - -		can@900 { -			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; -			interrupts = <2 17 0>; -			reg = <0x900 0x80>; -		}; - -		can@980 { -			compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; -			interrupts = <2 18 0>; -			reg = <0x980 0x80>; -		}; - -		gpio_simple: gpio@b00 { -			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; -			reg = <0xb00 0x40>; -			interrupts = <1 7 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpio_wkup: gpio@c00 { -			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; -			reg = <0xc00 0x40>; -			interrupts = <1 8 0 0 3 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		spi@f00 { -			compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; -			reg = <0xf00 0x20>; -			interrupts = <2 13 0 2 14 0>; -		}; - -		usb@1000 { -			compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; -			reg = <0x1000 0xff>; -			interrupts = <2 6 0>; -		}; - -		dma-controller@1200 { -			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; -			reg = <0x1200 0x80>; -			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 -			              3 4 0  3 5 0  3 6 0  3 7 0 -			              3 8 0  3 9 0  3 10 0  3 11 0 -			              3 12 0  3 13 0  3 14 0  3 15 0>; -		}; - -		xlb@1f00 { -			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; -			reg = <0x1f00 0x100>; -		}; - -		ac97@2000 {	/* PSC1 is ac97 */ +		psc@2000 {	/* PSC1 is ac97 */  			compatible = "fsl,mpc5200b-psc-ac97","fsl,mpc5200-psc-ac97";  			cell-index = <0>; -			reg = <0x2000 0x100>; -			interrupts = <2 1 0>;  		};  		/* PSC2 port is used by CAN1/2 */ +		psc@2200 { +			status = "disabled"; +		}; -		serial@2400 { /* PSC3 in UART mode */ +		psc@2400 { /* PSC3 in UART mode */  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			cell-index = <2>; -			reg = <0x2400 0x100>; -			interrupts = <2 3 0>;  		};  		/* PSC4 is ??? */ +		psc@2600 { +			status = "disabled"; +		};  		/* PSC5 is ??? */ +		psc@2800 { +			status = "disabled"; +		}; -		serial@2c00 { /* PSC6 in UART mode */ +		psc@2c00 { /* PSC6 in UART mode */  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			cell-index = <5>; -			reg = <0x2c00 0x100>; -			interrupts = <2 4 0>;  		};  		ethernet@3000 { -			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; -			reg = <0x3000 0x400>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <2 5 0>;  			phy-handle = <&phy0>;  		};  		mdio@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; -			reg = <0x3000 0x400>;	// fec range, since we need to setup fec interrupts -			interrupts = <2 5 0>;	// these are for "mii command finished", not link changes & co. -  			phy0: ethernet-phy@0 {  				reg = <0>;  			};  		}; -		ata@3a00 { -			compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; -			reg = <0x3a00 0x100>; -			interrupts = <2 7 0>; -		}; - -		i2c@3d00 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d00 0x40>; -			interrupts = <2 15 0>; -		}; -  		i2c@3d40 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d40 0x40>; -			interrupts = <2 16 0>;  			rtc@51 {  				compatible = "nxp,pcf8563";  				reg = <0x51>;  			};  			eeprom@52 { -				compatible = "at24,24c32"; +				compatible = "catalyst,24c32";  				reg = <0x52>; +				pagesize = <32>;  			};  		}; - -		sram@8000 { -			compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; -			reg = <0x8000 0x4000>; -		};  	};  	pci@f0000d00 { -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		device_type = "pci"; -		compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci"; -		reg = <0xf0000d00 0x100>;  		interrupt-map-mask = <0xf800 0 0 7>;  		interrupt-map = <0xc000 0 0 1 &mpc5200_pic 0 0 3 // 1st slot  				 0xc000 0 0 2 &mpc5200_pic 1 1 3 @@ -285,20 +93,12 @@  				 0xc800 0 0 2 &mpc5200_pic 1 2 3  				 0xc800 0 0 3 &mpc5200_pic 1 3 3  				 0xc800 0 0 4 &mpc5200_pic 0 0 3>; -		clock-frequency = <0>; // From boot loader -		interrupts = <2 8 0 2 9 0 2 10 0>; -		bus-range = <0 0>;  		ranges = <0x42000000 0 0x80000000 0x80000000 0 0x20000000  			  0x02000000 0 0xa0000000 0xa0000000 0 0x10000000  			  0x01000000 0 0x00000000 0xb0000000 0 0x01000000>;  	};  	localbus { -		compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus"; - -		#address-cells = <2>; -		#size-cells = <1>; -  		ranges = <0 0 0xfe000000 0x02000000  			  1 0 0xfc000000 0x02000000  			  2 0 0xfbe00000 0x00200000 @@ -351,40 +151,39 @@  			bank-width = <2>;  		}; -                /* +		/*  		 * example snippets for FPGA  		 *  		 * fpga@3,0 { -		 *         compatible = "fpga_driver"; -		 *         reg = <3 0 0x02000000>; -		 *         bank-width = <4>; +		 *	 compatible = "fpga_driver"; +		 *	 reg = <3 0 0x02000000>; +		 *	 bank-width = <4>;  		 * };  		 *  		 * fpga@4,0 { -		 *         compatible = "fpga_driver"; -		 *         reg = <4 0 0x02000000>; -		 *         bank-width = <4>; +		 *	 compatible = "fpga_driver"; +		 *	 reg = <4 0 0x02000000>; +		 *	 bank-width = <4>;  		 * }; -                 */ +		 */ -                /* +		/*  		 * example snippets for free chipselects -                 * +		 *  		 * device@5,0 { -		 *         compatible = "custom_driver"; -		 *         reg = <5 0 0x02000000>; +		 *	 compatible = "custom_driver"; +		 *	 reg = <5 0 0x02000000>;  		 * }; -                 * +		 *  		 * device@6,0 { -		 *         compatible = "custom_driver"; -		 *         reg = <6 0 0x02000000>; +		 *	 compatible = "custom_driver"; +		 *	 reg = <6 0 0x02000000>;  		 * }; -                 * +		 *  		 * device@7,0 { -		 *         compatible = "custom_driver"; -		 *         reg = <7 0 0x02000000>; +		 *	 compatible = "custom_driver"; +		 *	 reg = <7 0 0x02000000>;  		 * }; -                 */ +		 */  	};  }; - diff --git a/arch/powerpc/boot/dts/pdm360ng.dts b/arch/powerpc/boot/dts/pdm360ng.dts index 94dfa5c9a7f..871c16d1ad5 100644 --- a/arch/powerpc/boot/dts/pdm360ng.dts +++ b/arch/powerpc/boot/dts/pdm360ng.dts @@ -13,47 +13,21 @@   * option) any later version.   */ -/dts-v1/; +#include <mpc5121.dtsi>  / {  	model = "pdm360ng"; -	compatible = "ifm,pdm360ng"; +	compatible = "ifm,pdm360ng", "fsl,mpc5121";  	#address-cells = <1>;  	#size-cells = <1>;  	interrupt-parent = <&ipic>; -	aliases { -		ethernet0 = ð0; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,5121@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <0x20>;	// 32 bytes -			i-cache-line-size = <0x20>;	// 32 bytes -			d-cache-size = <0x8000>;	// L1, 32K -			i-cache-size = <0x8000>;	// L1, 32K -			timebase-frequency = <49500000>;// 49.5 MHz (csb/4) -			bus-frequency = <198000000>;	// 198 MHz csb bus -			clock-frequency = <396000000>;	// 396 MHz ppc core -		}; -	}; -  	memory {  		device_type = "memory";  		reg = <0x00000000 0x20000000>;	// 512MB at 0  	};  	nfc@40000000 { -		compatible = "fsl,mpc5121-nfc"; -		reg = <0x40000000 0x100000>; -		interrupts = <0x6 0x8>; -		#address-cells = <0x1>; -		#size-cells = <0x1>;  		bank-width = <0x1>;  		chips = <0x1>; @@ -63,17 +37,7 @@  		};  	}; -	sram@50000000 { -		compatible = "fsl,mpc5121-sram"; -		reg = <0x50000000 0x20000>;	// 128K at 0x50000000 -	}; -  	localbus@80000020 { -		compatible = "fsl,mpc5121-localbus"; -		#address-cells = <2>; -		#size-cells = <1>; -		reg = <0x80000020 0x40>; -  		ranges = <0x0 0x0 0xf0000000 0x10000000   /* Flash */  			  0x2 0x0 0x50040000 0x00020000>; /* CS2: MRAM */ @@ -129,74 +93,8 @@  	};  	soc@80000000 { -		compatible = "fsl,mpc5121-immr"; -		#address-cells = <1>; -		#size-cells = <1>; -		#interrupt-cells = <2>; -		ranges = <0x0 0x80000000 0x400000>; -		reg = <0x80000000 0x400000>; -		bus-frequency = <66000000>;	// 66 MHz ips bus - -		// IPIC -		// interrupts cell = <intr #, sense> -		// sense values match linux IORESOURCE_IRQ_* defines: -		// sense == 8: Level, low assertion -		// sense == 2: Edge, high-to-low change -		// -		ipic: interrupt-controller@c00 { -			compatible = "fsl,mpc5121-ipic", "fsl,ipic"; -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0xc00 0x100>; -		}; - -		rtc@a00 {	// Real time clock -			compatible = "fsl,mpc5121-rtc"; -			reg = <0xa00 0x100>; -			interrupts = <79 0x8 80 0x8>; -		}; - -		reset@e00 {	// Reset module -			compatible = "fsl,mpc5121-reset"; -			reg = <0xe00 0x100>; -		}; - -		clock@f00 {	// Clock control -			compatible = "fsl,mpc5121-clock"; -			reg = <0xf00 0x100>; -		}; - -		pmc@1000{	//Power Management Controller -			compatible = "fsl,mpc5121-pmc"; -			reg = <0x1000 0x100>; -			interrupts = <83 0x2>; -		}; - -		gpio@1100 { -			compatible = "fsl,mpc5121-gpio"; -			reg = <0x1100 0x100>; -			interrupts = <78 0x8>; -		}; - -		can@1300 { -			compatible = "fsl,mpc5121-mscan"; -			interrupts = <12 0x8>; -			reg = <0x1300 0x80>; -		}; - -		can@1380 { -			compatible = "fsl,mpc5121-mscan"; -			interrupts = <13 0x8>; -			reg = <0x1380 0x80>; -		};  		i2c@1700 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5121-i2c"; -			reg = <0x1700 0x20>; -			interrupts = <0x9 0x8>;  			fsl,preserve-clocking;  			eeprom@50 { @@ -210,201 +108,92 @@  			};  		}; -		i2c@1740 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5121-i2c"; -			reg = <0x1740 0x20>; -			interrupts = <0xb 0x8>; -			fsl,preserve-clocking; -		}; - -		i2ccontrol@1760 { -			compatible = "fsl,mpc5121-i2c-ctrl"; -			reg = <0x1760 0x8>; -		}; - -		axe@2000 { -			compatible = "fsl,mpc5121-axe"; -			reg = <0x2000 0x100>; -			interrupts = <42 0x8>; -		}; - -		display@2100 { -			compatible = "fsl,mpc5121-diu"; -			reg = <0x2100 0x100>; -			interrupts = <64 0x8>; +		i2c@1720 { +			status = "disabled";  		}; -		can@2300 { -			compatible = "fsl,mpc5121-mscan"; -			interrupts = <90 0x8>; -			reg = <0x2300 0x80>; -		}; - -		can@2380 { -			compatible = "fsl,mpc5121-mscan"; -			interrupts = <91 0x8>; -			reg = <0x2380 0x80>; +		i2c@1740 { +			fsl,preserve-clocking;  		}; -		viu@2400 { -			compatible = "fsl,mpc5121-viu"; -			reg = <0x2400 0x400>; -			interrupts = <67 0x8>; +		ethernet@2800 { +			phy-handle = <&phy0>;  		};  		mdio@2800 { -			compatible = "fsl,mpc5121-fec-mdio"; -			reg = <0x2800 0x200>; -			#address-cells = <1>; -			#size-cells = <0>; -			phy: ethernet-phy@0 { +			phy0: ethernet-phy@1f {  				compatible = "smsc,lan8700";  				reg = <0x1f>;  			};  		}; -		eth0: ethernet@2800 { -			compatible = "fsl,mpc5121-fec"; -			reg = <0x2800 0x200>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <4 0x8>; -			phy-handle = < &phy >; -		}; - -		// USB1 using external ULPI PHY +		/* USB1 using external ULPI PHY */  		usb@3000 { -			compatible = "fsl,mpc5121-usb2-dr"; -			reg = <0x3000 0x600>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupts = <43 0x8>;  			dr_mode = "host"; -			phy_type = "ulpi";  		}; -		// USB0 using internal UTMI PHY +		/* USB0 using internal UTMI PHY */  		usb@4000 { -			compatible = "fsl,mpc5121-usb2-dr"; -			reg = <0x4000 0x600>; -			#address-cells = <1>; -			#size-cells = <0>; -			interrupts = <44 0x8>; -			dr_mode = "otg"; -			phy_type = "utmi_wide";  			fsl,invert-pwr-fault;  		}; -		// IO control -		ioctl@a000 { -			compatible = "fsl,mpc5121-ioctl"; -			reg = <0xA000 0x1000>; -		}; - -		// 512x PSCs are not 52xx PSCs compatible -		serial@11000 { +		psc@11000 {  			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; -			cell-index = <0>; -			reg = <0x11000 0x100>; -			interrupts = <40 0x8>; -			fsl,rx-fifo-size = <16>; -			fsl,tx-fifo-size = <16>;  		}; -		serial@11100 { +		psc@11100 {  			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; -			cell-index = <1>; -			reg = <0x11100 0x100>; -			interrupts = <40 0x8>; -			fsl,rx-fifo-size = <16>; -			fsl,tx-fifo-size = <16>;  		}; -		serial@11200 { +		psc@11200 {  			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; -			cell-index = <2>; -			reg = <0x11200 0x100>; -			interrupts = <40 0x8>; -			fsl,rx-fifo-size = <16>; -			fsl,tx-fifo-size = <16>;  		}; -		serial@11300 { +		psc@11300 {  			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; -			cell-index = <3>; -			reg = <0x11300 0x100>; -			interrupts = <40 0x8>; -			fsl,rx-fifo-size = <16>; -			fsl,tx-fifo-size = <16>;  		}; -		serial@11400 { +		psc@11400 {  			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; -			cell-index = <4>; -			reg = <0x11400 0x100>; -			interrupts = <40 0x8>; -			fsl,rx-fifo-size = <16>; -			fsl,tx-fifo-size = <16>;  		}; -		serial@11600 { -			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; -			cell-index = <6>; -			reg = <0x11600 0x100>; -			interrupts = <40 0x8>; -			fsl,rx-fifo-size = <16>; -			fsl,tx-fifo-size = <16>; +		psc@11500 { +			status = "disabled";  		}; -		serial@11800 { +		psc@11600 {  			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; -			cell-index = <8>; -			reg = <0x11800 0x100>; -			interrupts = <40 0x8>; -			fsl,rx-fifo-size = <16>; -			fsl,tx-fifo-size = <16>;  		}; -		serial@11B00 { -			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; -			cell-index = <11>; -			reg = <0x11B00 0x100>; -			interrupts = <40 0x8>; -			fsl,rx-fifo-size = <16>; -			fsl,tx-fifo-size = <16>; +		psc@11700 { +			status = "disabled";  		}; -		pscfifo@11f00 { -			compatible = "fsl,mpc5121-psc-fifo"; -			reg = <0x11f00 0x100>; -			interrupts = <40 0x8>; +		psc@11800 { +			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";  		}; -		spi@11900 { +		psc@11900 {  			compatible = "fsl,mpc5121-psc-spi", "fsl,mpc5121-psc"; -			cell-index = <9>;  			#address-cells = <1>;  			#size-cells = <0>; -			reg = <0x11900 0x100>; -			interrupts = <40 0x8>; -			fsl,rx-fifo-size = <16>; -			fsl,tx-fifo-size = <16>; -			// 7845 touch screen controller +			/* ADS7845 touch screen controller */  			ts@0 {  				compatible = "ti,ads7846";  				reg = <0x0>;  				spi-max-frequency = <3000000>; -				// pen irq is GPIO25 +				/* pen irq is GPIO25 */  				interrupts = <78 0x8>;  			};  		}; -		dma@14000 { -			compatible = "fsl,mpc5121-dma"; -			reg = <0x14000 0x1800>; -			interrupts = <65 0x8>; +		psc@11a00 { +			status = "disabled"; +		}; + +		psc@11b00 { +			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";  		};  	};  }; diff --git a/arch/powerpc/boot/dts/ppa8548.dts b/arch/powerpc/boot/dts/ppa8548.dts new file mode 100644 index 00000000000..27b0699ee92 --- /dev/null +++ b/arch/powerpc/boot/dts/ppa8548.dts @@ -0,0 +1,164 @@ +/* + * PPA8548 Device Tree Source (36-bit address map) + * Copyright 2013 Prodrive B.V. + * + * Based on: + * 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 = "ppa8548"; +	compatible = "ppa8548"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	memory { +		device_type = "memory"; +		reg = <0 0 0x0 0x40000000>; +	}; + +	lbc: localbus@fe0005000 { +		reg = <0xf 0xe0005000 0 0x1000>; +		ranges = <0x0 0x0 0xf 0xff800000 0x00800000>; +	}; + +	soc: soc8548@fe0000000 { +		ranges = <0 0xf 0xe0000000 0x100000>; +	}; + +	pci0: pci@fe0008000 { +		/* ppa8548 board doesn't support PCI */ +		status = "disabled"; +	}; + +	pci1: pci@fe0009000 { +		/* ppa8548 board doesn't support PCI */ +		status = "disabled"; +	}; + +	pci2: pcie@fe000a000 { +		/* ppa8548 board doesn't support PCI */ +		status = "disabled"; +	}; + +	rio: rapidio@fe00c0000 { +		reg = <0xf 0xe00c0000 0x0 0x11000>; +		port1 { +			ranges = <0x0 0x0 0x0 0x80000000 0x0 0x40000000>; +		}; +	}; +}; + +&lbc { +	nor@0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "cfi-flash"; +		reg = <0x0 0x0 0x00800000>; +		bank-width = <2>; +		device-width = <2>; + +		partition@0 { +			reg = <0x0 0x7A0000>; +			label = "user"; +		}; + +		partition@7A0000 { +			reg = <0x7A0000 0x20000>; +			label = "env"; +			read-only; +		}; + +		partition@7C0000 { +			reg = <0x7C0000 0x40000>; +			label = "u-boot"; +			read-only; +		}; +	}; +}; + +&soc { +	i2c@3000 { +		rtc@6f { +			compatible = "intersil,isl1208"; +			reg = <0x6f>; +		}; +	}; + +	i2c@3100 { +	}; + +	/* +	 * Only ethernet controller @25000 and @26000 are used. +	 * Use alias enet2 and enet3 for the remainig controllers, +	 * to stay compatible with mpc8548si-pre.dtsi. +	 */ +	enet2: ethernet@24000 { +		status = "disabled"; +	}; + +	mdio@24520 { +		phy0: ethernet-phy@0 { +			interrupts = <7 1 0 0>; +			reg = <0x0>; +		}; +		phy1: ethernet-phy@1 { +			interrupts = <8 1 0 0>; +			reg = <0x1>; +		}; +		tbi0: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	enet0: ethernet@25000 { +		tbi-handle = <&tbi1>; +		phy-handle = <&phy0>; +	}; + +	mdio@25520 { +		tbi1: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	enet1: ethernet@26000 { +		tbi-handle = <&tbi2>; +		phy-handle = <&phy1>; +	}; + +	mdio@26520 { +		tbi2: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	enet3: ethernet@27000 { +		status = "disabled"; +	}; + +	mdio@27520 { +		tbi3: tbi-phy@11 { +			reg = <0x11>; +			device_type = "tbi-phy"; +		}; +	}; + +	crypto@30000 { +		status = "disabled"; +	}; +}; + +/include/ "fsl/mpc8548si-post.dtsi" diff --git a/arch/powerpc/boot/dts/pq2fads.dts b/arch/powerpc/boot/dts/pq2fads.dts index 0bb66937674..0c525ff0c25 100644 --- a/arch/powerpc/boot/dts/pq2fads.dts +++ b/arch/powerpc/boot/dts/pq2fads.dts @@ -198,7 +198,6 @@  			};  			mdio@10d40 { -				device_type = "mdio";  				compatible = "fsl,pq2fads-mdio-bitbang",  				             "fsl,mpc8280-mdio-bitbang",  				             "fsl,cpm2-mdio-bitbang"; @@ -212,14 +211,12 @@  					interrupt-parent = <&PIC>;  					interrupts = <25 2>;  					reg = <0x0>; -					device_type = "ethernet-phy";  				};  				PHY1: ethernet-phy@1 {  					interrupt-parent = <&PIC>;  					interrupts = <25 2>;  					reg = <0x3>; -					device_type = "ethernet-phy";  				};  			}; diff --git a/arch/powerpc/boot/dts/prpmc2800.dts b/arch/powerpc/boot/dts/prpmc2800.dts index 1ee6ff43dd5..00afaacf8c8 100644 --- a/arch/powerpc/boot/dts/prpmc2800.dts +++ b/arch/powerpc/boot/dts/prpmc2800.dts @@ -73,17 +73,14 @@  		mdio {  			#address-cells = <1>;  			#size-cells = <0>; -			device_type = "mdio";  			compatible = "marvell,mv64360-mdio";  			PHY0: ethernet-phy@1 { -				device_type = "ethernet-phy";  				compatible = "broadcom,bcm5421";  				interrupts = <76>;	/* GPP 12 */  				interrupt-parent = <&PIC>;  				reg = <1>;  			};  			PHY1: ethernet-phy@3 { -				device_type = "ethernet-phy";  				compatible = "broadcom,bcm5421";  				interrupts = <76>;	/* GPP 12 */  				interrupt-parent = <&PIC>; @@ -162,7 +159,6 @@  		};  		MPSC0: mpsc@8000 { -			device_type = "serial";  			compatible = "marvell,mv64360-mpsc";  			reg = <0x8000 0x38>;  			virtual-reg = <0xf1008000>; @@ -177,7 +173,6 @@  		};  		MPSC1: mpsc@9000 { -			device_type = "serial";  			compatible = "marvell,mv64360-mpsc";  			reg = <0x9000 0x38>;  			virtual-reg = <0xf1009000>; diff --git a/arch/powerpc/boot/dts/redwood.dts b/arch/powerpc/boot/dts/redwood.dts index 81636c01d90..d86a3a49811 100644 --- a/arch/powerpc/boot/dts/redwood.dts +++ b/arch/powerpc/boot/dts/redwood.dts @@ -358,8 +358,28 @@  				0x0 0x0 0x0 0x4 &UIC3 0xb 0x4 /* swizzled int D */>;  		}; +		MSI: ppc4xx-msi@400300000 { +				compatible = "amcc,ppc4xx-msi", "ppc4xx-msi"; +				reg = < 0x4 0x00300000 0x100 +					0x4 0x00300000 0x100>; +				sdr-base = <0x3B0>; +				msi-data = <0x00000000>; +				msi-mask = <0x44440000>; +				interrupt-count = <3>; +				interrupts =<0 1 2 3>; +				interrupt-parent = <&UIC0>; +				#interrupt-cells = <1>; +				#address-cells = <0>; +				#size-cells = <0>; +				interrupt-map = <0 &UIC0 0xC 1 +					1 &UIC0 0x0D 1 +					2 &UIC0 0x0E 1 +					3 &UIC0 0x0F 1>; +		}; +  	}; +  	chosen {  		linux,stdout-path = "/plb/opb/serial@ef600200";  	}; diff --git a/arch/powerpc/boot/dts/sbc8349.dts b/arch/powerpc/boot/dts/sbc8349.dts index 0dc90f9bd81..fc89e00b765 100644 --- a/arch/powerpc/boot/dts/sbc8349.dts +++ b/arch/powerpc/boot/dts/sbc8349.dts @@ -173,14 +173,12 @@  					interrupt-parent = <&ipic>;  					interrupts = <20 0x8>;  					reg = <0x19>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@1a {  					interrupt-parent = <&ipic>;  					interrupts = <21 0x8>;  					reg = <0x1a>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 { @@ -222,7 +220,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <9 0x8>; @@ -232,7 +230,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <10 0x8>; diff --git a/arch/powerpc/boot/dts/sbc8548-altflash.dts b/arch/powerpc/boot/dts/sbc8548-altflash.dts new file mode 100644 index 00000000000..0b38a0defd2 --- /dev/null +++ b/arch/powerpc/boot/dts/sbc8548-altflash.dts @@ -0,0 +1,115 @@ +/* + * SBC8548 Device Tree Source + * + * Configured for booting off the alternate (64MB SODIMM) flash. + * Requires switching JP12 jumpers and changing SW2.8 setting. + * + * Copyright 2013 Wind River Systems Inc. + * + * Paul Gortmaker (see MAINTAINERS for contact information) + * + * 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. + */ + + +/dts-v1/; + +/include/ "sbc8548-pre.dtsi" + +/{ +	localbus@e0000000 { +		#address-cells = <2>; +		#size-cells = <1>; +		compatible = "simple-bus"; +		reg = <0xe0000000 0x5000>; +		interrupt-parent = <&mpic>; + +		ranges = <0x0 0x0 0xfc000000 0x04000000		/*64MB Flash*/ +			  0x3 0x0 0xf0000000 0x04000000		/*64MB SDRAM*/ +			  0x4 0x0 0xf4000000 0x04000000 	/*64MB SDRAM*/ +			  0x5 0x0 0xf8000000 0x00b10000		/* EPLD */ +			  0x6 0x0 0xef800000 0x00800000>;	/*8MB Flash*/ + +		flash@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			reg = <0x0 0x0 0x04000000>; +			compatible = "intel,JS28F128", "cfi-flash"; +			bank-width = <4>; +			device-width = <1>; +			partition@0x0 { +				label = "space"; +				/* FC000000 -> FFEFFFFF */ +				reg = <0x00000000 0x03f00000>; +			}; +			partition@0x03f00000 { +				label = "bootloader"; +				/* FFF00000 -> FFFFFFFF */ +				reg = <0x03f00000 0x00100000>; +				read-only; +			}; +                }; + + +		epld@5,0 { +			compatible = "wrs,epld-localbus"; +			#address-cells = <2>; +			#size-cells = <1>; +			reg = <0x5 0x0 0x00b10000>; +			ranges = < +				0x0 0x0 0x5 0x000000 0x1fff	/* LED */ +				0x1 0x0 0x5 0x100000 0x1fff	/* Switches */ +				0x3 0x0 0x5 0x300000 0x1fff	/* HW Rev. */ +				0xb 0x0	0x5 0xb00000 0x1fff	/* EEPROM */ +			>; + +			led@0,0 { +				compatible = "led"; +				reg = <0x0 0x0 0x1fff>; +			}; + +			switches@1,0 { +				compatible = "switches"; +				reg = <0x1 0x0 0x1fff>; +			}; + +			hw-rev@3,0 { +				compatible = "hw-rev"; +				reg = <0x3 0x0 0x1fff>; +			}; + +			eeprom@b,0 { +				compatible = "eeprom"; +				reg = <0xb 0 0x1fff>; +			}; + +		}; + +		alt-flash@6,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "intel,JS28F640", "cfi-flash"; +			reg = <0x6 0x0 0x800000>; +			bank-width = <1>; +			device-width = <1>; +			partition@0x0 { +				label = "space"; +				/* EF800000 -> EFF9FFFF */ +				reg = <0x00000000 0x007a0000>; +			}; +			partition@0x7a0000 { +				label = "bootloader"; +				/* EFFA0000 -> EFFFFFFF */ +				reg = <0x007a0000 0x00060000>; +				read-only; +			}; +		}; + + +        }; +}; + +/include/ "sbc8548-post.dtsi" diff --git a/arch/powerpc/boot/dts/sbc8548-post.dtsi b/arch/powerpc/boot/dts/sbc8548-post.dtsi new file mode 100644 index 00000000000..9b505c8e535 --- /dev/null +++ b/arch/powerpc/boot/dts/sbc8548-post.dtsi @@ -0,0 +1,293 @@ +/* + * SBC8548 Device Tree Source + * + * Copyright 2007 Wind River Systems Inc. + * + * Paul Gortmaker (see MAINTAINERS for contact information) + * + * 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. + */ + +/{ +	soc8548@e0000000 { +		#address-cells = <1>; +		#size-cells = <1>; +		device_type = "soc"; +		ranges = <0x00000000 0xe0000000 0x00100000>; +		bus-frequency = <0>; +		compatible = "simple-bus"; + +		ecm-law@0 { +			compatible = "fsl,ecm-law"; +			reg = <0x0 0x1000>; +			fsl,num-laws = <10>; +		}; + +		ecm@1000 { +			compatible = "fsl,mpc8548-ecm", "fsl,ecm"; +			reg = <0x1000 0x1000>; +			interrupts = <17 2>; +			interrupt-parent = <&mpic>; +		}; + +		memory-controller@2000 { +			compatible = "fsl,mpc8548-memory-controller"; +			reg = <0x2000 0x1000>; +			interrupt-parent = <&mpic>; +			interrupts = <0x12 0x2>; +		}; + +		L2: l2-cache-controller@20000 { +			compatible = "fsl,mpc8548-l2-cache-controller"; +			reg = <0x20000 0x1000>; +			cache-line-size = <0x20>;	// 32 bytes +			cache-size = <0x80000>;	// L2, 512K +			interrupt-parent = <&mpic>; +			interrupts = <0x10 0x2>; +		}; + +		i2c@3000 { +			#address-cells = <1>; +			#size-cells = <0>; +			cell-index = <0>; +			compatible = "fsl-i2c"; +			reg = <0x3000 0x100>; +			interrupts = <0x2b 0x2>; +			interrupt-parent = <&mpic>; +			dfsrr; +		}; + +		i2c@3100 { +			#address-cells = <1>; +			#size-cells = <0>; +			cell-index = <1>; +			compatible = "fsl-i2c"; +			reg = <0x3100 0x100>; +			interrupts = <0x2b 0x2>; +			interrupt-parent = <&mpic>; +			dfsrr; +		}; + +		dma@21300 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma"; +			reg = <0x21300 0x4>; +			ranges = <0x0 0x21100 0x200>; +			cell-index = <0>; +			dma-channel@0 { +				compatible = "fsl,mpc8548-dma-channel", +						"fsl,eloplus-dma-channel"; +				reg = <0x0 0x80>; +				cell-index = <0>; +				interrupt-parent = <&mpic>; +				interrupts = <20 2>; +			}; +			dma-channel@80 { +				compatible = "fsl,mpc8548-dma-channel", +						"fsl,eloplus-dma-channel"; +				reg = <0x80 0x80>; +				cell-index = <1>; +				interrupt-parent = <&mpic>; +				interrupts = <21 2>; +			}; +			dma-channel@100 { +				compatible = "fsl,mpc8548-dma-channel", +						"fsl,eloplus-dma-channel"; +				reg = <0x100 0x80>; +				cell-index = <2>; +				interrupt-parent = <&mpic>; +				interrupts = <22 2>; +			}; +			dma-channel@180 { +				compatible = "fsl,mpc8548-dma-channel", +						"fsl,eloplus-dma-channel"; +				reg = <0x180 0x80>; +				cell-index = <3>; +				interrupt-parent = <&mpic>; +				interrupts = <23 2>; +			}; +		}; + +		enet0: ethernet@24000 { +			#address-cells = <1>; +			#size-cells = <1>; +			cell-index = <0>; +			device_type = "network"; +			model = "eTSEC"; +			compatible = "gianfar"; +			reg = <0x24000 0x1000>; +			ranges = <0x0 0x24000 0x1000>; +			local-mac-address = [ 00 00 00 00 00 00 ]; +			interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>; +			interrupt-parent = <&mpic>; +			tbi-handle = <&tbi0>; +			phy-handle = <&phy0>; + +			mdio@520 { +				#address-cells = <1>; +				#size-cells = <0>; +				compatible = "fsl,gianfar-mdio"; +				reg = <0x520 0x20>; + +				phy0: ethernet-phy@19 { +					interrupt-parent = <&mpic>; +					interrupts = <0x6 0x1>; +					reg = <0x19>; +				}; +				phy1: ethernet-phy@1a { +					interrupt-parent = <&mpic>; +					interrupts = <0x7 0x1>; +					reg = <0x1a>; +				}; +				tbi0: tbi-phy@11 { +					reg = <0x11>; +					device_type = "tbi-phy"; +				}; +			}; +		}; + +		enet1: ethernet@25000 { +			#address-cells = <1>; +			#size-cells = <1>; +			cell-index = <1>; +			device_type = "network"; +			model = "eTSEC"; +			compatible = "gianfar"; +			reg = <0x25000 0x1000>; +			ranges = <0x0 0x25000 0x1000>; +			local-mac-address = [ 00 00 00 00 00 00 ]; +			interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>; +			interrupt-parent = <&mpic>; +			tbi-handle = <&tbi1>; +			phy-handle = <&phy1>; + +			mdio@520 { +				#address-cells = <1>; +				#size-cells = <0>; +				compatible = "fsl,gianfar-tbi"; +				reg = <0x520 0x20>; + +				tbi1: tbi-phy@11 { +					reg = <0x11>; +					device_type = "tbi-phy"; +				}; +			}; +		}; + +		serial0: serial@4500 { +			cell-index = <0>; +			device_type = "serial"; +			compatible = "fsl,ns16550", "ns16550"; +			reg = <0x4500 0x100>;	// reg base, size +			clock-frequency = <0>;	// should we fill in in uboot? +			interrupts = <0x2a 0x2>; +			interrupt-parent = <&mpic>; +		}; + +		serial1: serial@4600 { +			cell-index = <1>; +			device_type = "serial"; +			compatible = "fsl,ns16550", "ns16550"; +			reg = <0x4600 0x100>;	// reg base, size +			clock-frequency = <0>;	// should we fill in in uboot? +			interrupts = <0x2a 0x2>; +			interrupt-parent = <&mpic>; +		}; + +		global-utilities@e0000 {	//global utilities reg +			compatible = "fsl,mpc8548-guts"; +			reg = <0xe0000 0x1000>; +			fsl,has-rstcr; +		}; + +		crypto@30000 { +			compatible = "fsl,sec2.1", "fsl,sec2.0"; +			reg = <0x30000 0x10000>; +			interrupts = <45 2>; +			interrupt-parent = <&mpic>; +			fsl,num-channels = <4>; +			fsl,channel-fifo-len = <24>; +			fsl,exec-units-mask = <0xfe>; +			fsl,descriptor-types-mask = <0x12b0ebf>; +		}; + +		mpic: pic@40000 { +			interrupt-controller; +			#address-cells = <0>; +			#interrupt-cells = <2>; +			reg = <0x40000 0x40000>; +			compatible = "chrp,open-pic"; +			device_type = "open-pic"; +		}; +	}; + +	pci0: pci@e0008000 { +		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; +		interrupt-map = < +			/* IDSEL 0x01 (PCI-X slot) @66MHz */ +			0x0800 0x0 0x0 0x1 &mpic 0x2 0x1 +			0x0800 0x0 0x0 0x2 &mpic 0x3 0x1 +			0x0800 0x0 0x0 0x3 &mpic 0x4 0x1 +			0x0800 0x0 0x0 0x4 &mpic 0x1 0x1 + +			/* IDSEL 0x11 (PCI, 3.3V 32bit) @33MHz */ +			0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 +			0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 +			0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 +			0x8800 0x0 0x0 0x4 &mpic 0x1 0x1>; + +		interrupt-parent = <&mpic>; +		interrupts = <0x18 0x2>; +		bus-range = <0 0>; +		ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x10000000 +			  0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00800000>; +		clock-frequency = <66000000>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		reg = <0xe0008000 0x1000>; +		compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; +		device_type = "pci"; +	}; + +	pci1: pcie@e000a000 { +		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; +		interrupt-map = < + +			/* IDSEL 0x0 (PEX) */ +			0x0000 0x0 0x0 0x1 &mpic 0x0 0x1 +			0x0000 0x0 0x0 0x2 &mpic 0x1 0x1 +			0x0000 0x0 0x0 0x3 &mpic 0x2 0x1 +			0x0000 0x0 0x0 0x4 &mpic 0x3 0x1>; + +		interrupt-parent = <&mpic>; +		interrupts = <0x1a 0x2>; +		bus-range = <0x0 0xff>; +		ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 +			  0x01000000 0x0 0x00000000 0xe2800000 0x0 0x08000000>; +		clock-frequency = <33000000>; +		#interrupt-cells = <1>; +		#size-cells = <2>; +		#address-cells = <3>; +		reg = <0xe000a000 0x1000>; +		compatible = "fsl,mpc8548-pcie"; +		device_type = "pci"; +		pcie@0 { +			reg = <0x0 0x0 0x0 0x0 0x0>; +			#size-cells = <2>; +			#address-cells = <3>; +			device_type = "pci"; +			ranges = <0x02000000 0x0 0xa0000000 +				  0x02000000 0x0 0xa0000000 +				  0x0 0x10000000 + +				  0x01000000 0x0 0x00000000 +				  0x01000000 0x0 0x00000000 +				  0x0 0x00800000>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/sbc8548-pre.dtsi b/arch/powerpc/boot/dts/sbc8548-pre.dtsi new file mode 100644 index 00000000000..d8c66290c5b --- /dev/null +++ b/arch/powerpc/boot/dts/sbc8548-pre.dtsi @@ -0,0 +1,52 @@ +/* + * SBC8548 Device Tree Source + * + * Copyright 2007 Wind River Systems Inc. + * + * Paul Gortmaker (see MAINTAINERS for contact information) + * + * 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. + */ + +/{ +	model = "SBC8548"; +	compatible = "SBC8548"; +	#address-cells = <1>; +	#size-cells = <1>; + +	aliases { +		ethernet0 = &enet0; +		ethernet1 = &enet1; +		serial0 = &serial0; +		serial1 = &serial1; +		pci0 = &pci0; +		pci1 = &pci1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		PowerPC,8548@0 { +			device_type = "cpu"; +			reg = <0>; +			d-cache-line-size = <0x20>;	// 32 bytes +			i-cache-line-size = <0x20>;	// 32 bytes +			d-cache-size = <0x8000>;	// L1, 32K +			i-cache-size = <0x8000>;	// L1, 32K +			timebase-frequency = <0>;	// From uboot +			bus-frequency = <0>; +			clock-frequency = <0>; +			next-level-cache = <&L2>; +		}; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x00000000 0x10000000>; +	}; + +}; diff --git a/arch/powerpc/boot/dts/sbc8548.dts b/arch/powerpc/boot/dts/sbc8548.dts index 94a33225171..1df2a095566 100644 --- a/arch/powerpc/boot/dts/sbc8548.dts +++ b/arch/powerpc/boot/dts/sbc8548.dts @@ -14,44 +14,9 @@  /dts-v1/; -/ { -	model = "SBC8548"; -	compatible = "SBC8548"; -	#address-cells = <1>; -	#size-cells = <1>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		serial0 = &serial0; -		serial1 = &serial1; -		pci0 = &pci0; -		pci1 = &pci1; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,8548@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <0x20>;	// 32 bytes -			i-cache-line-size = <0x20>;	// 32 bytes -			d-cache-size = <0x8000>;	// L1, 32K -			i-cache-size = <0x8000>;	// L1, 32K -			timebase-frequency = <0>;	// From uboot -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>; -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <0x00000000 0x10000000>; -	}; +/include/ "sbc8548-pre.dtsi" +/{  	localbus@e0000000 {  		#address-cells = <2>;  		#size-cells = <1>; @@ -63,23 +28,25 @@  			  0x3 0x0 0xf0000000 0x04000000		/*64MB SDRAM*/  			  0x4 0x0 0xf4000000 0x04000000 	/*64MB SDRAM*/  			  0x5 0x0 0xf8000000 0x00b10000		/* EPLD */ -			  0x6 0x0 0xfb800000 0x04000000>;	/*64MB Flash*/ +			  0x6 0x0 0xec000000 0x04000000>;	/*64MB Flash*/  		flash@0,0 {  			#address-cells = <1>;  			#size-cells = <1>; -			compatible = "cfi-flash"; +			compatible = "intel,JS28F640", "cfi-flash";  			reg = <0x0 0x0 0x800000>;  			bank-width = <1>;  			device-width = <1>;  			partition@0x0 {  				label = "space"; -				reg = <0x00000000 0x00100000>; +				/* FF800000 -> FFF9FFFF */ +				reg = <0x00000000 0x007a0000>;  			}; -			partition@0x100000 { +			partition@0x7a0000 {  				label = "bootloader"; -				reg = <0x00100000 0x00700000>; +				/* FFFA0000 -> FFFFFFFF */ +				reg = <0x007a0000 0x00060000>;  				read-only;  			};  		}; @@ -122,307 +89,22 @@  			#address-cells = <1>;  			#size-cells = <1>;  			reg = <0x6 0x0 0x04000000>; -			compatible = "cfi-flash"; +			compatible = "intel,JS28F128", "cfi-flash";  			bank-width = <4>;  			device-width = <1>;  			partition@0x0 { +				label = "space"; +				/* EC000000 -> EFEFFFFF */ +				reg = <0x00000000 0x03f00000>; +			}; +			partition@0x03f00000 {  				label = "bootloader"; -				reg = <0x00000000 0x00100000>; +				/* EFF00000 -> EFFFFFFF */ +				reg = <0x03f00000 0x00100000>;  				read-only;  			}; -			partition@0x00100000 { -				label = "file-system"; -				reg = <0x00100000 0x01f00000>; -			}; -			partition@0x02000000 { -				label = "boot-config"; -				reg = <0x02000000 0x00100000>; -			}; -			partition@0x02100000 { -				label = "space"; -				reg = <0x02100000 0x01f00000>; -			};                  };          }; - -	soc8548@e0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		ranges = <0x00000000 0xe0000000 0x00100000>; -		bus-frequency = <0>; -		compatible = "simple-bus"; - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <10>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8548-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8548-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <0x12 0x2>; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8548-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <0x20>;	// 32 bytes -			cache-size = <0x80000>;	// L2, 512K -			interrupt-parent = <&mpic>; -			interrupts = <0x10 0x2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <0x2b 0x2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <0x2b 0x2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8548-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8548-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8548-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8548-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi0>; -			phy-handle = <&phy0>; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; - -				phy0: ethernet-phy@19 { -					interrupt-parent = <&mpic>; -					interrupts = <0x6 0x1>; -					reg = <0x19>; -					device_type = "ethernet-phy"; -				}; -				phy1: ethernet-phy@1a { -					interrupt-parent = <&mpic>; -					interrupts = <0x7 0x1>; -					reg = <0x1a>; -					device_type = "ethernet-phy"; -				}; -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet1: ethernet@25000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "eTSEC"; -			compatible = "gianfar"; -			reg = <0x25000 0x1000>; -			ranges = <0x0 0x25000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi1>; -			phy-handle = <&phy1>; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi1: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		serial0: serial@4500 { -			cell-index = <0>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4500 0x100>;	// reg base, size -			clock-frequency = <0>;	// should we fill in in uboot? -			interrupts = <0x2a 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		serial1: serial@4600 { -			cell-index = <1>; -			device_type = "serial"; -			compatible = "ns16550"; -			reg = <0x4600 0x100>;	// reg base, size -			clock-frequency = <0>;	// should we fill in in uboot? -			interrupts = <0x2a 0x2>; -			interrupt-parent = <&mpic>; -		}; - -		global-utilities@e0000 {	//global utilities reg -			compatible = "fsl,mpc8548-guts"; -			reg = <0xe0000 0x1000>; -			fsl,has-rstcr; -		}; - -		crypto@30000 { -			compatible = "fsl,sec2.1", "fsl,sec2.0"; -			reg = <0x30000 0x10000>; -			interrupts = <45 2>; -			interrupt-parent = <&mpic>; -			fsl,num-channels = <4>; -			fsl,channel-fifo-len = <24>; -			fsl,exec-units-mask = <0xfe>; -			fsl,descriptor-types-mask = <0x12b0ebf>; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			reg = <0x40000 0x40000>; -			compatible = "chrp,open-pic"; -			device_type = "open-pic"; -		}; -	}; - -	pci0: pci@e0008000 { -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < -			/* IDSEL 0x01 (PCI-X slot) @66MHz */ -			0x0800 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x0800 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x0800 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x0800 0x0 0x0 0x4 &mpic 0x1 0x1 - -			/* IDSEL 0x11 (PCI, 3.3V 32bit) @33MHz */ -			0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x8800 0x0 0x0 0x4 &mpic 0x1 0x1>; - -		interrupt-parent = <&mpic>; -		interrupts = <0x18 0x2>; -		bus-range = <0 0>; -		ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x10000000 -			  0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00800000>; -		clock-frequency = <66000000>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe0008000 0x1000>; -		compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; -		device_type = "pci"; -	}; - -	pci1: pcie@e000a000 { -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < - -			/* IDSEL 0x0 (PEX) */ -			0x0000 0x0 0x0 0x1 &mpic 0x0 0x1 -			0x0000 0x0 0x0 0x2 &mpic 0x1 0x1 -			0x0000 0x0 0x0 0x3 &mpic 0x2 0x1 -			0x0000 0x0 0x0 0x4 &mpic 0x3 0x1>; - -		interrupt-parent = <&mpic>; -		interrupts = <0x1a 0x2>; -		bus-range = <0x0 0xff>; -		ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 -			  0x01000000 0x0 0x00000000 0xe2800000 0x0 0x08000000>; -		clock-frequency = <33000000>; -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		reg = <0xe000a000 0x1000>; -		compatible = "fsl,mpc8548-pcie"; -		device_type = "pci"; -		pcie@0 { -			reg = <0x0 0x0 0x0 0x0 0x0>; -			#size-cells = <2>; -			#address-cells = <3>; -			device_type = "pci"; -			ranges = <0x02000000 0x0 0xa0000000 -				  0x02000000 0x0 0xa0000000 -				  0x0 0x10000000 - -				  0x01000000 0x0 0x00000000 -				  0x01000000 0x0 0x00000000 -				  0x0 0x00800000>; -		}; -	};  }; + +/include/ "sbc8548-post.dtsi" diff --git a/arch/powerpc/boot/dts/sbc8560.dts b/arch/powerpc/boot/dts/sbc8560.dts deleted file mode 100644 index 9e13ed8a119..00000000000 --- a/arch/powerpc/boot/dts/sbc8560.dts +++ /dev/null @@ -1,406 +0,0 @@ -/* - * SBC8560 Device Tree Source - * - * Copyright 2007 Wind River Systems Inc. - * - * Paul Gortmaker (see MAINTAINERS for contact information) - * - * 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. - */ - -/dts-v1/; - -/ { -	model = "SBC8560"; -	compatible = "SBC8560"; -	#address-cells = <1>; -	#size-cells = <1>; - -	aliases { -		ethernet0 = &enet0; -		ethernet1 = &enet1; -		ethernet2 = &enet2; -		ethernet3 = &enet3; -		serial0 = &serial0; -		serial1 = &serial1; -		pci0 = &pci0; -	}; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,8560@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <0x20>;	// 32 bytes -			i-cache-line-size = <0x20>;	// 32 bytes -			d-cache-size = <0x8000>;	// L1, 32K -			i-cache-size = <0x8000>;	// L1, 32K -			timebase-frequency = <0>;	// From uboot -			bus-frequency = <0>; -			clock-frequency = <0>; -			next-level-cache = <&L2>; -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <0x00000000 0x20000000>; -	}; - -	soc@ff700000 { -		#address-cells = <1>; -		#size-cells = <1>; -		device_type = "soc"; -		ranges = <0x0 0xff700000 0x00100000>; -		clock-frequency = <0>; - -		ecm-law@0 { -			compatible = "fsl,ecm-law"; -			reg = <0x0 0x1000>; -			fsl,num-laws = <8>; -		}; - -		ecm@1000 { -			compatible = "fsl,mpc8560-ecm", "fsl,ecm"; -			reg = <0x1000 0x1000>; -			interrupts = <17 2>; -			interrupt-parent = <&mpic>; -		}; - -		memory-controller@2000 { -			compatible = "fsl,mpc8560-memory-controller"; -			reg = <0x2000 0x1000>; -			interrupt-parent = <&mpic>; -			interrupts = <0x12 0x2>; -		}; - -		L2: l2-cache-controller@20000 { -			compatible = "fsl,mpc8560-l2-cache-controller"; -			reg = <0x20000 0x1000>; -			cache-line-size = <0x20>;	// 32 bytes -			cache-size = <0x40000>;		// L2, 256K -			interrupt-parent = <&mpic>; -			interrupts = <0x10 0x2>; -		}; - -		i2c@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <0>; -			compatible = "fsl-i2c"; -			reg = <0x3000 0x100>; -			interrupts = <0x2b 0x2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		i2c@3100 { -			#address-cells = <1>; -			#size-cells = <0>; -			cell-index = <1>; -			compatible = "fsl-i2c"; -			reg = <0x3100 0x100>; -			interrupts = <0x2b 0x2>; -			interrupt-parent = <&mpic>; -			dfsrr; -		}; - -		dma@21300 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8560-dma", "fsl,eloplus-dma"; -			reg = <0x21300 0x4>; -			ranges = <0x0 0x21100 0x200>; -			cell-index = <0>; -			dma-channel@0 { -				compatible = "fsl,mpc8560-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x0 0x80>; -				cell-index = <0>; -				interrupt-parent = <&mpic>; -				interrupts = <20 2>; -			}; -			dma-channel@80 { -				compatible = "fsl,mpc8560-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x80 0x80>; -				cell-index = <1>; -				interrupt-parent = <&mpic>; -				interrupts = <21 2>; -			}; -			dma-channel@100 { -				compatible = "fsl,mpc8560-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x100 0x80>; -				cell-index = <2>; -				interrupt-parent = <&mpic>; -				interrupts = <22 2>; -			}; -			dma-channel@180 { -				compatible = "fsl,mpc8560-dma-channel", -						"fsl,eloplus-dma-channel"; -				reg = <0x180 0x80>; -				cell-index = <3>; -				interrupt-parent = <&mpic>; -				interrupts = <23 2>; -			}; -		}; - -		enet0: ethernet@24000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <0>; -			device_type = "network"; -			model = "TSEC"; -			compatible = "gianfar"; -			reg = <0x24000 0x1000>; -			ranges = <0x0 0x24000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi0>; -			phy-handle = <&phy0>; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-mdio"; -				reg = <0x520 0x20>; -				phy0: ethernet-phy@19 { -					interrupt-parent = <&mpic>; -					interrupts = <0x6 0x1>; -					reg = <0x19>; -					device_type = "ethernet-phy"; -				}; -				phy1: ethernet-phy@1a { -					interrupt-parent = <&mpic>; -					interrupts = <0x7 0x1>; -					reg = <0x1a>; -					device_type = "ethernet-phy"; -				}; -				phy2: ethernet-phy@1b { -					interrupt-parent = <&mpic>; -					interrupts = <0x8 0x1>; -					reg = <0x1b>; -					device_type = "ethernet-phy"; -				}; -				phy3: ethernet-phy@1c { -					interrupt-parent = <&mpic>; -					interrupts = <0x8 0x1>; -					reg = <0x1c>; -					device_type = "ethernet-phy"; -				}; -				tbi0: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		enet1: ethernet@25000 { -			#address-cells = <1>; -			#size-cells = <1>; -			cell-index = <1>; -			device_type = "network"; -			model = "TSEC"; -			compatible = "gianfar"; -			reg = <0x25000 0x1000>; -			ranges = <0x0 0x25000 0x1000>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>; -			interrupt-parent = <&mpic>; -			tbi-handle = <&tbi1>; -			phy-handle = <&phy1>; - -			mdio@520 { -				#address-cells = <1>; -				#size-cells = <0>; -				compatible = "fsl,gianfar-tbi"; -				reg = <0x520 0x20>; - -				tbi1: tbi-phy@11 { -					reg = <0x11>; -					device_type = "tbi-phy"; -				}; -			}; -		}; - -		mpic: pic@40000 { -			interrupt-controller; -			#address-cells = <0>; -			#interrupt-cells = <2>; -			compatible = "chrp,open-pic"; -			reg = <0x40000 0x40000>; -			device_type = "open-pic"; -		}; - -		cpm@919c0 { -			#address-cells = <1>; -			#size-cells = <1>; -			compatible = "fsl,mpc8560-cpm", "fsl,cpm2"; -			reg = <0x919c0 0x30>; -			ranges; - -			muram@80000 { -				#address-cells = <1>; -				#size-cells = <1>; -				ranges = <0x0 0x80000 0x10000>; - -				data@0 { -					compatible = "fsl,cpm-muram-data"; -					reg = <0x0 0x4000 0x9000 0x2000>; -				}; -			}; - -			brg@919f0 { -				compatible = "fsl,mpc8560-brg", -				             "fsl,cpm2-brg", -				             "fsl,cpm-brg"; -				reg = <0x919f0 0x10 0x915f0 0x10>; -				clock-frequency = <165000000>; -			}; - -			cpmpic: pic@90c00 { -				interrupt-controller; -				#address-cells = <0>; -				#interrupt-cells = <2>; -				interrupts = <0x2e 0x2>; -				interrupt-parent = <&mpic>; -				reg = <0x90c00 0x80>; -				compatible = "fsl,mpc8560-cpm-pic", "fsl,cpm2-pic"; -			}; - -			enet2: ethernet@91320 { -				device_type = "network"; -				compatible = "fsl,mpc8560-fcc-enet", -				             "fsl,cpm2-fcc-enet"; -				reg = <0x91320 0x20 0x88500 0x100 0x913b0 0x1>; -				local-mac-address = [ 00 00 00 00 00 00 ]; -				fsl,cpm-command = <0x16200300>; -				interrupts = <0x21 0x8>; -				interrupt-parent = <&cpmpic>; -				phy-handle = <&phy2>; -			}; - -			enet3: ethernet@91340 { -				device_type = "network"; -				compatible = "fsl,mpc8560-fcc-enet", -				             "fsl,cpm2-fcc-enet"; -				reg = <0x91340 0x20 0x88600 0x100 0x913d0 0x1>; -				local-mac-address = [ 00 00 00 00 00 00 ]; -				fsl,cpm-command = <0x1a400300>; -				interrupts = <0x22 0x8>; -				interrupt-parent = <&cpmpic>; -				phy-handle = <&phy3>; -			}; -		}; - -		global-utilities@e0000 { -			compatible = "fsl,mpc8560-guts"; -			reg = <0xe0000 0x1000>; -		}; -	}; - -	pci0: pci@ff708000 { -		#interrupt-cells = <1>; -		#size-cells = <2>; -		#address-cells = <3>; -		compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; -		device_type = "pci"; -		reg = <0xff708000 0x1000>; -		clock-frequency = <66666666>; -		interrupt-map-mask = <0xf800 0x0 0x0 0x7>; -		interrupt-map = < - -			/* IDSEL 0x02 */ -			0x1000 0x0 0x0 0x1 &mpic 0x2 0x1 -			0x1000 0x0 0x0 0x2 &mpic 0x3 0x1 -			0x1000 0x0 0x0 0x3 &mpic 0x4 0x1 -			0x1000 0x0 0x0 0x4 &mpic 0x5 0x1>; - -		interrupt-parent = <&mpic>; -		interrupts = <0x18 0x2>; -		bus-range = <0x0 0x0>; -		ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000 -			  0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00100000>; -	}; - -	localbus@ff705000 { -		compatible = "fsl,mpc8560-localbus"; -		#address-cells = <2>; -		#size-cells = <1>; -		reg = <0xff705000 0x100>;	// BRx, ORx, etc. - -		ranges = < -			0x0 0x0 0xff800000 0x0800000	// 8MB boot flash -			0x1 0x0 0xe4000000 0x4000000	// 64MB flash -			0x3 0x0 0x20000000 0x4000000	// 64MB SDRAM -			0x4 0x0 0x24000000 0x4000000	// 64MB SDRAM -			0x5 0x0 0xfc000000 0x0c00000	// EPLD -			0x6 0x0 0xe0000000 0x4000000	// 64MB flash -			0x7 0x0 0x80000000 0x0200000	// ATM1,2 -		>; - -		epld@5,0 { -			compatible = "wrs,epld-localbus"; -			#address-cells = <2>; -			#size-cells = <1>; -			reg = <0x5 0x0 0xc00000>; -			ranges = < -				0x0 0x0 0x5 0x000000 0x1fff	// LED disp. -				0x1 0x0 0x5 0x100000 0x1fff	// switches -				0x2 0x0 0x5 0x200000 0x1fff	// ID reg. -				0x3 0x0 0x5 0x300000 0x1fff	// status reg. -				0x4 0x0 0x5 0x400000 0x1fff	// reset reg. -				0x5 0x0 0x5 0x500000 0x1fff	// Wind port -				0x7 0x0 0x5 0x700000 0x1fff	// UART #1 -				0x8 0x0 0x5 0x800000 0x1fff	// UART #2 -				0x9 0x0 0x5 0x900000 0x1fff	// RTC -				0xb 0x0 0x5 0xb00000 0x1fff	// EEPROM -			>; - -			bidr@2,0 { -				compatible = "wrs,sbc8560-bidr"; -				reg = <0x2 0x0 0x10>; -			}; - -			bcsr@3,0 { -				compatible = "wrs,sbc8560-bcsr"; -				reg = <0x3 0x0 0x10>; -			}; - -			brstcr@4,0 { -				compatible = "wrs,sbc8560-brstcr"; -				reg = <0x4 0x0 0x10>; -			}; - -			serial0: serial@7,0 { -				device_type = "serial"; -				compatible = "ns16550"; -				reg = <0x7 0x0 0x100>; -				clock-frequency = <1843200>; -				interrupts = <0x9 0x2>; -				interrupt-parent = <&mpic>; -			}; - -			serial1: serial@8,0 { -				device_type = "serial"; -				compatible = "ns16550"; -				reg = <0x8 0x0 0x100>; -				clock-frequency = <1843200>; -				interrupts = <0xa 0x2>; -				interrupt-parent = <&mpic>; -			}; - -			rtc@9,0 { -				compatible = "m48t59"; -				reg = <0x9 0x0 0x1fff>; -			}; -		}; -	}; -}; diff --git a/arch/powerpc/boot/dts/sbc8641d.dts b/arch/powerpc/boot/dts/sbc8641d.dts index ee5538feb45..631ede72e22 100644 --- a/arch/powerpc/boot/dts/sbc8641d.dts +++ b/arch/powerpc/boot/dts/sbc8641d.dts @@ -230,25 +230,21 @@  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <0x1f>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@0 {  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <0>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@1 {  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <1>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@2 {  					interrupt-parent = <&mpic>;  					interrupts = <10 1>;  					reg = <2>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -347,7 +343,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -357,7 +353,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <28 2>; diff --git a/arch/powerpc/boot/dts/sequoia.dts b/arch/powerpc/boot/dts/sequoia.dts index 739dd0da241..b1d329246b0 100644 --- a/arch/powerpc/boot/dts/sequoia.dts +++ b/arch/powerpc/boot/dts/sequoia.dts @@ -110,6 +110,18 @@  			dcr-reg = <0x010 0x002>;  		}; +		CRYPTO: crypto@e0100000 { +			compatible = "amcc,ppc440epx-crypto","amcc,ppc4xx-crypto"; +			reg = <0 0xE0100000 0x80400>; +			interrupt-parent = <&UIC0>; +			interrupts = <0x17 0x4>; +		}; + +		rng@e0120000 { +			compatible = "amcc,ppc440epx-rng","amcc,ppc4xx-rng"; +			reg = <0 0xE0120000 0x150>; +		}; +  		DMA0: dma {  			compatible = "ibm,dma-440epx", "ibm,dma-4xx";  			dcr-reg = <0x100 0x027>; diff --git a/arch/powerpc/boot/dts/socrates.dts b/arch/powerpc/boot/dts/socrates.dts index feb4ef6bd14..134a5ff917e 100644 --- a/arch/powerpc/boot/dts/socrates.dts +++ b/arch/powerpc/boot/dts/socrates.dts @@ -199,7 +199,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -209,7 +209,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -240,6 +240,8 @@  		#address-cells = <2>;  		#size-cells = <1>;  		reg = <0xe0005000 0x40>; +		interrupt-parent = <&mpic>; +		interrupts = <19 2>;  		ranges = <0 0 0xfc000000 0x04000000  			  2 0 0xc8000000 0x04000000 diff --git a/arch/powerpc/boot/dts/storcenter.dts b/arch/powerpc/boot/dts/storcenter.dts index eab680ce10d..2a555738517 100644 --- a/arch/powerpc/boot/dts/storcenter.dts +++ b/arch/powerpc/boot/dts/storcenter.dts @@ -74,7 +74,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x20>;  			clock-frequency = <97553800>; /* Hz */  			current-speed = <115200>; @@ -85,7 +85,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x20>;  			clock-frequency = <97553800>; /* Hz */  			current-speed = <9600>; diff --git a/arch/powerpc/boot/dts/stx_gp3_8560.dts b/arch/powerpc/boot/dts/stx_gp3_8560.dts index b670d03fbcd..78a72ee4820 100644 --- a/arch/powerpc/boot/dts/stx_gp3_8560.dts +++ b/arch/powerpc/boot/dts/stx_gp3_8560.dts @@ -161,13 +161,11 @@  					interrupt-parent = <&mpic>;  					interrupts = <5 4>;  					reg = <2>; -					device_type = "ethernet-phy";  				};  				phy4: ethernet-phy@4 {  					interrupt-parent = <&mpic>;  					interrupts = <5 4>;  					reg = <4>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; diff --git a/arch/powerpc/boot/dts/stxssa8555.dts b/arch/powerpc/boot/dts/stxssa8555.dts index 49efd44057d..859f854ba53 100644 --- a/arch/powerpc/boot/dts/stxssa8555.dts +++ b/arch/powerpc/boot/dts/stxssa8555.dts @@ -164,13 +164,11 @@  					interrupt-parent = <&mpic>;  					interrupts = <5 1>;  					reg = <0x2>; -					device_type = "ethernet-phy";  				};  				phy1: ethernet-phy@4 {  					interrupt-parent = <&mpic>;  					interrupts = <5 1>;  					reg = <0x4>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -210,7 +208,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>; 	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; @@ -220,7 +218,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; diff --git a/arch/powerpc/boot/dts/t1040qds.dts b/arch/powerpc/boot/dts/t1040qds.dts new file mode 100644 index 00000000000..973c29c2f56 --- /dev/null +++ b/arch/powerpc/boot/dts/t1040qds.dts @@ -0,0 +1,46 @@ +/* + * T1040QDS Device Tree Source + * + * Copyright 2013 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/t104xsi-pre.dtsi" +/include/ "t104xqds.dtsi" + +/ { +	model = "fsl,T1040QDS"; +	compatible = "fsl,T1040QDS"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; +}; + +/include/ "fsl/t1040si-post.dtsi" diff --git a/arch/powerpc/boot/dts/t1042qds.dts b/arch/powerpc/boot/dts/t1042qds.dts new file mode 100644 index 00000000000..45bd0375215 --- /dev/null +++ b/arch/powerpc/boot/dts/t1042qds.dts @@ -0,0 +1,46 @@ +/* + * T1042QDS Device Tree Source + * + * Copyright 2013 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/t104xsi-pre.dtsi" +/include/ "t104xqds.dtsi" + +/ { +	model = "fsl,T1042QDS"; +	compatible = "fsl,T1042QDS"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; +}; + +/include/ "fsl/t1042si-post.dtsi" diff --git a/arch/powerpc/boot/dts/t104xqds.dtsi b/arch/powerpc/boot/dts/t104xqds.dtsi new file mode 100644 index 00000000000..234f4b596c5 --- /dev/null +++ b/arch/powerpc/boot/dts/t104xqds.dtsi @@ -0,0 +1,166 @@ +/* + * T104xQDS Device Tree Source + * + * Copyright 2013 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. + */ + +/ { +	model = "fsl,T1040QDS"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	ifc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x2000>; +		ranges = <0 0 0xf 0xe8000000 0x08000000 +			  2 0 0xf 0xff800000 0x00010000 +			  3 0 0xf 0xffdf0000 0x00008000>; + +		nor@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "cfi-flash"; +			reg = <0x0 0x0 0x8000000>; + +			bank-width = <2>; +			device-width = <1>; +		}; + +		nand@2,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,ifc-nand"; +			reg = <0x2 0x0 0x10000>; +		}; + +		board-control@3,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,fpga-qixis"; +			reg = <3 0 0x300>; +		}; +	}; + +	memory { +		device_type = "memory"; +	}; + +	dcsr: dcsr@f00000000 { +		ranges = <0x00000000 0xf 0x00000000 0x01072000>; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; + +		spi@110000 { +			flash@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "micron,n25q128a11"; +				reg = <0>; +				spi-max-frequency = <10000000>; /* input clock */ +			}; +		}; + +		i2c@118000 { +			pca9547@77 { +				compatible = "philips,pca9547"; +				reg = <0x77>; +			}; +			rtc@68 { +				compatible = "dallas,ds3232"; +				reg = <0x68>; +				interrupts = <0x1 0x1 0 0>; +			}; +		}; +	}; + +	pci0: pcie@ffe240000 { +		reg = <0xf 0xfe240000 0 0x10000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x10000000 +			  0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x10000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci1: pcie@ffe250000 { +		reg = <0xf 0xfe250000 0 0x10000>; +		ranges = <0x02000000 0x0 0xe0000000 0xc 0x10000000 0x0 0x10000000 +			  0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x10000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci2: pcie@ffe260000 { +		reg = <0xf 0xfe260000 0 0x10000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x20000000 0 0x10000000 +			  0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x10000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci3: pcie@ffe270000 { +		reg = <0xf 0xfe270000 0 0x10000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x30000000 0 0x10000000 +			  0x01000000 0 0x00000000 0xf 0xf8030000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x10000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; +}; diff --git a/arch/powerpc/boot/dts/t4240emu.dts b/arch/powerpc/boot/dts/t4240emu.dts new file mode 100644 index 00000000000..bc12127a03f --- /dev/null +++ b/arch/powerpc/boot/dts/t4240emu.dts @@ -0,0 +1,281 @@ +/* + * T4240 emulator Device Tree Source + * + * Copyright 2013 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. + */ + +/dts-v1/; + +/include/ "fsl/e6500_power_isa.dtsi" +/ { +	compatible = "fsl,T4240"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	aliases { +		ccsr = &soc; + +		serial0 = &serial0; +		serial1 = &serial1; +		serial2 = &serial2; +		serial3 = &serial3; +		dma0 = &dma0; +		dma1 = &dma1; +	}; + +	cpus { +		#address-cells = <1>; +		#size-cells = <0>; + +		cpu0: PowerPC,e6500@0 { +			device_type = "cpu"; +			reg = <0 1>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu1: PowerPC,e6500@2 { +			device_type = "cpu"; +			reg = <2 3>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu2: PowerPC,e6500@4 { +			device_type = "cpu"; +			reg = <4 5>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x80000000>; +		}; +		cpu3: PowerPC,e6500@6 { +			device_type = "cpu"; +			reg = <6 7>; +			next-level-cache = <&L2_1>; +			fsl,portid-mapping = <0x80000000>; +		}; + +		cpu4: PowerPC,e6500@8 { +			device_type = "cpu"; +			reg = <8 9>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x40000000>; +		}; +		cpu5: PowerPC,e6500@10 { +			device_type = "cpu"; +			reg = <10 11>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x40000000>; +		}; +		cpu6: PowerPC,e6500@12 { +			device_type = "cpu"; +			reg = <12 13>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x40000000>; +		}; +		cpu7: PowerPC,e6500@14 { +			device_type = "cpu"; +			reg = <14 15>; +			next-level-cache = <&L2_2>; +			fsl,portid-mapping = <0x40000000>; +		}; + +		cpu8: PowerPC,e6500@16 { +			device_type = "cpu"; +			reg = <16 17>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x20000000>; +		}; +		cpu9: PowerPC,e6500@18 { +			device_type = "cpu"; +			reg = <18 19>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x20000000>; +		}; +		cpu10: PowerPC,e6500@20 { +			device_type = "cpu"; +			reg = <20 21>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x20000000>; +		}; +		cpu11: PowerPC,e6500@22 { +			device_type = "cpu"; +			reg = <22 23>; +			next-level-cache = <&L2_3>; +			fsl,portid-mapping = <0x20000000>; +		}; +	}; +}; + +/ { +	model = "fsl,T4240QDS"; +	compatible = "fsl,T4240EMU", "fsl,T4240QDS"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	ifc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x2000>; +		ranges = <0 0 0xf 0xe8000000 0x08000000 +			  2 0 0xf 0xff800000 0x00010000 +			  3 0 0xf 0xffdf0000 0x00008000>; + +		nor@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "cfi-flash"; +			reg = <0x0 0x0 0x8000000>; + +			bank-width = <2>; +			device-width = <1>; +		}; + +	}; + +	memory { +		device_type = "memory"; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; + +	}; +}; + +&ifc { +	#address-cells = <2>; +	#size-cells = <1>; +	compatible = "fsl,ifc", "simple-bus"; +	interrupts = <25 2 0 0>; +}; + +&soc { +	#address-cells = <1>; +	#size-cells = <1>; +	device_type = "soc"; +	compatible = "simple-bus"; + +	soc-sram-error { +		compatible = "fsl,soc-sram-error"; +		interrupts = <16 2 1 29>; +	}; + +	corenet-law@0 { +		compatible = "fsl,corenet-law"; +		reg = <0x0 0x1000>; +		fsl,num-laws = <32>; +	}; + +	ddr1: memory-controller@8000 { +		compatible = "fsl,qoriq-memory-controller-v4.7", +				"fsl,qoriq-memory-controller"; +		reg = <0x8000 0x1000>; +		interrupts = <16 2 1 23>; +	}; + +	ddr2: memory-controller@9000 { +		compatible = "fsl,qoriq-memory-controller-v4.7", +				"fsl,qoriq-memory-controller"; +		reg = <0x9000 0x1000>; +		interrupts = <16 2 1 22>; +	}; + +	ddr3: memory-controller@a000 { +		compatible = "fsl,qoriq-memory-controller-v4.7", +				"fsl,qoriq-memory-controller"; +		reg = <0xa000 0x1000>; +		interrupts = <16 2 1 21>; +	}; + +	cpc: l3-cache-controller@10000 { +		compatible = "fsl,t4240-l3-cache-controller", "cache"; +		reg = <0x10000 0x1000 +		       0x11000 0x1000 +		       0x12000 0x1000>; +		interrupts = <16 2 1 27 +			      16 2 1 26 +			      16 2 1 25>; +	}; + +	corenet-cf@18000 { +		compatible = "fsl,corenet2-cf", "fsl,corenet-cf"; +		reg = <0x18000 0x1000>; +		interrupts = <16 2 1 31>; +		fsl,ccf-num-csdids = <32>; +		fsl,ccf-num-snoopids = <32>; +	}; + +	iommu@20000 { +		compatible = "fsl,pamu-v1.0", "fsl,pamu"; +		reg = <0x20000 0x6000>; +		fsl,portid-mapping = <0x8000>; +		interrupts = < +			24 2 0 0 +			16 2 1 30>; +	}; + +/include/ "fsl/qoriq-mpic.dtsi" + +	guts: global-utilities@e0000 { +		compatible = "fsl,t4240-device-config", "fsl,qoriq-device-config-2.0"; +		reg = <0xe0000 0xe00>; +		fsl,has-rstcr; +		fsl,liodn-bits = <12>; +	}; + +	clockgen: global-utilities@e1000 { +		compatible = "fsl,t4240-clockgen", "fsl,qoriq-clockgen-2.0"; +		reg = <0xe1000 0x1000>; +	}; + +/include/ "fsl/qoriq-dma-0.dtsi" +/include/ "fsl/qoriq-dma-1.dtsi" + +/include/ "fsl/qoriq-i2c-0.dtsi" +/include/ "fsl/qoriq-i2c-1.dtsi" +/include/ "fsl/qoriq-duart-0.dtsi" +/include/ "fsl/qoriq-duart-1.dtsi" + +	L2_1: l2-cache-controller@c20000 { +		compatible = "fsl,t4240-l2-cache-controller"; +		reg = <0xc20000 0x40000>; +		next-level-cache = <&cpc>; +	}; +	L2_2: l2-cache-controller@c60000 { +		compatible = "fsl,t4240-l2-cache-controller"; +		reg = <0xc60000 0x40000>; +		next-level-cache = <&cpc>; +	}; +	L2_3: l2-cache-controller@ca0000 { +		compatible = "fsl,t4240-l2-cache-controller"; +		reg = <0xca0000 0x40000>; +		next-level-cache = <&cpc>; +	}; +}; diff --git a/arch/powerpc/boot/dts/t4240qds.dts b/arch/powerpc/boot/dts/t4240qds.dts new file mode 100644 index 00000000000..97683f6a293 --- /dev/null +++ b/arch/powerpc/boot/dts/t4240qds.dts @@ -0,0 +1,283 @@ +/* + * T4240QDS 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/t4240si-pre.dtsi" + +/ { +	model = "fsl,T4240QDS"; +	compatible = "fsl,T4240QDS"; +	#address-cells = <2>; +	#size-cells = <2>; +	interrupt-parent = <&mpic>; + +	ifc: localbus@ffe124000 { +		reg = <0xf 0xfe124000 0 0x2000>; +		ranges = <0 0 0xf 0xe8000000 0x08000000 +			  2 0 0xf 0xff800000 0x00010000 +			  3 0 0xf 0xffdf0000 0x00008000>; + +		nor@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "cfi-flash"; +			reg = <0x0 0x0 0x8000000>; + +			bank-width = <2>; +			device-width = <1>; +		}; + +		nand@2,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "fsl,ifc-nand"; +			reg = <0x2 0x0 0x10000>; + +			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 { +				/* 10MB for Linux Kernel Image */ +				reg = <0x00200000 0x00A00000>; +				label = "NAND Linux Kernel Image"; +			}; + +			partition@C00000 { +				/* 500MB for Root file System Image */ +				reg = <0x00c00000 0x1F400000>; +				label = "NAND RFS Image"; +			}; +		}; + +		board-control@3,0 { +			compatible = "fsl,t4240qds-fpga", "fsl,fpga-qixis"; +			reg = <3 0 0x300>; +		}; +	}; + +	memory { +		device_type = "memory"; +	}; + +	dcsr: dcsr@f00000000 { +		ranges = <0x00000000 0xf 0x00000000 0x01072000>; +	}; + +	soc: soc@ffe000000 { +		ranges = <0x00000000 0xf 0xfe000000 0x1000000>; +		reg = <0xf 0xfe000000 0 0x00001000>; +		spi@110000 { +			flash@0 { +				#address-cells = <1>; +				#size-cells = <1>; +				compatible = "sst,sst25wf040"; +				reg = <0>; +				spi-max-frequency = <40000000>; /* input clock */ +			}; +		}; + +		i2c@118000 { +			mux@77 { +				compatible = "nxp,pca9547"; +				reg = <0x77>; +				#address-cells = <1>; +				#size-cells = <0>; + +				i2c@0 { +					#address-cells = <1>; +					#size-cells = <0>; +					reg = <0>; + +					eeprom@51 { +						compatible = "at24,24c256"; +						reg = <0x51>; +					}; +					eeprom@52 { +						compatible = "at24,24c256"; +						reg = <0x52>; +					}; +					eeprom@53 { +						compatible = "at24,24c256"; +						reg = <0x53>; +					}; +					eeprom@54 { +						compatible = "at24,24c256"; +						reg = <0x54>; +					}; +					eeprom@55 { +						compatible = "at24,24c256"; +						reg = <0x55>; +					}; +					eeprom@56 { +						compatible = "at24,24c256"; +						reg = <0x56>; +					}; +					rtc@68 { +						compatible = "dallas,ds3232"; +						reg = <0x68>; +						interrupts = <0x1 0x1 0 0>; +					}; +				}; + +				i2c@2 { +					#address-cells = <1>; +					#size-cells = <0>; +					reg = <0x2>; + +					ina220@40 { +						compatible = "ti,ina220"; +						reg = <0x40>; +						shunt-resistor = <1000>; +					}; + +					ina220@41 { +						compatible = "ti,ina220"; +						reg = <0x41>; +						shunt-resistor = <1000>; +					}; + +					ina220@44 { +						compatible = "ti,ina220"; +						reg = <0x44>; +						shunt-resistor = <1000>; +					}; + +					ina220@45 { +						compatible = "ti,ina220"; +						reg = <0x45>; +						shunt-resistor = <1000>; +					}; + +					ina220@46 { +						compatible = "ti,ina220"; +						reg = <0x46>; +						shunt-resistor = <1000>; +					}; + +					ina220@47 { +						compatible = "ti,ina220"; +						reg = <0x47>; +						shunt-resistor = <1000>; +					}; +				}; +			}; +		}; + +		sdhc@114000 { +			voltage-ranges = <1800 1800 3300 3300>; +		}; +	}; + +	pci0: pcie@ffe240000 { +		reg = <0xf 0xfe240000 0 0x10000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci1: pcie@ffe250000 { +		reg = <0xf 0xfe250000 0 0x10000>; +		ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 +			  0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci2: pcie@ffe260000 { +		reg = <0xf 0xfe260000 0 0x1000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; + +	pci3: pcie@ffe270000 { +		reg = <0xf 0xfe270000 0 0x10000>; +		ranges = <0x02000000 0 0xe0000000 0xc 0x60000000 0 0x20000000 +			  0x01000000 0 0x00000000 0xf 0xf8030000 0 0x00010000>; +		pcie@0 { +			ranges = <0x02000000 0 0xe0000000 +				  0x02000000 0 0xe0000000 +				  0 0x20000000 + +				  0x01000000 0 0x00000000 +				  0x01000000 0 0x00000000 +				  0 0x00010000>; +		}; +	}; +	rio: rapidio@ffe0c0000 { +		reg = <0xf 0xfe0c0000 0 0x11000>; + +		port1 { +			ranges = <0 0 0xc 0x20000000 0 0x10000000>; +		}; +		port2 { +			ranges = <0 0 0xc 0x30000000 0 0x10000000>; +		}; +	}; +}; + +/include/ "fsl/t4240si-post.dtsi" diff --git a/arch/powerpc/boot/dts/taishan.dts b/arch/powerpc/boot/dts/taishan.dts index 058438f9629..1657ad0bf8a 100644 --- a/arch/powerpc/boot/dts/taishan.dts +++ b/arch/powerpc/boot/dts/taishan.dts @@ -337,7 +337,7 @@  				rx-fifo-size = <4096>;  				tx-fifo-size = <2048>;  				phy-mode = "rgmii"; -				phy-map = <0x00000001>; +				phy-address = <1>;  				rgmii-device = <&RGMII0>;  				rgmii-channel = <0>;   				zmii-device = <&ZMII0>; @@ -361,7 +361,7 @@  				rx-fifo-size = <4096>;  				tx-fifo-size = <2048>;  				phy-mode = "rgmii"; -				phy-map = <0x00000003>; +				phy-address = <3>;  				rgmii-device = <&RGMII0>;  				rgmii-channel = <1>;   				zmii-device = <&ZMII0>; diff --git a/arch/powerpc/boot/dts/tqm8540.dts b/arch/powerpc/boot/dts/tqm8540.dts index 15ca731bc24..91cbd7acd27 100644 --- a/arch/powerpc/boot/dts/tqm8540.dts +++ b/arch/powerpc/boot/dts/tqm8540.dts @@ -172,19 +172,16 @@  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <1>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@2 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -250,7 +247,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>; 	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; @@ -260,7 +257,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; @@ -277,6 +274,48 @@  		};  	}; +	localbus@e0005000 { +		#address-cells = <2>; +		#size-cells = <1>; +		compatible = "fsl,mpc8540-localbus", "fsl,pq3-localbus", +			     "simple-bus"; +		reg = <0xe0005000 0x1000>; +		interrupt-parent = <&mpic>; +		interrupts = <19 2>; + +		ranges = <0x0 0x0 0xfe000000 0x02000000>; + +		nor@0,0 { +			#address-cells = <1>; +			#size-cells = <1>; +			compatible = "cfi-flash"; +			reg = <0x0 0x0 0x02000000>; +			bank-width = <4>; +			device-width = <2>; +			partition@0 { +				label = "kernel"; +				reg = <0x00000000 0x00180000>; +			}; +			partition@180000 { +				label = "root"; +				reg = <0x00180000 0x01dc0000>; +			}; +			partition@1f40000 { +				label = "env1"; +				reg = <0x01f40000 0x00040000>; +			}; +			partition@1f80000 { +				label = "env2"; +				reg = <0x01f80000 0x00040000>; +			}; +			partition@1fc0000 { +				label = "u-boot"; +				reg = <0x01fc0000 0x00040000>; +				read-only; +			}; +		}; +	}; +  	pci0: pci@e0008000 {  		#interrupt-cells = <1>;  		#size-cells = <2>; diff --git a/arch/powerpc/boot/dts/tqm8541.dts b/arch/powerpc/boot/dts/tqm8541.dts index f49d0918131..84dce2d5fc4 100644 --- a/arch/powerpc/boot/dts/tqm8541.dts +++ b/arch/powerpc/boot/dts/tqm8541.dts @@ -172,19 +172,16 @@  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <1>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@2 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -224,7 +221,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>; 	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; @@ -234,7 +231,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; diff --git a/arch/powerpc/boot/dts/tqm8548-bigflash.dts b/arch/powerpc/boot/dts/tqm8548-bigflash.dts index 5dbb36edb03..7a333dd02d9 100644 --- a/arch/powerpc/boot/dts/tqm8548-bigflash.dts +++ b/arch/powerpc/boot/dts/tqm8548-bigflash.dts @@ -185,31 +185,26 @@  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <1>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@1 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <3>; -					device_type = "ethernet-phy";  				};  				phy4: ethernet-phy@4 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <4>; -					device_type = "ethernet-phy";  				};  				phy5: ethernet-phy@5 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <5>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -305,7 +300,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;	// reg base, size  			clock-frequency = <0>;	// should we fill in in uboot?  			current-speed = <115200>; @@ -316,7 +311,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;	// reg base, size  			clock-frequency = <0>;	// should we fill in in uboot?  			current-speed = <115200>; @@ -346,11 +341,13 @@  		#address-cells = <2>;  		#size-cells = <1>;  		reg = <0xa0005000 0x100>;	// BRx, ORx, etc. +		interrupt-parent = <&mpic>; +		interrupts = <19 2>;  		ranges = <  			0 0x0 0xfc000000 0x04000000	// NOR FLASH bank 1  			1 0x0 0xf8000000 0x08000000	// NOR FLASH bank 0 -			2 0x0 0xa3000000 0x00008000	// CAN (2 x i82527) +			2 0x0 0xa3000000 0x00008000	// CAN (2 x CC770)  			3 0x0 0xa3010000 0x00008000	// NAND FLASH  		>; @@ -391,18 +388,27 @@  		};  		/* Note: CAN support needs be enabled in U-Boot */ -		can0@2,0 { -			compatible = "intel,82527"; // Bosch CC770 +		can@2,0 { +			compatible = "bosch,cc770"; // Bosch CC770  			reg = <2 0x0 0x100>;  			interrupts = <4 1>;  			interrupt-parent = <&mpic>; +			bosch,external-clock-frequency = <16000000>; +			bosch,disconnect-rx1-input; +			bosch,disconnect-tx1-output; +			bosch,iso-low-speed-mux; +			bosch,clock-out-frequency = <16000000>;  		}; -		can1@2,100 { -			compatible = "intel,82527"; // Bosch CC770 +		can@2,100 { +			compatible = "bosch,cc770"; // Bosch CC770  			reg = <2 0x100 0x100>;  			interrupts = <4 1>;  			interrupt-parent = <&mpic>; +			bosch,external-clock-frequency = <16000000>; +			bosch,disconnect-rx1-input; +			bosch,disconnect-tx1-output; +			bosch,iso-low-speed-mux;  		};  		/* Note: NAND support needs to be enabled in U-Boot */ diff --git a/arch/powerpc/boot/dts/tqm8548.dts b/arch/powerpc/boot/dts/tqm8548.dts index a050ae42710..c737caff10c 100644 --- a/arch/powerpc/boot/dts/tqm8548.dts +++ b/arch/powerpc/boot/dts/tqm8548.dts @@ -185,31 +185,26 @@  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <1>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@1 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <3>; -					device_type = "ethernet-phy";  				};  				phy4: ethernet-phy@4 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <4>; -					device_type = "ethernet-phy";  				};  				phy5: ethernet-phy@5 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <5>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -305,7 +300,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;	// reg base, size  			clock-frequency = <0>;	// should we fill in in uboot?  			current-speed = <115200>; @@ -316,7 +311,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;	// reg base, size  			clock-frequency = <0>;	// should we fill in in uboot?  			current-speed = <115200>; @@ -346,11 +341,13 @@  		#address-cells = <2>;  		#size-cells = <1>;  		reg = <0xe0005000 0x100>;	// BRx, ORx, etc. +		interrupt-parent = <&mpic>; +		interrupts = <19 2>;  		ranges = <  			0 0x0 0xfc000000 0x04000000	// NOR FLASH bank 1  			1 0x0 0xf8000000 0x08000000	// NOR FLASH bank 0 -			2 0x0 0xe3000000 0x00008000	// CAN (2 x i82527) +			2 0x0 0xe3000000 0x00008000	// CAN (2 x CC770)  			3 0x0 0xe3010000 0x00008000	// NAND FLASH  		>; @@ -391,18 +388,27 @@  		};  		/* Note: CAN support needs be enabled in U-Boot */ -		can0@2,0 { -			compatible = "intel,82527"; // Bosch CC770 +		can@2,0 { +			compatible = "bosch,cc770"; // Bosch CC770  			reg = <2 0x0 0x100>;  			interrupts = <4 1>;  			interrupt-parent = <&mpic>; +			bosch,external-clock-frequency = <16000000>; +			bosch,disconnect-rx1-input; +			bosch,disconnect-tx1-output; +			bosch,iso-low-speed-mux; +			bosch,clock-out-frequency = <16000000>;  		}; -		can1@2,100 { -			compatible = "intel,82527"; // Bosch CC770 +		can@2,100 { +			compatible = "bosch,cc770"; // Bosch CC770  			reg = <2 0x100 0x100>;  			interrupts = <4 1>;  			interrupt-parent = <&mpic>; +			bosch,external-clock-frequency = <16000000>; +			bosch,disconnect-rx1-input; +			bosch,disconnect-tx1-output; +			bosch,iso-low-speed-mux;  		};  		/* Note: NAND support needs to be enabled in U-Boot */ diff --git a/arch/powerpc/boot/dts/tqm8555.dts b/arch/powerpc/boot/dts/tqm8555.dts index 81bad8cd375..d0416a5cddd 100644 --- a/arch/powerpc/boot/dts/tqm8555.dts +++ b/arch/powerpc/boot/dts/tqm8555.dts @@ -172,19 +172,16 @@  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <1>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@2 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -224,7 +221,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>; 	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; @@ -234,7 +231,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;	// reg base, size  			clock-frequency = <0>; 	// should we fill in in uboot?  			interrupts = <42 2>; diff --git a/arch/powerpc/boot/dts/tqm8560.dts b/arch/powerpc/boot/dts/tqm8560.dts index 22ec39b5bee..f9a11ebf736 100644 --- a/arch/powerpc/boot/dts/tqm8560.dts +++ b/arch/powerpc/boot/dts/tqm8560.dts @@ -174,19 +174,16 @@  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <1>; -					device_type = "ethernet-phy";  				};  				phy2: ethernet-phy@2 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <2>; -					device_type = "ethernet-phy";  				};  				phy3: ethernet-phy@3 {  					interrupt-parent = <&mpic>;  					interrupts = <8 1>;  					reg = <3>; -					device_type = "ethernet-phy";  				};  				tbi0: tbi-phy@11 {  					reg = <0x11>; @@ -312,6 +309,8 @@  		#address-cells = <2>;  		#size-cells = <1>;  		reg = <0xe0005000 0x100>;	// BRx, ORx, etc. +		interrupt-parent = <&mpic>; +		interrupts = <19 2>;  		ranges = <  			0 0x0 0xfc000000 0x04000000	// NOR FLASH bank 1 diff --git a/arch/powerpc/boot/dts/tqm8xx.dts b/arch/powerpc/boot/dts/tqm8xx.dts index f6da7ec49a8..3d1446b99c7 100644 --- a/arch/powerpc/boot/dts/tqm8xx.dts +++ b/arch/powerpc/boot/dts/tqm8xx.dts @@ -57,6 +57,7 @@  		ranges = <  			0x0 0x0 0x40000000 0x800000 +			0x3 0x0 0xc0000000 0x200  		>;  		flash@0,0 { @@ -67,6 +68,30 @@  			bank-width = <4>;  			device-width = <2>;  		}; + +		/* Note: CAN support needs be enabled in U-Boot */ +		can@3,0 { +			compatible = "intc,82527"; +			reg = <3 0x0 0x80>; +			interrupts = <8 1>; +			interrupt-parent = <&PIC>; +			bosch,external-clock-frequency = <16000000>; +			bosch,disconnect-rx1-input; +			bosch,disconnect-tx1-output; +			bosch,iso-low-speed-mux; +			bosch,clock-out-frequency = <16000000>; +		}; + +		can@3,100 { +			compatible = "intc,82527"; +			reg = <3 0x100 0x80>; +			interrupts = <8 1>; +			interrupt-parent = <&PIC>; +			bosch,external-clock-frequency = <16000000>; +			bosch,disconnect-rx1-input; +			bosch,disconnect-tx1-output; +			bosch,iso-low-speed-mux; +		};  	};  	soc@fff00000 { @@ -82,7 +107,6 @@  			#size-cells = <0>;  			PHY: ethernet-phy@f {  				reg = <0xf>; -				device_type = "ethernet-phy";  			};  		}; diff --git a/arch/powerpc/boot/dts/uc101.dts b/arch/powerpc/boot/dts/uc101.dts index 019264c6290..5c462194ef0 100644 --- a/arch/powerpc/boot/dts/uc101.dts +++ b/arch/powerpc/boot/dts/uc101.dts @@ -11,204 +11,82 @@   * option) any later version.   */ -/dts-v1/; +/include/ "mpc5200b.dtsi" + +&gpt0 { gpio-controller; }; +&gpt1 { gpio-controller; }; +&gpt2 { gpio-controller; }; +&gpt3 { gpio-controller; }; +&gpt4 { gpio-controller; }; +&gpt5 { gpio-controller; }; +&gpt6 { gpio-controller; }; +&gpt7 { gpio-controller; };  / {  	model = "manroland,uc101";  	compatible = "manroland,uc101"; -	#address-cells = <1>; -	#size-cells = <1>; -	interrupt-parent = <&mpc5200_pic>; - -	cpus { -		#address-cells = <1>; -		#size-cells = <0>; - -		PowerPC,5200@0 { -			device_type = "cpu"; -			reg = <0>; -			d-cache-line-size = <32>; -			i-cache-line-size = <32>; -			d-cache-size = <0x4000>;	// L1, 16K -			i-cache-size = <0x4000>;	// L1, 16K -			timebase-frequency = <0>;	// from bootloader -			bus-frequency = <0>;		// from bootloader -			clock-frequency = <0>;		// from bootloader -		}; -	}; - -	memory { -		device_type = "memory"; -		reg = <0x00000000 0x04000000>;	// 64MB -	};  	soc5200@f0000000 { -		#address-cells = <1>; -		#size-cells = <1>; -		compatible = "fsl,mpc5200b-immr"; -		ranges = <0 0xf0000000 0x0000c000>; -		reg = <0xf0000000 0x00000100>; -		bus-frequency = <0>;		// from bootloader -		system-frequency = <0>;		// from bootloader - -		cdm@200 { -			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; -			reg = <0x200 0x38>; -		}; - -		mpc5200_pic: interrupt-controller@500 { -			// 5200 interrupts are encoded into two levels; -			interrupt-controller; -			#interrupt-cells = <3>; -			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; -			reg = <0x500 0x80>; -		}; - -		gpt0: timer@600 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x600 0x10>; -			interrupts = <1 9 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt1: timer@610 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x610 0x10>; -			interrupts = <1 10 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpt2: timer@620 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x620 0x10>; -			interrupts = <1 11 0>; -			gpio-controller; -			#gpio-cells = <2>; +		rtc@800 { +			status = "disabled";  		}; -		gpt3: timer@630 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x630 0x10>; -			interrupts = <1 12 0>; -			gpio-controller; -			#gpio-cells = <2>; +		can@900 { +			status = "disabled";  		}; -		gpt4: timer@640 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x640 0x10>; -			interrupts = <1 13 0>; -			gpio-controller; -			#gpio-cells = <2>; +		can@980 { +			status = "disabled";  		}; -		gpt5: timer@650 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x650 0x10>; -			interrupts = <1 14 0>; -			gpio-controller; -			#gpio-cells = <2>; +		spi@f00 { +			status = "disabled";  		}; -		gpt6: timer@660 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x660 0x10>; -			interrupts = <1 15 0>; -			gpio-controller; -			#gpio-cells = <2>; +		usb@1000 { +			status = "disabled";  		}; -		gpt7: timer@670 {	// General Purpose Timer in GPIO mode -			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; -			reg = <0x670 0x10>; -			interrupts = <1 16 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpio_simple: gpio@b00 { -			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; -			reg = <0xb00 0x40>; -			interrupts = <1 7 0>; -			gpio-controller; -			#gpio-cells = <2>; -		}; - -		gpio_wkup: gpio@c00 { -			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; -			reg = <0xc00 0x40>; -			interrupts = <1 8 0 0 3 0>; -			gpio-controller; -			#gpio-cells = <2>; +		psc@2000 {	// PSC1 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";  		}; -		dma-controller@1200 { -			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; -			reg = <0x1200 0x80>; -			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0 -			              3 4 0  3 5 0  3 6 0  3 7 0 -			              3 8 0  3 9 0  3 10 0  3 11 0 -			              3 12 0  3 13 0  3 14 0  3 15 0>; +		psc@2200 {	// PSC2 +			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";  		}; -		xlb@1f00 { -			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; -			reg = <0x1f00 0x100>; +		psc@2400 {	// PSC3 +			status = "disabled";  		}; -		serial@2000 { /* PSC1 in UART mode */ -			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2000 0x100>; -			interrupts = <2 1 0>; +		psc@2600 {	// PSC4 +			status = "disabled";  		}; -		serial@2200 { /* PSC2 in UART mode */ -			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2200 0x100>; -			interrupts = <2 2 0>; +		psc@2800 {	// PSC5 +			status = "disabled";  		}; -		serial@2c00 {		/* PSC6 in UART mode */ +		psc@2c00 {	// PSC6  			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; -			reg = <0x2c00 0x100>; -			interrupts = <2 4 0>;  		};  		ethernet@3000 { -			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; -			reg = <0x3000 0x400>; -			local-mac-address = [ 00 00 00 00 00 00 ]; -			interrupts = <2 5 0>;  			phy-handle = <&phy0>;  		};  		mdio@3000 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; -			reg = <0x3000 0x400>;	// fec range, since we need to setup fec interrupts -			interrupts = <2 5 0>;	// these are for "mii command finished", not link changes & co. -  			phy0: ethernet-phy@0 {  				compatible = "intel,lxt971";  				reg = <0>;  			};  		}; -		ata@3a00 { -			compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; -			reg = <0x3a00 0x100>; -			interrupts = <2 7 0>; +		i2c@3d00 { +			status = "disabled";  		};  		i2c@3d40 { -			#address-cells = <1>; -			#size-cells = <0>; -			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; -			reg = <0x3d40 0x40>; -			interrupts = <2 16 0>;  			fsl,preserve-clocking;  			clock-frequency = <400000>; @@ -221,19 +99,13 @@  				reg = <0x51>;  			};  		}; +	}; -		sram@8000 { -			compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; -			reg = <0x8000 0x4000>; -		}; +	pci@f0000d00 { +		status = "disabled";  	};  	localbus { -		compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus"; - -		#address-cells = <2>; -		#size-cells = <1>; -  		ranges = <0 0 0xff800000 0x00800000  			  1 0 0x80000000 0x00800000  			  3 0 0x80000000 0x00800000>; diff --git a/arch/powerpc/boot/dts/virtex440-ml507.dts b/arch/powerpc/boot/dts/virtex440-ml507.dts index 52d8c1ad26a..391a4e29978 100644 --- a/arch/powerpc/boot/dts/virtex440-ml507.dts +++ b/arch/powerpc/boot/dts/virtex440-ml507.dts @@ -257,6 +257,8 @@  			#size-cells = <1>;  			compatible = "xlnx,compound";  			ethernet@81c00000 { +				#address-cells = <1>; +				#size-cells = <0>;  				compatible = "xlnx,xps-ll-temac-1.01.b";  				device_type = "network";  				interrupt-parent = <&xps_intc_0>; @@ -272,6 +274,12 @@  				xlnx,temac-type = <0>;  				xlnx,txcsum = <1>;  				xlnx,txfifo = <0x1000>; +                                phy-handle = <&phy7>; +                                clock-frequency = <100000000>; +                                phy7: phy@7 { +                                          compatible = "marvell,88e1111"; +                                          reg = <7>; +                                } ;  			} ;  		} ;  		IIC_EEPROM: i2c@81600000 { diff --git a/arch/powerpc/boot/dts/xcalibur1501.dts b/arch/powerpc/boot/dts/xcalibur1501.dts index ac0a617b429..c409cbafb12 100644 --- a/arch/powerpc/boot/dts/xcalibur1501.dts +++ b/arch/powerpc/boot/dts/xcalibur1501.dts @@ -531,7 +531,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -542,7 +542,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -637,14 +637,14 @@  		tlu@2f000 {  			compatible = "fsl,mpc8572-tlu", "fsl_tlu";  			reg = <0x2f000 0x1000>; -			interupts = <61 2 >; +			interrupts = <61 2>;  			interrupt-parent = <&mpic>;  		};  		tlu@15000 {  			compatible = "fsl,mpc8572-tlu", "fsl_tlu";  			reg = <0x15000 0x1000>; -			interupts = <75 2>; +			interrupts = <75 2>;  			interrupt-parent = <&mpic>;  		};  	}; diff --git a/arch/powerpc/boot/dts/xpedite5200.dts b/arch/powerpc/boot/dts/xpedite5200.dts index a0cf53fbd55..8fd7b703135 100644 --- a/arch/powerpc/boot/dts/xpedite5200.dts +++ b/arch/powerpc/boot/dts/xpedite5200.dts @@ -333,7 +333,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			current-speed = <115200>; @@ -344,7 +344,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			current-speed = <115200>; @@ -374,6 +374,8 @@  		#address-cells = <2>;  		#size-cells = <1>;  		reg = <0xef005000 0x100>;	// BRx, ORx, etc. +		interrupt-parent = <&mpic>; +		interrupts = <19 2>;  		ranges = <  			0 0x0 0xfc000000 0x04000000	// NOR boot flash diff --git a/arch/powerpc/boot/dts/xpedite5200_xmon.dts b/arch/powerpc/boot/dts/xpedite5200_xmon.dts index c5b29752651..0baa8283d08 100644 --- a/arch/powerpc/boot/dts/xpedite5200_xmon.dts +++ b/arch/powerpc/boot/dts/xpedite5200_xmon.dts @@ -337,7 +337,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			current-speed = <9600>; @@ -348,7 +348,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			current-speed = <9600>; @@ -378,6 +378,8 @@  		#address-cells = <2>;  		#size-cells = <1>;  		reg = <0xef005000 0x100>;	// BRx, ORx, etc. +		interrupt-parent = <&mpic>; +		interrupts = <19 2>;  		ranges = <  			0 0x0 0xf8000000 0x08000000	// NOR boot flash diff --git a/arch/powerpc/boot/dts/xpedite5301.dts b/arch/powerpc/boot/dts/xpedite5301.dts index db7faf5ebb3..04cb410da48 100644 --- a/arch/powerpc/boot/dts/xpedite5301.dts +++ b/arch/powerpc/boot/dts/xpedite5301.dts @@ -441,7 +441,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -452,7 +452,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -547,14 +547,14 @@  		tlu@2f000 {  			compatible = "fsl,mpc8572-tlu", "fsl_tlu";  			reg = <0x2f000 0x1000>; -			interupts = <61 2 >; +			interrupts = <61 2>;  			interrupt-parent = <&mpic>;  		};  		tlu@15000 {  			compatible = "fsl,mpc8572-tlu", "fsl_tlu";  			reg = <0x15000 0x1000>; -			interupts = <75 2>; +			interrupts = <75 2>;  			interrupt-parent = <&mpic>;  		};  	}; diff --git a/arch/powerpc/boot/dts/xpedite5330.dts b/arch/powerpc/boot/dts/xpedite5330.dts index c364ca6ff7d..73f8620f1ce 100644 --- a/arch/powerpc/boot/dts/xpedite5330.dts +++ b/arch/powerpc/boot/dts/xpedite5330.dts @@ -477,7 +477,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -488,7 +488,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -583,14 +583,14 @@  		tlu@2f000 {  			compatible = "fsl,mpc8572-tlu", "fsl_tlu";  			reg = <0x2f000 0x1000>; -			interupts = <61 2 >; +			interrupts = <61 2>;  			interrupt-parent = <&mpic>;  		};  		tlu@15000 {  			compatible = "fsl,mpc8572-tlu", "fsl_tlu";  			reg = <0x15000 0x1000>; -			interupts = <75 2>; +			interrupts = <75 2>;  			interrupt-parent = <&mpic>;  		};  	}; diff --git a/arch/powerpc/boot/dts/xpedite5370.dts b/arch/powerpc/boot/dts/xpedite5370.dts index 7a8a4afd56c..cd0ea2b9936 100644 --- a/arch/powerpc/boot/dts/xpedite5370.dts +++ b/arch/powerpc/boot/dts/xpedite5370.dts @@ -439,7 +439,7 @@  		serial0: serial@4500 {  			cell-index = <0>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4500 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -450,7 +450,7 @@  		serial1: serial@4600 {  			cell-index = <1>;  			device_type = "serial"; -			compatible = "ns16550"; +			compatible = "fsl,ns16550", "ns16550";  			reg = <0x4600 0x100>;  			clock-frequency = <0>;  			interrupts = <42 2>; @@ -545,14 +545,14 @@  		tlu@2f000 {  			compatible = "fsl,mpc8572-tlu", "fsl_tlu";  			reg = <0x2f000 0x1000>; -			interupts = <61 2 >; +			interrupts = <61 2>;  			interrupt-parent = <&mpic>;  		};  		tlu@15000 {  			compatible = "fsl,mpc8572-tlu", "fsl_tlu";  			reg = <0x15000 0x1000>; -			interupts = <75 2>; +			interrupts = <75 2>;  			interrupt-parent = <&mpic>;  		};  	}; diff --git a/arch/powerpc/boot/dts/yosemite.dts b/arch/powerpc/boot/dts/yosemite.dts index 64923245f0e..30bb4753577 100644 --- a/arch/powerpc/boot/dts/yosemite.dts +++ b/arch/powerpc/boot/dts/yosemite.dts @@ -138,6 +138,42 @@  				clock-frequency = <0>; /* Filled in by zImage */  				interrupts = <0x5 0x1>;  				interrupt-parent = <&UIC1>; + +				nor_flash@0,0 { +					compatible = "amd,s29gl256n", "cfi-flash"; +					bank-width = <2>; +					reg = <0x00000000 0x00000000 0x04000000>; +					#address-cells = <1>; +					#size-cells = <1>; +					partition@0 { +						label = "kernel"; +						reg = <0x00000000 0x001e0000>; +					}; +					partition@1e0000 { +						label = "dtb"; +						reg = <0x001e0000 0x00020000>; +					}; +					partition@200000 { +						label = "ramdisk"; +						reg = <0x00200000 0x01400000>; +					}; +					partition@1600000 { +						label = "jffs2"; +						reg = <0x01600000 0x00400000>; +					}; +					partition@1a00000 { +						label = "user"; +						reg = <0x01a00000 0x02540000>; +					}; +					partition@3f40000 { +						label = "env"; +						reg = <0x03f40000 0x00040000>; +					}; +					partition@3f80000 { +						label = "u-boot"; +						reg = <0x03f80000 0x00080000>; +					}; +				};  			};  			UART0: serial@ef600300 { diff --git a/arch/powerpc/boot/elf_util.c b/arch/powerpc/boot/elf_util.c index 1567a0c0f05..316552dea4d 100644 --- a/arch/powerpc/boot/elf_util.c +++ b/arch/powerpc/boot/elf_util.c @@ -26,7 +26,11 @@ int parse_elf64(void *hdr, struct elf_info *info)  	      elf64->e_ident[EI_MAG2]  == ELFMAG2	&&  	      elf64->e_ident[EI_MAG3]  == ELFMAG3	&&  	      elf64->e_ident[EI_CLASS] == ELFCLASS64	&& +#ifdef __LITTLE_ENDIAN__ +	      elf64->e_ident[EI_DATA]  == ELFDATA2LSB	&& +#else  	      elf64->e_ident[EI_DATA]  == ELFDATA2MSB	&& +#endif  	      (elf64->e_type            == ET_EXEC ||  	       elf64->e_type            == ET_DYN)	&&  	      elf64->e_machine         == EM_PPC64)) diff --git a/arch/powerpc/boot/epapr-wrapper.c b/arch/powerpc/boot/epapr-wrapper.c new file mode 100644 index 00000000000..c1019100667 --- /dev/null +++ b/arch/powerpc/boot/epapr-wrapper.c @@ -0,0 +1,9 @@ +extern void epapr_platform_init(unsigned long r3, unsigned long r4, +				unsigned long r5, unsigned long r6, +				unsigned long r7); + +void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, +		   unsigned long r6, unsigned long r7) +{ +	epapr_platform_init(r3, r4, r5, r6, r7); +} diff --git a/arch/powerpc/boot/epapr.c b/arch/powerpc/boot/epapr.c new file mode 100644 index 00000000000..02e91aa2194 --- /dev/null +++ b/arch/powerpc/boot/epapr.c @@ -0,0 +1,66 @@ +/* + * Bootwrapper for ePAPR compliant firmwares + * + * Copyright 2010 David Gibson <david@gibson.dropbear.id.au>, IBM Corporation. + * + * Based on earlier bootwrappers by: + * (c) Benjamin Herrenschmidt <benh@kernel.crashing.org>, IBM Corp,\ + *   and + * Scott Wood <scottwood@freescale.com> + * Copyright (c) 2007 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 version 2 as published + * by the Free Software Foundation. + */ + +#include "ops.h" +#include "stdio.h" +#include "io.h" +#include <libfdt.h> + +BSS_STACK(4096); + +#define EPAPR_SMAGIC	0x65504150 +#define EPAPR_EMAGIC	0x45504150 + +static unsigned epapr_magic; +static unsigned long ima_size; +static unsigned long fdt_addr; + +static void platform_fixups(void) +{ +	if ((epapr_magic != EPAPR_EMAGIC) +	    && (epapr_magic != EPAPR_SMAGIC)) +		fatal("r6 contained 0x%08x instead of ePAPR magic number\n", +		      epapr_magic); + +	if (ima_size < (unsigned long)_end) +		printf("WARNING: Image loaded outside IMA!" +		       " (_end=%p, ima_size=0x%lx)\n", _end, ima_size); +	if (ima_size < fdt_addr) +		printf("WARNING: Device tree address is outside IMA!" +		       "(fdt_addr=0x%lx, ima_size=0x%lx)\n", fdt_addr, +		       ima_size); +	if (ima_size < fdt_addr + fdt_totalsize((void *)fdt_addr)) +		printf("WARNING: Device tree extends outside IMA!" +		       " (fdt_addr=0x%lx, size=0x%x, ima_size=0x%lx\n", +		       fdt_addr, fdt_totalsize((void *)fdt_addr), ima_size); +} + +void epapr_platform_init(unsigned long r3, unsigned long r4, unsigned long r5, +			 unsigned long r6, unsigned long r7) +{ +	epapr_magic = r6; +	ima_size = r7; +	fdt_addr = r3; + +	/* FIXME: we should process reserve entries */ + +	simple_alloc_init(_end, ima_size - (unsigned long)_end, 32, 64); + +	fdt_init((void *)fdt_addr); + +	serial_console_init(); +	platform_ops.fixups = platform_fixups; +} diff --git a/arch/powerpc/boot/flatdevtree_env.h b/arch/powerpc/boot/flatdevtree_env.h deleted file mode 100644 index 66e0ebb1a36..00000000000 --- a/arch/powerpc/boot/flatdevtree_env.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * This file adds the header file glue so that the shared files - * flatdevicetree.[ch] can compile and work in the powerpc bootwrapper. - * - * strncmp & strchr copied from <file:lib/string.c> - * Copyright (C) 1991, 1992  Linus Torvalds - * - * Maintained by: Mark A. Greer <mgreer@mvista.com> - */ -#ifndef _PPC_BOOT_FLATDEVTREE_ENV_H_ -#define _PPC_BOOT_FLATDEVTREE_ENV_H_ - -#include <stdarg.h> -#include <stddef.h> -#include "types.h" -#include "string.h" -#include "stdio.h" -#include "ops.h" - -#define be16_to_cpu(x)		(x) -#define cpu_to_be16(x)		(x) -#define be32_to_cpu(x)		(x) -#define cpu_to_be32(x)		(x) -#define be64_to_cpu(x)		(x) -#define cpu_to_be64(x)		(x) - -#endif /* _PPC_BOOT_FLATDEVTREE_ENV_H_ */ diff --git a/arch/powerpc/boot/main.c b/arch/powerpc/boot/main.c index a28f02165e9..d367a0aece2 100644 --- a/arch/powerpc/boot/main.c +++ b/arch/powerpc/boot/main.c @@ -139,18 +139,18 @@ static struct addr_range prep_initrd(struct addr_range vmlinux, void *chosen,   * edit the command line passed to vmlinux (by setting /chosen/bootargs).   * The buffer is put in it's own section so that tools may locate it easier.   */ -static char cmdline[COMMAND_LINE_SIZE] +static char cmdline[BOOT_COMMAND_LINE_SIZE]  	__attribute__((__section__("__builtin_cmdline")));  static void prep_cmdline(void *chosen)  {  	if (cmdline[0] == '\0') -		getprop(chosen, "bootargs", cmdline, COMMAND_LINE_SIZE-1); +		getprop(chosen, "bootargs", cmdline, BOOT_COMMAND_LINE_SIZE-1);  	printf("\n\rLinux/PowerPC load: %s", cmdline);  	/* If possible, edit the command line */  	if (console_ops.edit_cmdline) -		console_ops.edit_cmdline(cmdline, COMMAND_LINE_SIZE); +		console_ops.edit_cmdline(cmdline, BOOT_COMMAND_LINE_SIZE);  	printf("\n\r");  	/* Put the command line back into the devtree for the kernel */ @@ -174,7 +174,7 @@ void start(void)  	 * built-in command line wasn't set by an external tool */  	if ((loader_info.cmdline_len > 0) && (cmdline[0] == '\0'))  		memmove(cmdline, loader_info.cmdline, -			min(loader_info.cmdline_len, COMMAND_LINE_SIZE-1)); +			min(loader_info.cmdline_len, BOOT_COMMAND_LINE_SIZE-1));  	if (console_ops.open && (console_ops.open() < 0))  		exit(); diff --git a/arch/powerpc/boot/mvme5100.c b/arch/powerpc/boot/mvme5100.c new file mode 100644 index 00000000000..cb865f83c60 --- /dev/null +++ b/arch/powerpc/boot/mvme5100.c @@ -0,0 +1,27 @@ +/* + * Motorola/Emerson MVME5100 with PPCBug firmware. + * + * Author: Stephen Chivers <schivers@csc.com> + * + * Copyright 2013 CSC Australia Pty. Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + */ +#include "types.h" +#include "ops.h" +#include "io.h" + +BSS_STACK(4096); + +void platform_init(unsigned long r3, unsigned long r4, unsigned long r5) +{ +	u32			heapsize; + +	heapsize = 0x8000000 - (u32)_end; /* 128M */ +	simple_alloc_init(_end, heapsize, 32, 64); +	fdt_init(_dtb_start); +	serial_console_init(); +} diff --git a/arch/powerpc/boot/of.c b/arch/powerpc/boot/of.c index 61d9899aa0d..7ca910cb2fc 100644 --- a/arch/powerpc/boot/of.c +++ b/arch/powerpc/boot/of.c @@ -26,6 +26,9 @@  static unsigned long claim_base; +void epapr_platform_init(unsigned long r3, unsigned long r4, unsigned long r5, +			 unsigned long r6, unsigned long r7); +  static void *of_try_claim(unsigned long size)  {  	unsigned long addr = 0; @@ -37,8 +40,8 @@ static void *of_try_claim(unsigned long size)  #ifdef DEBUG  		printf("    trying: 0x%08lx\n\r", claim_base);  #endif -		addr = (unsigned long)of_claim(claim_base, size, 0); -		if ((void *)addr != (void *)-1) +		addr = (unsigned long) of_claim(claim_base, size, 0); +		if (addr != PROM_ERROR)  			break;  	}  	if (addr == 0) @@ -61,7 +64,7 @@ static void of_image_hdr(const void *hdr)  	}  } -void platform_init(unsigned long a1, unsigned long a2, void *promptr) +static void of_platform_init(unsigned long a1, unsigned long a2, void *promptr)  {  	platform_ops.image_hdr = of_image_hdr;  	platform_ops.malloc = of_try_claim; @@ -81,3 +84,14 @@ void platform_init(unsigned long a1, unsigned long a2, void *promptr)  		loader_info.initrd_size = a2;  	}  } + +void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, +		   unsigned long r6, unsigned long r7) +{ +	/* Detect OF vs. ePAPR boot */ +	if (r5) +		of_platform_init(r3, r4, (void *)r5); +	else +		epapr_platform_init(r3, r4, r5, r6, r7); +} + diff --git a/arch/powerpc/boot/of.h b/arch/powerpc/boot/of.h index e4c68f7391c..c8c1750aba0 100644 --- a/arch/powerpc/boot/of.h +++ b/arch/powerpc/boot/of.h @@ -1,12 +1,15 @@  #ifndef _PPC_BOOT_OF_H_  #define _PPC_BOOT_OF_H_ +#include "swab.h" +  typedef void *phandle; -typedef void *ihandle; +typedef u32 ihandle;  void of_init(void *promptr);  int of_call_prom(const char *service, int nargs, int nret, ...); -void *of_claim(unsigned long virt, unsigned long size, unsigned long align); +unsigned int of_claim(unsigned long virt, unsigned long size, +	unsigned long align);  void *of_vmlinux_alloc(unsigned long size);  void of_exit(void);  void *of_finddevice(const char *name); @@ -18,4 +21,16 @@ int of_setprop(const void *phandle, const char *name, const void *buf,  /* Console functions */  void of_console_init(void); +typedef u32			__be32; + +#ifdef __LITTLE_ENDIAN__ +#define cpu_to_be32(x) swab32(x) +#define be32_to_cpu(x) swab32(x) +#else +#define cpu_to_be32(x) (x) +#define be32_to_cpu(x) (x) +#endif + +#define PROM_ERROR (-1u) +  #endif /* _PPC_BOOT_OF_H_ */ diff --git a/arch/powerpc/boot/ofconsole.c b/arch/powerpc/boot/ofconsole.c index ce0e0242445..8b754702460 100644 --- a/arch/powerpc/boot/ofconsole.c +++ b/arch/powerpc/boot/ofconsole.c @@ -18,7 +18,7 @@  #include "of.h" -static void *of_stdout_handle; +static unsigned int of_stdout_handle;  static int of_console_open(void)  { @@ -27,8 +27,10 @@ static int of_console_open(void)  	if (((devp = of_finddevice("/chosen")) != NULL)  	    && (of_getprop(devp, "stdout", &of_stdout_handle,  			   sizeof(of_stdout_handle)) -		== sizeof(of_stdout_handle))) +		== sizeof(of_stdout_handle))) { +		of_stdout_handle = be32_to_cpu(of_stdout_handle);  		return 0; +	}  	return -1;  } diff --git a/arch/powerpc/boot/oflib.c b/arch/powerpc/boot/oflib.c index b0ec9cf3eaa..46c98a47d94 100644 --- a/arch/powerpc/boot/oflib.c +++ b/arch/powerpc/boot/oflib.c @@ -16,74 +16,83 @@  #include "of.h" +typedef u32 prom_arg_t; + +/* The following structure is used to communicate with open firmware. + * All arguments in and out are in big endian format. */ +struct prom_args { +	__be32 service;	/* Address of service name string. */ +	__be32 nargs;	/* Number of input arguments. */ +	__be32 nret;	/* Number of output arguments. */ +	__be32 args[10];	/* Input/output arguments. */ +}; + +#ifdef __powerpc64__ +extern int prom(void *); +#else  static int (*prom) (void *); +#endif  void of_init(void *promptr)  { +#ifndef __powerpc64__  	prom = (int (*)(void *))promptr; +#endif  } +#define ADDR(x)		(u32)(unsigned long)(x) +  int of_call_prom(const char *service, int nargs, int nret, ...)  {  	int i; -	struct prom_args { -		const char *service; -		int nargs; -		int nret; -		unsigned int args[12]; -	} args; +	struct prom_args args;  	va_list list; -	args.service = service; -	args.nargs = nargs; -	args.nret = nret; +	args.service = cpu_to_be32(ADDR(service)); +	args.nargs = cpu_to_be32(nargs); +	args.nret = cpu_to_be32(nret);  	va_start(list, nret);  	for (i = 0; i < nargs; i++) -		args.args[i] = va_arg(list, unsigned int); +		args.args[i] = cpu_to_be32(va_arg(list, prom_arg_t));  	va_end(list);  	for (i = 0; i < nret; i++)  		args.args[nargs+i] = 0;  	if (prom(&args) < 0) -		return -1; +		return PROM_ERROR; -	return (nret > 0)? args.args[nargs]: 0; +	return (nret > 0) ? be32_to_cpu(args.args[nargs]) : 0;  }  static int of_call_prom_ret(const char *service, int nargs, int nret, -			    unsigned int *rets, ...) +			    prom_arg_t *rets, ...)  {  	int i; -	struct prom_args { -		const char *service; -		int nargs; -		int nret; -		unsigned int args[12]; -	} args; +	struct prom_args args;  	va_list list; -	args.service = service; -	args.nargs = nargs; -	args.nret = nret; +	args.service = cpu_to_be32(ADDR(service)); +	args.nargs = cpu_to_be32(nargs); +	args.nret = cpu_to_be32(nret);  	va_start(list, rets);  	for (i = 0; i < nargs; i++) -		args.args[i] = va_arg(list, unsigned int); +		args.args[i] = cpu_to_be32(va_arg(list, prom_arg_t));  	va_end(list);  	for (i = 0; i < nret; i++)  		args.args[nargs+i] = 0;  	if (prom(&args) < 0) -		return -1; +		return PROM_ERROR; -	if (rets != (void *) 0) +	if (rets != NULL)  		for (i = 1; i < nret; ++i) -			rets[i-1] = args.args[nargs+i]; +			rets[i-1] = be32_to_cpu(args.args[nargs+i]); -	return (nret > 0)? args.args[nargs]: 0; +	return (nret > 0) ? be32_to_cpu(args.args[nargs]) : 0;  }  /* returns true if s2 is a prefix of s1 */ @@ -103,7 +112,7 @@ static int string_match(const char *s1, const char *s2)   */  static int need_map = -1;  static ihandle chosen_mmu; -static phandle memory; +static ihandle memory;  static int check_of_version(void)  { @@ -132,10 +141,10 @@ static int check_of_version(void)  		printf("no mmu\n");  		return 0;  	} -	memory = (ihandle) of_call_prom("open", 1, 1, "/memory"); -	if (memory == (ihandle) -1) { -		memory = (ihandle) of_call_prom("open", 1, 1, "/memory@0"); -		if (memory == (ihandle) -1) { +	memory = of_call_prom("open", 1, 1, "/memory"); +	if (memory == PROM_ERROR) { +		memory = of_call_prom("open", 1, 1, "/memory@0"); +		if (memory == PROM_ERROR) {  			printf("no memory node\n");  			return 0;  		} @@ -144,40 +153,41 @@ static int check_of_version(void)  	return 1;  } -void *of_claim(unsigned long virt, unsigned long size, unsigned long align) +unsigned int of_claim(unsigned long virt, unsigned long size, +		      unsigned long align)  {  	int ret; -	unsigned int result; +	prom_arg_t result;  	if (need_map < 0)  		need_map = check_of_version();  	if (align || !need_map) -		return (void *) of_call_prom("claim", 3, 1, virt, size, align); +		return of_call_prom("claim", 3, 1, virt, size, align);  	ret = of_call_prom_ret("call-method", 5, 2, &result, "claim", memory,  			       align, size, virt);  	if (ret != 0 || result == -1) -		return (void *) -1; +		return  -1;  	ret = of_call_prom_ret("call-method", 5, 2, &result, "claim", chosen_mmu,  			       align, size, virt);  	/* 0x12 == coherent + read/write */  	ret = of_call_prom("call-method", 6, 1, "map", chosen_mmu,  			   0x12, size, virt, virt); -	return (void *) virt; +	return virt;  }  void *of_vmlinux_alloc(unsigned long size)  {  	unsigned long start = (unsigned long)_start, end = (unsigned long)_end; -	void *addr; +	unsigned long addr;  	void *p;  	/* With some older POWER4 firmware we need to claim the area the kernel  	 * will reside in.  Newer firmwares don't need this so we just ignore  	 * the return value.  	 */ -	addr = of_claim(start, end - start, 0); -	printf("Trying to claim from 0x%lx to 0x%lx (0x%lx) got %p\r\n", +	addr = (unsigned long) of_claim(start, end - start, 0); +	printf("Trying to claim from 0x%lx to 0x%lx (0x%lx) got %lx\r\n",  	       start, end, end - start, addr);  	p = malloc(size); @@ -197,7 +207,7 @@ void of_exit(void)   */  void *of_finddevice(const char *name)  { -	return (phandle) of_call_prom("finddevice", 1, 1, name); +	return (void *) (unsigned long) of_call_prom("finddevice", 1, 1, name);  }  int of_getprop(const void *phandle, const char *name, void *buf, diff --git a/arch/powerpc/boot/ops.h b/arch/powerpc/boot/ops.h index b3218ce451b..8aad3c55aed 100644 --- a/arch/powerpc/boot/ops.h +++ b/arch/powerpc/boot/ops.h @@ -15,7 +15,7 @@  #include "types.h"  #include "string.h" -#define	COMMAND_LINE_SIZE	512 +#define	BOOT_COMMAND_LINE_SIZE	2048  #define	MAX_PATH_LEN		256  #define	MAX_PROP_LEN		256 /* What should this be? */ diff --git a/arch/powerpc/boot/ppc_asm.h b/arch/powerpc/boot/ppc_asm.h index 1c2c2817f9b..35ea60c1f07 100644 --- a/arch/powerpc/boot/ppc_asm.h +++ b/arch/powerpc/boot/ppc_asm.h @@ -59,4 +59,19 @@  #define	r30	30  #define	r31	31 +#define SPRN_TBRL	268 +#define SPRN_TBRU	269 + +#define FIXUP_ENDIAN						   \ +	tdi   0, 0, 0x48; /* Reverse endian of b . + 8		*/ \ +	b     $+36;	  /* Skip trampoline if endian is good	*/ \ +	.long 0x05009f42; /* bcl 20,31,$+4			*/ \ +	.long 0xa602487d; /* mflr r10				*/ \ +	.long 0x1c004a39; /* addi r10,r10,28			*/ \ +	.long 0xa600607d; /* mfmsr r11				*/ \ +	.long 0x01006b69; /* xori r11,r11,1			*/ \ +	.long 0xa6035a7d; /* mtsrr0 r10				*/ \ +	.long 0xa6037b7d; /* mtsrr1 r11				*/ \ +	.long 0x2400004c  /* rfid				*/ +  #endif /* _PPC64_PPC_ASM_H */ diff --git a/arch/powerpc/boot/ps3.c b/arch/powerpc/boot/ps3.c index 9954d98871d..4ec2d86d3c5 100644 --- a/arch/powerpc/boot/ps3.c +++ b/arch/powerpc/boot/ps3.c @@ -47,13 +47,13 @@ BSS_STACK(4096);   * The buffer is put in it's own section so that tools may locate it easier.   */ -static char cmdline[COMMAND_LINE_SIZE] +static char cmdline[BOOT_COMMAND_LINE_SIZE]  	__attribute__((__section__("__builtin_cmdline")));  static void prep_cmdline(void *chosen)  {  	if (cmdline[0] == '\0') -		getprop(chosen, "bootargs", cmdline, COMMAND_LINE_SIZE-1); +		getprop(chosen, "bootargs", cmdline, BOOT_COMMAND_LINE_SIZE-1);  	else  		setprop_str(chosen, "bootargs", cmdline); diff --git a/arch/powerpc/boot/pseries-head.S b/arch/powerpc/boot/pseries-head.S new file mode 100644 index 00000000000..6ef6e02e80f --- /dev/null +++ b/arch/powerpc/boot/pseries-head.S @@ -0,0 +1,8 @@ +#include "ppc_asm.h" + +	.text + +	.globl _zimage_start +_zimage_start: +	FIXUP_ENDIAN +	b _zimage_start_lib diff --git a/arch/powerpc/boot/stdio.c b/arch/powerpc/boot/stdio.c index 5b57800bbc6..a701261b178 100644 --- a/arch/powerpc/boot/stdio.c +++ b/arch/powerpc/boot/stdio.c @@ -21,6 +21,18 @@ size_t strnlen(const char * s, size_t count)  	return sc - s;  } +#ifdef __powerpc64__ + +# define do_div(n, base) ({						\ +	unsigned int __base = (base);					\ +	unsigned int __rem;						\ +	__rem = ((unsigned long long)(n)) % __base;			\ +	(n) = ((unsigned long long)(n)) / __base;			\ +	__rem;								\ +}) + +#else +  extern unsigned int __div64_32(unsigned long long *dividend,  			       unsigned int divisor); @@ -39,6 +51,8 @@ extern unsigned int __div64_32(unsigned long long *dividend,  	__rem;								\   }) +#endif /* __powerpc64__ */ +  static int skip_atoi(const char **s)  {  	int i, c; diff --git a/arch/powerpc/boot/swab.h b/arch/powerpc/boot/swab.h new file mode 100644 index 00000000000..d0e1431084c --- /dev/null +++ b/arch/powerpc/boot/swab.h @@ -0,0 +1,29 @@ +#ifndef _PPC_BOOT_SWAB_H_ +#define _PPC_BOOT_SWAB_H_ + +static inline u16 swab16(u16 x) +{ +	return  ((x & (u16)0x00ffU) << 8) | +		((x & (u16)0xff00U) >> 8); +} + +static inline u32 swab32(u32 x) +{ +	return  ((x & (u32)0x000000ffUL) << 24) | +		((x & (u32)0x0000ff00UL) <<  8) | +		((x & (u32)0x00ff0000UL) >>  8) | +		((x & (u32)0xff000000UL) >> 24); +} + +static inline u64 swab64(u64 x) +{ +	return  (u64)((x & (u64)0x00000000000000ffULL) << 56) | +		(u64)((x & (u64)0x000000000000ff00ULL) << 40) | +		(u64)((x & (u64)0x0000000000ff0000ULL) << 24) | +		(u64)((x & (u64)0x00000000ff000000ULL) <<  8) | +		(u64)((x & (u64)0x000000ff00000000ULL) >>  8) | +		(u64)((x & (u64)0x0000ff0000000000ULL) >> 24) | +		(u64)((x & (u64)0x00ff000000000000ULL) >> 40) | +		(u64)((x & (u64)0xff00000000000000ULL) >> 56); +} +#endif /* _PPC_BOOT_SWAB_H_ */ diff --git a/arch/powerpc/boot/treeboot-akebono.c b/arch/powerpc/boot/treeboot-akebono.c new file mode 100644 index 00000000000..b73174c34fe --- /dev/null +++ b/arch/powerpc/boot/treeboot-akebono.c @@ -0,0 +1,163 @@ +/* + * Copyright © 2013 Tony Breeds IBM Corporation + * Copyright © 2013 Alistair Popple IBM Corporation + * + * Based on earlier code: + *   Copyright (C) Paul Mackerras 1997. + * + *   Matt Porter <mporter@kernel.crashing.org> + *   Copyright 2002-2005 MontaVista Software Inc. + * + *   Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net> + *   Copyright (c) 2003, 2004 Zultys Technologies + * + *    Copyright 2007 David Gibson, IBM Corporation. + *    Copyright 2010 Ben. Herrenschmidt, IBM Corporation. + *    Copyright © 2011 David Kleikamp IBM 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; either version + * 2 of the License, or (at your option) any later version. + */ +#include <stdarg.h> +#include <stddef.h> +#include "types.h" +#include "elf.h" +#include "string.h" +#include "stdlib.h" +#include "stdio.h" +#include "page.h" +#include "ops.h" +#include "reg.h" +#include "io.h" +#include "dcr.h" +#include "4xx.h" +#include "44x.h" +#include "libfdt.h" + +BSS_STACK(4096); + +#define SPRN_PIR	0x11E	/* Processor Indentification Register */ +#define USERDATA_LEN	256	/* Length of userdata passed in by PIBS */ +#define MAX_RANKS	0x4 +#define DDR3_MR0CF	0x80010011U +#define CCTL0_MCO2	0x8000080FU +#define CCTL0_MCO3	0x80000810U +#define CCTL0_MCO4	0x80000811U +#define CCTL0_MCO5	0x80000812U +#define CCTL0_MCO6	0x80000813U + +static unsigned long long ibm_akebono_memsize; +static long long unsigned mac_addr; + +static unsigned long long ibm_akebono_detect_memsize(void) +{ +	u32 reg; +	unsigned i; +	unsigned long long memsize = 0; + +	for (i = 0; i < MAX_RANKS; i++) { +		reg = mfdcrx(DDR3_MR0CF + i); + +		if (!(reg & 1)) +			continue; + +		reg &= 0x0000f000; +		reg >>= 12; +		memsize += (0x800000ULL << reg); +	} + +	return memsize; +} + +static void ibm_akebono_fixups(void) +{ +	void *emac; +	u32 reg; + +	dt_fixup_memory(0x0ULL,  ibm_akebono_memsize); + +	/* Fixup the SD timeout frequency */ +	mtdcrx(CCTL0_MCO4, 0x1); + +	/* Disable SD high-speed mode (which seems to be broken) */ +	reg = mfdcrx(CCTL0_MCO2) & ~0x2; +	mtdcrx(CCTL0_MCO2, reg); + +	/* Set the MAC address */ +	emac = finddevice("/plb/opb/ethernet"); +	if (emac > 0) { +		if (mac_addr) +			setprop(emac, "local-mac-address", +				((u8 *) &mac_addr) + 2 , 6); +	} +} + +void platform_init(char *userdata) +{ +	unsigned long end_of_ram, avail_ram; +	u32 pir_reg; +	int node, size; +	const u32 *timebase; +	int len, i, userdata_len; +	char *end; + +	userdata[USERDATA_LEN - 1] = '\0'; +	userdata_len = strlen(userdata); +	for (i = 0; i < userdata_len - 15; i++) { +		if (strncmp(&userdata[i], "local-mac-addr=", 15) == 0) { +			if (i > 0 && userdata[i - 1] != ' ') { +				/* We've only found a substring ending +				 * with local-mac-addr so this isn't +				 * our mac address. */ +				continue; +			} + +			mac_addr = strtoull(&userdata[i + 15], &end, 16); + +			/* Remove the "local-mac-addr=<...>" from the kernel +			 * command line, including the tailing space if +			 * present. */ +			if (*end == ' ') +				end++; + +			len = ((int) end) - ((int) &userdata[i]); +			memmove(&userdata[i], end, +				userdata_len - (len + i) + 1); +			break; +		} +	} + +	loader_info.cmdline = userdata; +	loader_info.cmdline_len = 256; + +	ibm_akebono_memsize = ibm_akebono_detect_memsize(); +	if (ibm_akebono_memsize >> 32) +		end_of_ram = ~0UL; +	else +		end_of_ram = ibm_akebono_memsize; +	avail_ram = end_of_ram - (unsigned long)_end; + +	simple_alloc_init(_end, avail_ram, 128, 64); +	platform_ops.fixups = ibm_akebono_fixups; +	platform_ops.exit = ibm44x_dbcr_reset; +	pir_reg = mfspr(SPRN_PIR); + +	/* Make sure FDT blob is sane */ +	if (fdt_check_header(_dtb_start) != 0) +		fatal("Invalid device tree blob\n"); + +	node = fdt_node_offset_by_prop_value(_dtb_start, -1, "device_type", +					     "cpu", sizeof("cpu")); +	if (!node) +		fatal("Cannot find cpu node\n"); +	timebase = fdt_getprop(_dtb_start, node, "timebase-frequency", &size); +	if (timebase && (size == 4)) +		timebase_period_ns = 1000000000 / *timebase; + +	fdt_set_boot_cpuid_phys(_dtb_start, pir_reg); +	fdt_init(_dtb_start); + +	serial_console_init(); +} diff --git a/arch/powerpc/boot/treeboot-currituck.c b/arch/powerpc/boot/treeboot-currituck.c new file mode 100644 index 00000000000..925ae43b746 --- /dev/null +++ b/arch/powerpc/boot/treeboot-currituck.c @@ -0,0 +1,119 @@ +/* + * Copyright © 2011 Tony Breeds IBM Corporation + * + * Based on earlier code: + *   Copyright (C) Paul Mackerras 1997. + * + *   Matt Porter <mporter@kernel.crashing.org> + *   Copyright 2002-2005 MontaVista Software Inc. + * + *   Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net> + *   Copyright (c) 2003, 2004 Zultys Technologies + * + *    Copyright 2007 David Gibson, IBM Corporation. + *    Copyright 2010 Ben. Herrenschmidt, IBM Corporation. + *    Copyright © 2011 David Kleikamp IBM 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; either version + * 2 of the License, or (at your option) any later version. + */ +#include <stdarg.h> +#include <stddef.h> +#include "types.h" +#include "elf.h" +#include "string.h" +#include "stdio.h" +#include "page.h" +#include "ops.h" +#include "reg.h" +#include "io.h" +#include "dcr.h" +#include "4xx.h" +#include "44x.h" +#include "libfdt.h" + +BSS_STACK(4096); + +#define MAX_RANKS	0x4 +#define DDR3_MR0CF	0x80010011U + +static unsigned long long ibm_currituck_memsize; +static unsigned long long ibm_currituck_detect_memsize(void) +{ +	u32 reg; +	unsigned i; +	unsigned long long memsize = 0; + +	for(i = 0; i < MAX_RANKS; i++){ +		reg = mfdcrx(DDR3_MR0CF + i); + +		if (!(reg & 1)) +			continue; + +		reg &= 0x0000f000; +		reg >>= 12; +		memsize += (0x800000ULL << reg); +	} + +	return memsize; +} + +static void ibm_currituck_fixups(void) +{ +	void *devp = finddevice("/"); +	u32 dma_ranges[7]; + +	dt_fixup_memory(0x0ULL,  ibm_currituck_memsize); + +	while ((devp = find_node_by_devtype(devp, "pci"))) { +		if (getprop(devp, "dma-ranges", dma_ranges, sizeof(dma_ranges)) < 0) { +			printf("%s: Failed to get dma-ranges\r\n", __func__); +			continue; +		} + +		dma_ranges[5] = ibm_currituck_memsize >> 32; +		dma_ranges[6] = ibm_currituck_memsize & 0xffffffffUL; + +		setprop(devp, "dma-ranges", dma_ranges, sizeof(dma_ranges)); +	} +} + +#define SPRN_PIR	0x11E	/* Processor Indentification Register */ +void platform_init(void) +{ +	unsigned long end_of_ram, avail_ram; +	u32 pir_reg; +	int node, size; +	const u32 *timebase; + +	ibm_currituck_memsize = ibm_currituck_detect_memsize(); +	if (ibm_currituck_memsize >> 32) +		end_of_ram = ~0UL; +	else +		end_of_ram = ibm_currituck_memsize; +	avail_ram = end_of_ram - (unsigned long)_end; + +	simple_alloc_init(_end, avail_ram, 128, 64); +	platform_ops.fixups = ibm_currituck_fixups; +	platform_ops.exit = ibm44x_dbcr_reset; +	pir_reg = mfspr(SPRN_PIR); + +	/* Make sure FDT blob is sane */ +	if (fdt_check_header(_dtb_start) != 0) +		fatal("Invalid device tree blob\n"); + +	node = fdt_node_offset_by_prop_value(_dtb_start, -1, "device_type", +	                                     "cpu", sizeof("cpu")); +	if (!node) +		fatal("Cannot find cpu node\n"); +	timebase = fdt_getprop(_dtb_start, node, "timebase-frequency", &size); +	if (timebase && (size == 4)) +		timebase_period_ns = 1000000000 / *timebase; + +	fdt_set_boot_cpuid_phys(_dtb_start, pir_reg); +	fdt_init(_dtb_start); + +	serial_console_init(); +} diff --git a/arch/powerpc/boot/treeboot-iss4xx.c b/arch/powerpc/boot/treeboot-iss4xx.c index fcc44952874..329e710feda 100644 --- a/arch/powerpc/boot/treeboot-iss4xx.c +++ b/arch/powerpc/boot/treeboot-iss4xx.c @@ -34,9 +34,29 @@  BSS_STACK(4096); +static u32 ibm4xx_memstart; +  static void iss_4xx_fixups(void)  { -	ibm4xx_sdram_fixup_memsize(); +	void *memory; +	u32 reg[3]; + +	memory = finddevice("/memory"); +	if (!memory) +		fatal("Can't find memory node\n"); +	/* This assumes #address-cells = 2, #size-cells =1 and that */ +	getprop(memory, "reg", reg, sizeof(reg)); +	if (reg[2]) +		/* If the device tree specifies the memory range, use it */ +		ibm4xx_memstart = reg[1]; +	else +		/* othersize, read it from the SDRAM controller */ +		ibm4xx_sdram_fixup_memsize(); +} + +static void *iss_4xx_vmlinux_alloc(unsigned long size) +{ +	return (void *)ibm4xx_memstart;  }  #define SPRN_PIR	0x11E	/* Processor Indentification Register */ @@ -48,6 +68,7 @@ void platform_init(void)  	simple_alloc_init(_end, avail_ram, 128, 64);  	platform_ops.fixups = iss_4xx_fixups; +	platform_ops.vmlinux_alloc = iss_4xx_vmlinux_alloc;  	platform_ops.exit = ibm44x_dbcr_reset;  	pir_reg = mfspr(SPRN_PIR);  	fdt_set_boot_cpuid_phys(_dtb_start, pir_reg); diff --git a/arch/powerpc/boot/util.S b/arch/powerpc/boot/util.S index 427ddfc1199..243b8497d58 100644 --- a/arch/powerpc/boot/util.S +++ b/arch/powerpc/boot/util.S @@ -45,7 +45,7 @@ udelay:  	mfspr	r4,SPRN_PVR  	srwi	r4,r4,16  	cmpwi	0,r4,1		/* 601 ? */ -	bne	.udelay_not_601 +	bne	.Ludelay_not_601  00:	li	r0,86	/* Instructions / microsecond? */  	mtctr	r0  10:	addi	r0,r0,0 /* NOP */ @@ -54,7 +54,7 @@ udelay:  	bne	00b  	blr -.udelay_not_601: +.Ludelay_not_601:  	mulli	r4,r3,1000	/* nanoseconds */  	/*  Change r4 to be the number of ticks using:  	 *	(nanoseconds + (timebase_period_ns - 1 )) / timebase_period_ns @@ -71,18 +71,32 @@ udelay:  	add	r4,r4,r5  	addi	r4,r4,-1  	divw	r4,r4,r5	/* BUS ticks */ +#ifdef CONFIG_8xx  1:	mftbu	r5  	mftb	r6  	mftbu	r7 +#else +1:	mfspr	r5, SPRN_TBRU +	mfspr	r6, SPRN_TBRL +	mfspr	r7, SPRN_TBRU +#endif  	cmpw	0,r5,r7  	bne	1b		/* Get [synced] base time */  	addc	r9,r6,r4	/* Compute end time */  	addze	r8,r5 +#ifdef CONFIG_8xx  2:	mftbu	r5 +#else +2:	mfspr	r5, SPRN_TBRU +#endif  	cmpw	0,r5,r8  	blt	2b  	bgt	3f +#ifdef CONFIG_8xx  	mftb	r6 +#else +	mfspr	r6, SPRN_TBRL +#endif  	cmpw	0,r6,r9  	blt	2b  3:	blr diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index cb97e7511d7..ae0f88ec4a3 100755 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper @@ -39,6 +39,8 @@ dts=  cacheit=  binary=  gzip=.gz +pie= +format=  # cross-compilation prefix  CROSS= @@ -135,6 +137,14 @@ if [ -z "$kernel" ]; then      kernel=vmlinux  fi +elfformat="`${CROSS}objdump -p "$kernel" | grep 'file format' | awk '{print $4}'`" +case "$elfformat" in +    elf64-powerpcle)	format=elf64lppc	;; +    elf64-powerpc)	format=elf32ppc	;; +    elf32-powerpc)	format=elf32ppc	;; +esac + +  platformo=$object/"$platform".o  lds=$object/zImage.lds  ext=strip @@ -143,25 +153,39 @@ tmp=$tmpdir/zImage.$$.o  ksection=.kernel:vmlinux.strip  isection=.kernel:initrd  link_address='0x400000' +make_space=y  case "$platform" in +of) +    platformo="$object/of.o $object/epapr.o" +    make_space=n +    ;;  pseries) -    platformo=$object/of.o +    platformo="$object/pseries-head.o $object/of.o $object/epapr.o"      link_address='0x4000000' +    if [ "$format" != "elf32ppc" ]; then +	link_address= +	pie=-pie +    fi +    make_space=n      ;;  maple) -    platformo=$object/of.o +    platformo="$object/of.o $object/epapr.o"      link_address='0x400000' +    make_space=n      ;;  pmac|chrp) -    platformo=$object/of.o +    platformo="$object/of.o $object/epapr.o" +    make_space=n      ;;  coff) -    platformo=$object/of.o +    platformo="$object/crt0.o $object/of.o $object/epapr.o"      lds=$object/zImage.coff.lds      link_address='0x500000' +    make_space=n +    pie=      ;; -miboot|uboot) +miboot|uboot*)      # miboot and U-boot want just the bare bits, not an ELF binary      ext=bin      objflags="-O binary" @@ -208,6 +232,8 @@ ps3)      ksection=.kernel:vmlinux.bin      isection=.kernel:initrd      link_address='' +    make_space=n +    pie=      ;;  ep88xc|ep405|ep8248e)      platformo="$object/fixed-head.o $object/$platform.o" @@ -241,17 +267,34 @@ gamecube|wii)      link_address='0x600000'      platformo="$object/$platform-head.o $object/$platform.o"      ;; +treeboot-currituck) +    link_address='0x1000000' +    ;; +treeboot-akebono) +    link_address='0x1000000' +    ;;  treeboot-iss4xx-mpic)      platformo="$object/treeboot-iss4xx.o"      ;; +epapr) +    platformo="$object/epapr.o $object/epapr-wrapper.o" +    link_address='0x20000000' +    pie=-pie +    ;; +mvme5100) +    platformo="$object/fixed-head.o $object/mvme5100.o" +    binary=y +    ;;  esac  vmz="$tmpdir/`basename \"$kernel\"`.$ext"  if [ -z "$cacheit" -o ! -f "$vmz$gzip" -o "$vmz$gzip" -ot "$kernel" ]; then      ${CROSS}objcopy $objflags "$kernel" "$vmz.$$" +    strip_size=$(stat -c %s $vmz.$$) +      if [ -n "$gzip" ]; then -        gzip -f -9 "$vmz.$$" +        gzip -n -f -9 "$vmz.$$"      fi      if [ -n "$cacheit" ]; then @@ -259,6 +302,26 @@ if [ -z "$cacheit" -o ! -f "$vmz$gzip" -o "$vmz$gzip" -ot "$kernel" ]; then      else  	vmz="$vmz.$$"      fi +else +    # Calculate the vmlinux.strip size +    ${CROSS}objcopy $objflags "$kernel" "$vmz.$$" +    strip_size=$(stat -c %s $vmz.$$) +    rm -f $vmz.$$ +fi + +if [ "$make_space" = "y" ]; then +	# Round the size to next higher MB limit +	round_size=$(((strip_size + 0xfffff) & 0xfff00000)) + +	round_size=0x$(printf "%x" $round_size) +	link_addr=$(printf "%d" $link_address) + +	if [ $link_addr -lt $strip_size ]; then +	    echo "INFO: Uncompressed kernel (size 0x$(printf "%x\n" $strip_size))" \ +			"overlaps the address of the wrapper($link_address)" +	    echo "INFO: Fixing the link_address of wrapper to ($round_size)" +	    link_address=$round_size +	fi  fi  vmz="$vmz$gzip" @@ -284,6 +347,26 @@ uboot)      fi      exit 0      ;; +uboot-obs600) +    rm -f "$ofile" +    # obs600 wants a multi image with an initrd, so we need to put a fake +    # one in even when building a "normal" image. +    if [ -n "$initrd" ]; then +	real_rd="$initrd" +    else +	real_rd=`mktemp` +	echo "\0" >>"$real_rd" +    fi +    ${MKIMAGE} -A ppc -O linux -T multi -C gzip -a $membase -e $membase \ +	$uboot_version -d "$vmz":"$real_rd":"$dtb" "$ofile" +    if [ -z "$initrd" ]; then +	rm -f "$real_rd" +    fi +    if [ -z "$cacheit" ]; then +	rm -f "$vmz" +    fi +    exit 0 +    ;;  esac  addsec() { @@ -310,9 +393,9 @@ fi  if [ "$platform" != "miboot" ]; then      if [ -n "$link_address" ] ; then -        text_start="-Ttext $link_address --defsym _start=$link_address" +        text_start="-Ttext $link_address"      fi -    ${CROSS}ld -m elf32ppc -T $lds $text_start -o "$ofile" \ +    ${CROSS}ld -m $format -T $lds $text_start $pie -o "$ofile" \  	$platformo $tmp $object/wrapper.a      rm $tmp  fi @@ -336,7 +419,7 @@ coff)      $objbin/hack-coff "$ofile"      ;;  cuboot*) -    gzip -f -9 "$ofile" +    gzip -n -f -9 "$ofile"      ${MKIMAGE} -A ppc -O linux -T kernel -C gzip -a "$base" -e "$entry" \              $uboot_version -d "$ofile".gz "$ofile"      ;; @@ -383,6 +466,6 @@ ps3)      odir="$(dirname "$ofile.bin")"      rm -f "$odir/otheros.bld" -    gzip --force -9 --stdout "$ofile.bin" > "$odir/otheros.bld" +    gzip -n --force -9 --stdout "$ofile.bin" > "$odir/otheros.bld"      ;;  esac diff --git a/arch/powerpc/boot/zImage.coff.lds.S b/arch/powerpc/boot/zImage.coff.lds.S index 856dc78b14e..de4c9e3c934 100644 --- a/arch/powerpc/boot/zImage.coff.lds.S +++ b/arch/powerpc/boot/zImage.coff.lds.S @@ -3,13 +3,13 @@ ENTRY(_zimage_start_opd)  EXTERN(_zimage_start_opd)  SECTIONS  { -  _start = .;    .text      :    { +    _start = .;      *(.text)      *(.fixup) +    _etext = .;    } -  _etext = .;    . = ALIGN(4096);    .data    :    { @@ -17,9 +17,7 @@ SECTIONS      *(.data*)      *(__builtin_*)      *(.sdata*) -    __got2_start = .;      *(.got2) -    __got2_end = .;      _dtb_start = .;      *(.kernel:dtb) diff --git a/arch/powerpc/boot/zImage.lds.S b/arch/powerpc/boot/zImage.lds.S index 0962d62bdb5..861e72109df 100644 --- a/arch/powerpc/boot/zImage.lds.S +++ b/arch/powerpc/boot/zImage.lds.S @@ -1,51 +1,89 @@ +#include <asm-generic/vmlinux.lds.h> + +#ifdef CONFIG_PPC64_BOOT_WRAPPER +OUTPUT_ARCH(powerpc:common64) +#else  OUTPUT_ARCH(powerpc:common) +#endif  ENTRY(_zimage_start)  EXTERN(_zimage_start)  SECTIONS  { -  _start = .;    .text      :    { +    _start = .;      *(.text)      *(.fixup) +    _etext = .;    } -  _etext = .;    . = ALIGN(4096);    .data    :    {      *(.rodata*)      *(.data*)      *(.sdata*) -    __got2_start = .; +#ifndef CONFIG_PPC64_BOOT_WRAPPER      *(.got2) -    __got2_end = .; +#endif +  } +  .dynsym : { *(.dynsym) } +  .dynstr : { *(.dynstr) } +  .dynamic : +  { +    __dynamic_start = .; +    *(.dynamic) +  } +  .hash : { *(.hash) } +  .interp : { *(.interp) } +  .rela.dyn : +  { +#ifdef CONFIG_PPC64_BOOT_WRAPPER +    __rela_dyn_start = .; +#endif +    *(.rela*)    }    . = ALIGN(8); -  _dtb_start = .; -  .kernel:dtb : { *(.kernel:dtb) } -  _dtb_end = .; +  .kernel:dtb : +  { +    _dtb_start = .; +    *(.kernel:dtb) +    _dtb_end = .; +  }    . = ALIGN(4096); -  _vmlinux_start =  .; -  .kernel:vmlinux.strip : { *(.kernel:vmlinux.strip) } -  _vmlinux_end =  .; +  .kernel:vmlinux.strip : +  { +    _vmlinux_start =  .; +    *(.kernel:vmlinux.strip) +    _vmlinux_end =  .; +  }    . = ALIGN(4096); -  _initrd_start =  .; -  .kernel:initrd : { *(.kernel:initrd) } -  _initrd_end =  .; +  .kernel:initrd : +  { +    _initrd_start =  .; +    *(.kernel:initrd) +    _initrd_end =  .; +  } -  . = ALIGN(4096); -  _edata  =  .; +#ifdef CONFIG_PPC64_BOOT_WRAPPER +  .got : +  { +    __toc_start = .; +    *(.got) +    *(.toc) +  } +#endif    . = ALIGN(4096); -  __bss_start = .;    .bss       :    { -   *(.sbss) -   *(.bss) +    _edata  =  .; +    __bss_start = .; +    *(.sbss) +    *(.bss) +    *(COMMON) +    _end = . ;    } -  . = ALIGN(4096); -  _end = . ;  }  | 
