All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ralf Baechle <ralf@linux-mips.org>
To: Kevin Hickey <khickey@rmicorp.com>
Cc: linux-mips@linux-mips.org
Subject: Re: [PATCH v2 4/6] Alchemy: Au1300/DB1300 peripheral resource declarations
Date: Tue, 24 Mar 2009 14:26:50 +0100	[thread overview]
Message-ID: <20090324132650.GB6509@linux-mips.org> (raw)
In-Reply-To: <1237582306-10800-5-git-send-email-khickey@rmicorp.com>

On Fri, Mar 20, 2009 at 03:51:44PM -0500, Kevin Hickey wrote:

> diff --git a/arch/mips/alchemy/common/Makefile b/arch/mips/alchemy/common/Makefile
> index faa6afd..4e533be 100644
> --- a/arch/mips/alchemy/common/Makefile
> +++ b/arch/mips/alchemy/common/Makefile
> @@ -9,6 +9,7 @@ obj-y += prom.o puts.o time.o reset.o \
>  	clocks.o platform.o power.o setup.o \
>  	sleeper.o dma.o dbdma.o gpio.o
>  
> +obj-$(CONFIG_SOC_AU13XX) 	+= au13xx_res.o
>  obj-$(CONFIG_PCI)		+= pci.o
>  
>  obj-$(CONFIG_AU_GPIO_INT_CNTLR) += gpio_int.o
> diff --git a/arch/mips/alchemy/common/au13xx_res.c b/arch/mips/alchemy/common/au13xx_res.c
> new file mode 100644
> index 0000000..7d86479
> --- /dev/null
> +++ b/arch/mips/alchemy/common/au13xx_res.c
> @@ -0,0 +1,74 @@
> +/*
> + * Copyright 2003-2008 RMI Corporation. All rights reserved.
> + * Author: Kevin Hickey <khickey@rmicorp.com>
> + *
> + *  This program is free software; you can redistribute  it and/or modify it
> + *  under  the terms of  the GNU General  Public License as published by the
> + *  Free Software Foundation;  either version 2 of the  License, or (at your
> + *  option) any later version.
> + *
> + * THIS SOFTWARE IS PROVIDED BY RMI Corporation 'AS IS' AND ANY EXPRESS OR
> + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
> + * NO EVENT SHALL RMI OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
> + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
> + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> + *
> + *  You should have received a copy of the  GNU General Public License along
> + *  with this program; if not, write  to the Free Software Foundation, Inc.,
> + *  675 Mass Ave, Cambridge, MA 02139, USA.
> + */
> +
> +#include <linux/platform_device.h>
> +#include <linux/dma-mapping.h>
> +#include <linux/init.h>
> +
> +#include <asm/mach-au1x00/au1000.h>
> +
> +#ifdef CONFIG_SOC_AU13XX

But this entire file is only compiled if CONFIG_SOC_AU13XX is defined so
this #ifdef is redundant.

> +/*
> + * USB Resources for Au13xx
> + */
> +static struct resource au13xx_usb_ehci_resources[] = {
> +	[0] = {
> +		.start		= USB_EHCI_BASE,
> +		.end		= USB_EHCI_BASE + USB_EHCI_LEN - 1,
> +		.flags		= IORESOURCE_MEM,
> +	},
> +	[1] = {
> +		.start		= AU1300_IRQ_USB + GPINT_LINUX_IRQ_OFFSET,
> +		.end		= AU1300_IRQ_USB + GPINT_LINUX_IRQ_OFFSET,
> +		.flags		= IORESOURCE_IRQ,
> +	},
> +};
> +
> +static u64 ehci_dmamask = DMA_32BIT_MASK;
> +
> +static struct platform_device au13xx_usb_ehci_device = {
> +	.name		= "au13xx-ehci",
> +	.id		= 0,
> +	.dev = {
> +		.dma_mask		= &ehci_dmamask,
> +		.coherent_dma_mask	= DMA_32BIT_MASK,
> +	},
> +	.num_resources	= ARRAY_SIZE(au13xx_usb_ehci_resources),
> +	.resource	= au13xx_usb_ehci_resources,
> +};
> +
> +static struct platform_device *au13xx_platform_devices[] __initdata = {
> +	&au13xx_usb_ehci_device,
> +};
> +
> +static int __init au13xx_add_devices(void)
> +{
> +	return platform_add_devices(au13xx_platform_devices,
> +			     ARRAY_SIZE(au13xx_platform_devices));
> +}
> +
> +arch_initcall(au13xx_add_devices);
> +
> +#endif /* CONFIG_SOC_AU13XX */
> diff --git a/arch/mips/alchemy/common/dbdma.c b/arch/mips/alchemy/common/dbdma.c
> index 3ab6d80..7fda56b 100644
> --- a/arch/mips/alchemy/common/dbdma.c
> +++ b/arch/mips/alchemy/common/dbdma.c
> @@ -38,7 +38,8 @@
>  #include <asm/mach-au1x00/au1000.h>
>  #include <asm/mach-au1x00/au1xxx_dbdma.h>
>  
> -#if defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200)
> +#if defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) || \
> +    defined(CONFIG_SOC_AU13XX)
>  
>  /*
>   * The Descriptor Based DMA supports up to 16 channels.
> @@ -150,6 +151,47 @@ static dbdev_tab_t dbdev_tab[] = {
>  
>  #endif /* CONFIG_SOC_AU1200 */
>  
> +#ifdef CONFIG_SOC_AU13XX
> +	{ DSCR_CMD0_UART0_TX, DEV_FLAGS_OUT, 0, 8,  0x10100004, 0, 0 },
> +	{ DSCR_CMD0_UART0_RX, DEV_FLAGS_IN,  0, 8,  0x10100000, 0, 0 },
> +	{ DSCR_CMD0_UART1_TX, DEV_FLAGS_OUT, 0, 8,  0x01011004, 0, 0 },
> +	{ DSCR_CMD0_UART1_RX, DEV_FLAGS_IN,  0, 8,  0x10101000, 0, 0 },
> +	{ DSCR_CMD0_UART2_TX, DEV_FLAGS_OUT, 0, 8,  0x01012004, 0, 0 },
> +	{ DSCR_CMD0_UART2_RX, DEV_FLAGS_IN,  0, 8,  0x10102000, 0, 0 },
> +	{ DSCR_CMD0_UART3_TX, DEV_FLAGS_OUT, 0, 8,  0x01013004, 0, 0 },
> +	{ DSCR_CMD0_UART3_RX, DEV_FLAGS_IN,  0, 8,  0x10103000, 0, 0 },
> +
> +	{ DSCR_CMD0_SDMS_TX0, DEV_FLAGS_OUT, 4, 8,  0x10600000, 0, 0 },
> +	{ DSCR_CMD0_SDMS_RX0, DEV_FLAGS_IN,  4, 8,  0x10600004, 0, 0 },
> +	{ DSCR_CMD0_SDMS_TX1, DEV_FLAGS_OUT, 8, 8,  0x10601000, 0, 0 },
> +	{ DSCR_CMD0_SDMS_RX1, DEV_FLAGS_IN,  8, 8,  0x10601004, 0, 0 },
> +
> +	{ DSCR_CMD0_AES_RX, DEV_FLAGS_IN ,   4, 32, 0x10300008, 0, 0 },
> +	{ DSCR_CMD0_AES_TX, DEV_FLAGS_OUT,   4, 32, 0x10300004, 0, 0 },
> +
> +	{ DSCR_CMD0_PSC0_TX, DEV_FLAGS_OUT,  0, 16, 0x10a0001c, 0, 0 },
> +	{ DSCR_CMD0_PSC0_RX, DEV_FLAGS_IN,   0, 16, 0x10a0001c, 0, 0 },
> +	{ DSCR_CMD0_PSC1_TX, DEV_FLAGS_OUT,  0, 16, 0x10a0101c, 0, 0 },
> +	{ DSCR_CMD0_PSC1_RX, DEV_FLAGS_IN,   0, 16, 0x10a0101c, 0, 0 },
> +	{ DSCR_CMD0_PSC2_TX, DEV_FLAGS_OUT,  0, 16, 0x10a0201c, 0, 0 },
> +	{ DSCR_CMD0_PSC2_RX, DEV_FLAGS_IN,   0, 16, 0x10a0201c, 0, 0 },
> +	{ DSCR_CMD0_PSC3_TX, DEV_FLAGS_OUT,  0, 16, 0x10a0301c, 0, 0 },
> +	{ DSCR_CMD0_PSC3_RX, DEV_FLAGS_IN,   0, 16, 0x10a0301c, 0, 0 },
> +
> +	{ DSCR_CMD0_LCD, DEV_FLAGS_ANYUSE,   0, 0,  0x00000000, 0, 0 },
> +	{ DSCR_CMD0_NAND_FLASH, DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
> +
> +	{ DSCR_CMD0_SDMS_TX2, DEV_FLAGS_OUT, 4, 8,  0x10602000, 0, 0 },
> +	{ DSCR_CMD0_SDMS_RX2, DEV_FLAGS_IN,  4, 8,  0x10602004, 0, 0 },
> +
> +	{ DSCR_CMD0_CIM_SYNC, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
> +
> +	{ DSCR_CMD0_UDMA, DEV_FLAGS_ANYUSE,  0, 32, 0x14001810, 0, 0 },
> +
> +	{ DSCR_CMD0_DMA_REQ0, 0, 0, 0, 0x00000000, 0, 0 },
> +	{ DSCR_CMD0_DMA_REQ1, 0, 0, 0, 0x00000000, 0, 0 },
> +#endif /* CONFIG_SOC_AU13XX */
> +
>  	{ DSCR_CMD0_THROTTLE, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
>  	{ DSCR_CMD0_ALWAYS, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
>  
> @@ -881,6 +923,8 @@ static void au1xxx_dbdma_init(void)
>  	irq_nr = AU1550_DDMA_INT;
>  #elif defined(CONFIG_SOC_AU1200)
>  	irq_nr = AU1200_DDMA_INT;
> +#elif defined(CONFIG_SOC_AU13XX)
> +	irq_nr = AU1300_IRQ_DDMA + GPINT_LINUX_IRQ_OFFSET;
>  #else
>  	#error Unknown Au1x00 SOC
>  #endif
> diff --git a/arch/mips/alchemy/common/platform.c b/arch/mips/alchemy/common/platform.c
> index 78fd862..6d2acff 100644
> --- a/arch/mips/alchemy/common/platform.c
> +++ b/arch/mips/alchemy/common/platform.c
> @@ -336,14 +336,79 @@ static struct platform_device pbdb_smbus_device = {
>  };
>  #endif
>  
> +#ifdef CONFIG_SOC_AU13XX

arch/mips/alchemy/common/platform.c - common code thanks to #ifdef ;-)

> +static struct resource au1200_lcd_resources[] = {
> +	[0] = {
> +		.start          = LCD_PHYS_ADDR,
> +		.end            = LCD_PHYS_ADDR + 0x800 - 1,
> +		.flags          = IORESOURCE_MEM,
> +	},
> +	[1] = {
> +		.start          = AU1300_IRQ_LCD + 8,
> +		.end            = AU1300_IRQ_LCD + 8,
> +		.flags          = IORESOURCE_IRQ,
> +	}
> +};
> +
> +static u64 au1200_lcd_dmamask = DMA_32BIT_MASK;
> +
> +static struct platform_device au1200_lcd_device = {
> +	.name           = "au1200-lcd",
> +	.id             = 0,
> +	.dev = {
> +		.dma_mask               = &au1200_lcd_dmamask,
> +		.coherent_dma_mask      = DMA_32BIT_MASK,
> +	},
> +	.num_resources  = ARRAY_SIZE(au1200_lcd_resources),
> +	.resource       = au1200_lcd_resources,
> +};
> +
> +extern struct platform_device au13xx_mmc1_device;
> +
> +extern struct au1xmmc_platform_data au1xmmc_platdata[2];
> +static struct resource ide_resources[] = {
> +	[0] = {
> +		.start	= IDE_PHYS_ADDR,
> +		.end 	= IDE_PHYS_ADDR + IDE_PHYS_LEN - 1,
> +		.flags	= IORESOURCE_MEM
> +	},
> +	[1] = {
> +		.start	= IDE_INT,
> +		.end	= IDE_INT,
> +		.flags	= IORESOURCE_IRQ
> +	}
> +};
> +
> +static u64 ide_dmamask = DMA_32BIT_MASK;
> +
> +static struct platform_device ide_device = {
> +	.name		= "au1200-ide",
> +	.id		= 0,
> +	.dev = {
> +		.dma_mask 		= &ide_dmamask,
> +		.coherent_dma_mask	= DMA_32BIT_MASK,
> +	},
> +	.num_resources	= ARRAY_SIZE(ide_resources),
> +	.resource	= ide_resources
> +};
> +
> +#endif

It would seem this #ifdef'ed block should go to au13xx_res.c and
the name au1200 be changed to au13xx or so.

> +
> +
>  static struct platform_device *au1xxx_platform_devices[] __initdata = {
>  	&au1xx0_uart_device,
> +#ifdef CONFIG_SOC_AU13XX
> +	&au1200_lcd_device,
> +	&ide_device,
> +	&au13xx_mmc1_device,
>  	&au1xxx_usb_ohci_device,
> +#endif
>  	&au1x00_pcmcia_device,
>  #ifdef CONFIG_FB_AU1100
>  	&au1100_lcd_device,
>  #endif
>  #ifdef CONFIG_SOC_AU1200
> +	&au1xxx_usb_ohci_device,
>  	&au1xxx_usb_ehci_device,
>  	&au1xxx_usb_gdt_device,
>  	&au1xxx_usb_otg_device,
> diff --git a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
> index 06f68f4..1c36b9f 100644
> --- a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
> +++ b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
> @@ -195,6 +195,39 @@ typedef volatile struct au1xxx_ddma_desc {
>  #define DSCR_CMD0_CIM_SYNC	26
>  #endif /* CONFIG_SOC_AU1200 */
>  
> +#ifdef CONFIG_SOC_AU13XX
> +#define DSCR_CMD0_UART0_TX	0
> +#define DSCR_CMD0_UART0_RX	1
> +#define DSCR_CMD0_UART1_TX	2
> +#define DSCR_CMD0_UART1_RX	3
> +#define DSCR_CMD0_UART2_TX	4
> +#define DSCR_CMD0_UART2_RX	5
> +#define DSCR_CMD0_UART3_TX	6
> +#define DSCR_CMD0_UART3_RX	7
> +#define DSCR_CMD0_SDMS_TX0	8
> +#define DSCR_CMD0_SDMS_RX0	9
> +#define DSCR_CMD0_SDMS_TX1	10
> +#define DSCR_CMD0_SDMS_RX1	11
> +#define DSCR_CMD0_AES_TX	12
> +#define DSCR_CMD0_AES_RX	13
> +#define DSCR_CMD0_PSC0_TX	14
> +#define DSCR_CMD0_PSC0_RX	15
> +#define DSCR_CMD0_PSC1_TX	16
> +#define DSCR_CMD0_PSC1_RX	17
> +#define DSCR_CMD0_PSC2_TX	18
> +#define DSCR_CMD0_PSC2_RX	19
> +#define DSCR_CMD0_PSC3_TX	20
> +#define DSCR_CMD0_PSC3_RX	21
> +#define DSCR_CMD0_LCD		22
> +#define DSCR_CMD0_NAND_FLASH	23
> +#define DSCR_CMD0_SDMS_TX2	24
> +#define DSCR_CMD0_SDMS_RX2	25
> +#define DSCR_CMD0_CIM_SYNC	26
> +#define DSCR_CMD0_UDMA		27
> +#define DSCR_CMD0_DMA_REQ0	28
> +#define DSCR_CMD0_DMA_REQ1	29
> +#endif /* CONFIG_SOC_AU13XX */
> +
>  #define DSCR_CMD0_THROTTLE	30
>  #define DSCR_CMD0_ALWAYS	31
>  #define DSCR_NDEV_IDS		32
> -- 
> 1.5.4.3

  Ralf

      parent reply	other threads:[~2009-03-24 13:27 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-20 20:51 [PATCH v2 0/6] Alchemy: Basic Au1300 and DBAu1300 support Kevin Hickey
2009-03-20 20:51 ` [PATCH v2 1/6] Alchemy: Initial " Kevin Hickey
2009-03-20 20:51   ` [PATCH v2 2/6] Alchemy: Au1300 new interrupt controller Kevin Hickey
2009-03-20 20:51     ` [PATCH v2 3/6] Alchemy: Au1300/DB1300 UART support Kevin Hickey
2009-03-20 20:51       ` [PATCH v2 4/6] Alchemy: Au1300/DB1300 peripheral resource declarations Kevin Hickey
2009-03-20 20:51         ` [PATCH v2 5/6] Alchemy: DB1300 blink leds on timer tick Kevin Hickey
2009-03-20 20:51           ` [PATCH v2 6/6] Alchemy: Au1300: Add LCD framebuffer support Kevin Hickey
2009-03-24 13:17           ` [PATCH v2 5/6] Alchemy: DB1300 blink leds on timer tick Ralf Baechle
2009-03-24 15:44             ` Atsushi Nemoto
2009-03-24 13:26         ` Ralf Baechle [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=20090324132650.GB6509@linux-mips.org \
    --to=ralf@linux-mips.org \
    --cc=khickey@rmicorp.com \
    --cc=linux-mips@linux-mips.org \
    /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.