Use unique PSCx register base offset to obtain the SPI PSC number used for SPI bus id.
Signed-off-by: Anatolij Gustschin <ag...@denx.de> --- drivers/spi/spi-mpc512x-psc.c | 17 +++++++++++------ 1 files changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/spi/spi-mpc512x-psc.c b/drivers/spi/spi-mpc512x-psc.c index 0a1e39e..844d68f 100644 --- a/drivers/spi/spi-mpc512x-psc.c +++ b/drivers/spi/spi-mpc512x-psc.c @@ -523,16 +523,21 @@ static int __devinit mpc512x_psc_spi_of_probe(struct platform_device *op) /* get PSC id (0..11, used by port_config) */ if (op->dev.platform_data == NULL) { - const u32 *psc_nump; + u32 reg; + int err; - psc_nump = of_get_property(op->dev.of_node, "cell-index", NULL); - if (!psc_nump || *psc_nump > 11) { - dev_err(&op->dev, "mpc512x_psc_spi: Device node %s " - "has invalid cell-index property\n", + err = of_property_read_u32(op->dev.of_node, "reg", ®); + if (err) { + dev_err(&op->dev, "Can't read reg property: %d\n", err); + return err; + } + + id = (reg & 0xf00) >> 8; + if (id > 11) { + dev_err(&op->dev, "node %s has invalid reg property\n", op->dev.of_node->full_name); return -EINVAL; } - id = *psc_nump; } return mpc512x_psc_spi_do_probe(&op->dev, (u32) regaddr64, (u32) size64, -- 1.7.7.6 ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general