On Fri, Aug 24, 2012 at 19:31:50, Lee Jones wrote: > The 'msp' board file does more than just register MSP devices. It > also registers some other components necessary to get audio working > on ux500 based platforms; such as the PCM and Machine Drivers. For > that reason we're changing the filename to be more encompassing - > 'audio'. > > Acked-by: Linus Walleij <linus.wall...@linaro.org> > Signed-off-by: Lee Jones <lee.jo...@linaro.org> > --- > arch/arm/mach-ux500/Makefile | 2 +- > arch/arm/mach-ux500/board-mop500-audio.c | 199 > ++++++++++++++++++++++++++++++ > arch/arm/mach-ux500/board-mop500-msp.c | 199 > ------------------------------
Please use _M option when generating patches (git-format-patch -M ...). This will reduce the final patch size > arch/arm/mach-ux500/board-mop500.c | 12 +- > arch/arm/mach-ux500/board-mop500.h | 4 +- > 5 files changed, 208 insertions(+), 208 deletions(-) > create mode 100644 arch/arm/mach-ux500/board-mop500-audio.c > delete mode 100644 arch/arm/mach-ux500/board-mop500-msp.c > > diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile > index 026086f..1dc2cfa 100644 > --- a/arch/arm/mach-ux500/Makefile > +++ b/arch/arm/mach-ux500/Makefile > @@ -12,6 +12,6 @@ obj-$(CONFIG_MACH_MOP500) += board-mop500.o > board-mop500-sdi.o \ > board-mop500-uib.o board-mop500-stuib.o \ > board-mop500-u8500uib.o \ > board-mop500-pins.o \ > - board-mop500-msp.o > + board-mop500-audio.o > obj-$(CONFIG_SMP) += platsmp.o headsmp.o > obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o > diff --git a/arch/arm/mach-ux500/board-mop500-audio.c > b/arch/arm/mach-ux500/board-mop500-audio.c > new file mode 100644 > index 0000000..18f6c5a > --- /dev/null > +++ b/arch/arm/mach-ux500/board-mop500-audio.c > @@ -0,0 +1,199 @@ > +/* > + * Copyright (C) ST-Ericsson SA 2010 > + * > + * License terms: GNU General Public License (GPL), version 2 > + */ > + > +#include <linux/platform_device.h> > +#include <linux/init.h> > +#include <linux/gpio.h> > +#include <linux/pinctrl/consumer.h> > + > +#include <plat/gpio-nomadik.h> > +#include <plat/pincfg.h> > +#include <plat/ste_dma40.h> > + > +#include <mach/devices.h> > +#include <mach/hardware.h> > +#include <mach/irqs.h> > +#include <mach/msp.h> > + > +#include "ste-dma40-db8500.h" > +#include "board-mop500.h" > +#include "devices-db8500.h" > +#include "pins-db8500.h" > + > +static struct stedma40_chan_cfg msp0_dma_rx = { > + .high_priority = true, > + .dir = STEDMA40_PERIPH_TO_MEM, > + > + .src_dev_type = DB8500_DMA_DEV31_MSP0_RX_SLIM0_CH0_RX, > + .dst_dev_type = STEDMA40_DEV_DST_MEMORY, > + > + .src_info.psize = STEDMA40_PSIZE_LOG_4, > + .dst_info.psize = STEDMA40_PSIZE_LOG_4, > + > + /* data_width is set during configuration */ > +}; > + > +static struct stedma40_chan_cfg msp0_dma_tx = { > + .high_priority = true, > + .dir = STEDMA40_MEM_TO_PERIPH, > + > + .src_dev_type = STEDMA40_DEV_DST_MEMORY, > + .dst_dev_type = DB8500_DMA_DEV31_MSP0_TX_SLIM0_CH0_TX, > + > + .src_info.psize = STEDMA40_PSIZE_LOG_4, > + .dst_info.psize = STEDMA40_PSIZE_LOG_4, > + > + /* data_width is set during configuration */ > +}; > + > +struct msp_i2s_platform_data msp0_platform_data = { > + .id = MSP_I2S_0, > + .msp_i2s_dma_rx = &msp0_dma_rx, > + .msp_i2s_dma_tx = &msp0_dma_tx, > +}; > + > +static struct stedma40_chan_cfg msp1_dma_rx = { > + .high_priority = true, > + .dir = STEDMA40_PERIPH_TO_MEM, > + > + .src_dev_type = DB8500_DMA_DEV30_MSP3_RX, > + .dst_dev_type = STEDMA40_DEV_DST_MEMORY, > + > + .src_info.psize = STEDMA40_PSIZE_LOG_4, > + .dst_info.psize = STEDMA40_PSIZE_LOG_4, > + > + /* data_width is set during configuration */ > +}; > + > +static struct stedma40_chan_cfg msp1_dma_tx = { > + .high_priority = true, > + .dir = STEDMA40_MEM_TO_PERIPH, > + > + .src_dev_type = STEDMA40_DEV_DST_MEMORY, > + .dst_dev_type = DB8500_DMA_DEV30_MSP1_TX, > + > + .src_info.psize = STEDMA40_PSIZE_LOG_4, > + .dst_info.psize = STEDMA40_PSIZE_LOG_4, > + > + /* data_width is set during configuration */ > +}; > + > +struct msp_i2s_platform_data msp1_platform_data = { > + .id = MSP_I2S_1, > + .msp_i2s_dma_rx = NULL, > + .msp_i2s_dma_tx = &msp1_dma_tx, > +}; > + > +static struct stedma40_chan_cfg msp2_dma_rx = { > + .high_priority = true, > + .dir = STEDMA40_PERIPH_TO_MEM, > + > + .src_dev_type = DB8500_DMA_DEV14_MSP2_RX, > + .dst_dev_type = STEDMA40_DEV_DST_MEMORY, > + > + /* MSP2 DMA doesn't work with PSIZE == 4 on DB8500v2 */ > + .src_info.psize = STEDMA40_PSIZE_LOG_1, > + .dst_info.psize = STEDMA40_PSIZE_LOG_1, > + > + /* data_width is set during configuration */ > +}; > + > +static struct stedma40_chan_cfg msp2_dma_tx = { > + .high_priority = true, > + .dir = STEDMA40_MEM_TO_PERIPH, > + > + .src_dev_type = STEDMA40_DEV_DST_MEMORY, > + .dst_dev_type = DB8500_DMA_DEV14_MSP2_TX, > + > + .src_info.psize = STEDMA40_PSIZE_LOG_4, > + .dst_info.psize = STEDMA40_PSIZE_LOG_4, > + > + .use_fixed_channel = true, > + .phy_channel = 1, > + > + /* data_width is set during configuration */ > +}; > + > +static struct platform_device *db8500_add_msp_i2s(struct device *parent, > + int id, > + resource_size_t base, int irq, > + struct msp_i2s_platform_data *pdata) > +{ > + struct platform_device *pdev; > + struct resource res[] = { > + DEFINE_RES_MEM(base, SZ_4K), > + DEFINE_RES_IRQ(irq), > + }; > + > + pr_info("Register platform-device 'ux500-msp-i2s', id %d, irq %d\n", > + id, irq); > + pdev = platform_device_register_resndata(parent, "ux500-msp-i2s", id, > + res, ARRAY_SIZE(res), > + pdata, sizeof(*pdata)); > + if (!pdev) { > + pr_err("Failed to register platform-device > 'ux500-msp-i2s.%d'!\n", > + id); > + return NULL; > + } > + > + return pdev; > +} > + > +/* Platform device for ASoC MOP500 machine */ > +static struct platform_device snd_soc_mop500 = { > + .name = "snd-soc-mop500", > + .id = 0, > + .dev = { > + .platform_data = NULL, > + }, > +}; > + > +/* Platform device for Ux500-PCM */ > +static struct platform_device ux500_pcm = { > + .name = "ux500-pcm", > + .id = 0, > + .dev = { > + .platform_data = NULL, > + }, > +}; > + > +struct msp_i2s_platform_data msp2_platform_data = { > + .id = MSP_I2S_2, > + .msp_i2s_dma_rx = &msp2_dma_rx, > + .msp_i2s_dma_tx = &msp2_dma_tx, > +}; > + > +struct msp_i2s_platform_data msp3_platform_data = { > + .id = MSP_I2S_3, > + .msp_i2s_dma_rx = &msp1_dma_rx, > + .msp_i2s_dma_tx = NULL, > +}; > + > +void mop500_audio_init(struct device *parent) > +{ > + pr_info("%s: Register platform-device 'snd-soc-mop500'.\n", __func__); > + platform_device_register(&snd_soc_mop500); > + > + pr_info("Initialize MSP I2S-devices.\n"); > + db8500_add_msp_i2s(parent, 0, U8500_MSP0_BASE, IRQ_DB8500_MSP0, > + &msp0_platform_data); > + db8500_add_msp_i2s(parent, 1, U8500_MSP1_BASE, IRQ_DB8500_MSP1, > + &msp1_platform_data); > + db8500_add_msp_i2s(parent, 2, U8500_MSP2_BASE, IRQ_DB8500_MSP2, > + &msp2_platform_data); > + db8500_add_msp_i2s(parent, 3, U8500_MSP3_BASE, IRQ_DB8500_MSP1, > + &msp3_platform_data); > + > + pr_info("%s: Register platform-device 'ux500-pcm'\n", __func__); > + platform_device_register(&ux500_pcm); > +} > + > +/* Due for removal once the MSP driver has been fully DT:ed. */ > +void mop500_of_audio_init(struct device *parent) > +{ > + pr_info("%s: Register platform-device 'ux500-pcm'\n", __func__); > + platform_device_register(&ux500_pcm); > +} > diff --git a/arch/arm/mach-ux500/board-mop500-msp.c > b/arch/arm/mach-ux500/board-mop500-msp.c > deleted file mode 100644 > index 2af017f..0000000 > --- a/arch/arm/mach-ux500/board-mop500-msp.c > +++ /dev/null > @@ -1,199 +0,0 @@ > -/* > - * Copyright (C) ST-Ericsson SA 2010 > - * > - * License terms: GNU General Public License (GPL), version 2 > - */ > - > -#include <linux/platform_device.h> > -#include <linux/init.h> > -#include <linux/gpio.h> > -#include <linux/pinctrl/consumer.h> > - > -#include <plat/gpio-nomadik.h> > -#include <plat/pincfg.h> > -#include <plat/ste_dma40.h> > - > -#include <mach/devices.h> > -#include <mach/hardware.h> > -#include <mach/irqs.h> > -#include <mach/msp.h> > - > -#include "ste-dma40-db8500.h" > -#include "board-mop500.h" > -#include "devices-db8500.h" > -#include "pins-db8500.h" > - > -static struct stedma40_chan_cfg msp0_dma_rx = { > - .high_priority = true, > - .dir = STEDMA40_PERIPH_TO_MEM, > - > - .src_dev_type = DB8500_DMA_DEV31_MSP0_RX_SLIM0_CH0_RX, > - .dst_dev_type = STEDMA40_DEV_DST_MEMORY, > - > - .src_info.psize = STEDMA40_PSIZE_LOG_4, > - .dst_info.psize = STEDMA40_PSIZE_LOG_4, > - > - /* data_width is set during configuration */ > -}; > - > -static struct stedma40_chan_cfg msp0_dma_tx = { > - .high_priority = true, > - .dir = STEDMA40_MEM_TO_PERIPH, > - > - .src_dev_type = STEDMA40_DEV_DST_MEMORY, > - .dst_dev_type = DB8500_DMA_DEV31_MSP0_TX_SLIM0_CH0_TX, > - > - .src_info.psize = STEDMA40_PSIZE_LOG_4, > - .dst_info.psize = STEDMA40_PSIZE_LOG_4, > - > - /* data_width is set during configuration */ > -}; > - > -struct msp_i2s_platform_data msp0_platform_data = { > - .id = MSP_I2S_0, > - .msp_i2s_dma_rx = &msp0_dma_rx, > - .msp_i2s_dma_tx = &msp0_dma_tx, > -}; > - > -static struct stedma40_chan_cfg msp1_dma_rx = { > - .high_priority = true, > - .dir = STEDMA40_PERIPH_TO_MEM, > - > - .src_dev_type = DB8500_DMA_DEV30_MSP3_RX, > - .dst_dev_type = STEDMA40_DEV_DST_MEMORY, > - > - .src_info.psize = STEDMA40_PSIZE_LOG_4, > - .dst_info.psize = STEDMA40_PSIZE_LOG_4, > - > - /* data_width is set during configuration */ > -}; > - > -static struct stedma40_chan_cfg msp1_dma_tx = { > - .high_priority = true, > - .dir = STEDMA40_MEM_TO_PERIPH, > - > - .src_dev_type = STEDMA40_DEV_DST_MEMORY, > - .dst_dev_type = DB8500_DMA_DEV30_MSP1_TX, > - > - .src_info.psize = STEDMA40_PSIZE_LOG_4, > - .dst_info.psize = STEDMA40_PSIZE_LOG_4, > - > - /* data_width is set during configuration */ > -}; > - > -struct msp_i2s_platform_data msp1_platform_data = { > - .id = MSP_I2S_1, > - .msp_i2s_dma_rx = NULL, > - .msp_i2s_dma_tx = &msp1_dma_tx, > -}; > - > -static struct stedma40_chan_cfg msp2_dma_rx = { > - .high_priority = true, > - .dir = STEDMA40_PERIPH_TO_MEM, > - > - .src_dev_type = DB8500_DMA_DEV14_MSP2_RX, > - .dst_dev_type = STEDMA40_DEV_DST_MEMORY, > - > - /* MSP2 DMA doesn't work with PSIZE == 4 on DB8500v2 */ > - .src_info.psize = STEDMA40_PSIZE_LOG_1, > - .dst_info.psize = STEDMA40_PSIZE_LOG_1, > - > - /* data_width is set during configuration */ > -}; > - > -static struct stedma40_chan_cfg msp2_dma_tx = { > - .high_priority = true, > - .dir = STEDMA40_MEM_TO_PERIPH, > - > - .src_dev_type = STEDMA40_DEV_DST_MEMORY, > - .dst_dev_type = DB8500_DMA_DEV14_MSP2_TX, > - > - .src_info.psize = STEDMA40_PSIZE_LOG_4, > - .dst_info.psize = STEDMA40_PSIZE_LOG_4, > - > - .use_fixed_channel = true, > - .phy_channel = 1, > - > - /* data_width is set during configuration */ > -}; > - > -static struct platform_device *db8500_add_msp_i2s(struct device *parent, > - int id, > - resource_size_t base, int irq, > - struct msp_i2s_platform_data *pdata) > -{ > - struct platform_device *pdev; > - struct resource res[] = { > - DEFINE_RES_MEM(base, SZ_4K), > - DEFINE_RES_IRQ(irq), > - }; > - > - pr_info("Register platform-device 'ux500-msp-i2s', id %d, irq %d\n", > - id, irq); > - pdev = platform_device_register_resndata(parent, "ux500-msp-i2s", id, > - res, ARRAY_SIZE(res), > - pdata, sizeof(*pdata)); > - if (!pdev) { > - pr_err("Failed to register platform-device > 'ux500-msp-i2s.%d'!\n", > - id); > - return NULL; > - } > - > - return pdev; > -} > - > -/* Platform device for ASoC MOP500 machine */ > -static struct platform_device snd_soc_mop500 = { > - .name = "snd-soc-mop500", > - .id = 0, > - .dev = { > - .platform_data = NULL, > - }, > -}; > - > -/* Platform device for Ux500-PCM */ > -static struct platform_device ux500_pcm = { > - .name = "ux500-pcm", > - .id = 0, > - .dev = { > - .platform_data = NULL, > - }, > -}; > - > -struct msp_i2s_platform_data msp2_platform_data = { > - .id = MSP_I2S_2, > - .msp_i2s_dma_rx = &msp2_dma_rx, > - .msp_i2s_dma_tx = &msp2_dma_tx, > -}; > - > -struct msp_i2s_platform_data msp3_platform_data = { > - .id = MSP_I2S_3, > - .msp_i2s_dma_rx = &msp1_dma_rx, > - .msp_i2s_dma_tx = NULL, > -}; > - > -/* Due for removal once the MSP driver has been fully DT:ed. */ > -void mop500_of_msp_init(struct device *parent) > -{ > - pr_info("%s: Register platform-device 'ux500-pcm'\n", __func__); > - platform_device_register(&ux500_pcm); > -} > - > -void mop500_msp_init(struct device *parent) > -{ > - pr_info("%s: Register platform-device 'snd-soc-mop500'.\n", __func__); > - platform_device_register(&snd_soc_mop500); > - > - pr_info("Initialize MSP I2S-devices.\n"); > - db8500_add_msp_i2s(parent, 0, U8500_MSP0_BASE, IRQ_DB8500_MSP0, > - &msp0_platform_data); > - db8500_add_msp_i2s(parent, 1, U8500_MSP1_BASE, IRQ_DB8500_MSP1, > - &msp1_platform_data); > - db8500_add_msp_i2s(parent, 2, U8500_MSP2_BASE, IRQ_DB8500_MSP2, > - &msp2_platform_data); > - db8500_add_msp_i2s(parent, 3, U8500_MSP3_BASE, IRQ_DB8500_MSP1, > - &msp3_platform_data); > - > - pr_info("%s: Register platform-device 'ux500-pcm'\n", __func__); > - platform_device_register(&ux500_pcm); > -} > diff --git a/arch/arm/mach-ux500/board-mop500.c > b/arch/arm/mach-ux500/board-mop500.c > index 0c141d5..7152635 100644 > --- a/arch/arm/mach-ux500/board-mop500.c > +++ b/arch/arm/mach-ux500/board-mop500.c > @@ -607,7 +607,7 @@ static void __init mop500_init_machine(void) > mop500_i2c_init(parent); > mop500_sdi_init(parent); > mop500_spi_init(parent); > - mop500_msp_init(parent); > + mop500_audio_init(parent); > mop500_uart_init(parent); > > u8500_cryp1_hash1_init(parent); > @@ -641,7 +641,7 @@ static void __init snowball_init_machine(void) > mop500_i2c_init(parent); > snowball_sdi_init(parent); > mop500_spi_init(parent); > - mop500_msp_init(parent); > + mop500_audio_init(parent); > mop500_uart_init(parent); > > /* This board has full regulator constraints */ > @@ -673,7 +673,7 @@ static void __init hrefv60_init_machine(void) > mop500_i2c_init(parent); > hrefv60_sdi_init(parent); > mop500_spi_init(parent); > - mop500_msp_init(parent); > + mop500_audio_init(parent); > mop500_uart_init(parent); > > i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); > @@ -807,7 +807,7 @@ static void __init u8500_init_machine(void) > ARRAY_SIZE(mop500_platform_devs)); > > mop500_sdi_init(parent); > - mop500_msp_init(parent); > + mop500_audio_init(parent); > i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); > i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); > i2c_register_board_info(2, mop500_i2c2_devices, > @@ -816,7 +816,7 @@ static void __init u8500_init_machine(void) > mop500_uib_init(); > > } else if (of_machine_is_compatible("calaosystems,snowball-a9500")) { > - mop500_of_msp_init(parent); > + mop500_of_audio_init(parent); > } else if (of_machine_is_compatible("st-ericsson,hrefv60+")) { > /* > * The HREFv60 board removed a GPIO expander and routed > @@ -828,7 +828,7 @@ static void __init u8500_init_machine(void) > ARRAY_SIZE(mop500_platform_devs)); > > hrefv60_sdi_init(parent); > - mop500_msp_init(parent); > + mop500_audio_init(parent); > > i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); > i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES; > diff --git a/arch/arm/mach-ux500/board-mop500.h > b/arch/arm/mach-ux500/board-mop500.h > index 3fbf48f..9e9dd5a 100644 > --- a/arch/arm/mach-ux500/board-mop500.h > +++ b/arch/arm/mach-ux500/board-mop500.h > @@ -97,9 +97,9 @@ void __init mop500_stuib_init(void); > void __init mop500_pinmaps_init(void); > void __init snowball_pinmaps_init(void); > void __init hrefv60_pinmaps_init(void); > -void mop500_msp_init(struct device *parent); > +void mop500_audio_init(struct device *parent); > /* Due for removal once the MSP driver has been fully DT:ed. */ > -void mop500_of_msp_init(struct device *parent); > +void mop500_of_audio_init(struct device *parent); > > int __init mop500_uib_init(void); > void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info, > -- > 1.7.9.5 > > _______________________________________________ > Alsa-devel mailing list > alsa-de...@alsa-project.org > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel > Regards, Gururaja -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/