[PATCH] powerpc/85xx:Add BSC9131 RDB Support

Kushwaha Prabhakar-B32579 B32579 at freescale.com
Sat Mar 17 14:42:10 EST 2012


Thanks Kumar for reviewing this patch.
Please find my response in-lined..

> -----Original Message-----
> From: Kumar Gala [mailto:galak at kernel.crashing.org]
> Sent: Saturday, March 17, 2012 1:43 AM
> To: Kushwaha Prabhakar-B32579
> Cc: linuxppc-dev at lists.ozlabs.org; devicetree-discuss at lists.ozlabs.org;
> Mehresh Ramneek-B31383; Jain Priyanka-B32167; Goyal Akhil-B35197; Aggrwal
> Poonam-B10812; Srivastava Rajan-B34330
> Subject: Re: [PATCH] powerpc/85xx:Add BSC9131 RDB Support
> 
> >
> >
> > diff --git a/arch/powerpc/boot/dts/bsc9131rdb.dtsi
> > b/arch/powerpc/boot/dts/bsc9131rdb.dtsi
> > new file mode 100644
> > index 0000000..d274c014
> > --- /dev/null
> > +++ b/arch/powerpc/boot/dts/bsc9131rdb.dtsi
> > @@ -0,0 +1,179 @@
> > +/*
> > + * 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 at 0,0 {
> > +		#address-cells = <1>;
> > +		#size-cells = <1>;
> > +		compatible = "fsl,ifc-nand";
> > +		reg = <0x0 0x0 0x4000>;
> > +
> > +		partition at 0 {
> > +			/* This location must not be altered  */
> > +			/* 3MB for u-boot Bootloader Image */
> > +			reg = <0x0 0x00300000>;
> > +			label = "NAND U-Boot Image";
> > +			read-only;
> > +		};
> > +
> > +		partition at 300000 {
> > +			/* 1MB for DTB Image */
> > +			reg = <0x00300000 0x00100000>;
> > +			label = "NAND DTB Image";
> > +		};
> > +
> > +		partition at 400000 {
> > +			/* 8MB for Linux Kernel Image */
> > +			reg = <0x00400000 0x00800000>;
> > +			label = "NAND Linux Kernel Image";
> > +		};
> > +
> > +		partition at c00000 {
> > +			/* Rest space for Root file System Image */
> > +			reg = <0x00c00000 0x07400000>;
> > +			label = " NAND RFS Image";
> > +		};
> > +	};
> > +};
> > +
> > +&board_soc {
> > +	i2c at 3000 {
> > +		gpio3: gpio at 21 {
> > +			compatible = "nxp,pca9555";
> 
> Is there any binding spec for nxp,


These is no binding for nxp,pca9555. I will send a separate patch for this. 
will this binging be part of Documentation/devicetree/bindings/i2c/trivial-devices.txt?


> > +			reg = <0x21>;
> > +			#gpio-cells = <2>;
> > +			gpio-controller;
> > +			polarity = <0x00>;
> > +		};
> > +		gpio4: gpio at 23 {
> > +			compatible = "nxp,pca9555";
> > +			reg = <0x23>;
> > +			#gpio-cells = <2>;
> > +			gpio-controller;
> > +			polarity = <0x00>;
> > +		};
> > +		gpio5: gpio at 27 {
> > +			compatible = "nxp,pca9555";
> > +			reg = <0x27>;
> > +			#gpio-cells = <2>;
> > +			gpio-controller;
> > +			polarity = <0x00>;
> > +		};
> > +		hwmon at 4c {
> > +			compatible = "adi,adt7461";
> > +			reg = <0x4c>;
> > +		};
> > +		eeprom at 52 {
> > +			compatible = "st-micro,24c02";
> 
> should this have a compatible with atmel,24c02?

I will check this point


> 
> > +			reg = <0x52>;
> > +		};
> > +	};
> > +
> > +	/* BSC9131RDB does not have any device on i2c at 3100 */
> > +	i2c at 3100 {
> > +		status = "disabled";
> > +	};
> > +
> > +	spi at 7000 {
> > +		flash at 0 {
> > +			#address-cells = <1>;
> > +			#size-cells = <1>;
> > +			compatible = "spansion,s25sl12801";
> > +			reg = <0>;
> > +			spi-max-frequency = <50000000>;
> > +
> > +			/* 512KB for u-boot Bootloader Image */
> > +			partition at 0 {
> > +				reg = <0x0 0x00080000>;
> > +				label = "SPI Flash U-Boot Image";
> > +				read-only;
> > +			};
> > +
> > +			/* 512KB for DTB Image */
> > +			partition at 80000 {
> > +				reg = <0x00080000 0x00080000>;
> > +				label = "SPI Flash DTB Image";
> > +			};
> > +
> > +			/* 4MB for Linux Kernel Image */
> > +			partition at 100000 {
> > +				reg = <0x00100000 0x00400000>;
> > +				label = "SPI Flash Kernel Image";
> > +			};
> > +
> > +			/* 4MB for Compressed RFS Image */
> > +			partition at 500000 {
> > +				reg = <0x00500000 0x00400000>;
> > +				label = "SPI Flash Compressed RFS Image";
> > +			};
> > +
> > +			/* 7MB for JFFS2 based RFS */
> > +			partition at 900000 {
> > +				reg = <0x00900000 0x00700000>;
> > +				label = "SPI Flash JFFS2 RFS Image";
> > +			};
> > +		};
> > +	};
> > +
> > +	usb at 22000 {
> > +		phy_type = "ulpi";
> > +	};
> > +
> > +	mdio at 24000 {
> > +		phy0: ethernet-phy at 0 {
> > +			interrupts = <3 1 0 0>;
> > +			reg = <0x0>;
> > +		};
> > +
> > +		phy1: ethernet-phy at 1 {
> > +			interrupts = <2 1 0 0>;
> > +			reg = <0x3>;
> > +		};
> > +	};
> > +
> > +	sdhci at 2e000 {
> > +		status = "disabled";
> > +	};
> > +
> > +	enet0: ethernet at b0000 {
> > +		phy-handle = <&phy0>;
> > +		phy-connection-type = "rgmii-id";
> > +	};
> > +
> > +	enet1: ethernet at b1000 {
> > +		phy-handle = <&phy1>;
> > +		phy-connection-type = "rgmii-id";
> > +	};
> > +};
> 
> 
> > diff --git a/arch/powerpc/platforms/85xx/bsc913x_board.c
> > b/arch/powerpc/platforms/85xx/bsc913x_board.c
> 
> should be bsc913x_rdb.c
> 

Yes. I will do.

> > new file mode 100644
> > index 0000000..934c3b5
> > --- /dev/null
> > +++ b/arch/powerpc/platforms/85xx/bsc913x_board.c
> > @@ -0,0 +1,96 @@
> > +/*
> > + * BSC9131RDB Board Setup
> > + *
> > + * Author: Priyanka Jain <Priyanka.Jain at freescale.com>
> > + *
> > + * 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 <linux/of_platform.h>
> > +#include <linux/pci.h>
> > +#include <asm/mpic.h>
> > +#include <sysdev/fsl_soc.h>
> > +#include <asm/udbg.h>
> > +
> > +void __init bsc913x_board_pic_init(void) {
> > +	struct mpic *mpic;
> > +	struct resource r;
> > +	struct device_node *np;
> > +
> > +	np = of_find_node_by_type(NULL, "open-pic");
> > +	if (!np) {
> > +		pr_err("bsc913x: Could not find open-pic node\n");
> > +		return;
> > +	}
> > +
> > +	if (of_address_to_resource(np, 0, &r)) {
> > +		pr_err("bsc913x: Failed to map mpic register space\n");
> > +		of_node_put(np);
> > +		return;
> > +	}
> > +
> > +	mpic = mpic_alloc(np, r.start, MPIC_WANTS_RESET |
> > +	  MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS | MPIC_SINGLE_DEST_CPU,
> > +	  0, 256, " OpenPIC  ");
> > +
> > +	of_node_put(np);
> > +
> > +	if (!mpic)
> > +		pr_err("bsc913x: Failed to allocate MPIC structure\n");
> > +	else
> > +		mpic_init(mpic);
> 
> 
> Please update to match current board code
> 

Sure.

> > +}
> > +
> > +/*
> > + * Setup the architecture
> > + */
> > +static void __init bsc913x_board_setup_arch(void) {
> > +	if (ppc_md.progress)
> > +		ppc_md.progress("bsc913x_board_setup_arch()", 0);
> > +
> > +	pr_info("bsc913x board from Freescale Semiconductor\n"); }
> > +
> > +static struct of_device_id __initdata bsc913x_board_ids[] = {
> > +	{ .type = "soc", },
> > +	{ .type = "dsp", },
> 
> remove dsp, doesn't show up anywhere else
> 

I will remove

> > +	{ .compatible = "soc", },
> > +	{ .compatible = "simple-bus", },
> > +	{ .compatible = "gianfar", },
> > +	{},
> > +};
> > +
> > +static int __init bsc913x_board_publish_devices(void)
> > +{
> > +	return of_platform_bus_probe(NULL, bsc913x_board_ids, NULL); }
> > +machine_device_initcall(bsc9131_rdb, bsc913x_board_publish_devices);
> > +
> > +/*
> > + * Called very early, device-tree isn't unflattened  */
> > +
> > +static int __init bsc9131_rdb_probe(void) {
> > +	unsigned long root = of_get_flat_dt_root();
> > +
> > +	return of_flat_dt_is_compatible(root, "fsl,bsc9131rdb"); }
> > +
> > +define_machine(bsc9131_rdb) {
> > +	.name			= "BSC9131 RDB",
> > +	.probe			= bsc9131_rdb_probe,
> > +	.setup_arch		= bsc913x_board_setup_arch,
> > +	.init_IRQ		= bsc913x_board_pic_init,
> > +	.get_irq		= mpic_get_irq,
> > +	.restart		= fsl_rstcr_restart,
> > +	.calibrate_decr		= generic_calibrate_decr,
> > +	.progress		= udbg_progress,
> > +};
> > --
> > 1.7.5.4
> >
> >
> 

Regards,
Prabhakar




More information about the Linuxppc-dev mailing list