From: Ralf Baechle <ralf@linux-mips.org>
To: Kevin Hickey <khickey@rmicorp.com>
Cc: linux-mips@linux-mips.org
Subject: Re: [PATCH 01/10] Initial Au1300 and DBAu1300 support
Date: Mon, 9 Mar 2009 14:40:03 +0100 [thread overview]
Message-ID: <20090309134003.GE6492@linux-mips.org> (raw)
In-Reply-To: <788248524efc28ba2608ed79bfb7080ee476b12d.1236354153.git.khickey@rmicorp.com>
On Fri, Mar 06, 2009 at 10:20:00AM -0600, Kevin Hickey wrote:
> @@ -135,3 +147,9 @@ config SOC_AU1X00
> select SYS_SUPPORTS_32BIT_KERNEL
> select SYS_SUPPORTS_APM_EMULATION
> select GENERIC_HARDIRQS_NO__DO_IRQ
> +
> +config AU_INT_CNTLR
> + bool
> +
> +config AU_GPIO_INT_CNTLR
> + bool
These two definitions should be in patch 2/10 with the code that uses it.
> diff --git a/arch/mips/alchemy/common/platform.c b/arch/mips/alchemy/common/platform.c
> index 5c76c64..fd096d1 100644
> --- a/arch/mips/alchemy/common/platform.c
> +++ b/arch/mips/alchemy/common/platform.c
> @@ -65,6 +65,7 @@ static struct platform_device au1xx0_uart_device = {
> },
> };
>
> +#ifndef CONFIG_SOC_AU13XX
> /* OHCI (USB full speed host controller) */
> static struct resource au1xxx_usb_ohci_resources[] = {
> [0] = {
> @@ -92,6 +93,7 @@ static struct platform_device au1xxx_usb_ohci_device = {
> .num_resources = ARRAY_SIZE(au1xxx_usb_ohci_resources),
> .resource = au1xxx_usb_ohci_resources,
> };
> +#endif
Try to avoid this kind of #ifdef. It'll only get more ugly in the future
when there are more members of the SOC family that don't have the USB.
> +#if 0
> +void __init prom_init(void)
> +{
> + unsigned char *memsize_str;
> + unsigned long memsize;
> +
> + prom_argc = (int)fw_arg0;
> + prom_argv = (char **)fw_arg1;
> + prom_envp = (char **)fw_arg2;
> +
> + prom_init_cmdline();
> + memsize_str = prom_getenv("memsize");
> + /* KH: TODO - Change back to 128 MB when the second DDR channel is working. */
> + if (!memsize_str)
> + memsize = 0x04000000;
> + else
> + strict_strtol(memsize_str, 0, &memsize);
> + add_memory_region(0, memsize, BOOT_MEM_RAM);
> +}
> +#endif
#if 0, so delete?
> --- a/arch/mips/include/asm/mach-au1x00/au1000.h
> +++ b/arch/mips/include/asm/mach-au1x00/au1000.h
> +void static inline au_iowrite32(u32 val, volatile u32 *reg)
> +{
> + *reg = val;
> +}
> +
> +static inline u32 au_ioread32(volatile u32 *reg)
> +{
> + return *reg;
> +}
> +
> +#define AU_SET_BITS_16(mask, reg) \
> +do { \
> + au_iowrite16((au_ioread16(reg) | mask ), reg); \
> +} while(0)
Macros should be bullet proof against side effects:
#define au_set_bits_16(mask, reg) \
do { \
volatile u16 *__r = (reg); \
\
au_iowrite16((au_ioread16(__r) | (mask)), __r); \
} while(0)
Or simply use an inline function instead.
> +#define AU_CLEAR_BITS_16(mask, reg) \
> +do { \
> + au_iowrite16((au_ioread16(reg) & ~mask ), reg); \
> +} while(0)
> +
> +#define AU_SET_BITS_32(mask, reg) \
> +do { \
> + au_iowrite32((au_ioread32(reg) | mask), reg); \
> +} while(0)
> +
> +#define AU_CLEAR_BITS_32(mask, reg) \
> +do { \
> + au_iowrite32((au_ioread32(reg) & ~mask), reg); \
> +} while(0)
> +
> /* arch/mips/au1000/common/clocks.c */
> extern void set_au1x00_speed(unsigned int new_freq);
> extern unsigned int get_au1x00_speed(void);
> --- /dev/null
> +++ b/arch/mips/include/asm/mach-au1x00/au13xx.h
> @@ -0,0 +1,207 @@
> +#ifdef CONFIG_SOC_AU13XX
> +
> +#define NR_INTS 255
Unused macro - did you mean NR_IRQS? Also keep the value of
NR_IRQS a multiple of BITS_PER_LONG or unpleasant things might happen.
> +#define UART0_ADDR 0xB0100000
> +#define UART1_ADDR 0xB0101000
> +#define UART2_ADDR 0xB0102000
> +#define UART3_ADDR 0xB0103000
> +
> +#define KSEG1_OFFSET 0xA0000000
This constant duplicates KSEG1 defined in <asm/addrspace.h>.
> +#define GPIO_INT_CTRLR_BASE 0x10200000
> +/*
> + * Linux uses IRQ 0-7 for the 8 causes. That means that all of our channel
> + * bits need to be offset by 8 either when passed to do_IRQ or when received
> + * through the irq_chip calls
> + *
> + * KH: TODO - This is duplicated from gpio_int.h Is that the right thing to do?
> + */
> +#define GPINT_LINUX_IRQ_OFFSET 8
> +
> +#define AU1300_IRQ_UART1 17
> +#define AU1300_IRQ_UART2 25
> +#define AU1300_IRQ_UART3 27
> +#define AU1300_IRQ_SD1 32
> +#define AU1300_IRQ_SD2 38
> +#define AU1300_IRQ_PSC0 48
> +#define AU1300_IRQ_PSC1 52
> +#define AU1300_IRQ_PSC2 56
> +#define AU1300_IRQ_PSC3 60
> +#define AU1300_IRQ_NAND 62
> +#define AU1300_IRQ_DDMA 75
> +#define AU1300_IRQ_GPU 78
> +#define AU1300_IRQ_MPU 77
> +#define AU1300_IRQ_MMU 76
> +#define AU1300_IRQ_UDMA 79
> +#define AU1300_IRQ_TOY_TICK 80
> +#define AU1300_IRQ_TOYMATCH_0 81
> +#define AU1300_IRQ_TOYMATCH_1 82
> +#define AU1300_IRQ_TOYMATCH_2 83
> +#define AU1300_IRQ_RTC_TICK 84
> +#define AU1300_IRQ_RTCMATCH_0 85
> +#define AU1300_IRQ_RTCMATCH_1 86
> +#define AU1300_IRQ_RTCMATCH_2 87
> +#define AU1300_IRQ_UART0 88
> +#define AU1300_IRQ_SD0 89
> +#define AU1300_IRQ_USB 90
> +#define AU1300_IRQ_LCD 91
> +#define AU1300_IRQ_BSA 94
> +#define AU1300_IRQ_MPE 93
> +#define AU1300_IRQ_ITE 92
> +#define AU1300_IRQ_AES 95
> +#define AU1300_IRQ_CIM 96
> +
> +#define LCD_PHYS_ADDR 0x15000000
> +
> +#define AU1200_LCD_INT (GPINT_LINUX_IRQ_OFFSET + AU1300_IRQ_LCD)
> +#define AU1000_RTC_MATCH2_INT (GPINT_LINUX_IRQ_OFFSET + AU1300_IRQ_RTCMATCH_2)
> +
> +#define SD0_PHYS_ADDR 0x10600000
> +#define SD1_PHYS_ADDR 0x10601000
> +
> +
> +#define USB_BASE_PHYS_ADDR 0x14021000
> +#define USB_EHCI_BASE 0x14020000
> +#define USB_EHCI_LEN 0x400
> +#define USB_OHCI_BASE 0x14020800
> +#define USB_OHCI_LEN 0x400
> +#define USB_UOC_BASE 0x14022000
> +#define USB_UOC_LEN 0x20
> +#define USB_UDC_BASE 0x14022000
> +#define USB_UDC_LEN 0x2000
> +
> +#if !defined(ASSEMBLER)
There is no ASSEMBLER macro defined by cpp. Within the kernel please use
#ifndef __ASSEMBLY__ instead. However this bug suggests you don't use this
header in assembly code at all so maybe the whole ifdef should go?
> +typedef volatile struct
See Documentation/volatile-considered-harmful.txt ...
> +{
> + // setup registers
Please use /* ... */ only within the kernel.
You did run your patches through scripts/checkpatch.pl, no?
> + u32 dwc_ctrl1; //0x0000
See Documentation/volatile-considered-harmful.txt ...
Ralf
prev parent reply other threads:[~2009-03-09 13:40 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-06 16:19 Alchemy: Support for RMI Alchemy Au1300 and DBAu1300 Kevin Hickey
2009-03-06 16:20 ` [PATCH 01/10] Initial Au1300 and DBAu1300 support Kevin Hickey
2009-03-06 16:20 ` [PATCH 02/10] Alchemy: Au1300 new interrupt controller Kevin Hickey
2009-03-07 9:49 ` Manuel Lauss
2009-03-07 9:49 ` Manuel Lauss
2009-03-07 19:20 ` Kevin Hickey
2009-03-08 8:49 ` Manuel Lauss
2009-03-06 16:20 ` [PATCH 03/10] Alchemy: Au1300/DB1300 UART support Kevin Hickey
2009-03-06 16:20 ` [PATCH 04/10] Alchemy: Au1300/DB1300 peripheral resource declarations Kevin Hickey
2009-03-06 16:20 ` [PATCH 05/10] Alchemy: Au1300/DB1300 MMC support Kevin Hickey
2009-03-06 16:20 ` [PATCH 06/10] Alchemy: Au1300 USB support Kevin Hickey
2009-03-07 10:01 ` Sergei Shtylyov
2009-03-07 19:11 ` Kevin Hickey
2009-03-06 16:20 ` [PATCH 07/10] Alchemy: SMSC 9210 Ethernet support Kevin Hickey
2009-03-07 9:35 ` Manuel Lauss
2009-03-07 9:35 ` Manuel Lauss
2009-03-07 19:06 ` Kevin Hickey
2009-03-06 16:20 ` [PATCH 08/10] Alchemy: DB1300 blink leds on timer tick Kevin Hickey
2009-03-07 9:37 ` Manuel Lauss
2009-03-07 9:37 ` Manuel Lauss
2009-03-07 19:04 ` Kevin Hickey
2009-03-08 8:37 ` Manuel Lauss
2009-03-08 8:54 ` Manuel Lauss
2009-03-06 16:20 ` [PATCH 09/10] Alchemy: Au1300: Add LCD framebuffer support Kevin Hickey
2009-03-06 16:20 ` [PATCH 10/10] Alchemy: DB1300 defconfig Kevin Hickey
2009-03-09 13:40 ` 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=20090309134003.GE6492@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.