Re: [PATCH v9 08/10] ASoC: Add phycore-ac97-dt driver
On Sun, Jul 07, 2013 at 09:19:49AM +0200, Markus Pargmann wrote: On Wed, Jul 03, 2013 at 05:17:27PM +0100, Mark Brown wrote: +extern void pca100_ac97_cold_reset(struct snd_ac97 *ac97); +extern void pca100_ac97_warm_reset(struct snd_ac97 *ac97); +#else +static void pca100_ac97_cold_reset(struct snd_ac97 *ac97) { } +static void pca100_ac97_warm_reset(struct snd_ac97 *ac97) { } These functions have no reason to be anywhere except in the driver and really you should just be specifying which pins to use there - ideally via pinctrl but I don't think i.MX has adopted that yet. There are no pinctrl driver for imx27(pca100) or imx35(pcm043). The iomux/pad configure functions are defined inside mach-imx/ including their headers. Both reset functions have to configure iomux/pad before and after using gpio. So I think it's not possible to make the reset based on the gpio pins without the necessary iomux/pad configuration. That all sounds fixable - either make pinctrl available or make the headers usefully visible. You can see the arch headers in the build of the entire kernel... signature.asc Description: Digital signature ___ devicetree-discuss mailing list devicetree-discuss@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss
Re: [PATCH v9 08/10] ASoC: Add phycore-ac97-dt driver
On Wed, Jul 03, 2013 at 05:17:27PM +0100, Mark Brown wrote: On Thu, Jun 20, 2013 at 03:20:27PM +0200, Markus Pargmann wrote: Notes: Changes in v9: - Fix blank line at end of file. Please don't include enormous changelogs like this, they're just noise. +config SND_SOC_PHYCORE_AC97_DT + bool SoC Audio support for Phytec phyCORE (and phyCARD) boards (devicetree only) + depends on MACH_PCA100 || MACH_PCM043 Is there an actual dependency on the machine type? This seems wrong for a DT driver. No, there is no dependency. Fixed. +static struct snd_soc_ops imx_phycore_hifi_ops = { +}; + You shouldn't have this if there's nothing in it. Removed. +static struct platform_device *imx_phycore_snd_device; This shouldn't be a global, it should be in driver data. Moved to driver data. +/* + * Pointer to AC97 reset functions for specific boards + */ +#if IS_ENABLED(CONFIG_MACH_PCA100) +extern void pca100_ac97_cold_reset(struct snd_ac97 *ac97); +extern void pca100_ac97_warm_reset(struct snd_ac97 *ac97); +#else +static void pca100_ac97_cold_reset(struct snd_ac97 *ac97) { } +static void pca100_ac97_warm_reset(struct snd_ac97 *ac97) { } +#endif + if (of_machine_is_compatible(phytec,imx27-pca100)) { + phycore_ac97_reset = pca100_ac97_cold_reset; + phycore_ac97_warm_reset = pca100_ac97_warm_reset; + } else if (of_machine_is_compatible(phytec,imx35-pcm043)) { + phycore_ac97_reset = pcm043_ac97_cold_reset; + phycore_ac97_warm_reset = pcm043_ac97_warm_reset; + } else { + dev_err(pdev-dev, Failed to set AC97 reset functions, unknown board.\n); + return -EINVAL; + } These functions have no reason to be anywhere except in the driver and really you should just be specifying which pins to use there - ideally via pinctrl but I don't think i.MX has adopted that yet. There are no pinctrl driver for imx27(pca100) or imx35(pcm043). The iomux/pad configure functions are defined inside mach-imx/ including their headers. Both reset functions have to configure iomux/pad before and after using gpio. So I think it's not possible to make the reset based on the gpio pins without the necessary iomux/pad configuration. Thanks, Markus -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0| Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | ___ devicetree-discuss mailing list devicetree-discuss@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss
Re: [PATCH v9 08/10] ASoC: Add phycore-ac97-dt driver
On Thu, Jun 20, 2013 at 03:20:27PM +0200, Markus Pargmann wrote: Notes: Changes in v9: - Fix blank line at end of file. Please don't include enormous changelogs like this, they're just noise. +config SND_SOC_PHYCORE_AC97_DT + bool SoC Audio support for Phytec phyCORE (and phyCARD) boards (devicetree only) + depends on MACH_PCA100 || MACH_PCM043 Is there an actual dependency on the machine type? This seems wrong for a DT driver. +static struct snd_soc_ops imx_phycore_hifi_ops = { +}; + You shouldn't have this if there's nothing in it. +static struct platform_device *imx_phycore_snd_device; This shouldn't be a global, it should be in driver data. +/* + * Pointer to AC97 reset functions for specific boards + */ +#if IS_ENABLED(CONFIG_MACH_PCA100) +extern void pca100_ac97_cold_reset(struct snd_ac97 *ac97); +extern void pca100_ac97_warm_reset(struct snd_ac97 *ac97); +#else +static void pca100_ac97_cold_reset(struct snd_ac97 *ac97) { } +static void pca100_ac97_warm_reset(struct snd_ac97 *ac97) { } +#endif + if (of_machine_is_compatible(phytec,imx27-pca100)) { + phycore_ac97_reset = pca100_ac97_cold_reset; + phycore_ac97_warm_reset = pca100_ac97_warm_reset; + } else if (of_machine_is_compatible(phytec,imx35-pcm043)) { + phycore_ac97_reset = pcm043_ac97_cold_reset; + phycore_ac97_warm_reset = pcm043_ac97_warm_reset; + } else { + dev_err(pdev-dev, Failed to set AC97 reset functions, unknown board.\n); + return -EINVAL; + } These functions have no reason to be anywhere except in the driver and really you should just be specifying which pins to use there - ideally via pinctrl but I don't think i.MX has adopted that yet. signature.asc Description: Digital signature ___ devicetree-discuss mailing list devicetree-discuss@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss