Re: [RFC 1/2] ARM:Tegra: Device Tree Support: Initialize the audio card from the device tree.
From: Barry Song <hidden>
Date: 2011-06-02 09:07:02
Also in:
linux-arm-kernel, linux-tegra
2011/6/2 Grant Likely [off-list ref]:
On Wed, Jun 1, 2011 at 1:07 AM, Barry Song [off-list ref] wrote:quoted
2011/5/28 John Bonesio [off-list ref]:quoted
This patch makes it so the top level audio card is initialized from the device tree. This is just the first step getting the audio complex of devices iniialized from device tree nodes. Signed-off-by: John Bonesio<bones-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org> --- arch/arm/boot/dts/tegra-harmony.dts | 4 +++ arch/arm/mach-tegra/board-dt.c | 3 ++ sound/soc/tegra/harmony.c | 45 ++++++++++++++++++++++++++++++++--- 3 files changed, 48 insertions(+), 4 deletions(-)diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts index 05521a5..217a7f0 100644 --- a/arch/arm/boot/dts/tegra-harmony.dts +++ b/arch/arm/boot/dts/tegra-harmony.dts@@ -53,6 +53,10 @@clock-frequency = <400000>; }; + harmony_audio: audio_card { + compatible = "nvidia,harmony-audio"; + }; + serial@70006300 { status = "ok"; clock-frequency = < 216000000 >;diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c index c498e84..a569ad9 100644 --- a/arch/arm/mach-tegra/board-dt.c +++ b/arch/arm/mach-tegra/board-dt.c@@ -56,6 +56,9 @@ static struct platform_device *tegra250_devices[] __initdata = {&tegra_i2c_device2, &tegra_i2c_device3, &tegra_i2c_device4, + &tegra_i2s_device1, + &tegra_das_device, + &tegra_pcm_device,i am thinking whether platform_device should be created by of_platform_device_create after scanning device tree, but not by hard-code? looks like the two patches are only trying to let device tree deliver gpio to drivers?Can you please restate your question? I don't think I understand what you are trying to ask.
i mean we don't need to have this platform device registerred by the
old way here. we may get it by matching information in dts and delete
all platform_device and related codes in arch/arm. For example:
dts:
amba {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
harmony_audio: audio_card {
compatible = "nvidia,harmony-audio";
.....
};
....
....
}
then in arch/arm board file, let the platform device registerred automatically:
static struct of_device_id cell_bus_ids[] __initdata = {
{ .compatible = "simple-bus", },
{},
};
static int __init cell_publish_devices(void)
{
of_platform_bus_probe(NULL, cell_bus_ids, NULL);
return 0;
}
g. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel