Hi Brian, > From: Brian Norris [mailto:computersforpe...@gmail.com] > > On Tue, Oct 15, 2013 at 11:19:52AM +0530, Pekon Gupta wrote: > > Autodetection of NAND device bus-width was added in generic NAND > driver as [...] > > @@ -1904,6 +1903,21 @@ static int omap_nand_probe(struct > platform_device *pdev) > > nand_chip->chip_delay = 50; > > } > > > > + /* scan for NAND device connected to chip controller */ > > + if (nand_scan_ident(mtd, 1, NULL)) { > > + err = -ENXIO; > > + goto out_release_mem_region; > > + } > > + if ((nand_chip->options & NAND_BUSWIDTH_16) != > > + (pdata->devsize & NAND_BUSWIDTH_16)) { > > + pr_err("%s: detected %s device but driver configured for > %s\n", > > + DRIVER_NAME, > > + (nand_chip->options & NAND_BUSWIDTH_16) ? > "x16" : "x8", > > + (pdata->devsize & NAND_BUSWIDTH_16) ? "x16" : > "x8"); > > I'm not sure on the policy choice here; if you're using BUSWIDTH_AUTO, > do you even want to try to configure the buswidth by platform data? > You're not really getting the full use out of NAND_BUSWIDTH_AUTO because > the platform data has to guess the same buswidth that nand_base.c > determines. This is worse than the previous behavior, in which you would > try both buswidths if the specified type failed. > > IOW, what are you trying to achieve with auto-buswidth? Automatic > determination of the buswidth or just automatic validation? What do you > achieve with platform data's selection of buswidth? Specification of the > buswidth or just a hint? Do the goals conflict? Perhaps you can just > warn, and not error out if the two selections don't match? Or maybe you > really wanted to replace the platform data selection mechanism entirely > with auto-buswidth? > This is 'automatic validation' of value set in DT binding "nand-bus-width" So this approach is other way round, where controller is configured based on DT binding "nand-bus-width" and then it checks whether device actual buswidth matches DT binding value or not.
- GPMC controller is pre-configured to support "x8" or "x16" device based on DT binding "nand-bus-width". Reference: $LINUX/arch/arm/mach-omap2/gpmc.c @@gpmc_probe_nand_child() val = of_get_nand_bus_width(child); - But, bus-width of NAND device is only known during NAND driver Probe in nand_scan_ident(). Going forward when all NAND devices are compliant to ONFI, then we can deprecate "nand-bus-width". with regards, pekon -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html