* [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 2:11 ` Yakir Yang 0 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:11 UTC (permalink / raw) To: Yakir Yang Cc: Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw, Arnd Bergmann, Kumar Gala, Ian Campbell, Rob Herring, David Airlie, Sean Cross rk3288 use Designware HDMI IP, Designware HDMI supports four interfaces to config hdmi audio(I2S, S/PDIF, Generic Parallel Audio, AHB Audio DMA), but rk3288 only support two ways to config hdmi audio(I2S, S/PDIF), So we take I2S as hdmi audio operation interfaces, and then treat hdmi audio as an standard ALSA devices(only got platback function). Four things we have done: 1. modify the audio part of dw_hdmi drivers for rk3288 platform specific. 2. add codec driver for hdmi audio, and creat codec device dynamically in hdmi driver probe function, using platform_register_device_full way, so that hdmi codec driver can connected with hdmi driver. 3. add sound driver for hdmi audio, creat hdmi audio sound card. 4. add dt-bings file and add hdmi_audio node to corresponding dt file. [Explanation]: those patch is depend on patch by Andy Yan drm: bridge/dw_hdmi: add rockchip rk3288 support see https://patchwork.kernel.org/patch/5442361/ Yakir Yang (6): drm: bridge/dw_hdmi: add hdmi audio config interfaces drm: bridge/bridge: add support for rk3288 hdmi-audio ASoC: dw-hdmi-audio: add codec driver for dw hdmi audio ASoC: rockchip-hdmi-audio: add sound driver for hdmi audio dt-bindings: Add documentation for Rockchip hdmi-audio ARM: dts: rockchip: add hdmi audio nodes .../sound/rockchip,rockchip-hdmi-audio.txt | 16 + arch/arm/boot/dts/rk3288-evb.dtsi | 11 + arch/arm/boot/dts/rk3288.dtsi | 8 + drivers/gpu/drm/bridge/dw_hdmi.c | 32 +- include/drm/bridge/dw_hdmi.h | 12 + sound/soc/codecs/Kconfig | 4 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/dw-hdmi-audio.c | 371 +++++++++++++++++++++ sound/soc/codecs/dw-hdmi-audio.h | 82 +++++ sound/soc/rockchip/Kconfig | 9 + sound/soc/rockchip/Makefile | 2 + sound/soc/rockchip/rockchip_hdmi_audio.c | 208 ++++++++++++ 12 files changed, 756 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt create mode 100644 sound/soc/codecs/dw-hdmi-audio.c create mode 100644 sound/soc/codecs/dw-hdmi-audio.h create mode 100644 sound/soc/rockchip/rockchip_hdmi_audio.c -- 2.1.2 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 2:11 ` Yakir Yang 0 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:11 UTC (permalink / raw) To: Yakir Yang Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, alsa-devel, Arnd Bergmann, Kumar Gala, Ian Campbell, Rob Herring, David Airlie, Sean Cross, Grant Likely, linux-rockchip, Pawel Moll, Greg Kroah-Hartman, Ben Zhang, devicetree, Russell King, Liam Girdwood, linux-arm-kernel, Jaroslav Kysela, Russell King, Mark Brown, Takashi Iwai, Mark Rutland, Jyri Sarha rk3288 use Designware HDMI IP, Designware HDMI supports four interfaces to config hdmi audio(I2S, S/PDIF, Generic Parallel Audio, AHB Audio DMA), but rk3288 only support two ways to config hdmi audio(I2S, S/PDIF), So we take I2S as hdmi audio operation interfaces, and then treat hdmi audio as an standard ALSA devices(only got platback function). Four things we have done: 1. modify the audio part of dw_hdmi drivers for rk3288 platform specific. 2. add codec driver for hdmi audio, and creat codec device dynamically in hdmi driver probe function, using platform_register_device_full way, so that hdmi codec driver can connected with hdmi driver. 3. add sound driver for hdmi audio, creat hdmi audio sound card. 4. add dt-bings file and add hdmi_audio node to corresponding dt file. [Explanation]: those patch is depend on patch by Andy Yan drm: bridge/dw_hdmi: add rockchip rk3288 support see https://patchwork.kernel.org/patch/5442361/ Yakir Yang (6): drm: bridge/dw_hdmi: add hdmi audio config interfaces drm: bridge/bridge: add support for rk3288 hdmi-audio ASoC: dw-hdmi-audio: add codec driver for dw hdmi audio ASoC: rockchip-hdmi-audio: add sound driver for hdmi audio dt-bindings: Add documentation for Rockchip hdmi-audio ARM: dts: rockchip: add hdmi audio nodes .../sound/rockchip,rockchip-hdmi-audio.txt | 16 + arch/arm/boot/dts/rk3288-evb.dtsi | 11 + arch/arm/boot/dts/rk3288.dtsi | 8 + drivers/gpu/drm/bridge/dw_hdmi.c | 32 +- include/drm/bridge/dw_hdmi.h | 12 + sound/soc/codecs/Kconfig | 4 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/dw-hdmi-audio.c | 371 +++++++++++++++++++++ sound/soc/codecs/dw-hdmi-audio.h | 82 +++++ sound/soc/rockchip/Kconfig | 9 + sound/soc/rockchip/Makefile | 2 + sound/soc/rockchip/rockchip_hdmi_audio.c | 208 ++++++++++++ 12 files changed, 756 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt create mode 100644 sound/soc/codecs/dw-hdmi-audio.c create mode 100644 sound/soc/codecs/dw-hdmi-audio.h create mode 100644 sound/soc/rockchip/rockchip_hdmi_audio.c -- 2.1.2 ^ permalink raw reply [flat|nested] 66+ messages in thread
* [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 2:11 ` Yakir Yang 0 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:11 UTC (permalink / raw) To: linux-arm-kernel rk3288 use Designware HDMI IP, Designware HDMI supports four interfaces to config hdmi audio(I2S, S/PDIF, Generic Parallel Audio, AHB Audio DMA), but rk3288 only support two ways to config hdmi audio(I2S, S/PDIF), So we take I2S as hdmi audio operation interfaces, and then treat hdmi audio as an standard ALSA devices(only got platback function). Four things we have done: 1. modify the audio part of dw_hdmi drivers for rk3288 platform specific. 2. add codec driver for hdmi audio, and creat codec device dynamically in hdmi driver probe function, using platform_register_device_full way, so that hdmi codec driver can connected with hdmi driver. 3. add sound driver for hdmi audio, creat hdmi audio sound card. 4. add dt-bings file and add hdmi_audio node to corresponding dt file. [Explanation]: those patch is depend on patch by Andy Yan drm: bridge/dw_hdmi: add rockchip rk3288 support see https://patchwork.kernel.org/patch/5442361/ Yakir Yang (6): drm: bridge/dw_hdmi: add hdmi audio config interfaces drm: bridge/bridge: add support for rk3288 hdmi-audio ASoC: dw-hdmi-audio: add codec driver for dw hdmi audio ASoC: rockchip-hdmi-audio: add sound driver for hdmi audio dt-bindings: Add documentation for Rockchip hdmi-audio ARM: dts: rockchip: add hdmi audio nodes .../sound/rockchip,rockchip-hdmi-audio.txt | 16 + arch/arm/boot/dts/rk3288-evb.dtsi | 11 + arch/arm/boot/dts/rk3288.dtsi | 8 + drivers/gpu/drm/bridge/dw_hdmi.c | 32 +- include/drm/bridge/dw_hdmi.h | 12 + sound/soc/codecs/Kconfig | 4 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/dw-hdmi-audio.c | 371 +++++++++++++++++++++ sound/soc/codecs/dw-hdmi-audio.h | 82 +++++ sound/soc/rockchip/Kconfig | 9 + sound/soc/rockchip/Makefile | 2 + sound/soc/rockchip/rockchip_hdmi_audio.c | 208 ++++++++++++ 12 files changed, 756 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt create mode 100644 sound/soc/codecs/dw-hdmi-audio.c create mode 100644 sound/soc/codecs/dw-hdmi-audio.h create mode 100644 sound/soc/rockchip/rockchip_hdmi_audio.c -- 2.1.2 ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 1/6] drm: bridge/dw_hdmi: add hdmi audio config interfaces 2014-12-15 2:11 ` Yakir Yang (?) (?) @ 2014-12-15 2:11 ` Yakir Yang -1 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:11 UTC (permalink / raw) To: Yakir Yang Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, David Airlie, Russell King, Greg Kroah-Hartman creat dw-hdmi-audio device in probe function, and support some interfaces to dw-hdmi-audio driver for setting hdmi audio format. Signed-off-by: Yakir Yang <ykk@rock-chips.com> --- drivers/gpu/drm/bridge/dw_hdmi.c | 28 ++++++++++++++++++++++++++++ include/drm/bridge/dw_hdmi.h | 12 ++++++++++++ 2 files changed, 40 insertions(+) diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c index 01c95a8..9ba96de 100644 --- a/drivers/gpu/drm/bridge/dw_hdmi.c +++ b/drivers/gpu/drm/bridge/dw_hdmi.c @@ -106,6 +106,7 @@ struct dw_hdmi { struct drm_encoder *encoder; struct drm_bridge *bridge; + struct platform_device *audio_pdev; enum dw_hdmi_devtype dev_type; struct device *dev; struct clk *isfr_clk; @@ -369,6 +370,11 @@ static void hdmi_clk_regenerator_update_pixel_clock(struct dw_hdmi *hdmi) hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock); } +static void hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int sample_rate) +{ + hdmi->sample_rate = sample_rate; + hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock); +} /* * this submodule is responsible for the video data synchronization. * for example, for RGB 4:4:4 input, the data map is defined as @@ -1558,6 +1564,8 @@ int dw_hdmi_bind(struct device *dev, struct device *master, struct resource *iores, int irq, const struct dw_hdmi_plat_data *plat_data) { + struct platform_device_info pdevinfo; + struct dw_hdmi_audio_data audio; struct drm_device *drm = data; struct device_node *np = dev->of_node; struct device_node *ddc_node; @@ -1679,6 +1687,23 @@ int dw_hdmi_bind(struct device *dev, struct device *master, dev_set_drvdata(dev, hdmi); + memset(&pdevinfo, 0, sizeof(pdevinfo)); + pdevinfo.parent = dev; + pdevinfo.id = PLATFORM_DEVID_NONE; + + audio.irq = irq; + audio.dw = hdmi; + audio.mod = hdmi_modb; + audio.read = hdmi_readb; + audio.write = hdmi_writeb; + audio.set_sample_rate = hdmi_set_sample_rate; + + pdevinfo.name = "dw-hdmi-audio"; + pdevinfo.data = &audio; + pdevinfo.size_data = sizeof(audio); + pdevinfo.dma_mask = DMA_BIT_MASK(32); + hdmi->audio_pdev = platform_device_register_full(&pdevinfo); + return 0; err_iahb: @@ -1694,6 +1719,9 @@ void dw_hdmi_unbind(struct device *dev, struct device *master, void *data) { struct dw_hdmi *hdmi = dev_get_drvdata(dev); + if (!IS_ERR(hdmi->audio_pdev)) + platform_device_unregister(hdmi->audio_pdev); + /* Disable all interrupts */ hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0); diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h index 5a4f490..82750f6 100644 --- a/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h @@ -19,6 +19,18 @@ enum { DW_HDMI_RES_MAX, }; +struct dw_hdmi; + +struct dw_hdmi_audio_data { + int irq; + struct dw_hdmi *dw; + + u8 (*read)(struct dw_hdmi *hdmi, int offset); + void (*write)(struct dw_hdmi *hdmi, u8 val, int offset); + void (*mod)(struct dw_hdmi *hdmi, u8 data, u8 mask, unsigned reg); + void (*set_sample_rate)(struct dw_hdmi *hdmi, unsigned int rate); +}; + enum dw_hdmi_devtype { IMX6Q_HDMI, IMX6DL_HDMI, -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
* [PATCH 2/6] drm: bridge/bridge: add support for rk3288 hdmi-audio 2014-12-15 2:11 ` Yakir Yang ` (2 preceding siblings ...) (?) @ 2014-12-15 2:11 ` Yakir Yang -1 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:11 UTC (permalink / raw) To: Yakir Yang Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, David Airlie, Russell King, Greg Kroah-Hartman In rk3288 dw-hdmi, AUD_CTS3 register's BIT(4) is CTS_manual. If "CTS_manual" set to 0b, AUD_CTS3 contains “audCTS[19:0]” generated by the Cycle time counter according to specified timing. If “CTS_manual” bit equals 1b, AUD_CTS3 should be configured with the “audCTS[7:0]” value that should be outputted by the Audio Packetizer. Signed-off-by: Yakir Yang <ykk@rock-chips.com> --- drivers/gpu/drm/bridge/dw_hdmi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c index 9ba96de..0c19276 100644 --- a/drivers/gpu/drm/bridge/dw_hdmi.c +++ b/drivers/gpu/drm/bridge/dw_hdmi.c @@ -191,8 +191,10 @@ static void hdmi_set_clock_regenerator_n(struct dw_hdmi *hdmi, static void hdmi_regenerate_cts(struct dw_hdmi *hdmi, unsigned int cts) { + int val = (hdmi->dev_type == RK3288_HDMI) ? 0x10 : 0x00; + /* Must be set/cleared first */ - hdmi_modb(hdmi, 0, HDMI_AUD_CTS3_CTS_MANUAL, HDMI_AUD_CTS3); + hdmi_modb(hdmi, val, HDMI_AUD_CTS3_CTS_MANUAL, HDMI_AUD_CTS3); hdmi_writeb(hdmi, cts & 0xff, HDMI_AUD_CTS1); hdmi_writeb(hdmi, (cts >> 8) & 0xff, HDMI_AUD_CTS2); -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
[parent not found: <1418609494-15820-1-git-send-email-ykk-TNX95d0MmH7DzftRWevZcw@public.gmane.org>]
* [PATCH 3/6] ASoC: dw-hdmi-audio: add codec driver for dw hdmi audio 2014-12-15 2:11 ` Yakir Yang @ 2014-12-15 2:11 ` Yakir Yang -1 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:11 UTC (permalink / raw) To: Yakir Yang Cc: Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai, Grant Likely, Rob Herring, Arnd Bergmann codec driver get some interfaces from dw_hdmi driver, than using those to set hdmi audio formats, corresponding to alsa formats. Signed-off-by: Yakir Yang <ykk-TNX95d0MmH7DzftRWevZcw@public.gmane.org> --- sound/soc/codecs/Kconfig | 4 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/dw-hdmi-audio.c | 371 +++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/dw-hdmi-audio.h | 82 +++++++++ 4 files changed, 459 insertions(+) create mode 100644 sound/soc/codecs/dw-hdmi-audio.c create mode 100644 sound/soc/codecs/dw-hdmi-audio.h diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index 883c577..e0b8be6 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -75,6 +75,7 @@ config SND_SOC_ALL_CODECS select SND_SOC_MC13783 if MFD_MC13XXX select SND_SOC_ML26124 if I2C select SND_SOC_HDMI_CODEC + select SND_SOC_DW_HDMI_AUDIO select SND_SOC_PCM1681 if I2C select SND_SOC_PCM1792A if SPI_MASTER select SND_SOC_PCM3008 @@ -459,6 +460,9 @@ config SND_SOC_MAX98095 config SND_SOC_MAX9850 tristate +config SND_SOC_DW_HDMI_AUDIO + tristate + config SND_SOC_PCM1681 tristate "Texas Instruments PCM1681 CODEC" depends on I2C diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile index bbdfd1e..0ebb664 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile @@ -68,6 +68,7 @@ snd-soc-max9850-objs := max9850.o snd-soc-mc13783-objs := mc13783.o snd-soc-ml26124-objs := ml26124.o snd-soc-hdmi-codec-objs := hdmi.o +snd-soc-dw-hdmi-audio-objs := dw-hdmi-audio.o snd-soc-pcm1681-objs := pcm1681.o snd-soc-pcm1792a-codec-objs := pcm1792a.o snd-soc-pcm3008-objs := pcm3008.o @@ -249,6 +250,7 @@ obj-$(CONFIG_SND_SOC_MAX9850) += snd-soc-max9850.o obj-$(CONFIG_SND_SOC_MC13783) += snd-soc-mc13783.o obj-$(CONFIG_SND_SOC_ML26124) += snd-soc-ml26124.o obj-$(CONFIG_SND_SOC_HDMI_CODEC) += snd-soc-hdmi-codec.o +obj-$(CONFIG_SND_SOC_DW_HDMI_AUDIO) += snd-soc-dw-hdmi-audio.o obj-$(CONFIG_SND_SOC_PCM1681) += snd-soc-pcm1681.o obj-$(CONFIG_SND_SOC_PCM1792A) += snd-soc-pcm1792a-codec.o obj-$(CONFIG_SND_SOC_PCM3008) += snd-soc-pcm3008.o diff --git a/sound/soc/codecs/dw-hdmi-audio.c b/sound/soc/codecs/dw-hdmi-audio.c new file mode 100644 index 0000000..a76d85d --- /dev/null +++ b/sound/soc/codecs/dw-hdmi-audio.c @@ -0,0 +1,371 @@ +/* + * dw-hdmi-codec.c + * + * DesignerWare ALSA SoC DAI driver for DW HDMI audio. + * Copyright (c) 2014, CORPORATION. All rights reserved. + * Authors: Yakir Yang <ykk-TNX95d0MmH7DzftRWevZcw@public.gmane.org> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>.* + * + */ +#include <linux/init.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/device.h> +#include <linux/moduleparam.h> + +#include <sound/pcm.h> +#include <sound/soc.h> +#include <sound/core.h> +#include <sound/jack.h> +#include <sound/initval.h> +#include <sound/pcm_params.h> + +#include <drm/bridge/dw_hdmi.h> +#include "dw-hdmi-audio.h" + +struct snd_dw_hdmi { + struct device *dev; + struct dw_hdmi_audio_data data; + + struct snd_soc_jack *jack; + struct delayed_work jack_work; + enum hdmi_jack_status jack_status; + enum hdmi_jack_status connect_status; +}; + +/** + * dw_hdmi_jack_detect - Enable hdmi detection via the HDMI IRQ + * + * @codec: HDMI codec + * @jack: jack to report detection events on + * + * Enable HDMI detection via IRQ on the HDMI. + * + * If no jack is supplied detection will be disabled. + */ +int dw_hdmi_jack_detect(struct snd_soc_codec *codec_dai, + struct snd_soc_jack *jack) +{ + struct snd_dw_hdmi *hdmi = snd_soc_codec_get_drvdata(codec_dai); + + hdmi->jack = jack; + hdmi->jack_status = JACK_NO_LINEOUT; + + snd_soc_jack_report(hdmi->jack, 0, SND_JACK_LINEOUT); + + queue_delayed_work(system_power_efficient_wq, &hdmi->jack_work, + msecs_to_jiffies(50)); + + return 0; +} +EXPORT_SYMBOL_GPL(dw_hdmi_jack_detect); + +static void dw_hdmi_jack_work(struct work_struct *work) +{ + struct snd_dw_hdmi *hdmi = container_of(work, struct snd_dw_hdmi, + jack_work.work); + u8 status; + + status = hdmi->data.read(hdmi->data.dw, HDMI_PHY_STAT0) & HDMI_PHY_HPD; + if (status != hdmi->connect_status) { + hdmi->jack_status = status ? SND_JACK_LINEOUT : 0; + snd_soc_jack_report(hdmi->jack, hdmi->jack_status, + SND_JACK_LINEOUT); + dev_info(hdmi->dev, "jack report [%d]\n", hdmi->jack_status); + } + hdmi->connect_status = status; +} + +static irqreturn_t snd_dw_hdmi_irq(int irq, void *dev_id) +{ + struct snd_dw_hdmi *hdmi = dev_id; + + queue_delayed_work(system_power_efficient_wq, &hdmi->jack_work, + msecs_to_jiffies(50)); + + return IRQ_HANDLED; +} + +void enable_dw_hdmi_audio(struct snd_dw_hdmi *hdmi) +{ + hdmi->data.mod(hdmi->data.dw, 0, HDMI_MC_CLKDIS_AUDCLK_DISABLE, + HDMI_MC_CLKDIS); +} + +void disable_dw_hdmi_audio(struct snd_dw_hdmi *hdmi) +{ + hdmi->data.mod(hdmi->data.dw, 1, + HDMI_MC_CLKDIS_AUDCLK_DISABLE, HDMI_MC_CLKDIS); +} + +void set_dw_hdmi_audio_fmt(struct snd_dw_hdmi *hdmi, struct hdmi_audio_fmt fmt) +{ + hdmi->data.mod(hdmi->data.dw, fmt.input_type, AUDIO_CONF0_INTERFACE_MSK, + HDMI_AUD_CONF0); + + hdmi->data.mod(hdmi->data.dw, fmt.chan_num, AUDIO_CONF0_I2SINEN_MSK, + HDMI_AUD_CONF0); + + hdmi->data.mod(hdmi->data.dw, fmt.word_length, AUDIO_CONF1_DATWIDTH_MSK, + HDMI_AUD_CONF1); + + hdmi->data.mod(hdmi->data.dw, fmt.dai_fmt, AUDIO_CONF1_DATAMODE_MSK, + HDMI_AUD_CONF1); + + hdmi->data.write(hdmi->data.dw, 0, HDMI_AUD_INPUTCLKFS); + + hdmi->data.set_sample_rate(hdmi->data.dw, fmt.sample_rate); +} + +static int dw_hdmi_dai_startup(struct snd_pcm_substream *substream, + struct snd_soc_dai *codec_dai) +{ + struct snd_dw_hdmi *hdmi = snd_soc_dai_get_drvdata(codec_dai); + + dev_info(codec_dai->dev, "[codec_dai]: startup.\n"); + enable_dw_hdmi_audio(hdmi); + + return 0; +} + +static int dw_hdmi_dai_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params, + struct snd_soc_dai *codec_dai) +{ + struct snd_dw_hdmi *hdmi = snd_soc_dai_get_drvdata(codec_dai); + struct snd_soc_pcm_runtime *rtd = substream->private_data; + struct hdmi_audio_fmt hdmi_fmt; + unsigned int fmt, rate, chan, width; + + fmt = rtd->dai_link->dai_fmt & SND_SOC_DAIFMT_FORMAT_MASK; + switch (fmt) { + case SND_SOC_DAIFMT_I2S: + hdmi_fmt.dai_fmt = AUDIO_DAIFMT_IIS; + break; + case SND_SOC_DAIFMT_LEFT_J: + hdmi_fmt.dai_fmt = AUDIO_DAIFMT_LEFT_J; + break; + case SND_SOC_DAIFMT_RIGHT_J: + hdmi_fmt.dai_fmt = AUDIO_DAIFMT_RIGHT_J; + break; + default: + dev_err(codec_dai->dev, "DAI format unsupported"); + return -EINVAL; + } + dev_info(codec_dai->dev, "[codec_dai]: dai_fmt = %d.\n", fmt); + + width = params_width(params); + switch (width) { + case 16: + case 24: + hdmi_fmt.word_length = width; + break; + default: + dev_err(codec_dai->dev, "width[%d] not support!\n", width); + return -EINVAL; + } + dev_info(codec_dai->dev, "[codec_dai]: word_length = %d.\n", width); + + chan = params_channels(params); + switch (chan) { + case 2: + hdmi_fmt.chan_num = AUDIO_CHANNELNUM_2; + break; + case 4: + hdmi_fmt.chan_num = AUDIO_CHANNELNUM_4; + break; + case 6: + hdmi_fmt.chan_num = AUDIO_CHANNELNUM_6; + break; + case 8: + hdmi_fmt.chan_num = AUDIO_CHANNELNUM_8; + break; + default: + dev_err(codec_dai->dev, "channel[%d] not support!\n", chan); + return -EINVAL; + } + dev_info(codec_dai->dev, "[codec_dai]: chan_num = %d.\n", chan); + + rate = params_rate(params); + switch (rate) { + case 32000: + case 44100: + case 48000: + case 88200: + case 96000: + case 176400: + case 192000: + hdmi_fmt.sample_rate = rate; + break; + default: + dev_err(codec_dai->dev, "rate[%d] not support!\n", rate); + return -EINVAL; + } + dev_info(codec_dai->dev, "[codec_dai]: sample_rate = %d.\n", rate); + + hdmi_fmt.input_type = AUDIO_INPUTTYPE_IIS; + + set_dw_hdmi_audio_fmt(hdmi, hdmi_fmt); + + return 0; +} + +static int dw_hdmi_dai_trigger(struct snd_pcm_substream *substream, + int cmd, struct snd_soc_dai *codec_dai) +{ + struct snd_dw_hdmi *hdmi = snd_soc_dai_get_drvdata(codec_dai); + + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + case SNDRV_PCM_TRIGGER_RESUME: + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + disable_dw_hdmi_audio(hdmi); + dev_info(codec_dai->dev, "[codec_dai]: trigger enable.\n"); + break; + case SNDRV_PCM_TRIGGER_STOP: + case SNDRV_PCM_TRIGGER_SUSPEND: + case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + enable_dw_hdmi_audio(hdmi); + dev_info(codec_dai->dev, "[codec_dai]: trigger disable.\n"); + break; + default: + return -EINVAL; + } + + return 0; +} + +static void dw_hdmi_dai_shutdown(struct snd_pcm_substream *substream, + struct snd_soc_dai *codec_dai) +{ + struct snd_dw_hdmi *hdmi = snd_soc_dai_get_drvdata(codec_dai); + + dev_info(codec_dai->dev, "[codec_dai]: shutdown.\n"); + disable_dw_hdmi_audio(hdmi); +} + +static const struct snd_soc_dapm_widget dw_hdmi_widgets[] = { + SND_SOC_DAPM_OUTPUT("TX"), +}; + +static const struct snd_soc_dapm_route dw_hdmi_routes[] = { + { "TX", NULL, "Playback" }, +}; + +static const struct snd_soc_dai_ops dw_hdmi_dai_ops = { + .startup = dw_hdmi_dai_startup, + .hw_params = dw_hdmi_dai_hw_params, + .trigger = dw_hdmi_dai_trigger, + .shutdown = dw_hdmi_dai_shutdown, +}; + +static struct snd_soc_dai_driver dw_hdmi_audio_dai[] = { +{ + .name = "dw-hdmi-hifi", + .playback = { + .stream_name = "Playback", + .channels_min = 2, + .channels_max = 8, + .rates = SNDRV_PCM_RATE_32000 | + SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_192000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE, + }, + .ops = &dw_hdmi_dai_ops, +} +}; + +static struct snd_soc_codec_driver dw_hdmi_audio = { + .dapm_widgets = dw_hdmi_widgets, + .num_dapm_widgets = ARRAY_SIZE(dw_hdmi_widgets), + .dapm_routes = dw_hdmi_routes, + .num_dapm_routes = ARRAY_SIZE(dw_hdmi_routes), +}; + +static int dw_hdmi_audio_probe(struct platform_device *pdev) +{ + struct dw_hdmi_audio_data *data = pdev->dev.platform_data; + struct snd_dw_hdmi *hdmi; + int ret; + + hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); + if (!hdmi) + return -ENOMEM; + + hdmi->data = *data; + hdmi->dev = &pdev->dev; + platform_set_drvdata(pdev, hdmi); + + INIT_DELAYED_WORK(&hdmi->jack_work, dw_hdmi_jack_work); + + ret = devm_request_irq(&pdev->dev, hdmi->data.irq, snd_dw_hdmi_irq, + IRQF_SHARED, "dw-hdmi-audio", hdmi); + if (ret) { + dev_err(&pdev->dev, "request irq failed (%d)\n", ret); + goto free_hdmi_data; + } + + ret = snd_soc_register_codec(&pdev->dev, &dw_hdmi_audio, + dw_hdmi_audio_dai, + ARRAY_SIZE(dw_hdmi_audio_dai)); + if (ret) { + dev_err(&pdev->dev, "register codec failed (%d)\n", ret); + goto free_irq; + } + + dev_info(&pdev->dev, "hdmi audio init success.\n"); + + return 0; + +free_irq: + devm_free_irq(&pdev->dev, hdmi->data.irq, hdmi); +free_hdmi_data: + devm_kfree(&pdev->dev, hdmi); + + return ret; +} + +static int dw_hdmi_audio_remove(struct platform_device *pdev) +{ + struct snd_dw_hdmi *hdmi = platform_get_drvdata(pdev); + + snd_soc_unregister_codec(&pdev->dev); + devm_free_irq(&pdev->dev, hdmi->data.irq, hdmi); + devm_kfree(&pdev->dev, hdmi); + + return 0; +} + +static const struct of_device_id dw_hdmi_audio_ids[] = { + { .compatible = "dw-hdmi-audio", }, + { } +}; + +static struct platform_driver dw_hdmi_audio_driver = { + .driver = { + .name = "dw-hdmi-audio", + .owner = THIS_MODULE, + .of_match_table = of_match_ptr(dw_hdmi_audio_ids), + }, + .probe = dw_hdmi_audio_probe, + .remove = dw_hdmi_audio_remove, +}; +module_platform_driver(dw_hdmi_audio_driver); + +MODULE_AUTHOR("Yakir Yang <ykk-TNX95d0MmH7DzftRWevZcw@public.gmane.org>"); +MODULE_DESCRIPTION("DW HDMI Audio ASoC Interface"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:" "dw-hdmi-audio"); +MODULE_DEVICE_TABLE(of, dw_hdmi_audio_ids); diff --git a/sound/soc/codecs/dw-hdmi-audio.h b/sound/soc/codecs/dw-hdmi-audio.h new file mode 100644 index 0000000..38e2e81 --- /dev/null +++ b/sound/soc/codecs/dw-hdmi-audio.h @@ -0,0 +1,82 @@ +/* + * dw-hdmi-audio.h -- DW HDMI ALSA SoC Audio driver + * + * Copyright 2011-2012 DesignerWare Products + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef _DW_HDMI_AUDIO_H +#define _DW_HDMI_AUDIO_H + +enum hdmi_audio_reg { + HDMI_PHY_STAT0 = 0x3004, + HDMI_AUD_CONF0 = 0x3100, + HDMI_AUD_CONF1 = 0x3101, + HDMI_AUD_INPUTCLKFS = 0x3206, + HDMI_MC_CLKDIS = 0x4001, +}; + +enum { + HDMI_PHY_HPD = 0x2, + HDMI_MC_CLKDIS_AUDCLK_DISABLE = 0x8, +}; + +enum hdmi_audio_samplerate { + AUDIO_SAMPLERATE_32K = 32000, + AUDIO_SAMPLERATE_44K1 = 44100, + AUDIO_SAMPLERATE_48K = 48000, + AUDIO_SAMPLERATE_88K2 = 88200, + AUDIO_SAMPLERATE_96K = 96000, + AUDIO_SAMPLERATE_176K4 = 176400, + AUDIO_SAMPLERATE_192K = 192000, +}; + +#define AUDIO_CONF1_DATWIDTH_MSK 0x1F +enum hdmi_audio_wordlength { + AUDIO_WORDLENGTH_16BIT = 16, + AUDIO_WORDLENGTH_24BIT = 24, +}; + +#define AUDIO_CONF1_DATAMODE_MSK 0xE0 +enum hdmi_audio_daifmt { + AUDIO_DAIFMT_IIS = 0x00, + AUDIO_DAIFMT_RIGHT_J = 0x20, + AUDIO_DAIFMT_LEFT_J = 0x40, + AUDIO_DAIFMT_BURST_1 = 0x60, + AUDIO_DAIFMT_BURST_2 = 0x80, +}; + +#define AUDIO_CONF0_INTERFACE_MSK 0x20 +enum hdmi_audio_inputtype { + AUDIO_INPUTTYPE_IIS = 0x20, + AUDIO_INPUTTYPE_SPDIF = 0x00, +}; + +#define AUDIO_CONF0_I2SINEN_MSK 0x0F +enum hdmi_audio_channelnum { + AUDIO_CHANNELNUM_2 = 0x01, + AUDIO_CHANNELNUM_4 = 0x03, + AUDIO_CHANNELNUM_6 = 0x07, + AUDIO_CHANNELNUM_8 = 0x0F, +}; + +enum hdmi_jack_status { + JACK_LINEOUT, + JACK_NO_LINEOUT, +}; + +struct hdmi_audio_fmt { + enum hdmi_audio_inputtype input_type; + enum hdmi_audio_channelnum chan_num; + enum hdmi_audio_samplerate sample_rate; + enum hdmi_audio_wordlength word_length; + enum hdmi_audio_daifmt dai_fmt; +}; + +int dw_hdmi_jack_detect(struct snd_soc_codec *codec_dai, + struct snd_soc_jack *jack); + +#endif -- 2.1.2 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 66+ messages in thread
* [PATCH 3/6] ASoC: dw-hdmi-audio: add codec driver for dw hdmi audio @ 2014-12-15 2:11 ` Yakir Yang 0 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:11 UTC (permalink / raw) To: Yakir Yang Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai, Grant Likely, Rob Herring, Arnd Bergmann, Jyri Sarha, Sean Cross, Ben Zhang, alsa-devel, devicetree codec driver get some interfaces from dw_hdmi driver, than using those to set hdmi audio formats, corresponding to alsa formats. Signed-off-by: Yakir Yang <ykk@rock-chips.com> --- sound/soc/codecs/Kconfig | 4 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/dw-hdmi-audio.c | 371 +++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/dw-hdmi-audio.h | 82 +++++++++ 4 files changed, 459 insertions(+) create mode 100644 sound/soc/codecs/dw-hdmi-audio.c create mode 100644 sound/soc/codecs/dw-hdmi-audio.h diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index 883c577..e0b8be6 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -75,6 +75,7 @@ config SND_SOC_ALL_CODECS select SND_SOC_MC13783 if MFD_MC13XXX select SND_SOC_ML26124 if I2C select SND_SOC_HDMI_CODEC + select SND_SOC_DW_HDMI_AUDIO select SND_SOC_PCM1681 if I2C select SND_SOC_PCM1792A if SPI_MASTER select SND_SOC_PCM3008 @@ -459,6 +460,9 @@ config SND_SOC_MAX98095 config SND_SOC_MAX9850 tristate +config SND_SOC_DW_HDMI_AUDIO + tristate + config SND_SOC_PCM1681 tristate "Texas Instruments PCM1681 CODEC" depends on I2C diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile index bbdfd1e..0ebb664 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile @@ -68,6 +68,7 @@ snd-soc-max9850-objs := max9850.o snd-soc-mc13783-objs := mc13783.o snd-soc-ml26124-objs := ml26124.o snd-soc-hdmi-codec-objs := hdmi.o +snd-soc-dw-hdmi-audio-objs := dw-hdmi-audio.o snd-soc-pcm1681-objs := pcm1681.o snd-soc-pcm1792a-codec-objs := pcm1792a.o snd-soc-pcm3008-objs := pcm3008.o @@ -249,6 +250,7 @@ obj-$(CONFIG_SND_SOC_MAX9850) += snd-soc-max9850.o obj-$(CONFIG_SND_SOC_MC13783) += snd-soc-mc13783.o obj-$(CONFIG_SND_SOC_ML26124) += snd-soc-ml26124.o obj-$(CONFIG_SND_SOC_HDMI_CODEC) += snd-soc-hdmi-codec.o +obj-$(CONFIG_SND_SOC_DW_HDMI_AUDIO) += snd-soc-dw-hdmi-audio.o obj-$(CONFIG_SND_SOC_PCM1681) += snd-soc-pcm1681.o obj-$(CONFIG_SND_SOC_PCM1792A) += snd-soc-pcm1792a-codec.o obj-$(CONFIG_SND_SOC_PCM3008) += snd-soc-pcm3008.o diff --git a/sound/soc/codecs/dw-hdmi-audio.c b/sound/soc/codecs/dw-hdmi-audio.c new file mode 100644 index 0000000..a76d85d --- /dev/null +++ b/sound/soc/codecs/dw-hdmi-audio.c @@ -0,0 +1,371 @@ +/* + * dw-hdmi-codec.c + * + * DesignerWare ALSA SoC DAI driver for DW HDMI audio. + * Copyright (c) 2014, CORPORATION. All rights reserved. + * Authors: Yakir Yang <ykk@rock-chips.com> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>.* + * + */ +#include <linux/init.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/device.h> +#include <linux/moduleparam.h> + +#include <sound/pcm.h> +#include <sound/soc.h> +#include <sound/core.h> +#include <sound/jack.h> +#include <sound/initval.h> +#include <sound/pcm_params.h> + +#include <drm/bridge/dw_hdmi.h> +#include "dw-hdmi-audio.h" + +struct snd_dw_hdmi { + struct device *dev; + struct dw_hdmi_audio_data data; + + struct snd_soc_jack *jack; + struct delayed_work jack_work; + enum hdmi_jack_status jack_status; + enum hdmi_jack_status connect_status; +}; + +/** + * dw_hdmi_jack_detect - Enable hdmi detection via the HDMI IRQ + * + * @codec: HDMI codec + * @jack: jack to report detection events on + * + * Enable HDMI detection via IRQ on the HDMI. + * + * If no jack is supplied detection will be disabled. + */ +int dw_hdmi_jack_detect(struct snd_soc_codec *codec_dai, + struct snd_soc_jack *jack) +{ + struct snd_dw_hdmi *hdmi = snd_soc_codec_get_drvdata(codec_dai); + + hdmi->jack = jack; + hdmi->jack_status = JACK_NO_LINEOUT; + + snd_soc_jack_report(hdmi->jack, 0, SND_JACK_LINEOUT); + + queue_delayed_work(system_power_efficient_wq, &hdmi->jack_work, + msecs_to_jiffies(50)); + + return 0; +} +EXPORT_SYMBOL_GPL(dw_hdmi_jack_detect); + +static void dw_hdmi_jack_work(struct work_struct *work) +{ + struct snd_dw_hdmi *hdmi = container_of(work, struct snd_dw_hdmi, + jack_work.work); + u8 status; + + status = hdmi->data.read(hdmi->data.dw, HDMI_PHY_STAT0) & HDMI_PHY_HPD; + if (status != hdmi->connect_status) { + hdmi->jack_status = status ? SND_JACK_LINEOUT : 0; + snd_soc_jack_report(hdmi->jack, hdmi->jack_status, + SND_JACK_LINEOUT); + dev_info(hdmi->dev, "jack report [%d]\n", hdmi->jack_status); + } + hdmi->connect_status = status; +} + +static irqreturn_t snd_dw_hdmi_irq(int irq, void *dev_id) +{ + struct snd_dw_hdmi *hdmi = dev_id; + + queue_delayed_work(system_power_efficient_wq, &hdmi->jack_work, + msecs_to_jiffies(50)); + + return IRQ_HANDLED; +} + +void enable_dw_hdmi_audio(struct snd_dw_hdmi *hdmi) +{ + hdmi->data.mod(hdmi->data.dw, 0, HDMI_MC_CLKDIS_AUDCLK_DISABLE, + HDMI_MC_CLKDIS); +} + +void disable_dw_hdmi_audio(struct snd_dw_hdmi *hdmi) +{ + hdmi->data.mod(hdmi->data.dw, 1, + HDMI_MC_CLKDIS_AUDCLK_DISABLE, HDMI_MC_CLKDIS); +} + +void set_dw_hdmi_audio_fmt(struct snd_dw_hdmi *hdmi, struct hdmi_audio_fmt fmt) +{ + hdmi->data.mod(hdmi->data.dw, fmt.input_type, AUDIO_CONF0_INTERFACE_MSK, + HDMI_AUD_CONF0); + + hdmi->data.mod(hdmi->data.dw, fmt.chan_num, AUDIO_CONF0_I2SINEN_MSK, + HDMI_AUD_CONF0); + + hdmi->data.mod(hdmi->data.dw, fmt.word_length, AUDIO_CONF1_DATWIDTH_MSK, + HDMI_AUD_CONF1); + + hdmi->data.mod(hdmi->data.dw, fmt.dai_fmt, AUDIO_CONF1_DATAMODE_MSK, + HDMI_AUD_CONF1); + + hdmi->data.write(hdmi->data.dw, 0, HDMI_AUD_INPUTCLKFS); + + hdmi->data.set_sample_rate(hdmi->data.dw, fmt.sample_rate); +} + +static int dw_hdmi_dai_startup(struct snd_pcm_substream *substream, + struct snd_soc_dai *codec_dai) +{ + struct snd_dw_hdmi *hdmi = snd_soc_dai_get_drvdata(codec_dai); + + dev_info(codec_dai->dev, "[codec_dai]: startup.\n"); + enable_dw_hdmi_audio(hdmi); + + return 0; +} + +static int dw_hdmi_dai_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params, + struct snd_soc_dai *codec_dai) +{ + struct snd_dw_hdmi *hdmi = snd_soc_dai_get_drvdata(codec_dai); + struct snd_soc_pcm_runtime *rtd = substream->private_data; + struct hdmi_audio_fmt hdmi_fmt; + unsigned int fmt, rate, chan, width; + + fmt = rtd->dai_link->dai_fmt & SND_SOC_DAIFMT_FORMAT_MASK; + switch (fmt) { + case SND_SOC_DAIFMT_I2S: + hdmi_fmt.dai_fmt = AUDIO_DAIFMT_IIS; + break; + case SND_SOC_DAIFMT_LEFT_J: + hdmi_fmt.dai_fmt = AUDIO_DAIFMT_LEFT_J; + break; + case SND_SOC_DAIFMT_RIGHT_J: + hdmi_fmt.dai_fmt = AUDIO_DAIFMT_RIGHT_J; + break; + default: + dev_err(codec_dai->dev, "DAI format unsupported"); + return -EINVAL; + } + dev_info(codec_dai->dev, "[codec_dai]: dai_fmt = %d.\n", fmt); + + width = params_width(params); + switch (width) { + case 16: + case 24: + hdmi_fmt.word_length = width; + break; + default: + dev_err(codec_dai->dev, "width[%d] not support!\n", width); + return -EINVAL; + } + dev_info(codec_dai->dev, "[codec_dai]: word_length = %d.\n", width); + + chan = params_channels(params); + switch (chan) { + case 2: + hdmi_fmt.chan_num = AUDIO_CHANNELNUM_2; + break; + case 4: + hdmi_fmt.chan_num = AUDIO_CHANNELNUM_4; + break; + case 6: + hdmi_fmt.chan_num = AUDIO_CHANNELNUM_6; + break; + case 8: + hdmi_fmt.chan_num = AUDIO_CHANNELNUM_8; + break; + default: + dev_err(codec_dai->dev, "channel[%d] not support!\n", chan); + return -EINVAL; + } + dev_info(codec_dai->dev, "[codec_dai]: chan_num = %d.\n", chan); + + rate = params_rate(params); + switch (rate) { + case 32000: + case 44100: + case 48000: + case 88200: + case 96000: + case 176400: + case 192000: + hdmi_fmt.sample_rate = rate; + break; + default: + dev_err(codec_dai->dev, "rate[%d] not support!\n", rate); + return -EINVAL; + } + dev_info(codec_dai->dev, "[codec_dai]: sample_rate = %d.\n", rate); + + hdmi_fmt.input_type = AUDIO_INPUTTYPE_IIS; + + set_dw_hdmi_audio_fmt(hdmi, hdmi_fmt); + + return 0; +} + +static int dw_hdmi_dai_trigger(struct snd_pcm_substream *substream, + int cmd, struct snd_soc_dai *codec_dai) +{ + struct snd_dw_hdmi *hdmi = snd_soc_dai_get_drvdata(codec_dai); + + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + case SNDRV_PCM_TRIGGER_RESUME: + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + disable_dw_hdmi_audio(hdmi); + dev_info(codec_dai->dev, "[codec_dai]: trigger enable.\n"); + break; + case SNDRV_PCM_TRIGGER_STOP: + case SNDRV_PCM_TRIGGER_SUSPEND: + case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + enable_dw_hdmi_audio(hdmi); + dev_info(codec_dai->dev, "[codec_dai]: trigger disable.\n"); + break; + default: + return -EINVAL; + } + + return 0; +} + +static void dw_hdmi_dai_shutdown(struct snd_pcm_substream *substream, + struct snd_soc_dai *codec_dai) +{ + struct snd_dw_hdmi *hdmi = snd_soc_dai_get_drvdata(codec_dai); + + dev_info(codec_dai->dev, "[codec_dai]: shutdown.\n"); + disable_dw_hdmi_audio(hdmi); +} + +static const struct snd_soc_dapm_widget dw_hdmi_widgets[] = { + SND_SOC_DAPM_OUTPUT("TX"), +}; + +static const struct snd_soc_dapm_route dw_hdmi_routes[] = { + { "TX", NULL, "Playback" }, +}; + +static const struct snd_soc_dai_ops dw_hdmi_dai_ops = { + .startup = dw_hdmi_dai_startup, + .hw_params = dw_hdmi_dai_hw_params, + .trigger = dw_hdmi_dai_trigger, + .shutdown = dw_hdmi_dai_shutdown, +}; + +static struct snd_soc_dai_driver dw_hdmi_audio_dai[] = { +{ + .name = "dw-hdmi-hifi", + .playback = { + .stream_name = "Playback", + .channels_min = 2, + .channels_max = 8, + .rates = SNDRV_PCM_RATE_32000 | + SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_192000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE, + }, + .ops = &dw_hdmi_dai_ops, +} +}; + +static struct snd_soc_codec_driver dw_hdmi_audio = { + .dapm_widgets = dw_hdmi_widgets, + .num_dapm_widgets = ARRAY_SIZE(dw_hdmi_widgets), + .dapm_routes = dw_hdmi_routes, + .num_dapm_routes = ARRAY_SIZE(dw_hdmi_routes), +}; + +static int dw_hdmi_audio_probe(struct platform_device *pdev) +{ + struct dw_hdmi_audio_data *data = pdev->dev.platform_data; + struct snd_dw_hdmi *hdmi; + int ret; + + hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); + if (!hdmi) + return -ENOMEM; + + hdmi->data = *data; + hdmi->dev = &pdev->dev; + platform_set_drvdata(pdev, hdmi); + + INIT_DELAYED_WORK(&hdmi->jack_work, dw_hdmi_jack_work); + + ret = devm_request_irq(&pdev->dev, hdmi->data.irq, snd_dw_hdmi_irq, + IRQF_SHARED, "dw-hdmi-audio", hdmi); + if (ret) { + dev_err(&pdev->dev, "request irq failed (%d)\n", ret); + goto free_hdmi_data; + } + + ret = snd_soc_register_codec(&pdev->dev, &dw_hdmi_audio, + dw_hdmi_audio_dai, + ARRAY_SIZE(dw_hdmi_audio_dai)); + if (ret) { + dev_err(&pdev->dev, "register codec failed (%d)\n", ret); + goto free_irq; + } + + dev_info(&pdev->dev, "hdmi audio init success.\n"); + + return 0; + +free_irq: + devm_free_irq(&pdev->dev, hdmi->data.irq, hdmi); +free_hdmi_data: + devm_kfree(&pdev->dev, hdmi); + + return ret; +} + +static int dw_hdmi_audio_remove(struct platform_device *pdev) +{ + struct snd_dw_hdmi *hdmi = platform_get_drvdata(pdev); + + snd_soc_unregister_codec(&pdev->dev); + devm_free_irq(&pdev->dev, hdmi->data.irq, hdmi); + devm_kfree(&pdev->dev, hdmi); + + return 0; +} + +static const struct of_device_id dw_hdmi_audio_ids[] = { + { .compatible = "dw-hdmi-audio", }, + { } +}; + +static struct platform_driver dw_hdmi_audio_driver = { + .driver = { + .name = "dw-hdmi-audio", + .owner = THIS_MODULE, + .of_match_table = of_match_ptr(dw_hdmi_audio_ids), + }, + .probe = dw_hdmi_audio_probe, + .remove = dw_hdmi_audio_remove, +}; +module_platform_driver(dw_hdmi_audio_driver); + +MODULE_AUTHOR("Yakir Yang <ykk@rock-chips.com>"); +MODULE_DESCRIPTION("DW HDMI Audio ASoC Interface"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:" "dw-hdmi-audio"); +MODULE_DEVICE_TABLE(of, dw_hdmi_audio_ids); diff --git a/sound/soc/codecs/dw-hdmi-audio.h b/sound/soc/codecs/dw-hdmi-audio.h new file mode 100644 index 0000000..38e2e81 --- /dev/null +++ b/sound/soc/codecs/dw-hdmi-audio.h @@ -0,0 +1,82 @@ +/* + * dw-hdmi-audio.h -- DW HDMI ALSA SoC Audio driver + * + * Copyright 2011-2012 DesignerWare Products + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef _DW_HDMI_AUDIO_H +#define _DW_HDMI_AUDIO_H + +enum hdmi_audio_reg { + HDMI_PHY_STAT0 = 0x3004, + HDMI_AUD_CONF0 = 0x3100, + HDMI_AUD_CONF1 = 0x3101, + HDMI_AUD_INPUTCLKFS = 0x3206, + HDMI_MC_CLKDIS = 0x4001, +}; + +enum { + HDMI_PHY_HPD = 0x2, + HDMI_MC_CLKDIS_AUDCLK_DISABLE = 0x8, +}; + +enum hdmi_audio_samplerate { + AUDIO_SAMPLERATE_32K = 32000, + AUDIO_SAMPLERATE_44K1 = 44100, + AUDIO_SAMPLERATE_48K = 48000, + AUDIO_SAMPLERATE_88K2 = 88200, + AUDIO_SAMPLERATE_96K = 96000, + AUDIO_SAMPLERATE_176K4 = 176400, + AUDIO_SAMPLERATE_192K = 192000, +}; + +#define AUDIO_CONF1_DATWIDTH_MSK 0x1F +enum hdmi_audio_wordlength { + AUDIO_WORDLENGTH_16BIT = 16, + AUDIO_WORDLENGTH_24BIT = 24, +}; + +#define AUDIO_CONF1_DATAMODE_MSK 0xE0 +enum hdmi_audio_daifmt { + AUDIO_DAIFMT_IIS = 0x00, + AUDIO_DAIFMT_RIGHT_J = 0x20, + AUDIO_DAIFMT_LEFT_J = 0x40, + AUDIO_DAIFMT_BURST_1 = 0x60, + AUDIO_DAIFMT_BURST_2 = 0x80, +}; + +#define AUDIO_CONF0_INTERFACE_MSK 0x20 +enum hdmi_audio_inputtype { + AUDIO_INPUTTYPE_IIS = 0x20, + AUDIO_INPUTTYPE_SPDIF = 0x00, +}; + +#define AUDIO_CONF0_I2SINEN_MSK 0x0F +enum hdmi_audio_channelnum { + AUDIO_CHANNELNUM_2 = 0x01, + AUDIO_CHANNELNUM_4 = 0x03, + AUDIO_CHANNELNUM_6 = 0x07, + AUDIO_CHANNELNUM_8 = 0x0F, +}; + +enum hdmi_jack_status { + JACK_LINEOUT, + JACK_NO_LINEOUT, +}; + +struct hdmi_audio_fmt { + enum hdmi_audio_inputtype input_type; + enum hdmi_audio_channelnum chan_num; + enum hdmi_audio_samplerate sample_rate; + enum hdmi_audio_wordlength word_length; + enum hdmi_audio_daifmt dai_fmt; +}; + +int dw_hdmi_jack_detect(struct snd_soc_codec *codec_dai, + struct snd_soc_jack *jack); + +#endif -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. 2014-12-15 2:11 ` Yakir Yang (?) @ 2014-12-15 10:38 ` Russell King - ARM Linux -1 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-15 10:38 UTC (permalink / raw) To: Yakir Yang Cc: Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw, Arnd Bergmann, Kumar Gala, Ian Campbell, Rob Herring, David Airlie, Sean Cross On Mon, Dec 15, 2014 at 10:11:28AM +0800, Yakir Yang wrote: > > rk3288 use Designware HDMI IP, Designware HDMI supports four interfaces to > config hdmi audio(I2S, S/PDIF, Generic Parallel Audio, AHB Audio DMA), but > rk3288 only support two ways to config hdmi audio(I2S, S/PDIF), So we take > I2S as hdmi audio operation interfaces, and then treat hdmi audio as an > standard ALSA devices(only got platback function). There is no need for dw-hdmi audio to be implemented as an ASoC device - as I've already sent patches to Andy with my ALSA driver which has been around for the last two years, and works well, and doesn't require any additional DT description. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 10:38 ` Russell King - ARM Linux 0 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-15 10:38 UTC (permalink / raw) To: Yakir Yang Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, alsa-devel, Arnd Bergmann, Kumar Gala, Ian Campbell, Rob Herring, David Airlie, Sean Cross, Grant Likely, linux-rockchip, Pawel Moll, Greg Kroah-Hartman, Ben Zhang, devicetree, Liam Girdwood, linux-arm-kernel, Jaroslav Kysela, Mark Brown, Takashi Iwai, Mark Rutland, Jyri Sarha On Mon, Dec 15, 2014 at 10:11:28AM +0800, Yakir Yang wrote: > > rk3288 use Designware HDMI IP, Designware HDMI supports four interfaces to > config hdmi audio(I2S, S/PDIF, Generic Parallel Audio, AHB Audio DMA), but > rk3288 only support two ways to config hdmi audio(I2S, S/PDIF), So we take > I2S as hdmi audio operation interfaces, and then treat hdmi audio as an > standard ALSA devices(only got platback function). There is no need for dw-hdmi audio to be implemented as an ASoC device - as I've already sent patches to Andy with my ALSA driver which has been around for the last two years, and works well, and doesn't require any additional DT description. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. ^ permalink raw reply [flat|nested] 66+ messages in thread
* [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 10:38 ` Russell King - ARM Linux 0 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-15 10:38 UTC (permalink / raw) To: linux-arm-kernel On Mon, Dec 15, 2014 at 10:11:28AM +0800, Yakir Yang wrote: > > rk3288 use Designware HDMI IP, Designware HDMI supports four interfaces to > config hdmi audio(I2S, S/PDIF, Generic Parallel Audio, AHB Audio DMA), but > rk3288 only support two ways to config hdmi audio(I2S, S/PDIF), So we take > I2S as hdmi audio operation interfaces, and then treat hdmi audio as an > standard ALSA devices(only got platback function). There is no need for dw-hdmi audio to be implemented as an ASoC device - as I've already sent patches to Andy with my ALSA driver which has been around for the last two years, and works well, and doesn't require any additional DT description. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. 2014-12-15 10:38 ` Russell King - ARM Linux (?) (?) @ 2014-12-15 11:45 ` Kuankuan.Yang 2014-12-15 11:52 ` Kuankuan.Yang -1 siblings, 1 reply; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 11:45 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Mark Rutland, alsa-devel, Heiko Stuebner, devicetree, David Airlie, dri-devel, Liam Girdwood, Max Filippov, Bard Liao, Lars-Peter Clausen, Pawel Moll, Takashi Iwai, linux-rockchip, Grant Likely, Dylan Reid, Xu Jianqun, Oder Chiou, Zubair.Kakakhel, Arnd Bergmann, Ian Campbell, Jyri Sarha, Ben Zhang, Rob Herring, Daniel Kurtz, Stéphane Marchesin Hi Russell: thks for your replay, actually you also have send me those dw-hdmi-audio.c patches, and I also agree it's an beautiful way to make hdmi-audio works. Beside, I try to reuse it into our platform, and actually the system have created the DW_HDMI sound card successfully, but i cannot play any sound with this sound card. After dump the registers, I found the part of "Audio DMA Registers" cannot write and always read with 0x00. So I searching the document "Designware Core HDMI Transmitter Controller Databook", and found that "Audio DMA Registers" only present when the hardware configuration parameter AUDIO_IF is set to AHBAUDDMA. Than I communicate with our IC colleagues, they told me that our cpu rk3288 only support two way to transmit audio data( I2S & SPDIF ), in that way we do not support AHB_DMA, it's very sad, and this it why i give up this way, also it's my bad that i should replay to u first in the before mail. Best Regards. 在 2014年12月15日 18:38, Russell King - ARM Linux 写道: > On Mon, Dec 15, 2014 at 10:11:28AM +0800, Yakir Yang wrote: >> rk3288 use Designware HDMI IP, Designware HDMI supports four interfaces to >> config hdmi audio(I2S, S/PDIF, Generic Parallel Audio, AHB Audio DMA), but >> rk3288 only support two ways to config hdmi audio(I2S, S/PDIF), So we take >> I2S as hdmi audio operation interfaces, and then treat hdmi audio as an >> standard ALSA devices(only got platback function). > There is no need for dw-hdmi audio to be implemented as an ASoC > device - as I've already sent patches to Andy with my ALSA driver > which has been around for the last two years, and works well, and > doesn't require any additional DT description. > _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel ^ permalink raw reply [flat|nested] 66+ messages in thread
* [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. 2014-12-15 11:45 ` Kuankuan.Yang 2014-12-15 11:52 ` Kuankuan.Yang @ 2014-12-15 11:52 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 11:52 UTC (permalink / raw) To: linux-arm-kernel Hi Russell: thks for your replay, actually you also have send me those dw-hdmi-audio.c patches, and I also agree it's an beautiful way to make hdmi-audio works. Beside, I try to reuse it into our platform, and actually the system have created the DW_HDMI sound card successfully, but i cannot play any sound with this sound card. After dump the registers, I found the part of "Audio DMA Registers" cannot write and always read with 0x00. So I searching the document "Designware Core HDMI Transmitter Controller Databook", and found that "Audio DMA Registers" only present when the hardware configuration parameter AUDIO_IF is set to AHBAUDDMA. Than I communicate with our IC colleagues, they told me that our cpu rk3288 only support two way to transmit audio data( I2S & SPDIF ), in that way we do not support AHB_DMA, it's very sad, and this it why i give up this way, also it's my bad that i should replay to u first in the before mail. Best Regards. > ? 2014?12?15? 18:38, Russell King - ARM Linux ??: >> On Mon, Dec 15, 2014 at 10:11:28AM +0800, Yakir Yang wrote: >>> rk3288 use Designware HDMI IP, Designware HDMI supports four interfaces to >>> config hdmi audio(I2S, S/PDIF, Generic Parallel Audio, AHB Audio DMA), but >>> rk3288 only support two ways to config hdmi audio(I2S, S/PDIF), So we take >>> I2S as hdmi audio operation interfaces, and then treat hdmi audio as an >>> standard ALSA devices(only got platback function). >> There is no need for dw-hdmi audio to be implemented as an ASoC >> device - as I've already sent patches to Andy with my ALSA driver >> which has been around for the last two years, and works well, and >> doesn't require any additional DT description. >> > ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 11:52 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 11:52 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, Arnd Bergmann, Kumar Gala, Ian Campbell, Rob Herring, David Airlie, Sean Cross, Grant Likely, linux-rockchip, Pawel Moll, Greg Kroah-Hartman, Ben Zhang, devicetree, Liam Girdwood, linux-arm-kernel, Jaroslav Kysela, Mark Brown, Takashi Iwai, Mark Rutland, Jyri Sarha Hi Russell: thks for your replay, actually you also have send me those dw-hdmi-audio.c patches, and I also agree it's an beautiful way to make hdmi-audio works. Beside, I try to reuse it into our platform, and actually the system have created the DW_HDMI sound card successfully, but i cannot play any sound with this sound card. After dump the registers, I found the part of "Audio DMA Registers" cannot write and always read with 0x00. So I searching the document "Designware Core HDMI Transmitter Controller Databook", and found that "Audio DMA Registers" only present when the hardware configuration parameter AUDIO_IF is set to AHBAUDDMA. Than I communicate with our IC colleagues, they told me that our cpu rk3288 only support two way to transmit audio data( I2S & SPDIF ), in that way we do not support AHB_DMA, it's very sad, and this it why i give up this way, also it's my bad that i should replay to u first in the before mail. Best Regards. > 在 2014年12月15日 18:38, Russell King - ARM Linux 写道: >> On Mon, Dec 15, 2014 at 10:11:28AM +0800, Yakir Yang wrote: >>> rk3288 use Designware HDMI IP, Designware HDMI supports four interfaces to >>> config hdmi audio(I2S, S/PDIF, Generic Parallel Audio, AHB Audio DMA), but >>> rk3288 only support two ways to config hdmi audio(I2S, S/PDIF), So we take >>> I2S as hdmi audio operation interfaces, and then treat hdmi audio as an >>> standard ALSA devices(only got platback function). >> There is no need for dw-hdmi audio to be implemented as an ASoC >> device - as I've already sent patches to Andy with my ALSA driver >> which has been around for the last two years, and works well, and >> doesn't require any additional DT description. >> > ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 11:52 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 11:52 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, Arnd Bergmann, Kumar Gala, Ian Campbell, Rob Herring, David Airlie, Sean Cross, Grant Likely Hi Russell: thks for your replay, actually you also have send me those dw-hdmi-audio.c patches, and I also agree it's an beautiful way to make hdmi-audio works. Beside, I try to reuse it into our platform, and actually the system have created the DW_HDMI sound card successfully, but i cannot play any sound with this sound card. After dump the registers, I found the part of "Audio DMA Registers" cannot write and always read with 0x00. So I searching the document "Designware Core HDMI Transmitter Controller Databook", and found that "Audio DMA Registers" only present when the hardware configuration parameter AUDIO_IF is set to AHBAUDDMA. Than I communicate with our IC colleagues, they told me that our cpu rk3288 only support two way to transmit audio data( I2S & SPDIF ), in that way we do not support AHB_DMA, it's very sad, and this it why i give up this way, also it's my bad that i should replay to u first in the before mail. Best Regards. > 在 2014年12月15日 18:38, Russell King - ARM Linux 写道: >> On Mon, Dec 15, 2014 at 10:11:28AM +0800, Yakir Yang wrote: >>> rk3288 use Designware HDMI IP, Designware HDMI supports four interfaces to >>> config hdmi audio(I2S, S/PDIF, Generic Parallel Audio, AHB Audio DMA), but >>> rk3288 only support two ways to config hdmi audio(I2S, S/PDIF), So we take >>> I2S as hdmi audio operation interfaces, and then treat hdmi audio as an >>> standard ALSA devices(only got platback function). >> There is no need for dw-hdmi audio to be implemented as an ASoC >> device - as I've already sent patches to Andy with my ALSA driver >> which has been around for the last two years, and works well, and >> doesn't require any additional DT description. >> > ^ permalink raw reply [flat|nested] 66+ messages in thread
* [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. 2014-12-15 11:52 ` Kuankuan.Yang (?) @ 2014-12-15 12:00 ` Russell King - ARM Linux -1 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-15 12:00 UTC (permalink / raw) To: linux-arm-kernel On Mon, Dec 15, 2014 at 07:52:06PM +0800, Kuankuan.Yang wrote: > Hi Russell: > > thks for your replay, actually you also have send me those > dw-hdmi-audio.c patches, and I also agree it's an beautiful way to make > hdmi-audio works. Beside, > I try to reuse it into our platform, and actually the system have created > the DW_HDMI sound card successfully, but i cannot play any sound with this > sound card. > After dump the registers, I found the part of "Audio DMA Registers" > cannot write and always read with 0x00. So I searching the document > "Designware Core > HDMI Transmitter Controller Databook", and found that "Audio DMA > Registers" only present when the hardware configuration parameter AUDIO_IF > is set to > AHBAUDDMA. Than I communicate with our IC colleagues, they told me that our > cpu rk3288 only support two way to transmit audio data( I2S & SPDIF ), in > that > way we do not support AHB_DMA, it's very sad, and this it why i give up this > way, also it's my bad that i should replay to u first in the before mail. Okay, that means there is some work to be done to figure out how to support this correctly so that both the iMX and Rockchip code can co-exist together in the mainline kernel - that means we _both_ need to work together on this problem _before_ this code gets merged, so that we have a common approach between the two code bases. I really don't want to end up in another cocked up situation like what happened with the Dove audio, where it became politically impossible for the SolidRun platform to be properly supported by mainline kernels. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 12:00 ` Russell King - ARM Linux 0 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-15 12:00 UTC (permalink / raw) To: Kuankuan.Yang Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, Arnd Bergmann, Kumar Gala, Ian Campbell, Rob Herring, David Airlie, Sean Cross, Grant Likely, linux-rockchip, Pawel Moll, Greg Kroah-Hartman, Ben Zhang, devicetree, Liam Girdwood, linux-arm-kernel, Jaroslav Kysela, Mark Brown, Takashi Iwai, Mark Rutland, Jyri Sarha On Mon, Dec 15, 2014 at 07:52:06PM +0800, Kuankuan.Yang wrote: > Hi Russell: > > thks for your replay, actually you also have send me those > dw-hdmi-audio.c patches, and I also agree it's an beautiful way to make > hdmi-audio works. Beside, > I try to reuse it into our platform, and actually the system have created > the DW_HDMI sound card successfully, but i cannot play any sound with this > sound card. > After dump the registers, I found the part of "Audio DMA Registers" > cannot write and always read with 0x00. So I searching the document > "Designware Core > HDMI Transmitter Controller Databook", and found that "Audio DMA > Registers" only present when the hardware configuration parameter AUDIO_IF > is set to > AHBAUDDMA. Than I communicate with our IC colleagues, they told me that our > cpu rk3288 only support two way to transmit audio data( I2S & SPDIF ), in > that > way we do not support AHB_DMA, it's very sad, and this it why i give up this > way, also it's my bad that i should replay to u first in the before mail. Okay, that means there is some work to be done to figure out how to support this correctly so that both the iMX and Rockchip code can co-exist together in the mainline kernel - that means we _both_ need to work together on this problem _before_ this code gets merged, so that we have a common approach between the two code bases. I really don't want to end up in another cocked up situation like what happened with the Dove audio, where it became politically impossible for the SolidRun platform to be properly supported by mainline kernels. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 12:00 ` Russell King - ARM Linux 0 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-15 12:00 UTC (permalink / raw) To: Kuankuan.Yang Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, Arnd Bergmann, Kumar Gala, Ian Campbell, Rob Herring, David Airlie, Sean Cross, Grant Likely On Mon, Dec 15, 2014 at 07:52:06PM +0800, Kuankuan.Yang wrote: > Hi Russell: > > thks for your replay, actually you also have send me those > dw-hdmi-audio.c patches, and I also agree it's an beautiful way to make > hdmi-audio works. Beside, > I try to reuse it into our platform, and actually the system have created > the DW_HDMI sound card successfully, but i cannot play any sound with this > sound card. > After dump the registers, I found the part of "Audio DMA Registers" > cannot write and always read with 0x00. So I searching the document > "Designware Core > HDMI Transmitter Controller Databook", and found that "Audio DMA > Registers" only present when the hardware configuration parameter AUDIO_IF > is set to > AHBAUDDMA. Than I communicate with our IC colleagues, they told me that our > cpu rk3288 only support two way to transmit audio data( I2S & SPDIF ), in > that > way we do not support AHB_DMA, it's very sad, and this it why i give up this > way, also it's my bad that i should replay to u first in the before mail. Okay, that means there is some work to be done to figure out how to support this correctly so that both the iMX and Rockchip code can co-exist together in the mainline kernel - that means we _both_ need to work together on this problem _before_ this code gets merged, so that we have a common approach between the two code bases. I really don't want to end up in another cocked up situation like what happened with the Dove audio, where it became politically impossible for the SolidRun platform to be properly supported by mainline kernels. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. ^ permalink raw reply [flat|nested] 66+ messages in thread
* [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 12:46 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 12:46 UTC (permalink / raw) To: linux-arm-kernel Hi Russell: I got an idea that we can split the pcm dma part code out, after that we can chose the buffer transmit way (AUD_DMA or I2S). In that way i will make another i2s driver to transmit those buffer, but in the mainline kernel already lanched an rockchip i2s driver (rockchip_i2s.c), so seams it maybe not an good way. what's your opinion, russell? Best Regards. ? 2014?12?15? 20:00, Russell King - ARM Linux ??: > On Mon, Dec 15, 2014 at 07:52:06PM +0800, Kuankuan.Yang wrote: >> Hi Russell: >> >> thks for your replay, actually you also have send me those >> dw-hdmi-audio.c patches, and I also agree it's an beautiful way to make >> hdmi-audio works. Beside, >> I try to reuse it into our platform, and actually the system have created >> the DW_HDMI sound card successfully, but i cannot play any sound with this >> sound card. >> After dump the registers, I found the part of "Audio DMA Registers" >> cannot write and always read with 0x00. So I searching the document >> "Designware Core >> HDMI Transmitter Controller Databook", and found that "Audio DMA >> Registers" only present when the hardware configuration parameter AUDIO_IF >> is set to >> AHBAUDDMA. Than I communicate with our IC colleagues, they told me that our >> cpu rk3288 only support two way to transmit audio data( I2S & SPDIF ), in >> that >> way we do not support AHB_DMA, it's very sad, and this it why i give up this >> way, also it's my bad that i should replay to u first in the before mail. > Okay, that means there is some work to be done to figure out how to > support this correctly so that both the iMX and Rockchip code can > co-exist together in the mainline kernel - that means we _both_ need > to work together on this problem _before_ this code gets merged, so > that we have a common approach between the two code bases. > > I really don't want to end up in another cocked up situation like > what happened with the Dove audio, where it became politically > impossible for the SolidRun platform to be properly supported by > mainline kernels. > ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 12:46 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 12:46 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, Arnd Bergmann, Kumar Gala, Ian Campbell, Rob Herring, David Airlie, Sean Cross, Grant Likely, linux-rockchip, Pawel Moll, Greg Kroah-Hartman, Ben Zhang, devicetree, Liam Girdwood, linux-arm-kernel, Jaroslav Kysela, Mark Brown, Takashi Iwai, Mark Rutland, Jyri Sarha Hi Russell: I got an idea that we can split the pcm dma part code out, after that we can chose the buffer transmit way (AUD_DMA or I2S). In that way i will make another i2s driver to transmit those buffer, but in the mainline kernel already lanched an rockchip i2s driver (rockchip_i2s.c), so seams it maybe not an good way. what's your opinion, russell? Best Regards. 在 2014年12月15日 20:00, Russell King - ARM Linux 写道: > On Mon, Dec 15, 2014 at 07:52:06PM +0800, Kuankuan.Yang wrote: >> Hi Russell: >> >> thks for your replay, actually you also have send me those >> dw-hdmi-audio.c patches, and I also agree it's an beautiful way to make >> hdmi-audio works. Beside, >> I try to reuse it into our platform, and actually the system have created >> the DW_HDMI sound card successfully, but i cannot play any sound with this >> sound card. >> After dump the registers, I found the part of "Audio DMA Registers" >> cannot write and always read with 0x00. So I searching the document >> "Designware Core >> HDMI Transmitter Controller Databook", and found that "Audio DMA >> Registers" only present when the hardware configuration parameter AUDIO_IF >> is set to >> AHBAUDDMA. Than I communicate with our IC colleagues, they told me that our >> cpu rk3288 only support two way to transmit audio data( I2S & SPDIF ), in >> that >> way we do not support AHB_DMA, it's very sad, and this it why i give up this >> way, also it's my bad that i should replay to u first in the before mail. > Okay, that means there is some work to be done to figure out how to > support this correctly so that both the iMX and Rockchip code can > co-exist together in the mainline kernel - that means we _both_ need > to work together on this problem _before_ this code gets merged, so > that we have a common approach between the two code bases. > > I really don't want to end up in another cocked up situation like > what happened with the Dove audio, where it became politically > impossible for the SolidRun platform to be properly supported by > mainline kernels. > ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 12:46 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 12:46 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, Arnd Bergmann, Kumar Gala, Ian Campbell, Rob Herring, David Airlie, Sean Cross, Grant Likely Hi Russell: I got an idea that we can split the pcm dma part code out, after that we can chose the buffer transmit way (AUD_DMA or I2S). In that way i will make another i2s driver to transmit those buffer, but in the mainline kernel already lanched an rockchip i2s driver (rockchip_i2s.c), so seams it maybe not an good way. what's your opinion, russell? Best Regards. 在 2014年12月15日 20:00, Russell King - ARM Linux 写道: > On Mon, Dec 15, 2014 at 07:52:06PM +0800, Kuankuan.Yang wrote: >> Hi Russell: >> >> thks for your replay, actually you also have send me those >> dw-hdmi-audio.c patches, and I also agree it's an beautiful way to make >> hdmi-audio works. Beside, >> I try to reuse it into our platform, and actually the system have created >> the DW_HDMI sound card successfully, but i cannot play any sound with this >> sound card. >> After dump the registers, I found the part of "Audio DMA Registers" >> cannot write and always read with 0x00. So I searching the document >> "Designware Core >> HDMI Transmitter Controller Databook", and found that "Audio DMA >> Registers" only present when the hardware configuration parameter AUDIO_IF >> is set to >> AHBAUDDMA. Than I communicate with our IC colleagues, they told me that our >> cpu rk3288 only support two way to transmit audio data( I2S & SPDIF ), in >> that >> way we do not support AHB_DMA, it's very sad, and this it why i give up this >> way, also it's my bad that i should replay to u first in the before mail. > Okay, that means there is some work to be done to figure out how to > support this correctly so that both the iMX and Rockchip code can > co-exist together in the mainline kernel - that means we _both_ need > to work together on this problem _before_ this code gets merged, so > that we have a common approach between the two code bases. > > I really don't want to end up in another cocked up situation like > what happened with the Dove audio, where it became politically > impossible for the SolidRun platform to be properly supported by > mainline kernels. > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 15:48 ` Jean-Francois Moine 0 siblings, 0 replies; 66+ messages in thread From: Jean-Francois Moine @ 2014-12-15 15:48 UTC (permalink / raw) To: linux-arm-kernel On Mon, 15 Dec 2014 12:00:13 +0000 Russell King - ARM Linux <linux@arm.linux.org.uk> wrote: > I really don't want to end up in another cocked up situation like > what happened with the Dove audio, where it became politically > impossible for the SolidRun platform to be properly supported by > mainline kernels. Hi Russell, I don't see what you mean. The last patches I proposed for the TDA998x and the HDMI CODEC do exactly what you wanted: S/PDIF out from the kirkwood audio device towards both S/PDIF optical and HDMI output2 by default. -- Ken ar c'henta? | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/ ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 15:48 ` Jean-Francois Moine 0 siblings, 0 replies; 66+ messages in thread From: Jean-Francois Moine @ 2014-12-15 15:48 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Kuankuan.Yang, Mark Rutland, Heiko Stuebner, devicetree, David Airlie, dri-devel, Liam Girdwood, Max Filippov, Bard Liao, Lars-Peter Clausen, Pawel Moll, Takashi Iwai, linux-rockchip, Grant Likely, Dylan Reid, Xu Jianqun, Oder Chiou, Zubair.Kakakhel, Arnd Bergmann, Ian Campbell, Jyri Sarha, Ben Zhang, Rob Herring, Daniel Kurtz, Stéphane Marchesin, Jaroslav Kysela, Sonny Rao, Sean Cross, linux-arm-kernel, Fabio Estevam, Brian Austin, Greg Kroah-Hartman, linux-kernel, Mark Brown, Philipp Zabel, Kumar Gala, Shawn Guo On Mon, 15 Dec 2014 12:00:13 +0000 Russell King - ARM Linux <linux@arm.linux.org.uk> wrote: > I really don't want to end up in another cocked up situation like > what happened with the Dove audio, where it became politically > impossible for the SolidRun platform to be properly supported by > mainline kernels. Hi Russell, I don't see what you mean. The last patches I proposed for the TDA998x and the HDMI CODEC do exactly what you wanted: S/PDIF out from the kirkwood audio device towards both S/PDIF optical and HDMI output2 by default. -- Ken ar c'hentañ | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/ ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [RFC PATCH 0/6] Those patches is used for dw_hdmi audio. @ 2014-12-15 15:48 ` Jean-Francois Moine 0 siblings, 0 replies; 66+ messages in thread From: Jean-Francois Moine @ 2014-12-15 15:48 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Kuankuan.Yang, Mark Rutland, Heiko Stuebner, devicetree-u79uwXL29TY76Z2rM5mHXA, David Airlie, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Liam Girdwood, Max Filippov, Bard Liao, Lars-Peter Clausen, Pawel Moll, Takashi Iwai, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Grant Likely, Dylan Reid, Xu Jianqun, Oder Chiou, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Arnd Bergmann, Ian Campbell, Jyri Sarha, Ben Zhang, Rob Herring, Daniel Kurtz, Stéphane Marchesin On Mon, 15 Dec 2014 12:00:13 +0000 Russell King - ARM Linux <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org> wrote: > I really don't want to end up in another cocked up situation like > what happened with the Dove audio, where it became politically > impossible for the SolidRun platform to be properly supported by > mainline kernels. Hi Russell, I don't see what you mean. The last patches I proposed for the TDA998x and the HDMI CODEC do exactly what you wanted: S/PDIF out from the kirkwood audio device towards both S/PDIF optical and HDMI output2 by default. -- Ken ar c'hentañ | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/ -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 4/6] ASoC: rockchip-hdmi-audio: add sound driver for hdmi audio 2014-12-15 2:11 ` Yakir Yang (?) @ 2014-12-15 2:11 ` Yakir Yang -1 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:11 UTC (permalink / raw) To: Yakir Yang Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai, Grant Likely, Rob Herring, linux-arm-kernel Adds a sound driver that combines rockchip-i2s cpu_dai and dw-hdmi-codec as codec_dai to provide hdmi audio output on rk3288 platforms. Signed-off-by: Yakir Yang <ykk@rock-chips.com> --- sound/soc/rockchip/Kconfig | 9 ++ sound/soc/rockchip/Makefile | 2 + sound/soc/rockchip/rockchip_hdmi_audio.c | 208 +++++++++++++++++++++++++++++++ 3 files changed, 219 insertions(+) create mode 100644 sound/soc/rockchip/rockchip_hdmi_audio.c diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig index e181826..ed2b7f0 100644 --- a/sound/soc/rockchip/Kconfig +++ b/sound/soc/rockchip/Kconfig @@ -14,3 +14,12 @@ config SND_SOC_ROCKCHIP_I2S Say Y or M if you want to add support for I2S driver for Rockchip I2S device. The device supports upto maximum of 8 channels each for play and record. + +config SND_SOC_ROCKCHIP_HDMI_AUDIO + tristate "ASoC support for Rockchip HDMI audio" + depends on SND_SOC_ROCKCHIP + select SND_SOC_ROCKCHIP_I2S + select SND_SOC_DW_HDMI_AUDIO + help + Say Y or M here if you want to add support for SoC audio on Rockchip + HDMI, such as rk3288 hdmi. diff --git a/sound/soc/rockchip/Makefile b/sound/soc/rockchip/Makefile index b921909..b9185b3 100644 --- a/sound/soc/rockchip/Makefile +++ b/sound/soc/rockchip/Makefile @@ -1,4 +1,6 @@ # ROCKCHIP Platform Support snd-soc-i2s-objs := rockchip_i2s.o +snd-soc-rockchip-hdmi-audio-objs := rockchip_hdmi_audio.o obj-$(CONFIG_SND_SOC_ROCKCHIP_I2S) += snd-soc-i2s.o +obj-$(CONFIG_SND_SOC_ROCKCHIP_HDMI_AUDIO) += snd-soc-rockchip-hdmi-audio.o diff --git a/sound/soc/rockchip/rockchip_hdmi_audio.c b/sound/soc/rockchip/rockchip_hdmi_audio.c new file mode 100644 index 0000000..a1a9c75 --- /dev/null +++ b/sound/soc/rockchip/rockchip_hdmi_audio.c @@ -0,0 +1,208 @@ +/* + * rockchip-hdmi-card.c + * + * ROCKCHIP ALSA SoC DAI driver for HDMI audio on rockchip processors. + * Copyright (c) 2014, ROCKCHIP CORPORATION. All rights reserved. + * Authors: Yakir Yang <ykk@rock-chips.com> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>.* + * + */ +#include <linux/module.h> +#include <linux/platform_device.h> + +#include <sound/soc.h> +#include <sound/pcm.h> +#include <sound/jack.h> +#include <sound/core.h> +#include <sound/pcm_params.h> + +#include "rockchip_i2s.h" +#include "../codecs/dw-hdmi-audio.h" + +#define DRV_NAME "rockchip-hdmi-audio" + +struct hdmi_audio_private { + struct snd_soc_jack hdmi_jack; +}; + +static int rockchip_hdmi_audio_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) +{ + struct snd_soc_pcm_runtime *rtd = substream->private_data; + struct snd_soc_dai *cpu_dai = rtd->cpu_dai; + unsigned int dai_fmt = rtd->dai_link->dai_fmt; + int mclk, ret; + + switch (params_rate(params)) { + case 8000: + case 16000: + case 24000: + case 32000: + case 48000: + case 64000: + case 96000: + mclk = 12288000; + break; + case 11025: + case 22050: + case 44100: + case 88200: + mclk = 11289600; + break; + default: + return -EINVAL; + } + + ret = snd_soc_dai_set_fmt(cpu_dai, dai_fmt); + if (ret < 0) { + dev_err(cpu_dai->dev, "failed to set cpu_dai fmt.\n"); + return ret; + } + + ret = snd_soc_dai_set_sysclk(cpu_dai, 0, mclk, SND_SOC_CLOCK_OUT); + if (ret < 0) { + dev_err(cpu_dai->dev, "failed to set cpu_dai sysclk.\n"); + return ret; + } + + return 0; +} + +static int hdmi_audio_dai_init(struct snd_soc_pcm_runtime *runtime) +{ + struct snd_soc_codec *codec = runtime->codec; + struct snd_soc_card *card = runtime->card; + struct hdmi_audio_private *drv = snd_soc_card_get_drvdata(card); + + /* Enable headphone jack detection */ + snd_soc_jack_new(codec, "HDMI Jack", SND_JACK_LINEOUT, + &drv->hdmi_jack); + + return dw_hdmi_jack_detect(codec, &drv->hdmi_jack); +} + +static struct snd_soc_ops hdmi_audio_dai_ops = { + .hw_params = rockchip_hdmi_audio_hw_params, +}; + +static struct snd_soc_dai_link hdmi_audio_dai = { + .name = "RockchipHDMI", + .stream_name = "RockchipHDMI", + .init = hdmi_audio_dai_init, + .ops = &hdmi_audio_dai_ops, + .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_CBS_CFS, +}; + +static struct snd_soc_card rockchip_hdmi_audio_card = { + .name = "RockchipHDMI", + .owner = THIS_MODULE, + .dai_link = &hdmi_audio_dai, + .num_links = 1, +}; + +static int rockchip_hdmi_audio_probe(struct platform_device *pdev) +{ + struct snd_soc_card *card = &rockchip_hdmi_audio_card; + struct device_node *np = pdev->dev.of_node; + struct hdmi_audio_private *drv; + int ret; + + drv = devm_kzalloc(&pdev->dev, sizeof(*drv), GFP_KERNEL); + if (!drv) + return -ENOMEM; + + card->dev = &pdev->dev; + platform_set_drvdata(pdev, &card); + snd_soc_card_set_drvdata(card, drv); + + of_property_read_string(np, "codec-name", &hdmi_audio_dai.codec_name); + if (!hdmi_audio_dai.codec_name) { + dev_err(&pdev->dev, "Property 'codec-name' missing !\n"); + goto free_priv_data; + } + + of_property_read_string(np, "codec-dai-name", + &hdmi_audio_dai.codec_dai_name); + if (!hdmi_audio_dai.codec_dai_name) { + dev_err(&pdev->dev, "Property 'codec-dai-name' missing !\n"); + goto free_codec_name; + } + + hdmi_audio_dai.cpu_of_node = of_parse_phandle(np, "cpu-of-node", 0); + if (!hdmi_audio_dai.cpu_of_node) { + dev_err(&pdev->dev, "Property 'cpu-of-node' missing !\n"); + goto free_codec_dai_name; + } + + hdmi_audio_dai.platform_of_node = hdmi_audio_dai.cpu_of_node; + + ret = snd_soc_register_card(card); + if (ret) { + dev_err(&pdev->dev, "register card failed (%d)\n", ret); + card->dev = NULL; + goto free_cpu_of_node; + } + + dev_info(&pdev->dev, "hdmi audio init success.\n"); + + return 0; + +free_cpu_of_node: + hdmi_audio_dai.cpu_of_node = NULL; + hdmi_audio_dai.platform_of_node = NULL; +free_codec_dai_name: + hdmi_audio_dai.codec_dai_name = NULL; +free_codec_name: + hdmi_audio_dai.codec_name = NULL; +free_priv_data: + platform_set_drvdata(pdev, NULL); + devm_kfree(&pdev->dev, drv); + card->dev = NULL; + + return ret; +} + +static int rockchip_hdmi_audio_remove(struct platform_device *pdev) +{ + struct snd_soc_card *card = platform_get_drvdata(pdev); + + snd_soc_unregister_card(card); + platform_set_drvdata(pdev, NULL); + card->dev = NULL; + + return 0; +} + +static const struct of_device_id rockchip_hdmi_audio_of_match[] = { + { .compatible = "rockchip,rk3288-hdmi-audio", }, + {}, +}; + +static struct platform_driver rockchip_hdmi_audio_driver = { + .driver = { + .name = DRV_NAME, + .owner = THIS_MODULE, + .of_match_table = rockchip_hdmi_audio_of_match, + }, + .probe = rockchip_hdmi_audio_probe, + .remove = rockchip_hdmi_audio_remove, +}; +module_platform_driver(rockchip_hdmi_audio_driver); + +MODULE_AUTHOR("Yakir Yang <ykk@rock-chips.com>"); +MODULE_DESCRIPTION("Rockchip HDMI Audio ASoC Interface"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:" DRV_NAME); +MODULE_DEVICE_TABLE(of, rockchip_hdmi_audio_of_match); -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
* [PATCH 4/6] ASoC: rockchip-hdmi-audio: add sound driver for hdmi audio @ 2014-12-15 2:11 ` Yakir Yang 0 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:11 UTC (permalink / raw) To: Yakir Yang Cc: Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, linux-kernel, Heiko Stuebner, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, Stéphane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai, Grant Likely, Rob Herring, linux-arm-kernel, linux-rockchip, alsa-devel, devicetree Adds a sound driver that combines rockchip-i2s cpu_dai and dw-hdmi-codec as codec_dai to provide hdmi audio output on rk3288 platforms. Signed-off-by: Yakir Yang <ykk@rock-chips.com> --- sound/soc/rockchip/Kconfig | 9 ++ sound/soc/rockchip/Makefile | 2 + sound/soc/rockchip/rockchip_hdmi_audio.c | 208 +++++++++++++++++++++++++++++++ 3 files changed, 219 insertions(+) create mode 100644 sound/soc/rockchip/rockchip_hdmi_audio.c diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig index e181826..ed2b7f0 100644 --- a/sound/soc/rockchip/Kconfig +++ b/sound/soc/rockchip/Kconfig @@ -14,3 +14,12 @@ config SND_SOC_ROCKCHIP_I2S Say Y or M if you want to add support for I2S driver for Rockchip I2S device. The device supports upto maximum of 8 channels each for play and record. + +config SND_SOC_ROCKCHIP_HDMI_AUDIO + tristate "ASoC support for Rockchip HDMI audio" + depends on SND_SOC_ROCKCHIP + select SND_SOC_ROCKCHIP_I2S + select SND_SOC_DW_HDMI_AUDIO + help + Say Y or M here if you want to add support for SoC audio on Rockchip + HDMI, such as rk3288 hdmi. diff --git a/sound/soc/rockchip/Makefile b/sound/soc/rockchip/Makefile index b921909..b9185b3 100644 --- a/sound/soc/rockchip/Makefile +++ b/sound/soc/rockchip/Makefile @@ -1,4 +1,6 @@ # ROCKCHIP Platform Support snd-soc-i2s-objs := rockchip_i2s.o +snd-soc-rockchip-hdmi-audio-objs := rockchip_hdmi_audio.o obj-$(CONFIG_SND_SOC_ROCKCHIP_I2S) += snd-soc-i2s.o +obj-$(CONFIG_SND_SOC_ROCKCHIP_HDMI_AUDIO) += snd-soc-rockchip-hdmi-audio.o diff --git a/sound/soc/rockchip/rockchip_hdmi_audio.c b/sound/soc/rockchip/rockchip_hdmi_audio.c new file mode 100644 index 0000000..a1a9c75 --- /dev/null +++ b/sound/soc/rockchip/rockchip_hdmi_audio.c @@ -0,0 +1,208 @@ +/* + * rockchip-hdmi-card.c + * + * ROCKCHIP ALSA SoC DAI driver for HDMI audio on rockchip processors. + * Copyright (c) 2014, ROCKCHIP CORPORATION. All rights reserved. + * Authors: Yakir Yang <ykk@rock-chips.com> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>.* + * + */ +#include <linux/module.h> +#include <linux/platform_device.h> + +#include <sound/soc.h> +#include <sound/pcm.h> +#include <sound/jack.h> +#include <sound/core.h> +#include <sound/pcm_params.h> + +#include "rockchip_i2s.h" +#include "../codecs/dw-hdmi-audio.h" + +#define DRV_NAME "rockchip-hdmi-audio" + +struct hdmi_audio_private { + struct snd_soc_jack hdmi_jack; +}; + +static int rockchip_hdmi_audio_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) +{ + struct snd_soc_pcm_runtime *rtd = substream->private_data; + struct snd_soc_dai *cpu_dai = rtd->cpu_dai; + unsigned int dai_fmt = rtd->dai_link->dai_fmt; + int mclk, ret; + + switch (params_rate(params)) { + case 8000: + case 16000: + case 24000: + case 32000: + case 48000: + case 64000: + case 96000: + mclk = 12288000; + break; + case 11025: + case 22050: + case 44100: + case 88200: + mclk = 11289600; + break; + default: + return -EINVAL; + } + + ret = snd_soc_dai_set_fmt(cpu_dai, dai_fmt); + if (ret < 0) { + dev_err(cpu_dai->dev, "failed to set cpu_dai fmt.\n"); + return ret; + } + + ret = snd_soc_dai_set_sysclk(cpu_dai, 0, mclk, SND_SOC_CLOCK_OUT); + if (ret < 0) { + dev_err(cpu_dai->dev, "failed to set cpu_dai sysclk.\n"); + return ret; + } + + return 0; +} + +static int hdmi_audio_dai_init(struct snd_soc_pcm_runtime *runtime) +{ + struct snd_soc_codec *codec = runtime->codec; + struct snd_soc_card *card = runtime->card; + struct hdmi_audio_private *drv = snd_soc_card_get_drvdata(card); + + /* Enable headphone jack detection */ + snd_soc_jack_new(codec, "HDMI Jack", SND_JACK_LINEOUT, + &drv->hdmi_jack); + + return dw_hdmi_jack_detect(codec, &drv->hdmi_jack); +} + +static struct snd_soc_ops hdmi_audio_dai_ops = { + .hw_params = rockchip_hdmi_audio_hw_params, +}; + +static struct snd_soc_dai_link hdmi_audio_dai = { + .name = "RockchipHDMI", + .stream_name = "RockchipHDMI", + .init = hdmi_audio_dai_init, + .ops = &hdmi_audio_dai_ops, + .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_CBS_CFS, +}; + +static struct snd_soc_card rockchip_hdmi_audio_card = { + .name = "RockchipHDMI", + .owner = THIS_MODULE, + .dai_link = &hdmi_audio_dai, + .num_links = 1, +}; + +static int rockchip_hdmi_audio_probe(struct platform_device *pdev) +{ + struct snd_soc_card *card = &rockchip_hdmi_audio_card; + struct device_node *np = pdev->dev.of_node; + struct hdmi_audio_private *drv; + int ret; + + drv = devm_kzalloc(&pdev->dev, sizeof(*drv), GFP_KERNEL); + if (!drv) + return -ENOMEM; + + card->dev = &pdev->dev; + platform_set_drvdata(pdev, &card); + snd_soc_card_set_drvdata(card, drv); + + of_property_read_string(np, "codec-name", &hdmi_audio_dai.codec_name); + if (!hdmi_audio_dai.codec_name) { + dev_err(&pdev->dev, "Property 'codec-name' missing !\n"); + goto free_priv_data; + } + + of_property_read_string(np, "codec-dai-name", + &hdmi_audio_dai.codec_dai_name); + if (!hdmi_audio_dai.codec_dai_name) { + dev_err(&pdev->dev, "Property 'codec-dai-name' missing !\n"); + goto free_codec_name; + } + + hdmi_audio_dai.cpu_of_node = of_parse_phandle(np, "cpu-of-node", 0); + if (!hdmi_audio_dai.cpu_of_node) { + dev_err(&pdev->dev, "Property 'cpu-of-node' missing !\n"); + goto free_codec_dai_name; + } + + hdmi_audio_dai.platform_of_node = hdmi_audio_dai.cpu_of_node; + + ret = snd_soc_register_card(card); + if (ret) { + dev_err(&pdev->dev, "register card failed (%d)\n", ret); + card->dev = NULL; + goto free_cpu_of_node; + } + + dev_info(&pdev->dev, "hdmi audio init success.\n"); + + return 0; + +free_cpu_of_node: + hdmi_audio_dai.cpu_of_node = NULL; + hdmi_audio_dai.platform_of_node = NULL; +free_codec_dai_name: + hdmi_audio_dai.codec_dai_name = NULL; +free_codec_name: + hdmi_audio_dai.codec_name = NULL; +free_priv_data: + platform_set_drvdata(pdev, NULL); + devm_kfree(&pdev->dev, drv); + card->dev = NULL; + + return ret; +} + +static int rockchip_hdmi_audio_remove(struct platform_device *pdev) +{ + struct snd_soc_card *card = platform_get_drvdata(pdev); + + snd_soc_unregister_card(card); + platform_set_drvdata(pdev, NULL); + card->dev = NULL; + + return 0; +} + +static const struct of_device_id rockchip_hdmi_audio_of_match[] = { + { .compatible = "rockchip,rk3288-hdmi-audio", }, + {}, +}; + +static struct platform_driver rockchip_hdmi_audio_driver = { + .driver = { + .name = DRV_NAME, + .owner = THIS_MODULE, + .of_match_table = rockchip_hdmi_audio_of_match, + }, + .probe = rockchip_hdmi_audio_probe, + .remove = rockchip_hdmi_audio_remove, +}; +module_platform_driver(rockchip_hdmi_audio_driver); + +MODULE_AUTHOR("Yakir Yang <ykk@rock-chips.com>"); +MODULE_DESCRIPTION("Rockchip HDMI Audio ASoC Interface"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:" DRV_NAME); +MODULE_DEVICE_TABLE(of, rockchip_hdmi_audio_of_match); -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
* [PATCH 4/6] ASoC: rockchip-hdmi-audio: add sound driver for hdmi audio @ 2014-12-15 2:11 ` Yakir Yang 0 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:11 UTC (permalink / raw) To: linux-arm-kernel Adds a sound driver that combines rockchip-i2s cpu_dai and dw-hdmi-codec as codec_dai to provide hdmi audio output on rk3288 platforms. Signed-off-by: Yakir Yang <ykk@rock-chips.com> --- sound/soc/rockchip/Kconfig | 9 ++ sound/soc/rockchip/Makefile | 2 + sound/soc/rockchip/rockchip_hdmi_audio.c | 208 +++++++++++++++++++++++++++++++ 3 files changed, 219 insertions(+) create mode 100644 sound/soc/rockchip/rockchip_hdmi_audio.c diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig index e181826..ed2b7f0 100644 --- a/sound/soc/rockchip/Kconfig +++ b/sound/soc/rockchip/Kconfig @@ -14,3 +14,12 @@ config SND_SOC_ROCKCHIP_I2S Say Y or M if you want to add support for I2S driver for Rockchip I2S device. The device supports upto maximum of 8 channels each for play and record. + +config SND_SOC_ROCKCHIP_HDMI_AUDIO + tristate "ASoC support for Rockchip HDMI audio" + depends on SND_SOC_ROCKCHIP + select SND_SOC_ROCKCHIP_I2S + select SND_SOC_DW_HDMI_AUDIO + help + Say Y or M here if you want to add support for SoC audio on Rockchip + HDMI, such as rk3288 hdmi. diff --git a/sound/soc/rockchip/Makefile b/sound/soc/rockchip/Makefile index b921909..b9185b3 100644 --- a/sound/soc/rockchip/Makefile +++ b/sound/soc/rockchip/Makefile @@ -1,4 +1,6 @@ # ROCKCHIP Platform Support snd-soc-i2s-objs := rockchip_i2s.o +snd-soc-rockchip-hdmi-audio-objs := rockchip_hdmi_audio.o obj-$(CONFIG_SND_SOC_ROCKCHIP_I2S) += snd-soc-i2s.o +obj-$(CONFIG_SND_SOC_ROCKCHIP_HDMI_AUDIO) += snd-soc-rockchip-hdmi-audio.o diff --git a/sound/soc/rockchip/rockchip_hdmi_audio.c b/sound/soc/rockchip/rockchip_hdmi_audio.c new file mode 100644 index 0000000..a1a9c75 --- /dev/null +++ b/sound/soc/rockchip/rockchip_hdmi_audio.c @@ -0,0 +1,208 @@ +/* + * rockchip-hdmi-card.c + * + * ROCKCHIP ALSA SoC DAI driver for HDMI audio on rockchip processors. + * Copyright (c) 2014, ROCKCHIP CORPORATION. All rights reserved. + * Authors: Yakir Yang <ykk@rock-chips.com> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>.* + * + */ +#include <linux/module.h> +#include <linux/platform_device.h> + +#include <sound/soc.h> +#include <sound/pcm.h> +#include <sound/jack.h> +#include <sound/core.h> +#include <sound/pcm_params.h> + +#include "rockchip_i2s.h" +#include "../codecs/dw-hdmi-audio.h" + +#define DRV_NAME "rockchip-hdmi-audio" + +struct hdmi_audio_private { + struct snd_soc_jack hdmi_jack; +}; + +static int rockchip_hdmi_audio_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) +{ + struct snd_soc_pcm_runtime *rtd = substream->private_data; + struct snd_soc_dai *cpu_dai = rtd->cpu_dai; + unsigned int dai_fmt = rtd->dai_link->dai_fmt; + int mclk, ret; + + switch (params_rate(params)) { + case 8000: + case 16000: + case 24000: + case 32000: + case 48000: + case 64000: + case 96000: + mclk = 12288000; + break; + case 11025: + case 22050: + case 44100: + case 88200: + mclk = 11289600; + break; + default: + return -EINVAL; + } + + ret = snd_soc_dai_set_fmt(cpu_dai, dai_fmt); + if (ret < 0) { + dev_err(cpu_dai->dev, "failed to set cpu_dai fmt.\n"); + return ret; + } + + ret = snd_soc_dai_set_sysclk(cpu_dai, 0, mclk, SND_SOC_CLOCK_OUT); + if (ret < 0) { + dev_err(cpu_dai->dev, "failed to set cpu_dai sysclk.\n"); + return ret; + } + + return 0; +} + +static int hdmi_audio_dai_init(struct snd_soc_pcm_runtime *runtime) +{ + struct snd_soc_codec *codec = runtime->codec; + struct snd_soc_card *card = runtime->card; + struct hdmi_audio_private *drv = snd_soc_card_get_drvdata(card); + + /* Enable headphone jack detection */ + snd_soc_jack_new(codec, "HDMI Jack", SND_JACK_LINEOUT, + &drv->hdmi_jack); + + return dw_hdmi_jack_detect(codec, &drv->hdmi_jack); +} + +static struct snd_soc_ops hdmi_audio_dai_ops = { + .hw_params = rockchip_hdmi_audio_hw_params, +}; + +static struct snd_soc_dai_link hdmi_audio_dai = { + .name = "RockchipHDMI", + .stream_name = "RockchipHDMI", + .init = hdmi_audio_dai_init, + .ops = &hdmi_audio_dai_ops, + .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_CBS_CFS, +}; + +static struct snd_soc_card rockchip_hdmi_audio_card = { + .name = "RockchipHDMI", + .owner = THIS_MODULE, + .dai_link = &hdmi_audio_dai, + .num_links = 1, +}; + +static int rockchip_hdmi_audio_probe(struct platform_device *pdev) +{ + struct snd_soc_card *card = &rockchip_hdmi_audio_card; + struct device_node *np = pdev->dev.of_node; + struct hdmi_audio_private *drv; + int ret; + + drv = devm_kzalloc(&pdev->dev, sizeof(*drv), GFP_KERNEL); + if (!drv) + return -ENOMEM; + + card->dev = &pdev->dev; + platform_set_drvdata(pdev, &card); + snd_soc_card_set_drvdata(card, drv); + + of_property_read_string(np, "codec-name", &hdmi_audio_dai.codec_name); + if (!hdmi_audio_dai.codec_name) { + dev_err(&pdev->dev, "Property 'codec-name' missing !\n"); + goto free_priv_data; + } + + of_property_read_string(np, "codec-dai-name", + &hdmi_audio_dai.codec_dai_name); + if (!hdmi_audio_dai.codec_dai_name) { + dev_err(&pdev->dev, "Property 'codec-dai-name' missing !\n"); + goto free_codec_name; + } + + hdmi_audio_dai.cpu_of_node = of_parse_phandle(np, "cpu-of-node", 0); + if (!hdmi_audio_dai.cpu_of_node) { + dev_err(&pdev->dev, "Property 'cpu-of-node' missing !\n"); + goto free_codec_dai_name; + } + + hdmi_audio_dai.platform_of_node = hdmi_audio_dai.cpu_of_node; + + ret = snd_soc_register_card(card); + if (ret) { + dev_err(&pdev->dev, "register card failed (%d)\n", ret); + card->dev = NULL; + goto free_cpu_of_node; + } + + dev_info(&pdev->dev, "hdmi audio init success.\n"); + + return 0; + +free_cpu_of_node: + hdmi_audio_dai.cpu_of_node = NULL; + hdmi_audio_dai.platform_of_node = NULL; +free_codec_dai_name: + hdmi_audio_dai.codec_dai_name = NULL; +free_codec_name: + hdmi_audio_dai.codec_name = NULL; +free_priv_data: + platform_set_drvdata(pdev, NULL); + devm_kfree(&pdev->dev, drv); + card->dev = NULL; + + return ret; +} + +static int rockchip_hdmi_audio_remove(struct platform_device *pdev) +{ + struct snd_soc_card *card = platform_get_drvdata(pdev); + + snd_soc_unregister_card(card); + platform_set_drvdata(pdev, NULL); + card->dev = NULL; + + return 0; +} + +static const struct of_device_id rockchip_hdmi_audio_of_match[] = { + { .compatible = "rockchip,rk3288-hdmi-audio", }, + {}, +}; + +static struct platform_driver rockchip_hdmi_audio_driver = { + .driver = { + .name = DRV_NAME, + .owner = THIS_MODULE, + .of_match_table = rockchip_hdmi_audio_of_match, + }, + .probe = rockchip_hdmi_audio_probe, + .remove = rockchip_hdmi_audio_remove, +}; +module_platform_driver(rockchip_hdmi_audio_driver); + +MODULE_AUTHOR("Yakir Yang <ykk@rock-chips.com>"); +MODULE_DESCRIPTION("Rockchip HDMI Audio ASoC Interface"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:" DRV_NAME); +MODULE_DEVICE_TABLE(of, rockchip_hdmi_audio_of_match); -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 2:11 ` Yakir Yang (?) @ 2014-12-15 2:55 ` Yakir Yang -1 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:55 UTC (permalink / raw) To: ykk Cc: Mark Rutland, alsa-devel, Heiko Stuebner, devicetree, David Airlie, dri-devel, Liam Girdwood, Max Filippov, Bard Liao, Lars-Peter Clausen, Russell King, Arnd Bergmann, Takashi Iwai, linux-rockchip, Grant Likely, Dylan Reid, Xu Jianqun, Oder Chiou, Zubair.Kakakhel, Pawel Moll, Ian Campbell, Jyri Sarha, Ben Zhang, Rob Herring, Daniel Kurtz Required properties: - compatible: platform specific - cpu-of-node: the device node of cpu_dai - codec-name: the dw-hdmi codec's device name - codec-dai-name: the dw-hdmi codec's dai name Signed-off-by: Yakir Yang <ykk@rock-chips.com> --- .../bindings/sound/rockchip,rockchip-hdmi-audio.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt diff --git a/Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt b/Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt new file mode 100644 index 0000000..674cff0 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt @@ -0,0 +1,16 @@ +Rockchip hdmi audio bindings + +Required properties: +- compatible: platform specific +- cpu-of-node: the device node of cpu_dai +- codec-name: the dw-hdmi codec's device name +- codec-dai-name: the dw-hdmi codec's dai name + +Example: + +sound { + compatible = "rockchip,rk3288-hdmi-audio"; + cpu-of-node = <&i2s>; + codec-name = "dw-hdmi-audio"; + codec-dai-name = "dw-hdmi-hifi"; +}; -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 2:55 ` Yakir Yang 0 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:55 UTC (permalink / raw) To: ykk Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Mark Brown, Takashi Iwai, Jyri Sarha Required properties: - compatible: platform specific - cpu-of-node: the device node of cpu_dai - codec-name: the dw-hdmi codec's device name - codec-dai-name: the dw-hdmi codec's dai name Signed-off-by: Yakir Yang <ykk@rock-chips.com> --- .../bindings/sound/rockchip,rockchip-hdmi-audio.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt diff --git a/Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt b/Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt new file mode 100644 index 0000000..674cff0 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt @@ -0,0 +1,16 @@ +Rockchip hdmi audio bindings + +Required properties: +- compatible: platform specific +- cpu-of-node: the device node of cpu_dai +- codec-name: the dw-hdmi codec's device name +- codec-dai-name: the dw-hdmi codec's dai name + +Example: + +sound { + compatible = "rockchip,rk3288-hdmi-audio"; + cpu-of-node = <&i2s>; + codec-name = "dw-hdmi-audio"; + codec-dai-name = "dw-hdmi-hifi"; +}; -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 2:55 ` Yakir Yang 0 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:55 UTC (permalink / raw) To: linux-arm-kernel Required properties: - compatible: platform specific - cpu-of-node: the device node of cpu_dai - codec-name: the dw-hdmi codec's device name - codec-dai-name: the dw-hdmi codec's dai name Signed-off-by: Yakir Yang <ykk@rock-chips.com> --- .../bindings/sound/rockchip,rockchip-hdmi-audio.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt diff --git a/Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt b/Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt new file mode 100644 index 0000000..674cff0 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/rockchip,rockchip-hdmi-audio.txt @@ -0,0 +1,16 @@ +Rockchip hdmi audio bindings + +Required properties: +- compatible: platform specific +- cpu-of-node: the device node of cpu_dai +- codec-name: the dw-hdmi codec's device name +- codec-dai-name: the dw-hdmi codec's dai name + +Example: + +sound { + compatible = "rockchip,rk3288-hdmi-audio"; + cpu-of-node = <&i2s>; + codec-name = "dw-hdmi-audio"; + codec-dai-name = "dw-hdmi-hifi"; +}; -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
[parent not found: <1418612114-19692-1-git-send-email-ykk-TNX95d0MmH7DzftRWevZcw@public.gmane.org>]
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 2:55 ` Yakir Yang (?) @ 2014-12-15 9:02 ` Lars-Peter Clausen -1 siblings, 0 replies; 66+ messages in thread From: Lars-Peter Clausen @ 2014-12-15 9:02 UTC (permalink / raw) To: Yakir Yang Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel On 12/15/2014 03:55 AM, Yakir Yang wrote: [...] > +- codec-name: the dw-hdmi codec's device name > +- codec-dai-name: the dw-hdmi codec's dai name Please you phandles for this, the names are Linux driver and framework specific details. That should not leak into the DT bindings. [..] -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 9:02 ` Lars-Peter Clausen 0 siblings, 0 replies; 66+ messages in thread From: Lars-Peter Clausen @ 2014-12-15 9:02 UTC (permalink / raw) To: Yakir Yang Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Mark Brown, Takashi Iwai, Jyri Sarha On 12/15/2014 03:55 AM, Yakir Yang wrote: [...] > +- codec-name: the dw-hdmi codec's device name > +- codec-dai-name: the dw-hdmi codec's dai name Please you phandles for this, the names are Linux driver and framework specific details. That should not leak into the DT bindings. [..] ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 9:02 ` Lars-Peter Clausen 0 siblings, 0 replies; 66+ messages in thread From: Lars-Peter Clausen @ 2014-12-15 9:02 UTC (permalink / raw) To: linux-arm-kernel On 12/15/2014 03:55 AM, Yakir Yang wrote: [...] > +- codec-name: the dw-hdmi codec's device name > +- codec-dai-name: the dw-hdmi codec's dai name Please you phandles for this, the names are Linux driver and framework specific details. That should not leak into the DT bindings. [..] ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 9:02 ` Lars-Peter Clausen (?) (?) @ 2014-12-15 9:28 ` ykk -1 siblings, 0 replies; 66+ messages in thread From: ykk @ 2014-12-15 9:28 UTC (permalink / raw) To: Lars-Peter Clausen Cc: Mark Rutland, alsa-devel, Heiko Stuebner, devicetree, David Airlie, dri-devel, Liam Girdwood, Max Filippov, Bard Liao, Russell King, Arnd Bergmann, Takashi Iwai, linux-rockchip, Grant Likely, Dylan Reid, Xu Jianqun, Oder Chiou, Zubair.Kakakhel, Pawel Moll, Ian Campbell, Jyri Sarha, Ben Zhang, Rob Herring, Daniel Kurtz Hi lars: thks for your review, I will move it to hdmi audio driver, give the codec_name & codec_dai_name an const string. Best Regards. Yang KuanKuan | Software Engineer | 15060416783 | ykk@rock-chips.com From: Lars-Peter Clausen Date: 2014-12-15 17:02 To: Yakir Yang CC: Heiko Stuebner; Rob Herring; Pawel Moll; Mark Rutland; Ian Campbell; Kumar Gala; Russell King; Philipp Zabel; Zubair.Kakakhel; Fabio Estevam; Shawn Guo; dri-devel; Daniel Kurtz; Sonny Rao; Dylan Reid; Xu Jianqun; St��phane Marchesin; Brian Austin; Bard Liao; Max Filippov; Oder Chiou; devicetree; linux-kernel; linux-arm-kernel; linux-rockchip; alsa-devel; Arnd Bergmann; David Airlie; Sean Cross; Grant Likely; Greg Kroah-Hartman; Ben Zhang; Liam Girdwood; Jaroslav Kysela; Mark Brown; Takashi Iwai; Jyri Sarha Subject: Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio On 12/15/2014 03:55 AM, Yakir Yang wrote: [...] > +- codec-name: the dw-hdmi codec's device name > +- codec-dai-name: the dw-hdmi codec's dai name Please you phandles for this, the names are Linux driver and framework specific details. That should not leak into the DT bindings. [..] _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel ^ permalink raw reply [flat|nested] 66+ messages in thread
[parent not found: <548EA3B9.5080407-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>]
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 9:02 ` Lars-Peter Clausen (?) @ 2014-12-15 9:46 ` Kuankuan.Yang -1 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 9:46 UTC (permalink / raw) To: Lars-Peter Clausen Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel Hi lars: thks for your review, I will move it to hdmi audio driver, give the codec_name & codec_dai_name an const string. Best Regards. 在 2014年12月15日 17:02, Lars-Peter Clausen 写道: > On 12/15/2014 03:55 AM, Yakir Yang wrote: > [...] >> +- codec-name: the dw-hdmi codec's device name >> +- codec-dai-name: the dw-hdmi codec's dai name > > Please you phandles for this, the names are Linux driver and framework > specific details. That should not leak into the DT bindings. > > [..] > > > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 9:46 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 9:46 UTC (permalink / raw) To: Lars-Peter Clausen Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Mark Brown, Takashi Iwai, Jyri Sarha Hi lars: thks for your review, I will move it to hdmi audio driver, give the codec_name & codec_dai_name an const string. Best Regards. 在 2014年12月15日 17:02, Lars-Peter Clausen 写道: > On 12/15/2014 03:55 AM, Yakir Yang wrote: > [...] >> +- codec-name: the dw-hdmi codec's device name >> +- codec-dai-name: the dw-hdmi codec's dai name > > Please you phandles for this, the names are Linux driver and framework > specific details. That should not leak into the DT bindings. > > [..] > > > ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 9:46 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 9:46 UTC (permalink / raw) To: linux-arm-kernel Hi lars: thks for your review, I will move it to hdmi audio driver, give the codec_name & codec_dai_name an const string. Best Regards. ? 2014?12?15? 17:02, Lars-Peter Clausen ??: > On 12/15/2014 03:55 AM, Yakir Yang wrote: > [...] >> +- codec-name: the dw-hdmi codec's device name >> +- codec-dai-name: the dw-hdmi codec's dai name > > Please you phandles for this, the names are Linux driver and framework > specific details. That should not leak into the DT bindings. > > [..] > > > ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 2:55 ` Yakir Yang (?) @ 2014-12-15 10:40 ` Russell King - ARM Linux -1 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-15 10:40 UTC (permalink / raw) To: Yakir Yang Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM On Mon, Dec 15, 2014 at 10:55:14AM +0800, Yakir Yang wrote: > Required properties: > - compatible: platform specific > - cpu-of-node: the device node of cpu_dai > - codec-name: the dw-hdmi codec's device name > - codec-dai-name: the dw-hdmi codec's dai name This is not actually a separate physical device from the main dw-hdmi device. What you are doing is merely describing the Linux kernel internals in DT, which is not what DT is supposed to be about. DT is supposed to describe the hardware in an operating system independent manner. Including details like this (because ASoC needs a separate DT node) is the wrong approach. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 10:40 ` Russell King - ARM Linux 0 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-15 10:40 UTC (permalink / raw) To: Yakir Yang Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Mark Brown, Takashi Iwai, Jyri Sarha On Mon, Dec 15, 2014 at 10:55:14AM +0800, Yakir Yang wrote: > Required properties: > - compatible: platform specific > - cpu-of-node: the device node of cpu_dai > - codec-name: the dw-hdmi codec's device name > - codec-dai-name: the dw-hdmi codec's dai name This is not actually a separate physical device from the main dw-hdmi device. What you are doing is merely describing the Linux kernel internals in DT, which is not what DT is supposed to be about. DT is supposed to describe the hardware in an operating system independent manner. Including details like this (because ASoC needs a separate DT node) is the wrong approach. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 10:40 ` Russell King - ARM Linux 0 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-15 10:40 UTC (permalink / raw) To: linux-arm-kernel On Mon, Dec 15, 2014 at 10:55:14AM +0800, Yakir Yang wrote: > Required properties: > - compatible: platform specific > - cpu-of-node: the device node of cpu_dai > - codec-name: the dw-hdmi codec's device name > - codec-dai-name: the dw-hdmi codec's dai name This is not actually a separate physical device from the main dw-hdmi device. What you are doing is merely describing the Linux kernel internals in DT, which is not what DT is supposed to be about. DT is supposed to describe the hardware in an operating system independent manner. Including details like this (because ASoC needs a separate DT node) is the wrong approach. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 10:40 ` Russell King - ARM Linux (?) @ 2014-12-15 12:02 ` Mark Brown -1 siblings, 0 replies; 66+ messages in thread From: Mark Brown @ 2014-12-15 12:02 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Yakir Yang, Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 421 bytes --] On Mon, Dec 15, 2014 at 10:40:29AM +0000, Russell King - ARM Linux wrote: > Including details like this (because ASoC needs a separate DT node) is > the wrong approach. And indeed there should be no Linux-internal reason for that - we should be able to use whatever DT node makes sense, if there's some reason that's not possible we should fix that (we do have several drivers doing this sort of thing already though). [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 473 bytes --] ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 12:02 ` Mark Brown 0 siblings, 0 replies; 66+ messages in thread From: Mark Brown @ 2014-12-15 12:02 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Yakir Yang, Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Jyri Sarha [-- Attachment #1: Type: text/plain, Size: 421 bytes --] On Mon, Dec 15, 2014 at 10:40:29AM +0000, Russell King - ARM Linux wrote: > Including details like this (because ASoC needs a separate DT node) is > the wrong approach. And indeed there should be no Linux-internal reason for that - we should be able to use whatever DT node makes sense, if there's some reason that's not possible we should fix that (we do have several drivers doing this sort of thing already though). [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 473 bytes --] ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 12:02 ` Mark Brown 0 siblings, 0 replies; 66+ messages in thread From: Mark Brown @ 2014-12-15 12:02 UTC (permalink / raw) To: linux-arm-kernel On Mon, Dec 15, 2014 at 10:40:29AM +0000, Russell King - ARM Linux wrote: > Including details like this (because ASoC needs a separate DT node) is > the wrong approach. And indeed there should be no Linux-internal reason for that - we should be able to use whatever DT node makes sense, if there's some reason that's not possible we should fix that (we do have several drivers doing this sort of thing already though). -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 473 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141215/c37dc47a/attachment.sig> ^ permalink raw reply [flat|nested] 66+ messages in thread
[parent not found: <20141215120205.GZ11764-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>]
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 12:02 ` Mark Brown (?) @ 2014-12-15 13:10 ` Kuankuan.Yang -1 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 13:10 UTC (permalink / raw) To: Mark Brown, Russell King - ARM Linux Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel Hi Mark & Russell: thanks for your replay, what your say is right, those dt is merely describing the Linux kernel internals. Instead of transmit cpu-of-node & codec-name & codec-dai-name through dt, i can give those an const name to rockchip-hdmi-audio.c . In that way, dt will only need compatible for creating sound device. is it ok ? sound { compatible = "rockchip,rk3288-hdmi-audio"; status = "okay"; } could you give me some advises. Best Regards. 在 2014年12月15日 20:02, Mark Brown 写道: > On Mon, Dec 15, 2014 at 10:40:29AM +0000, Russell King - ARM Linux wrote: > >> Including details like this (because ASoC needs a separate DT node) is >> the wrong approach. > And indeed there should be no Linux-internal reason for that - we should > be able to use whatever DT node makes sense, if there's some reason > that's not possible we should fix that (we do have several drivers doing > this sort of thing already though). -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 13:10 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 13:10 UTC (permalink / raw) To: Mark Brown, Russell King - ARM Linux Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Jyri Sarha Hi Mark & Russell: thanks for your replay, what your say is right, those dt is merely describing the Linux kernel internals. Instead of transmit cpu-of-node & codec-name & codec-dai-name through dt, i can give those an const name to rockchip-hdmi-audio.c . In that way, dt will only need compatible for creating sound device. is it ok ? sound { compatible = "rockchip,rk3288-hdmi-audio"; status = "okay"; } could you give me some advises. Best Regards. 在 2014年12月15日 20:02, Mark Brown 写道: > On Mon, Dec 15, 2014 at 10:40:29AM +0000, Russell King - ARM Linux wrote: > >> Including details like this (because ASoC needs a separate DT node) is >> the wrong approach. > And indeed there should be no Linux-internal reason for that - we should > be able to use whatever DT node makes sense, if there's some reason > that's not possible we should fix that (we do have several drivers doing > this sort of thing already though). ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 13:10 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-15 13:10 UTC (permalink / raw) To: linux-arm-kernel Hi Mark & Russell: thanks for your replay, what your say is right, those dt is merely describing the Linux kernel internals. Instead of transmit cpu-of-node & codec-name & codec-dai-name through dt, i can give those an const name to rockchip-hdmi-audio.c . In that way, dt will only need compatible for creating sound device. is it ok ? sound { compatible = "rockchip,rk3288-hdmi-audio"; status = "okay"; } could you give me some advises. Best Regards. ? 2014?12?15? 20:02, Mark Brown ??: > On Mon, Dec 15, 2014 at 10:40:29AM +0000, Russell King - ARM Linux wrote: > >> Including details like this (because ASoC needs a separate DT node) is >> the wrong approach. > And indeed there should be no Linux-internal reason for that - we should > be able to use whatever DT node makes sense, if there's some reason > that's not possible we should fix that (we do have several drivers doing > this sort of thing already though). ^ permalink raw reply [flat|nested] 66+ messages in thread
[parent not found: <548EDDC2.9050104-TNX95d0MmH7DzftRWevZcw@public.gmane.org>]
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 13:10 ` Kuankuan.Yang (?) @ 2014-12-15 16:18 ` Mark Brown -1 siblings, 0 replies; 66+ messages in thread From: Mark Brown @ 2014-12-15 16:18 UTC (permalink / raw) To: Kuankuan.Yang Cc: Russell King - ARM Linux, Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree-u79uwXL29TY76Z2rM5mHXA [-- Attachment #1: Type: text/plain, Size: 566 bytes --] On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: > Hi Mark & Russell: Please don't top post, that way people have some context for what you're saying - look at how people normally format their mails on thelist. > In that way, dt will only need compatible for creating sound device. is it > ok ? > sound { > compatible = "rockchip,rk3288-hdmi-audio"; > status = "okay"; > } > could you give me some advises. That'd be good, though the other question is if this can be made to use simple-card so we can avoid having a custom driver for this. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 473 bytes --] ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 16:18 ` Mark Brown 0 siblings, 0 replies; 66+ messages in thread From: Mark Brown @ 2014-12-15 16:18 UTC (permalink / raw) To: Kuankuan.Yang Cc: Russell King - ARM Linux, Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Jyri Sarha [-- Attachment #1: Type: text/plain, Size: 566 bytes --] On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: > Hi Mark & Russell: Please don't top post, that way people have some context for what you're saying - look at how people normally format their mails on thelist. > In that way, dt will only need compatible for creating sound device. is it > ok ? > sound { > compatible = "rockchip,rk3288-hdmi-audio"; > status = "okay"; > } > could you give me some advises. That'd be good, though the other question is if this can be made to use simple-card so we can avoid having a custom driver for this. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 473 bytes --] ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-15 16:18 ` Mark Brown 0 siblings, 0 replies; 66+ messages in thread From: Mark Brown @ 2014-12-15 16:18 UTC (permalink / raw) To: linux-arm-kernel On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: > Hi Mark & Russell: Please don't top post, that way people have some context for what you're saying - look at how people normally format their mails on thelist. > In that way, dt will only need compatible for creating sound device. is it > ok ? > sound { > compatible = "rockchip,rk3288-hdmi-audio"; > status = "okay"; > } > could you give me some advises. That'd be good, though the other question is if this can be made to use simple-card so we can avoid having a custom driver for this. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 473 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141215/31851b77/attachment.sig> ^ permalink raw reply [flat|nested] 66+ messages in thread
[parent not found: <20141215161827.GE11764-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>]
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 16:18 ` Mark Brown (?) @ 2014-12-16 2:14 ` Kuankuan.Yang -1 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 2:14 UTC (permalink / raw) To: Mark Brown Cc: Russell King - ARM Linux, Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree-u79uwXL29TY76Z2rM5mHXA Hi Mark : Got it, it will be good to use simple-card. i will try it in next version. Best Regards. 在 2014年12月16日 00:18, Mark Brown 写道: > On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: >> Hi Mark & Russell: > Please don't top post, that way people have some context for what you're > saying - look at how people normally format their mails on thelist. > >> In that way, dt will only need compatible for creating sound device. is it >> ok ? >> sound { >> compatible = "rockchip,rk3288-hdmi-audio"; >> status = "okay"; >> } >> could you give me some advises. > That'd be good, though the other question is if this can be made to use > simple-card so we can avoid having a custom driver for this. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-16 2:14 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 2:14 UTC (permalink / raw) To: Mark Brown Cc: Russell King - ARM Linux, Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Jyri Sarha Hi Mark : Got it, it will be good to use simple-card. i will try it in next version. Best Regards. 在 2014年12月16日 00:18, Mark Brown 写道: > On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: >> Hi Mark & Russell: > Please don't top post, that way people have some context for what you're > saying - look at how people normally format their mails on thelist. > >> In that way, dt will only need compatible for creating sound device. is it >> ok ? >> sound { >> compatible = "rockchip,rk3288-hdmi-audio"; >> status = "okay"; >> } >> could you give me some advises. > That'd be good, though the other question is if this can be made to use > simple-card so we can avoid having a custom driver for this. ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-16 2:14 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 2:14 UTC (permalink / raw) To: linux-arm-kernel Hi Mark : Got it, it will be good to use simple-card. i will try it in next version. Best Regards. ? 2014?12?16? 00:18, Mark Brown ??: > On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: >> Hi Mark & Russell: > Please don't top post, that way people have some context for what you're > saying - look at how people normally format their mails on thelist. > >> In that way, dt will only need compatible for creating sound device. is it >> ok ? >> sound { >> compatible = "rockchip,rk3288-hdmi-audio"; >> status = "okay"; >> } >> could you give me some advises. > That'd be good, though the other question is if this can be made to use > simple-card so we can avoid having a custom driver for this. ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 16:18 ` Mark Brown (?) @ 2014-12-16 2:38 ` Kuankuan.Yang -1 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 2:38 UTC (permalink / raw) To: Mark Brown Cc: Russell King - ARM Linux, Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree-u79uwXL29TY76Z2rM5mHXA 在 2014年12月16日 00:18, Mark Brown 写道: > On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: >> Hi Mark & Russell: > Please don't top post, that way people have some context for what you're > saying - look at how people normally format their mails on thelist. got it, thanks for your remind. >> In that way, dt will only need compatible for creating sound device. is it >> ok ? >> sound { >> compatible = "rockchip,rk3288-hdmi-audio"; >> status = "okay"; >> } >> could you give me some advises. > That'd be good, though the other question is if this can be made to use > simple-card so we can avoid having a custom driver for this. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-16 2:38 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 2:38 UTC (permalink / raw) To: Mark Brown Cc: Russell King - ARM Linux, Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Jyri Sarha 在 2014年12月16日 00:18, Mark Brown 写道: > On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: >> Hi Mark & Russell: > Please don't top post, that way people have some context for what you're > saying - look at how people normally format their mails on thelist. got it, thanks for your remind. >> In that way, dt will only need compatible for creating sound device. is it >> ok ? >> sound { >> compatible = "rockchip,rk3288-hdmi-audio"; >> status = "okay"; >> } >> could you give me some advises. > That'd be good, though the other question is if this can be made to use > simple-card so we can avoid having a custom driver for this. ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-16 2:38 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 2:38 UTC (permalink / raw) To: linux-arm-kernel ? 2014?12?16? 00:18, Mark Brown ??: > On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: >> Hi Mark & Russell: > Please don't top post, that way people have some context for what you're > saying - look at how people normally format their mails on thelist. got it, thanks for your remind. >> In that way, dt will only need compatible for creating sound device. is it >> ok ? >> sound { >> compatible = "rockchip,rk3288-hdmi-audio"; >> status = "okay"; >> } >> could you give me some advises. > That'd be good, though the other question is if this can be made to use > simple-card so we can avoid having a custom driver for this. ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-15 16:18 ` Mark Brown (?) @ 2014-12-16 6:17 ` Kuankuan.Yang -1 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 6:17 UTC (permalink / raw) To: Mark Brown Cc: Russell King - ARM Linux, Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Fabio Estevam, Shawn Guo, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree-u79uwXL29TY76Z2rM5mHXA 在 2014年12月16日 00:18, Mark Brown 写道: > On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: >> Hi Mark & Russell: > Please don't top post, that way people have some context for what you're > saying - look at how people normally format their mails on thelist. > >> In that way, dt will only need compatible for creating sound device. is it >> ok ? >> sound { >> compatible = "rockchip,rk3288-hdmi-audio"; >> status = "okay"; >> } >> could you give me some advises. > That'd be good, though the other question is if this can be made to use > simple-card so we can avoid having a custom driver for this. Hi Russell & Mark: hdmi-audio driver share irq with dw_hdmi driver, for continuing AHBAUDDMA or for detecting hdmi insert. So maybe it's hard to switch to simple-card way, Russell what's your opinion ? Best Regards. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-16 6:17 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 6:17 UTC (permalink / raw) To: Mark Brown Cc: Russell King - ARM Linux, Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Jyri Sarha 在 2014年12月16日 00:18, Mark Brown 写道: > On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: >> Hi Mark & Russell: > Please don't top post, that way people have some context for what you're > saying - look at how people normally format their mails on thelist. > >> In that way, dt will only need compatible for creating sound device. is it >> ok ? >> sound { >> compatible = "rockchip,rk3288-hdmi-audio"; >> status = "okay"; >> } >> could you give me some advises. > That'd be good, though the other question is if this can be made to use > simple-card so we can avoid having a custom driver for this. Hi Russell & Mark: hdmi-audio driver share irq with dw_hdmi driver, for continuing AHBAUDDMA or for detecting hdmi insert. So maybe it's hard to switch to simple-card way, Russell what's your opinion ? Best Regards. ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-16 6:17 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 6:17 UTC (permalink / raw) To: linux-arm-kernel ? 2014?12?16? 00:18, Mark Brown ??: > On Mon, Dec 15, 2014 at 09:10:26PM +0800, Kuankuan.Yang wrote: >> Hi Mark & Russell: > Please don't top post, that way people have some context for what you're > saying - look at how people normally format their mails on thelist. > >> In that way, dt will only need compatible for creating sound device. is it >> ok ? >> sound { >> compatible = "rockchip,rk3288-hdmi-audio"; >> status = "okay"; >> } >> could you give me some advises. > That'd be good, though the other question is if this can be made to use > simple-card so we can avoid having a custom driver for this. Hi Russell & Mark: hdmi-audio driver share irq with dw_hdmi driver, for continuing AHBAUDDMA or for detecting hdmi insert. So maybe it's hard to switch to simple-card way, Russell what's your opinion ? Best Regards. ^ permalink raw reply [flat|nested] 66+ messages in thread
[parent not found: <548FCE8F.7090106-TNX95d0MmH7DzftRWevZcw@public.gmane.org>]
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-16 6:17 ` Kuankuan.Yang (?) @ 2014-12-16 9:34 ` Russell King - ARM Linux -1 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-16 9:34 UTC (permalink / raw) To: Kuankuan.Yang Cc: Mark Brown, Mark Rutland, alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw, Heiko Stuebner, devicetree-u79uwXL29TY76Z2rM5mHXA, David Airlie, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Liam Girdwood, Max Filippov, Bard Liao, Lars-Peter Clausen, Arnd Bergmann, Takashi Iwai, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Grant Likely, Dylan Reid, Xu Jianqun, Oder Chiou, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Pawel Moll, Ian Campbell, Jyri Sarha, Ben Zhang, Rob Herring, Daniel Kurtz On Tue, Dec 16, 2014 at 02:17:51PM +0800, Kuankuan.Yang wrote: > hdmi-audio driver share irq with dw_hdmi driver, for continuing AHBAUDDMA > or for detecting hdmi insert. > So maybe it's hard to switch to simple-card way, Russell what's your > opinion ? My "opinion" is that I need to spend some time looking in depth at both your code and my code before I can form an idea of how to proceed. However, since I seem to be spending a lot of time chasing regressions which have appeared in v3.18, I don't have a lot of time to look at this right now. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-16 9:34 ` Russell King - ARM Linux 0 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-16 9:34 UTC (permalink / raw) To: Kuankuan.Yang Cc: Mark Brown, Mark Rutland, alsa-devel, Heiko Stuebner, devicetree, David Airlie, dri-devel, Liam Girdwood, Max Filippov, Bard Liao, Lars-Peter Clausen, Arnd Bergmann, Takashi Iwai, linux-rockchip, Grant Likely, Dylan Reid, Xu Jianqun, Oder Chiou, Zubair.Kakakhel, Pawel Moll, Ian Campbell, Jyri Sarha, Ben Zhang, Rob Herring, Daniel Kurtz, St��phane Marchesin, Jaroslav Kysela, Sonny Rao, Sean Cross, linux-arm-kernel, Fabio Estevam, Brian Austin, Greg Kroah-Hartman, linux-kernel, Philipp Zabel, Kumar Gala, Shawn Guo On Tue, Dec 16, 2014 at 02:17:51PM +0800, Kuankuan.Yang wrote: > hdmi-audio driver share irq with dw_hdmi driver, for continuing AHBAUDDMA > or for detecting hdmi insert. > So maybe it's hard to switch to simple-card way, Russell what's your > opinion ? My "opinion" is that I need to spend some time looking in depth at both your code and my code before I can form an idea of how to proceed. However, since I seem to be spending a lot of time chasing regressions which have appeared in v3.18, I don't have a lot of time to look at this right now. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-16 9:34 ` Russell King - ARM Linux 0 siblings, 0 replies; 66+ messages in thread From: Russell King - ARM Linux @ 2014-12-16 9:34 UTC (permalink / raw) To: linux-arm-kernel On Tue, Dec 16, 2014 at 02:17:51PM +0800, Kuankuan.Yang wrote: > hdmi-audio driver share irq with dw_hdmi driver, for continuing AHBAUDDMA > or for detecting hdmi insert. > So maybe it's hard to switch to simple-card way, Russell what's your > opinion ? My "opinion" is that I need to spend some time looking in depth at both your code and my code before I can form an idea of how to proceed. However, since I seem to be spending a lot of time chasing regressions which have appeared in v3.18, I don't have a lot of time to look at this right now. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. ^ permalink raw reply [flat|nested] 66+ messages in thread
[parent not found: <20141216093443.GN11285-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>]
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio 2014-12-16 9:34 ` Russell King - ARM Linux (?) @ 2014-12-16 9:48 ` Kuankuan.Yang -1 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 9:48 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Mark Brown, Mark Rutland, alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw, Heiko Stuebner, devicetree-u79uwXL29TY76Z2rM5mHXA, David Airlie, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Liam Girdwood, Max Filippov, Bard Liao, Lars-Peter Clausen, Arnd Bergmann, Takashi Iwai, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Grant Likely, Dylan Reid, Xu Jianqun, Oder Chiou, Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA, Pawel Moll, Ian Campbell, Jyri Sarha, Ben Zhang, Rob Herring, Daniel Kurtz 在 2014年12月16日 17:34, Russell King - ARM Linux 写道: > On Tue, Dec 16, 2014 at 02:17:51PM +0800, Kuankuan.Yang wrote: >> hdmi-audio driver share irq with dw_hdmi driver, for continuing AHBAUDDMA >> or for detecting hdmi insert. >> So maybe it's hard to switch to simple-card way, Russell what's your >> opinion ? > My "opinion" is that I need to spend some time looking in depth at both > your code and my code before I can form an idea of how to proceed. > > However, since I seem to be spending a lot of time chasing regressions > which have appeared in v3.18, I don't have a lot of time to look at this > right now. > okay, if u got any ideas, wish u can let me know, thks. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 66+ messages in thread
* Re: [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-16 9:48 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 9:48 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Mark Brown, Mark Rutland, alsa-devel, Heiko Stuebner, devicetree, David Airlie, dri-devel, Liam Girdwood, Max Filippov, Bard Liao, Lars-Peter Clausen, Arnd Bergmann, Takashi Iwai, linux-rockchip, Grant Likely, Dylan Reid, Xu Jianqun, Oder Chiou, Zubair.Kakakhel, Pawel Moll, Ian Campbell, Jyri Sarha, Ben Zhang, Rob Herring, Daniel Kurtz, St��phane Marchesin, Jaroslav Kysela, Sonny Rao, Sean Cross, linux-arm-kernel, Fabio Estevam, Brian Austin, Greg Kroah-Hartman, linux-kernel, Philipp Zabel, Kumar Gala, Shawn Guo 在 2014年12月16日 17:34, Russell King - ARM Linux 写道: > On Tue, Dec 16, 2014 at 02:17:51PM +0800, Kuankuan.Yang wrote: >> hdmi-audio driver share irq with dw_hdmi driver, for continuing AHBAUDDMA >> or for detecting hdmi insert. >> So maybe it's hard to switch to simple-card way, Russell what's your >> opinion ? > My "opinion" is that I need to spend some time looking in depth at both > your code and my code before I can form an idea of how to proceed. > > However, since I seem to be spending a lot of time chasing regressions > which have appeared in v3.18, I don't have a lot of time to look at this > right now. > okay, if u got any ideas, wish u can let me know, thks. ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio @ 2014-12-16 9:48 ` Kuankuan.Yang 0 siblings, 0 replies; 66+ messages in thread From: Kuankuan.Yang @ 2014-12-16 9:48 UTC (permalink / raw) To: linux-arm-kernel ? 2014?12?16? 17:34, Russell King - ARM Linux ??: > On Tue, Dec 16, 2014 at 02:17:51PM +0800, Kuankuan.Yang wrote: >> hdmi-audio driver share irq with dw_hdmi driver, for continuing AHBAUDDMA >> or for detecting hdmi insert. >> So maybe it's hard to switch to simple-card way, Russell what's your >> opinion ? > My "opinion" is that I need to spend some time looking in depth at both > your code and my code before I can form an idea of how to proceed. > > However, since I seem to be spending a lot of time chasing regressions > which have appeared in v3.18, I don't have a lot of time to look at this > right now. > okay, if u got any ideas, wish u can let me know, thks. ^ permalink raw reply [flat|nested] 66+ messages in thread
* [PATCH 6/6] ARM: dts: rockchip: add hdmi audio nodes 2014-12-15 2:11 ` Yakir Yang (?) @ 2014-12-15 2:56 ` Yakir Yang -1 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:56 UTC (permalink / raw) To: ykk Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel Add hdmi_audio to rk3288.dtsi, enable hdmi_audio in rk3288-evb.dts Signed-off-by: Yakir Yang <ykk@rock-chips.com> series-cc: Dominik Behr <dbehr@chromium.org> --- arch/arm/boot/dts/rk3288-evb.dtsi | 11 +++++++++++ arch/arm/boot/dts/rk3288.dtsi | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi b/arch/arm/boot/dts/rk3288-evb.dtsi index 3e067dd..53115d4 100644 --- a/arch/arm/boot/dts/rk3288-evb.dtsi +++ b/arch/arm/boot/dts/rk3288-evb.dtsi @@ -120,6 +120,17 @@ status = "okay"; }; +&i2s { + status = "okay"; + clock-names = "i2s_hclk", "i2s_clk", "i2s_clk_out"; + clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>, + <&cru SCLK_I2S0_OUT>; +}; + +&hdmi_audio { + status = "okay"; +}; + &wdt { status = "okay"; }; diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index fd19f00..3eeba16 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -588,6 +588,14 @@ interrupts = <GIC_PPI 9 0xf04>; }; + hdmi_audio: hdmi_audio { + compatible = "rockchip,rk3288-hdmi-audio"; + cpu-of-node = <&i2s>; + codec-name = "dw-hdmi-audio"; + codec-dai-name = "dw-hdmi-hifi"; + status = "disable"; + }; + pinctrl: pinctrl { compatible = "rockchip,rk3288-pinctrl"; rockchip,grf = <&grf>; -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
* [PATCH 6/6] ARM: dts: rockchip: add hdmi audio nodes @ 2014-12-15 2:56 ` Yakir Yang 0 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:56 UTC (permalink / raw) To: ykk Cc: Heiko Stuebner, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, Philipp Zabel, Zubair.Kakakhel, Fabio Estevam, Shawn Guo, dri-devel, Daniel Kurtz, Sonny Rao, Dylan Reid, Xu Jianqun, St��phane Marchesin, Lars-Peter Clausen, Brian Austin, Bard Liao, Max Filippov, Oder Chiou, devicetree, linux-kernel, linux-arm-kernel, linux-rockchip, alsa-devel, Arnd Bergmann, David Airlie, Sean Cross, Grant Likely, Greg Kroah-Hartman, Ben Zhang, Liam Girdwood, Jaroslav Kysela, Mark Brown, Takashi Iwai, Jyri Sarha Add hdmi_audio to rk3288.dtsi, enable hdmi_audio in rk3288-evb.dts Signed-off-by: Yakir Yang <ykk@rock-chips.com> series-cc: Dominik Behr <dbehr@chromium.org> --- arch/arm/boot/dts/rk3288-evb.dtsi | 11 +++++++++++ arch/arm/boot/dts/rk3288.dtsi | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi b/arch/arm/boot/dts/rk3288-evb.dtsi index 3e067dd..53115d4 100644 --- a/arch/arm/boot/dts/rk3288-evb.dtsi +++ b/arch/arm/boot/dts/rk3288-evb.dtsi @@ -120,6 +120,17 @@ status = "okay"; }; +&i2s { + status = "okay"; + clock-names = "i2s_hclk", "i2s_clk", "i2s_clk_out"; + clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>, + <&cru SCLK_I2S0_OUT>; +}; + +&hdmi_audio { + status = "okay"; +}; + &wdt { status = "okay"; }; diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index fd19f00..3eeba16 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -588,6 +588,14 @@ interrupts = <GIC_PPI 9 0xf04>; }; + hdmi_audio: hdmi_audio { + compatible = "rockchip,rk3288-hdmi-audio"; + cpu-of-node = <&i2s>; + codec-name = "dw-hdmi-audio"; + codec-dai-name = "dw-hdmi-hifi"; + status = "disable"; + }; + pinctrl: pinctrl { compatible = "rockchip,rk3288-pinctrl"; rockchip,grf = <&grf>; -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
* [PATCH 6/6] ARM: dts: rockchip: add hdmi audio nodes @ 2014-12-15 2:56 ` Yakir Yang 0 siblings, 0 replies; 66+ messages in thread From: Yakir Yang @ 2014-12-15 2:56 UTC (permalink / raw) To: linux-arm-kernel Add hdmi_audio to rk3288.dtsi, enable hdmi_audio in rk3288-evb.dts Signed-off-by: Yakir Yang <ykk@rock-chips.com> series-cc: Dominik Behr <dbehr@chromium.org> --- arch/arm/boot/dts/rk3288-evb.dtsi | 11 +++++++++++ arch/arm/boot/dts/rk3288.dtsi | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi b/arch/arm/boot/dts/rk3288-evb.dtsi index 3e067dd..53115d4 100644 --- a/arch/arm/boot/dts/rk3288-evb.dtsi +++ b/arch/arm/boot/dts/rk3288-evb.dtsi @@ -120,6 +120,17 @@ status = "okay"; }; +&i2s { + status = "okay"; + clock-names = "i2s_hclk", "i2s_clk", "i2s_clk_out"; + clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>, + <&cru SCLK_I2S0_OUT>; +}; + +&hdmi_audio { + status = "okay"; +}; + &wdt { status = "okay"; }; diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index fd19f00..3eeba16 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -588,6 +588,14 @@ interrupts = <GIC_PPI 9 0xf04>; }; + hdmi_audio: hdmi_audio { + compatible = "rockchip,rk3288-hdmi-audio"; + cpu-of-node = <&i2s>; + codec-name = "dw-hdmi-audio"; + codec-dai-name = "dw-hdmi-hifi"; + status = "disable"; + }; + pinctrl: pinctrl { compatible = "rockchip,rk3288-pinctrl"; rockchip,grf = <&grf>; -- 2.1.2 ^ permalink raw reply related [flat|nested] 66+ messages in thread
end of thread, other threads:[~2014-12-16 9:49 UTC | newest]
Thread overview: 66+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-15 2:11 [RFC PATCH 0/6] Those patches is used for dw_hdmi audio Yakir Yang
2014-12-15 2:11 ` Yakir Yang
2014-12-15 2:11 ` Yakir Yang
2014-12-15 2:11 ` [PATCH 1/6] drm: bridge/dw_hdmi: add hdmi audio config interfaces Yakir Yang
2014-12-15 2:11 ` [PATCH 2/6] drm: bridge/bridge: add support for rk3288 hdmi-audio Yakir Yang
[not found] ` <1418609494-15820-1-git-send-email-ykk-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2014-12-15 2:11 ` [PATCH 3/6] ASoC: dw-hdmi-audio: add codec driver for dw hdmi audio Yakir Yang
2014-12-15 2:11 ` Yakir Yang
2014-12-15 10:38 ` [RFC PATCH 0/6] Those patches is used for dw_hdmi audio Russell King - ARM Linux
2014-12-15 10:38 ` Russell King - ARM Linux
2014-12-15 10:38 ` Russell King - ARM Linux
2014-12-15 11:45 ` Kuankuan.Yang
2014-12-15 11:52 ` Kuankuan.Yang
2014-12-15 11:52 ` Kuankuan.Yang
2014-12-15 11:52 ` Kuankuan.Yang
2014-12-15 12:00 ` Russell King - ARM Linux
2014-12-15 12:00 ` Russell King - ARM Linux
2014-12-15 12:00 ` Russell King - ARM Linux
2014-12-15 12:46 ` Kuankuan.Yang
2014-12-15 12:46 ` Kuankuan.Yang
2014-12-15 12:46 ` Kuankuan.Yang
2014-12-15 15:48 ` Jean-Francois Moine
2014-12-15 15:48 ` Jean-Francois Moine
2014-12-15 15:48 ` Jean-Francois Moine
2014-12-15 2:11 ` [PATCH 4/6] ASoC: rockchip-hdmi-audio: add sound driver for hdmi audio Yakir Yang
2014-12-15 2:11 ` Yakir Yang
2014-12-15 2:11 ` Yakir Yang
2014-12-15 2:55 ` [PATCH 5/6] dt-bindings: Add documentation for Rockchip hdmi-audio Yakir Yang
2014-12-15 2:55 ` Yakir Yang
2014-12-15 2:55 ` Yakir Yang
[not found] ` <1418612114-19692-1-git-send-email-ykk-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2014-12-15 9:02 ` Lars-Peter Clausen
2014-12-15 9:02 ` Lars-Peter Clausen
2014-12-15 9:02 ` Lars-Peter Clausen
2014-12-15 9:28 ` ykk
[not found] ` <548EA3B9.5080407-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2014-12-15 9:46 ` Kuankuan.Yang
2014-12-15 9:46 ` Kuankuan.Yang
2014-12-15 9:46 ` Kuankuan.Yang
2014-12-15 10:40 ` Russell King - ARM Linux
2014-12-15 10:40 ` Russell King - ARM Linux
2014-12-15 10:40 ` Russell King - ARM Linux
2014-12-15 12:02 ` Mark Brown
2014-12-15 12:02 ` Mark Brown
2014-12-15 12:02 ` Mark Brown
[not found] ` <20141215120205.GZ11764-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2014-12-15 13:10 ` Kuankuan.Yang
2014-12-15 13:10 ` Kuankuan.Yang
2014-12-15 13:10 ` Kuankuan.Yang
[not found] ` <548EDDC2.9050104-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2014-12-15 16:18 ` Mark Brown
2014-12-15 16:18 ` Mark Brown
2014-12-15 16:18 ` Mark Brown
[not found] ` <20141215161827.GE11764-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2014-12-16 2:14 ` Kuankuan.Yang
2014-12-16 2:14 ` Kuankuan.Yang
2014-12-16 2:14 ` Kuankuan.Yang
2014-12-16 2:38 ` Kuankuan.Yang
2014-12-16 2:38 ` Kuankuan.Yang
2014-12-16 2:38 ` Kuankuan.Yang
2014-12-16 6:17 ` Kuankuan.Yang
2014-12-16 6:17 ` Kuankuan.Yang
2014-12-16 6:17 ` Kuankuan.Yang
[not found] ` <548FCE8F.7090106-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2014-12-16 9:34 ` Russell King - ARM Linux
2014-12-16 9:34 ` Russell King - ARM Linux
2014-12-16 9:34 ` Russell King - ARM Linux
[not found] ` <20141216093443.GN11285-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2014-12-16 9:48 ` Kuankuan.Yang
2014-12-16 9:48 ` Kuankuan.Yang
2014-12-16 9:48 ` Kuankuan.Yang
2014-12-15 2:56 ` [PATCH 6/6] ARM: dts: rockchip: add hdmi audio nodes Yakir Yang
2014-12-15 2:56 ` Yakir Yang
2014-12-15 2:56 ` Yakir Yang
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.