From: Kevin Hilman <khilman@deeprootsystems.com>
To: Chaithrika U S <chaithrika@ti.com>
Cc: davinci-linux-open-source@linux.davincidsp.com,
broonie@opensource.wolfsonmicro.com, alsa-devel@alsa-project.org
Subject: Re: [PATCH v2] ARM: DaVinci: Audio support for DA830 EVM
Date: Wed, 12 Aug 2009 11:29:55 -0700 [thread overview]
Message-ID: <87bpmkubq4.fsf@deeprootsystems.com> (raw)
In-Reply-To: <1250024519-27100-1-git-send-email-chaithrika@ti.com> (Chaithrika U. S.'s message of "Tue\, 11 Aug 2009 17\:01\:59 -0400")
Chaithrika U S <chaithrika@ti.com> writes:
> Define resources for McASP1 used on DA830/OMAP-L137 EVM, add platform
> device defintion, initialization function.
> Additionally, this patch also adds version and FIFO related
> members to platform data structure.
>
> Signed-off-by: Chaithrika U S <chaithrika@ti.com>
> ---
> Applies to DaVinci GIT tree.
> In this version of the patch, the init fucntion, resource and platform device
> definitions have neen moved to the devices-da8xx.c file.
Looks fine.
I'll merge these two 'ARM: DaVinci: *' patches via DaVinci git (after
changing the subject prefix to just davinci:)
Merging them via davinci git will prevent conflicts in linux-next because
these are touching code that is being changed from multiple directions.
Kevin
> arch/arm/mach-davinci/board-da830-evm.c | 27 +++++++++++++++++++++
> arch/arm/mach-davinci/da830.c | 7 +++--
> arch/arm/mach-davinci/devices-da8xx.c | 36 ++++++++++++++++++++++++++++
> arch/arm/mach-davinci/include/mach/asp.h | 15 +++++++++++
> arch/arm/mach-davinci/include/mach/da8xx.h | 3 ++
> 5 files changed, 85 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c
> index 9025669..a45340d 100644
> --- a/arch/arm/mach-davinci/board-da830-evm.c
> +++ b/arch/arm/mach-davinci/board-da830-evm.c
> @@ -23,6 +23,7 @@
> #include <mach/irqs.h>
> #include <mach/cp_intc.h>
> #include <mach/da8xx.h>
> +#include <mach/asp.h>
>
> #define DA830_EVM_PHY_MASK 0x0
> #define DA830_EVM_MDIO_FREQUENCY 2200000 /* PHY bus frequency */
> @@ -51,6 +52,25 @@ static struct davinci_uart_config da830_evm_uart_config __initdata = {
> .enabled_uarts = 0x7,
> };
>
> +static u8 da830_iis_serializer_direction[] = {
> + RX_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
> + INACTIVE_MODE, TX_MODE, INACTIVE_MODE, INACTIVE_MODE,
> + INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
> +};
> +
> +static struct snd_platform_data da830_evm_snd_data = {
> + .tx_dma_offset = 0x2000,
> + .rx_dma_offset = 0x2000,
> + .op_mode = DAVINCI_MCASP_IIS_MODE,
> + .num_serializer = ARRAY_SIZE(da830_iis_serializer_direction),
> + .tdm_slots = 2,
> + .serial_dir = da830_iis_serializer_direction,
> + .eventq_no = EVENTQ_0,
> + .version = MCASP_VERSION_2,
> + .txnumevt = 1,
> + .rxnumevt = 1,
> +};
> +
> static __init void da830_evm_init(void)
> {
> struct davinci_soc_info *soc_info = &davinci_soc_info;
> @@ -93,6 +113,13 @@ static __init void da830_evm_init(void)
> davinci_serial_init(&da830_evm_uart_config);
> i2c_register_board_info(1, da830_evm_i2c_devices,
> ARRAY_SIZE(da830_evm_i2c_devices));
> +
> + ret = da8xx_pinmux_setup(da830_mcasp1_pins);
> + if (ret)
> + pr_warning("da830_evm_init: mcasp1 mux setup failed: %d\n",
> + ret);
> +
> + da8xx_init_mcasp(1, &da830_evm_snd_data);
> }
>
> #ifdef CONFIG_SERIAL_8250_CONSOLE
> diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c
> index 3a9b634..19b2748 100644
> --- a/arch/arm/mach-davinci/da830.c
> +++ b/arch/arm/mach-davinci/da830.c
> @@ -23,6 +23,7 @@
> #include <mach/common.h>
> #include <mach/time.h>
> #include <mach/da8xx.h>
> +#include <mach/asp.h>
>
> #include "clock.h"
> #include "mux.h"
> @@ -411,9 +412,9 @@ static struct davinci_clk da830_clks[] = {
> CLK("eqep.0", NULL, &eqep0_clk),
> CLK("eqep.1", NULL, &eqep1_clk),
> CLK("da830_lcdc", NULL, &lcdc_clk),
> - CLK("soc-audio.0", NULL, &mcasp0_clk),
> - CLK("soc-audio.1", NULL, &mcasp1_clk),
> - CLK("soc-audio.2", NULL, &mcasp2_clk),
> + CLK("davinci-mcasp.0", NULL, &mcasp0_clk),
> + CLK("davinci-mcasp.1", NULL, &mcasp1_clk),
> + CLK("davinci-mcasp.2", NULL, &mcasp2_clk),
> CLK("musb_hdrc", NULL, &usb20_clk),
> CLK(NULL, "aemif", &aemif_clk),
> CLK(NULL, "aintc", &aintc_clk),
> diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
> index 11c0971..fe0baaf 100644
> --- a/arch/arm/mach-davinci/devices-da8xx.c
> +++ b/arch/arm/mach-davinci/devices-da8xx.c
> @@ -281,7 +281,43 @@ static struct platform_device da8xx_emac_device = {
> .resource = da8xx_emac_resources,
> };
>
> +static struct resource da830_mcasp1_resources[] = {
> + {
> + .name = "mcasp1",
> + .start = DAVINCI_DA830_MCASP1_REG_BASE,
> + .end = DAVINCI_DA830_MCASP1_REG_BASE + (SZ_1K * 12) - 1,
> + .flags = IORESOURCE_MEM,
> + },
> + /* TX event */
> + {
> + .start = DAVINCI_DA830_DMA_MCASP1_AXEVT,
> + .end = DAVINCI_DA830_DMA_MCASP1_AXEVT,
> + .flags = IORESOURCE_DMA,
> + },
> + /* RX event */
> + {
> + .start = DAVINCI_DA830_DMA_MCASP1_AREVT,
> + .end = DAVINCI_DA830_DMA_MCASP1_AREVT,
> + .flags = IORESOURCE_DMA,
> + },
> +};
> +
> +static struct platform_device da830_mcasp1_device = {
> + .name = "davinci-mcasp",
> + .id = 1,
> + .num_resources = ARRAY_SIZE(da830_mcasp1_resources),
> + .resource = da830_mcasp1_resources,
> +};
> +
> int __init da8xx_register_emac(void)
> {
> return platform_device_register(&da8xx_emac_device);
> }
> +
> +void __init da8xx_init_mcasp(int id, struct snd_platform_data *pdata)
> +{
> + if (id == 1) { /* DA830/OMAP-L137 has 3 instances of McASP */
> + da830_mcasp1_device.dev.platform_data = pdata;
> + platform_device_register(&da830_mcasp1_device);
> + }
> +}
> diff --git a/arch/arm/mach-davinci/include/mach/asp.h b/arch/arm/mach-davinci/include/mach/asp.h
> index cdf1f44..f3c97ac 100644
> --- a/arch/arm/mach-davinci/include/mach/asp.h
> +++ b/arch/arm/mach-davinci/include/mach/asp.h
> @@ -15,6 +15,9 @@
> #define DAVINCI_DM646X_MCASP0_REG_BASE 0x01D01000
> #define DAVINCI_DM646X_MCASP1_REG_BASE 0x01D01800
>
> +/* Bases of da830 McASP1 register banks */
> +#define DAVINCI_DA830_MCASP1_REG_BASE 0x01D04000
> +
> /* EDMA channels of dm644x and dm355 */
> #define DAVINCI_DMA_ASP0_TX 2
> #define DAVINCI_DMA_ASP0_RX 3
> @@ -26,6 +29,10 @@
> #define DAVINCI_DM646X_DMA_MCASP0_AREVT0 9
> #define DAVINCI_DM646X_DMA_MCASP1_AXEVT1 12
>
> +/* EDMA channels of da830 McASP1 */
> +#define DAVINCI_DA830_DMA_MCASP1_AREVT 2
> +#define DAVINCI_DA830_DMA_MCASP1_AXEVT 3
> +
> /* Interrupts */
> #define DAVINCI_ASP0_RX_INT IRQ_MBRINT
> #define DAVINCI_ASP0_TX_INT IRQ_MBXINT
> @@ -43,6 +50,14 @@ struct snd_platform_data {
> u8 op_mode;
> u8 num_serializer;
> u8 *serial_dir;
> + u8 version;
> + u8 txnumevt;
> + u8 rxnumevt;
> +};
> +
> +enum {
> + MCASP_VERSION_1 = 0, /* DM646x */
> + MCASP_VERSION_2, /* DA8xx/OMAPL1x */
> };
>
> #define INACTIVE_MODE 0
> diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h
> index a8cb570..30c5c40 100644
> --- a/arch/arm/mach-davinci/include/mach/da8xx.h
> +++ b/arch/arm/mach-davinci/include/mach/da8xx.h
> @@ -15,6 +15,7 @@
> #include <mach/edma.h>
> #include <mach/i2c.h>
> #include <mach/emac.h>
> +#include <mach/asp.h>
>
> /*
> * The cp_intc interrupt controller for the da8xx isn't in the same
> @@ -65,6 +66,7 @@ int da8xx_register_edma(void);
> int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata);
> int da8xx_register_watchdog(void);
> int da8xx_register_emac(void);
> +void __init da8xx_init_mcasp(int id, struct snd_platform_data *pdata);
>
> extern struct platform_device da8xx_serial_device;
> extern struct emac_platform_data da8xx_emac_pdata;
> @@ -100,6 +102,7 @@ extern const short da850_uart2_pins[];
> extern const short da850_i2c0_pins[];
> extern const short da850_i2c1_pins[];
> extern const short da850_cpgmac_pins[];
> +extern const short da850_mcasp_pins[];
>
> int da8xx_pinmux_setup(const short pins[]);
>
> --
> 1.5.6
prev parent reply other threads:[~2009-08-12 18:30 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-11 21:01 [PATCH v2] ARM: DaVinci: Audio support for DA830 EVM Chaithrika U S
2009-08-12 18:29 ` Kevin Hilman [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87bpmkubq4.fsf@deeprootsystems.com \
--to=khilman@deeprootsystems.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=chaithrika@ti.com \
--cc=davinci-linux-open-source@linux.davincidsp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.