Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d8c4529 authored by Javier Martin's avatar Javier Martin Committed by Mauro Carvalho Chehab
Browse files

[media] i.MX: coda: Add platform support for coda in i.MX27



i.MX27 SoC include a codadx6 codec that is able to encode
and decode H.264, H.263 and MPEG4.

Signed-off-by: default avatarJavier Martin <javier.martin@vista-silicon.com>
Acked-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent ccc0e348
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -239,8 +239,8 @@ int __init mx27_clocks_init(unsigned long fref)
	clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0");
	clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0");
	clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1");
	clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1");
	clk_register_clkdev(clk[nfc_baud_gate], NULL, "mxc_nand.0");
	clk_register_clkdev(clk[nfc_baud_gate], NULL, "mxc_nand.0");
	clk_register_clkdev(clk[vpu_baud_gate], "per", "imx-vpu");
	clk_register_clkdev(clk[vpu_baud_gate], "per", "coda-imx27.0");
	clk_register_clkdev(clk[vpu_ahb_gate], "ahb", "imx-vpu");
	clk_register_clkdev(clk[vpu_ahb_gate], "ahb", "coda-imx27.0");
	clk_register_clkdev(clk[dma_ahb_gate], "ahb", "imx-dma");
	clk_register_clkdev(clk[dma_ahb_gate], "ahb", "imx-dma");
	clk_register_clkdev(clk[dma_ipg_gate], "ipg", "imx-dma");
	clk_register_clkdev(clk[dma_ipg_gate], "ipg", "imx-dma");
	clk_register_clkdev(clk[fec_ipg_gate], "ipg", "imx27-fec.0");
	clk_register_clkdev(clk[fec_ipg_gate], "ipg", "imx27-fec.0");
+4 −0
Original line number Original line Diff line number Diff line
@@ -17,6 +17,10 @@ extern const struct imx_fsl_usb2_udc_data imx27_fsl_usb2_udc_data;
#define imx27_add_fsl_usb2_udc(pdata)	\
#define imx27_add_fsl_usb2_udc(pdata)	\
	imx_add_fsl_usb2_udc(&imx27_fsl_usb2_udc_data, pdata)
	imx_add_fsl_usb2_udc(&imx27_fsl_usb2_udc_data, pdata)


extern const struct imx_imx27_coda_data imx27_coda_data;
#define imx27_add_coda()	\
	imx_add_imx27_coda(&imx27_coda_data)

extern const struct imx_imx2_wdt_data imx27_imx2_wdt_data;
extern const struct imx_imx2_wdt_data imx27_imx2_wdt_data;
#define imx27_add_imx2_wdt()	\
#define imx27_add_imx2_wdt()	\
	imx_add_imx2_wdt(&imx27_imx2_wdt_data)
	imx_add_imx2_wdt(&imx27_imx2_wdt_data)
+5 −1
Original line number Original line Diff line number Diff line
@@ -16,6 +16,10 @@ config IMX_HAVE_PLATFORM_GPIO_KEYS
config IMX_HAVE_PLATFORM_IMX21_HCD
config IMX_HAVE_PLATFORM_IMX21_HCD
	bool
	bool


config IMX_HAVE_PLATFORM_IMX27_CODA
	bool
	default y if SOC_IMX27

config IMX_HAVE_PLATFORM_IMX2_WDT
config IMX_HAVE_PLATFORM_IMX2_WDT
	bool
	bool


+1 −0
Original line number Original line Diff line number Diff line
@@ -4,6 +4,7 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_FSL_USB2_UDC) += platform-fsl-usb2-udc.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_GPIO_KEYS) += platform-gpio_keys.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_GPIO_KEYS) += platform-gpio_keys.o
obj-y += platform-gpio-mxc.o
obj-y += platform-gpio-mxc.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX21_HCD) += platform-imx21-hcd.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX21_HCD) += platform-imx21-hcd.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX27_CODA) += platform-imx27-coda.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT) += platform-imx2-wdt.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT) += platform-imx2-wdt.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMXDI_RTC) += platform-imxdi_rtc.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMXDI_RTC) += platform-imxdi_rtc.o
obj-y += platform-imx-dma.o
obj-y += platform-imx-dma.o
+37 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2012 Vista Silicon
 * Javier Martin <javier.martin@vista-silicon.com>
 *
 * 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.
 */

#include <mach/hardware.h>
#include <mach/devices-common.h>

#ifdef CONFIG_SOC_IMX27
const struct imx_imx27_coda_data imx27_coda_data __initconst = {
	.iobase = MX27_VPU_BASE_ADDR,
	.iosize = SZ_512,
	.irq = MX27_INT_VPU,
};
#endif

struct platform_device *__init imx_add_imx27_coda(
		const struct imx_imx27_coda_data *data)
{
	struct resource res[] = {
		{
			.start = data->iobase,
			.end = data->iobase + data->iosize - 1,
			.flags = IORESOURCE_MEM,
		}, {
			.start = data->irq,
			.end = data->irq,
			.flags = IORESOURCE_IRQ,
		},
	};
	return imx_add_platform_device_dmamask("coda-imx27", 0, res, 2, NULL,
					0, DMA_BIT_MASK(32));
}
Loading