unicore32: resend patches after machine related files
Subsystems (5)
PATCH 2/17 unicore32 machine related files: hardware registers
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
This patch adds all hardware registers definitions.
--- arch/unicore32/include/mach/PKUnity.h | 104 +++++++++++++ arch/unicore32/include/mach/bitfield.h | 24 +++ arch/unicore32/include/mach/hardware.h | 45 ++++++ arch/unicore32/include/mach/regs-ac97.h | 32 ++++ arch/unicore32/include/mach/regs-dmac.h | 81 ++++++++++ arch/unicore32/include/mach/regs-gpio.h | 70 +++++++++ arch/unicore32/include/mach/regs-i2c.h | 63 ++++++++ arch/unicore32/include/mach/regs-intc.h | 28 ++++ arch/unicore32/include/mach/regs-nand.h | 79 ++++++++++ arch/unicore32/include/mach/regs-ost.h | 92 ++++++++++++ arch/unicore32/include/mach/regs-pci.h | 94 ++++++++++++ arch/unicore32/include/mach/regs-pm.h | 126 ++++++++++++++++ arch/unicore32/include/mach/regs-ps2.h | 20 +++ arch/unicore32/include/mach/regs-resetc.h | 34 +++++ arch/unicore32/include/mach/regs-rtc.h | 37 +++++ arch/unicore32/include/mach/regs-sdc.h | 156 ++++++++++++++++++++ arch/unicore32/include/mach/regs-spi.h | 98 ++++++++++++ arch/unicore32/include/mach/regs-uart.h | 3 + arch/unicore32/include/mach/regs-umal.h | 229 +++++++++++++++++++++++++++++ arch/unicore32/include/mach/regs-unigfx.h | 200 +++++++++++++++++++++++++ 20 files changed, 1615 insertions(+), 0 deletions(-) create mode 100644 arch/unicore32/include/mach/PKUnity.h create mode 100644 arch/unicore32/include/mach/bitfield.h create mode 100644 arch/unicore32/include/mach/hardware.h create mode 100644 arch/unicore32/include/mach/regs-ac97.h create mode 100644 arch/unicore32/include/mach/regs-dmac.h create mode 100644 arch/unicore32/include/mach/regs-gpio.h create mode 100644 arch/unicore32/include/mach/regs-i2c.h create mode 100644 arch/unicore32/include/mach/regs-intc.h create mode 100644 arch/unicore32/include/mach/regs-nand.h create mode 100644 arch/unicore32/include/mach/regs-ost.h create mode 100644 arch/unicore32/include/mach/regs-pci.h create mode 100644 arch/unicore32/include/mach/regs-pm.h create mode 100644 arch/unicore32/include/mach/regs-ps2.h create mode 100644 arch/unicore32/include/mach/regs-resetc.h create mode 100644 arch/unicore32/include/mach/regs-rtc.h create mode 100644 arch/unicore32/include/mach/regs-sdc.h create mode 100644 arch/unicore32/include/mach/regs-spi.h create mode 100644 arch/unicore32/include/mach/regs-uart.h create mode 100644 arch/unicore32/include/mach/regs-umal.h create mode 100644 arch/unicore32/include/mach/regs-unigfx.h
arch/unicore32/include/mach/PKUnity.h new file +104 -0
@@ -0,0 +1,104 @@ +/* +* linux/arch/unicore32/include/mach/PKUnity.h +* +* Code specific to PKUnity SoC and UniCore ISA +* +* Copyright (C) 2001-2010 GUAN Xue-tao +* +* 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. +*/ + +/* Be sure that virtual mapping is defined right */ +#ifndef __MACH_PUV3_HARDWARE_H__ +#error You must include hardware.h not PKUnity.h +#endif + +#include "bitfield.h" + +/* +* Memory Definitions +*/ +#define PKUNITY_SDRAM_BASE 0x00000000/* 0x00000000 - 0x7FFFFFFF 2GB */ +#define PKUNITY_IOSPACE_BASE 0x80000000/* 0x80000000 - 0xFFFFFFFF 2GB */ +#define PKUNITY_PCI_BASE 0x80000000/* 0x80000000 - 0xBFFFFFFF 1GB */ +#include "regs-pci.h" +#define PKUNITY_BOOT_ROM2_BASE 0xF4000000/* 0xF4000000 - 0xF7FFFFFF 64MB */ +#define PKUNITY_BOOT_SRAM2_BASE 0xF8000000/* 0xF8000000 - 0xFBFFFFFF 64MB */ +#define PKUNITY_BOOT_FLASH_BASE 0xFC000000/* 0xFC000000 - 0xFFFFFFFF 64MB */ + +/* +* PKUNITY Memory Map Addresses: 0x0D000000 - 0x0EFFFFFF (32MB) +*/ +#define PKUNITY_UVC_MMAP_BASE 0x0D000000/* 0x0D000000 - 0x0DFFFFFF 16MB */ +#define PKUNITY_UVC_MMAP_SIZE 0x01000000/* 16MB */ +#define PKUNITY_UNIGFX_MMAP_BASE 0x0E000000/* 0x0E000000 - 0x0EFFFFFF 16MB */ +#define PKUNITY_UNIGFX_MMAP_SIZE 0x01000000/* 16MB */ + +/* +* PKUNITY System Bus Addresses (PCI): 0x80000000 - 0xBFFFFFFF (1GB) +*/ +/* PCI Configuration regs */ +#define PKUNITY_PCICFG_BASE 0x80000000/* 0x80000000 - 0x8000000B 12B */ +/* PCI Bridge Base */ +#define PKUNITY_PCIBRI_BASE 0x80010000/* 0x80010000 - 0x80010250 592B */ +/* PCI Legacy IO */ +#define PKUNITY_PCILIO_BASE 0x80030000/* 0x80030000 - 0x8003FFFF 64KB */ +/* PCI AHB-PCI MEM-mapping */ +#define PKUNITY_PCIMEM_BASE 0x90000000/* 0x90000000 - 0x97FFFFFF 128MB */ +/* PCI PCI-AHB MEM-mapping */ +#define PKUNITY_PCIAHB_BASE 0x98000000/* 0x98000000 - 0x9FFFFFFF 128MB */ + +/* +* PKUNITY System Bus Addresses (AHB): 0xC0000000 - 0xEDFFFFFF (640MB) +*/ +/* AHB-0 is DDR2 SDRAM */ +/* AHB-1 is PCI Space */ +#define PKUNITY_ARBITER_BASE 0xC0000000/* AHB-2 */ +#define PKUNITY_DDR2CTRL_BASE 0xC0100000/* AHB-3 */ +#define PKUNITY_DMAC_BASE 0xC0200000/* AHB-4 */ +#include "regs-dmac.h" +#define PKUNITY_UMAL_BASE 0xC0300000/* AHB-5 */ +#include "regs-umal.h" +#define PKUNITY_USB_BASE 0xC0400000/* AHB-6 */ +#define PKUNITY_SATA_BASE 0xC0500000/* AHB-7 */ +#define PKUNITY_SMC_BASE 0xC0600000/* AHB-8 */ +/* AHB-9 is for APB bridge */ +#define PKUNITY_MME_BASE 0xC0700000/* AHB-10 */ +#define PKUNITY_UNIGFX_BASE 0xC0800000/* AHB-11 */ +#include "regs-unigfx.h" +#define PKUNITY_NAND_BASE 0xC0900000/* AHB-12 */ +#include "regs-nand.h" +#define PKUNITY_H264D_BASE 0xC0A00000/* AHB-13 */ +#define PKUNITY_H264E_BASE 0xC0B00000/* AHB-14 */ + +/* +* PKUNITY Peripheral Bus Addresses (APB): 0xEE000000 - 0xEFFFFFFF (128MB) +*/ +#define PKUNITY_UART0_BASE 0xEE000000/* APB-0 */ +#define PKUNITY_UART1_BASE 0xEE100000/* APB-1 */ +#include "regs-uart.h" +#define PKUNITY_I2C_BASE 0xEE200000/* APB-2 */ +#include "regs-i2c.h" +#define PKUNITY_SPI_BASE 0xEE300000/* APB-3 */ +#include "regs-spi.h" +#define PKUNITY_AC97_BASE 0xEE400000/* APB-4 */ +#include "regs-ac97.h" +#define PKUNITY_GPIO_BASE 0xEE500000/* APB-5 */ +#include "regs-gpio.h" +#define PKUNITY_INTC_BASE 0xEE600000/* APB-6 */ +#include "regs-intc.h" +#define PKUNITY_RTC_BASE 0xEE700000/* APB-7 */ +#include "regs-rtc.h" +#define PKUNITY_OST_BASE 0xEE800000/* APB-8 */ +#include "regs-ost.h" +#define PKUNITY_RESETC_BASE 0xEE900000/* APB-9 */ +#include "regs-resetc.h" +#define PKUNITY_PM_BASE 0xEEA00000/* APB-10 */ +#include "regs-pm.h" +#define PKUNITY_PS2_BASE 0xEEB00000/* APB-11 */ +#include "regs-ps2.h" +#define PKUNITY_SDC_BASE 0xEEC00000/* APB-12 */ +#include "regs-sdc.h" +
arch/unicore32/include/mach/bitfield.h new file +24 -0
@@ -0,0 +1,24 @@ +/* +* linux/arch/unicore32/include/mach/bitfield.h +* +* Code specific to PKUnity SoC and UniCore ISA +* +* Copyright (C) 2001-2010 GUAN Xue-tao +* +* 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. +*/ +#ifndef __MACH_PUV3_BITFIELD_H__ +#define __MACH_PUV3_BITFIELD_H__ + +#ifndef __ASSEMBLY__ +#define UData (Data) ((unsigned long) (Data)) +#else +#define UData (Data) (Data) +#endif + +#define FIELD (val, vmask, vshift) (((val) & ((UData(1) << (vmask)) - 1)) << (vshift)) +#define FMASK (vmask, vshift) (((UData(1) << (vmask)) - 1) << (vshift)) + +#endif /* __MACH_PUV3_BITFIELD_H__ */
arch/unicore32/include/mach/hardware.h new file +45 -0
45 lines not on this page · raw message
arch/unicore32/include/mach/regs-ac97.h new file +32 -0
@@ -0,0 +1,32 @@ +/* +* PKUnity AC97 Registers +*/ + +#define PKUNITY_AC97_CONR __REG(PKUNITY_AC97_BASE + 0x0000) +#define PKUNITY_AC97_OCR __REG(PKUNITY_AC97_BASE + 0x0004) +#define PKUNITY_AC97_ICR __REG(PKUNITY_AC97_BASE + 0x0008) +#define PKUNITY_AC97_CRAC __REG(PKUNITY_AC97_BASE + 0x000C) +#define PKUNITY_AC97_INTR __REG(PKUNITY_AC97_BASE + 0x0010) +#define PKUNITY_AC97_INTRSTAT __REG(PKUNITY_AC97_BASE + 0x0014) +#define PKUNITY_AC97_INTRCLEAR __REG(PKUNITY_AC97_BASE + 0x0018) +#define PKUNITY_AC97_ENABLE __REG(PKUNITY_AC97_BASE + 0x001C) +#define PKUNITY_AC97_OUT_FIFO __REG(PKUNITY_AC97_BASE + 0x0020) +#define PKUNITY_AC97_IN_FIFO __REG(PKUNITY_AC97_BASE + 0x0030) + +#define AC97_CODEC_REG (v) FIELD((v), 7, 16) +#define AC97_CODEC_VAL (v) FIELD((v), 16, 0) +#define AC97_CODEC_WRITECOMPLETE FIELD(1, 1, 2) + +/* +* VAR PLAY SAMPLE RATE +*/ +#define AC97_CMD_VPSAMPLE (FIELD(3, 2, 16) | FIELD(3, 2, 0)) + +/* +* FIX CAPTURE SAMPLE RATE +*/ +#define AC97_CMD_FCSAMPLE FIELD(7, 3, 0) + +#define AC97_CMD_RESET FIELD(1, 1, 0) +#define AC97_CMD_ENABLE FIELD(1, 1, 0) +#define AC97_CMD_DISABLE FIELD(0, 1, 0)
arch/unicore32/include/mach/regs-dmac.h new file +81 -0
81 lines not on this page · raw message
arch/unicore32/include/mach/regs-gpio.h new file +70 -0
70 lines not on this page · raw message
arch/unicore32/include/mach/regs-i2c.h new file +63 -0
63 lines not on this page · raw message
arch/unicore32/include/mach/regs-intc.h new file +28 -0
@@ -0,0 +1,28 @@ +/* +* PKUNITY Interrupt Controller (INTC) Registers +*/ +/* +* INTC Level Reg INTC_ICLR. +*/ +#define INTC_ICLR __REG(PKUNITY_INTC_BASE + 0x0000) +/* +* INTC Mask Reg INTC_ICMR. +*/ +#define INTC_ICMR __REG(PKUNITY_INTC_BASE + 0x0004) +/* +* INTC Pending Reg INTC_ICPR. +*/ +#define INTC_ICPR __REG(PKUNITY_INTC_BASE + 0x0008) +/* +* INTC IRQ Pending Reg INTC_ICIP. +*/ +#define INTC_ICIP __REG(PKUNITY_INTC_BASE + 0x000C) +/* +* INTC REAL Pending Reg INTC_ICFP. +*/ +#define INTC_ICFP __REG(PKUNITY_INTC_BASE + 0x0010) +/* +* INTC Control Reg INTC_ICCR. +*/ +#define INTC_ICCR __REG(PKUNITY_INTC_BASE + 0x0014) +
arch/unicore32/include/mach/regs-nand.h new file +79 -0
79 lines not on this page · raw message
arch/unicore32/include/mach/regs-ost.h new file +92 -0
92 lines not on this page · raw message
arch/unicore32/include/mach/regs-pci.h new file +94 -0
94 lines not on this page · raw message
arch/unicore32/include/mach/regs-pm.h new file +126 -0
126 lines not on this page · raw message
arch/unicore32/include/mach/regs-ps2.h new file +20 -0
@@ -0,0 +1,20 @@ +/* +* PKUnity PS2 Controller Registers +*/ +/* +* the same as I8042_DATA_REG PS2_DATA +*/ +#define PS2_DATA __REG(PKUNITY_PS2_BASE + 0x0060) +/* +* the same as I8042_COMMAND_REG PS2_COMMAND +*/ +#define PS2_COMMAND __REG(PKUNITY_PS2_BASE + 0x0064) +/* +* the same as I8042_STATUS_REG PS2_STATUS +*/ +#define PS2_STATUS __REG(PKUNITY_PS2_BASE + 0x0064) +/* +* counter reg PS2_CNT +*/ +#define PS2_CNT __REG(PKUNITY_PS2_BASE + 0x0068) +
arch/unicore32/include/mach/regs-resetc.h new file +34 -0
@@ -0,0 +1,34 @@ +/* +* PKUnity Reset Controller (RC) Registers +*/ +/* +* Software Reset Register +*/ +#define RESETC_SWRR __REG(PKUNITY_RESETC_BASE + 0x0000) +/* +* Reset Status Register +*/ +#define RESETC_RSSR __REG(PKUNITY_RESETC_BASE + 0x0004) + +/* +* Software Reset Bit +*/ +#define RESETC_SWRR_SRB FIELD(1, 1, 0) + +/* +* Hardware Reset +*/ +#define RESETC_RSSR_HWR FIELD(1, 1, 0) +/* +* Software Reset +*/ +#define RESETC_RSSR_SWR FIELD(1, 1, 1) +/* +* Watchdog Reset +*/ +#define RESETC_RSSR_WDR FIELD(1, 1, 2) +/* +* Sleep Mode Reset +*/ +#define RESETC_RSSR_SMR FIELD(1, 1, 3) +
arch/unicore32/include/mach/regs-rtc.h new file +37 -0
@@ -0,0 +1,37 @@ +/* +* PKUnity Real-Time Clock (RTC) control registers +*/ +/* +* RTC Alarm Reg RTC_RTAR +*/ +#define RTC_RTAR __REG(PKUNITY_RTC_BASE + 0x0000) +/* +* RTC Count Reg RTC_RCNR +*/ +#define RTC_RCNR __REG(PKUNITY_RTC_BASE + 0x0004) +/* +* RTC Trim Reg RTC_RTTR +*/ +#define RTC_RTTR __REG(PKUNITY_RTC_BASE + 0x0008) +/* +* RTC Status Reg RTC_RTSR +*/ +#define RTC_RTSR __REG(PKUNITY_RTC_BASE + 0x0010) + +/* +* ALarm detected RTC_RTSR_AL +*/ +#define RTC_RTSR_AL FIELD(1, 1, 0) +/* +* 1 Hz clock detected RTC_RTSR_HZ +*/ +#define RTC_RTSR_HZ FIELD(1, 1, 1) +/* +* ALarm interrupt Enable RTC_RTSR_ALE +*/ +#define RTC_RTSR_ALE FIELD(1, 1, 2) +/* +* 1 Hz clock interrupt Enable RTC_RTSR_HZE +*/ +#define RTC_RTSR_HZE FIELD(1, 1, 3) +
arch/unicore32/include/mach/regs-sdc.h new file +156 -0
156 lines not on this page · raw message
arch/unicore32/include/mach/regs-spi.h new file +98 -0
98 lines not on this page · raw message
arch/unicore32/include/mach/regs-uart.h new file +3 -0
@@ -0,0 +1,3 @@ +/* +* PKUnity Universal Asynchronous Receiver/Transmitter (UART) Registers +*/
arch/unicore32/include/mach/regs-umal.h new file +229 -0
229 lines not on this page · raw message
arch/unicore32/include/mach/regs-unigfx.h new file +200 -0
200 lines not on this page · raw message
Signature · 1 line
1.7.4.1
PATCH 4/17 unicore32 machine related files: ps2 driver
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
This patch implements arch-specific ps2 driver.
By reviewed with Dmitry Torokhov:
1. move i8042-ucio.h to drivers/input/serio/i8042-unicore32io.h
2. move puv3_ps2_init() to arch/unicore32/kernel/puv3-core.c
3. remove unused comments.
--- drivers/input/serio/i8042-unicore32io.h | 70 +++++++++++++++++++++++++++++++ drivers/input/serio/i8042.h | 2 + 2 files changed, 72 insertions(+), 0 deletions(-) create mode 100644 drivers/input/serio/i8042-unicore32io.h
drivers/input/serio/i8042-unicore32io.h new file +70 -0
@@ -0,0 +1,70 @@ +/* +* Code specific to PKUnity SoC and UniCore ISA +* +* Maintained by GUAN Xue-tao <[email protected]> +* Copyright (C) 2001-2011 Guan Xuetao +* +* 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. +*/ +#ifndef _I8042_UNICORE32_H +#define _I8042_UNICORE32_H + +#include <mach/hardware.h> + +/* +* Names. +*/ +#define I8042_KBD_PHYS_DESC "isa0060/serio0" +#define I8042_AUX_PHYS_DESC "isa0060/serio1" +#define I8042_MUX_PHYS_DESC "isa0060/serio%d" + +/* +* IRQs. +*/ +#define I8042_KBD_IRQ IRQ_PS2_KBD +#define I8042_AUX_IRQ IRQ_PS2_AUX + +/* +* Register numbers. +*/ +#define I8042_COMMAND_REG ((unsigned long)&PS2_COMMAND) +#define I8042_STATUS_REG ((unsigned long)&PS2_STATUS) +#define I8042_DATA_REG ((unsigned long)&PS2_DATA) + +static inline int i8042_read_data (void ) +{ +return inb (I8042_DATA_REG ); +} + +static inline int i8042_read_status (void ) +{ +return inb (I8042_STATUS_REG ); +} + +static inline void i8042_write_data (int val) +{ +outb (val,I8042_DATA_REG ); +} + +static inline void i8042_write_command (int val) +{ +outb (val,I8042_COMMAND_REG ); +} + +static inline int i8042_platform_init (void ) +{ +if (!request_region (I8042_DATA_REG ,16 ,"i8042" )) +return -EBUSY ; + + i8042_reset =1 ; +return 0 ; +} + +static inline void i8042_platform_exit (void ) +{ +release_region (I8042_DATA_REG ,16 ); +} + +#endif /* _I8042_UNICORE32_H */
drivers/input/serio/i8042.h +2 -0
@@ -26,6 +26,8 @@#include "i8042-sparcio.h" #elif defined(CONFIG_X86 ) || defined(CONFIG_IA64 )#include "i8042-x86ia64io.h" +#elif defined(CONFIG_UNICORE32 ) +#include "i8042-unicore32io.h" #else #include "i8042-io.h" #endif
Signature · 1 line
1.7.4.1
PATCH 6/17 unicore32 time.c: change calculate method for clock_event_device
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
apply clockevents_calc_mult_shift() to get rid of
shift assignment and mult calculation for osmr0
-- by advice with Thomas Gleixner
--- arch/unicore32/kernel/time.c | 9 ++------- 1 files changed, 2 insertions(+), 7 deletions(-)
arch/unicore32/kernel/time.c +2 -7
@@ -66,11 +66,6 @@ puv3_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *c)static struct clock_event_device ckevt_puv3_osmr0 = { .name ="osmr0" , .features =CLOCK_EVT_FEAT_ONESHOT , -#ifdef CONFIG_ARCH_FPGA - .shift =18 ,/* correct shift val: 16, but warn_on_slowpath */ -#else - .shift =30 , -#endif .rating =200 , .set_next_event = puv3_osmr0_set_next_event, .set_mode = puv3_osmr0_set_mode,
@@ -101,8 +96,8 @@ void __init time_init(void)OST_OIER =0 ;/* disable any timer interrupts */ OST_OSSR =0 ;/* clear status on all timers */ - ckevt_puv3_osmr0.mult = -div_sc (CLOCK_TICK_RATE ,NSEC_PER_SEC , ckevt_puv3_osmr0.shift); +clockevents_calc_mult_shift (&ckevt_puv3_osmr0,CLOCK_TICK_RATE ,5 ); + ckevt_puv3_osmr0.max_delta_ns =clockevent_delta2ns (0x7fffffff , &ckevt_puv3_osmr0); ckevt_puv3_osmr0.min_delta_ns =
Signature · 1 line
1.7.4.1
PATCH 8/17 unicore32: modify function names and parameters for irq_chips
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
-- by advice with Thomas Gleixner
--- arch/unicore32/Kconfig | 1 + arch/unicore32/kernel/irq.c | 82 +++++++++++++++++++++--------------------- 2 files changed, 42 insertions(+), 41 deletions(-)
arch/unicore32/Kconfig +1 -0
@@ -10,6 +10,7 @@ config UNICORE32 select HAVE_KERNEL_LZMA select GENERIC_FIND_FIRST_BIT select GENERIC_IRQ_PROBE + select GENERIC_HARDIRQS_NO_DEPRECATED select ARCH_WANT_FRAME_POINTERS help UniCore-32 is 32-bit Instruction Set Architecture,
arch/unicore32/kernel/irq.c +41 -41
174 lines not on this page · raw message
Signature · 1 line
1.7.4.1
PATCH 10/17 unicore32 i8042: adjust io funcs of i8042-unicore32io.h
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
replace inb/outb with readb/writeb in i8042-unicore32io.h and correct typecasting of register and region macros
-- by advice with Arnd Bergmann
--- drivers/input/serio/i8042-unicore32io.h | 21 ++++++++++++--------- 1 files changed, 12 insertions(+), 9 deletions(-)
drivers/input/serio/i8042-unicore32io.h +12 -9
@@ -29,33 +29,36 @@/* * Register numbers. */ -#define I8042_COMMAND_REG ((unsigned long)&PS2_COMMAND) -#define I8042_STATUS_REG ((unsigned long)&PS2_STATUS) -#define I8042_DATA_REG ((unsigned long)&PS2_DATA) +#define I8042_COMMAND_REG ((volatile void __iomem *)&PS2_COMMAND) +#define I8042_STATUS_REG ((volatile void __iomem *)&PS2_STATUS) +#define I8042_DATA_REG ((volatile void __iomem *)&PS2_DATA) + +#define I8042_REGION_START (resource_size_t)(&PS2_DATA) +#define I8042_REGION_SIZE (resource_size_t)(16)static inline int i8042_read_data (void ) { -return inb (I8042_DATA_REG ); +return readb (I8042_DATA_REG ); }static inline int i8042_read_status (void ) { -return inb (I8042_STATUS_REG ); +return readb (I8042_STATUS_REG ); }static inline void i8042_write_data (int val) { -outb (val,I8042_DATA_REG ); +writeb (val,I8042_DATA_REG ); }static inline void i8042_write_command (int val) { -outb (val,I8042_COMMAND_REG ); +writeb (val,I8042_COMMAND_REG ); }static inline int i8042_platform_init (void ) { -if (!request_region (I8042_DATA_REG ,16 ,"i8042" )) +if (!request_region (I8042_REGION_START ,I8042_REGION_SIZE ,"i8042" ))return -EBUSY ; i8042_reset =1 ;
@@ -64,7 +67,7 @@ static inline int i8042_platform_init(void)static inline void i8042_platform_exit (void ) { -release_region (I8042_DATA_REG ,16 ); +release_region (I8042_REGION_START ,I8042_REGION_SIZE ); }#endif /* _I8042_UNICORE32_H */
Signature · 1 line
1.7.4.1
PATCH 11/17 unicore32 upgrade to v2.6.38-rc5: add one more paramter for pte_alloc_map call
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
--- arch/unicore32/mm/pgd.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/unicore32/mm/pgd.c +1 -1
@@ -54,7 +54,7 @@ pgd_t *get_pgd_slow(struct mm_struct *mm)if (!new_pmd) goto no_pmd; - new_pte =pte_alloc_map (mm, new_pmd,0 ); + new_pte =pte_alloc_map (mm,NULL , new_pmd,0 );if (!new_pte) goto no_pte;
Signature · 1 line
1.7.4.1
PATCH 12/17 unicore32 i8042 upgrade and bugfix: adjust resource request region type
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
--- drivers/input/serio/i8042-unicore32io.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/input/serio/i8042-unicore32io.h +2 -2
@@ -58,7 +58,7 @@ static inline void i8042_write_command(int val)static inline int i8042_platform_init (void ) { -if (!request_region (I8042_REGION_START ,I8042_REGION_SIZE ,"i8042" )) +if (!request_mem_region (I8042_REGION_START ,I8042_REGION_SIZE ,"i8042" ))return -EBUSY ; i8042_reset =1 ;
@@ -67,7 +67,7 @@ static inline int i8042_platform_init(void)static inline void i8042_platform_exit (void ) { -release_region (I8042_REGION_START ,I8042_REGION_SIZE ); +release_mem_region (I8042_REGION_START ,I8042_REGION_SIZE ); }#endif /* _I8042_UNICORE32_H */
Signature · 1 line
1.7.4.1
PATCH 13/17 unicore32 io: redefine __REG(x) and re-use readl/writel funcs
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
-- by advice of Arnd Bergmann
--- arch/unicore32/include/asm/gpio.h | 9 ++-- arch/unicore32/include/mach/dma.h | 11 ++++- arch/unicore32/include/mach/hardware.h | 8 +--- arch/unicore32/kernel/clock.c | 34 +++++++------ arch/unicore32/kernel/dma.c | 15 ++++-- arch/unicore32/kernel/gpio.c | 12 ++-- arch/unicore32/kernel/irq.c | 80 +++++++++++++++--------------- arch/unicore32/kernel/pci.c | 58 +++++++++++----------- arch/unicore32/kernel/process.c | 10 ++-- arch/unicore32/kernel/puv3-core.c | 10 ++-- arch/unicore32/kernel/rtc.c | 34 +++++++------- arch/unicore32/kernel/time.c | 46 +++++++++--------- drivers/input/serio/i8042-unicore32io.h | 8 ++-- 13 files changed, 171 insertions(+), 164 deletions(-)
arch/unicore32/include/asm/gpio.h +5 -4
@@ -13,6 +13,7 @@#ifndef __UNICORE_GPIO_H__#define __UNICORE_GPIO_H__ +#include <linux/io.h> #include <asm/irq.h> #include <mach/hardware.h> #include <asm-generic/gpio.h>
@@ -66,7 +67,7 @@static inline int gpio_get_value (unsigned gpio) {if (__builtin_constant_p (gpio) && (gpio <=GPIO_MAX )) -return GPIO_GPLR &GPIO_GPIO (gpio); +return readl (GPIO_GPLR ) &GPIO_GPIO (gpio);else return __gpio_get_value (gpio); }
@@ -75,9 +76,9 @@ static inline void gpio_set_value(unsigned gpio, int value) {if (__builtin_constant_p (gpio) && (gpio <=GPIO_MAX ))if (value) -GPIO_GPSR =GPIO_GPIO (gpio); +writel (GPIO_GPIO (gpio),GPIO_GPSR );else -GPIO_GPCR =GPIO_GPIO (gpio); +writel (GPIO_GPIO (gpio),GPIO_GPCR );else __gpio_set_value (gpio, value); }
@@ -86,7 +87,7 @@ static inline void gpio_set_value(unsigned gpio, int value)static inline unsigned gpio_to_irq (unsigned gpio) { -if ((gpio <IRQ_GPIOHIGH ) && (FIELD (1 ,1 , gpio) &GPIO_GPIR )) +if ((gpio <IRQ_GPIOHIGH ) && (FIELD (1 ,1 , gpio) &readl (GPIO_GPIR )))return IRQ_GPIOLOW0 + gpio;else return IRQ_GPIO0 + gpio;
arch/unicore32/include/mach/dma.h +9 -2
@@ -35,7 +35,14 @@ extern int puv3_request_dma(char *name,extern void puv3_free_dma (int dma_ch); -#define puv3_stop_dma (ch) (DMAC_CONFIG(ch) &= ~DMAC_CONFIG_EN) -#define puv3_resume_dma (ch) (DMAC_CONFIG(ch) |= DMAC_CONFIG_EN) +static inline void puv3_stop_dma (int ch) +{ +writel (readl (DMAC_CONFIG (ch)) & ~DMAC_CONFIG_EN ,DMAC_CONFIG (ch)); +} + +static inline void puv3_resume_dma (int ch) +{ +writel (readl (DMAC_CONFIG (ch)) |DMAC_CONFIG_EN ,DMAC_CONFIG (ch)); +}#endif /* __MACH_PUV3_DMA_H__ */
arch/unicore32/include/mach/hardware.h +1 -7
@@ -22,13 +22,7 @@#ifndef __ASSEMBLY__ -# define __REG (x) (*((volatile unsigned long *)io_p2v(x))) -# define __PREG (x) (io_v2p((unsigned long)&(x))) - -#else - -# define __REG (x) io_p2v(x) -# define __PREG (x) io_v2p(x) +# define __REG (x) (void __iomem *)io_p2v(x)#endif
arch/unicore32/kernel/clock.c +18 -16
@@ -20,6 +20,7 @@#include <linux/clk.h> #include <linux/mutex.h> #include <linux/delay.h> +#include <linux/io.h> #include <mach/hardware.h>
@@ -152,28 +153,29 @@ int clk_set_rate(struct clk *clk, unsigned long rate)if (ret)return ret; -if (PM_PLLVGACFG == pll_vgacfg) +if (readl (PM_PLLVGACFG ) == pll_vgacfg)return 0 ;/* set pll vga cfg reg. */ -PM_PLLVGACFG = pll_vgacfg; +writel (pll_vgacfg,PM_PLLVGACFG ); -PM_PMCR =PM_PMCR_CFBVGA ; -while ((PM_PLLDFCDONE &PM_PLLDFCDONE_VGADFC ) +writel (PM_PMCR_CFBVGA ,PM_PMCR ); +while ((readl (PM_PLLDFCDONE ) &PM_PLLDFCDONE_VGADFC ) !=PM_PLLDFCDONE_VGADFC )udelay (100 );/* about 1ms */ /* set div cfg reg. */ -PM_PCGR |=PM_PCGR_VGACLK ; +writel (readl (PM_PCGR ) |PM_PCGR_VGACLK ,PM_PCGR ); -PM_DIVCFG = (PM_DIVCFG & ~PM_DIVCFG_VGACLK_MASK ) - |PM_DIVCFG_VGACLK (pll_vgadiv); +writel ((readl (PM_DIVCFG ) & ~PM_DIVCFG_VGACLK_MASK ) + |PM_DIVCFG_VGACLK (pll_vgadiv),PM_DIVCFG ); -PM_SWRESET |=PM_SWRESET_VGADIV ; -while ((PM_SWRESET &PM_SWRESET_VGADIV ) ==PM_SWRESET_VGADIV ) +writel (readl (PM_SWRESET ) |PM_SWRESET_VGADIV ,PM_SWRESET ); +while ((readl (PM_SWRESET ) &PM_SWRESET_VGADIV ) + ==PM_SWRESET_VGADIV )udelay (100 );/* 65536 bclk32, about 320us */ -PM_PCGR &= ~PM_PCGR_VGACLK ; +writel (readl (PM_PCGR ) & ~PM_PCGR_VGACLK ,PM_PCGR ); }#ifdef CONFIG_CPU_FREQ if (clk == &clk_mclk_clk) {
@@ -323,15 +325,15 @@ struct {static int __init clk_init (void ) {#ifdef CONFIG_PUV3_PM -u32 pllrate, divstatus =PM_DIVSTATUS ; -u32 pcgr_val =PM_PCGR ; +u32 pllrate, divstatus =readl (PM_DIVSTATUS ); +u32 pcgr_val =readl (PM_PCGR );int i; pcgr_val |=PM_PCGR_BCLKMME |PM_PCGR_BCLKH264E |PM_PCGR_BCLKH264D |PM_PCGR_HECLK |PM_PCGR_HDCLK ; -PM_PCGR = pcgr_val; +writel (pcgr_val,PM_PCGR ); - pllrate =PM_PLLSYSSTATUS ; + pllrate =readl (PM_PLLSYSSTATUS );/* lookup pmclk_table */ clk_mclk_clk.rate =0 ;
@@ -346,7 +348,7 @@ static int __init clk_init(void) clk_bclk32_clk.rate = clk_mclk_clk.rate / (((divstatus &0x0000f000 ) >>12 ) +1 ); - pllrate =PM_PLLDDRSTATUS ; + pllrate =readl (PM_PLLDDRSTATUS );/* lookup pddr_table */ clk_ddr_clk.rate =0 ;
@@ -357,7 +359,7 @@ static int __init clk_init(void) } } - pllrate =PM_PLLVGASTATUS ; + pllrate =readl (PM_PLLVGASTATUS );/* lookup pvga_table */ clk_vga_clk.rate =0 ;
arch/unicore32/kernel/dma.c +9 -6
@@ -16,6 +16,7 @@#include <linux/kernel.h> #include <linux/interrupt.h> #include <linux/errno.h> +#include <linux/io.h> #include <asm/system.h> #include <asm/irq.h>
@@ -94,15 +95,16 @@ EXPORT_SYMBOL(puv3_free_dma);static irqreturn_t dma_irq_handler (int irq,void *dev_id) { -int i, dint =DMAC_ITCSR ; +int i, dint; + dint =readl (DMAC_ITCSR );for (i =0 ; i <MAX_DMA_CHANNELS ; i++) {if (dint &DMAC_CHANNEL (i)) {struct dma_channel *channel = &dma_channels[i];/* Clear TC interrupt of channel i */ -DMAC_ITCCR =DMAC_CHANNEL (i); -DMAC_ITCCR =0 ; +writel (DMAC_CHANNEL (i),DMAC_ITCCR ); +writel (0 ,DMAC_ITCCR );if (channel->name && channel->irq_handler) { channel->irq_handler (i, channel->data);
@@ -121,15 +123,16 @@ static irqreturn_t dma_irq_handler(int irq, void *dev_id)static irqreturn_t dma_err_handler (int irq,void *dev_id) { -int i, dint =DMAC_IESR ; +int i, dint; + dint =readl (DMAC_IESR );for (i =0 ; i <MAX_DMA_CHANNELS ; i++) {if (dint &DMAC_CHANNEL (i)) {struct dma_channel *channel = &dma_channels[i];/* Clear Err interrupt of channel i */ -DMAC_IECR =DMAC_CHANNEL (i); -DMAC_IECR =0 ; +writel (DMAC_CHANNEL (i),DMAC_IECR ); +writel (0 ,DMAC_IECR );if (channel->name && channel->err_handler) { channel->err_handler (i, channel->data);
arch/unicore32/kernel/gpio.c +6 -6
@@ -52,15 +52,15 @@ device_initcall(puv3_gpio_leds_init);static int puv3_gpio_get (struct gpio_chip *chip,unsigned offset) { -return GPIO_GPLR &GPIO_GPIO (offset); +return readl (GPIO_GPLR ) &GPIO_GPIO (offset); }static void puv3_gpio_set (struct gpio_chip *chip,unsigned offset,int value) {if (value) -GPIO_GPSR =GPIO_GPIO (offset); +writel (GPIO_GPIO (offset),GPIO_GPSR );else -GPIO_GPCR =GPIO_GPIO (offset); +writel (GPIO_GPIO (offset),GPIO_GPCR ); }static int puv3_direction_input (struct gpio_chip *chip,unsigned offset)
@@ -68,7 +68,7 @@ static int puv3_direction_input(struct gpio_chip *chip, unsigned offset)unsigned long flags;local_irq_save (flags); -GPIO_GPDR &= ~GPIO_GPIO (offset); +writel (readl (GPIO_GPDR ) & ~GPIO_GPIO (offset),GPIO_GPDR );local_irq_restore (flags);return 0 ; }
@@ -80,7 +80,7 @@ static int puv3_direction_output(struct gpio_chip *chip, unsigned offset,local_irq_save (flags);puv3_gpio_set (chip, offset, value); -GPIO_GPDR |=GPIO_GPIO (offset); +writel (readl (GPIO_GPDR ) |GPIO_GPIO (offset),GPIO_GPDR );local_irq_restore (flags);return 0 ; }
@@ -97,7 +97,7 @@ static struct gpio_chip puv3_gpio_chip = {void __init puv3_init_gpio (void ) { -GPIO_GPDR =GPIO_DIR ; +writel (GPIO_DIR ,GPIO_GPDR );#if defined(CONFIG_PUV3_NB0916 ) || defined(CONFIG_PUV3_SMW0919 ) \ || defined(CONFIG_PUV3_DB0913 )gpio_set_value (GPO_WIFI_EN ,1 );
arch/unicore32/kernel/irq.c +40 -40
201 lines not on this page · raw message
arch/unicore32/kernel/pci.c +29 -29
94 lines not on this page · raw message
arch/unicore32/kernel/process.c +5 -5
@@ -125,9 +125,9 @@ void machine_restart(char *cmd)/* Jump into ROM at address 0xffff0000 */ cpu_reset (VECTORS_BASE ); }else { -PM_PLLSYSCFG =0x00002001 ;/* cpu clk = 250M */ -PM_PLLDDRCFG =0x00100800 ;/* ddr clk = 44M */ -PM_PLLVGACFG =0x00002001 ;/* vga clk = 250M */ +writel (0x00002001 ,PM_PLLSYSCFG );/* cpu clk = 250M */ +writel (0x00100800 ,PM_PLLDDRCFG );/* ddr clk = 44M */ +writel (0x00002001 ,PM_PLLVGACFG );/* vga clk = 250M */ /* Use on-chip reset capability */ /* following instructions must be in one icache line */
@@ -141,10 +141,10 @@ void machine_restart(char *cmd) " nop; nop; nop\n\t" /* prefetch 3 instructions at most */ : - : "r" ((unsigned long)&PM_PMCR), + : "r" (PM_PMCR), "r" (PM_PMCR_CFBSYS | PM_PMCR_CFBDDR | PM_PMCR_CFBVGA), - "r" ((unsigned long)&RESETC_SWRR), + "r" (RESETC_SWRR), "r" (RESETC_SWRR_SRB) : "r0", "memory"); }
arch/unicore32/kernel/puv3-core.c +5 -5
@@ -36,7 +36,7 @@*/ unsigned long long sched_clock (void ) { -unsigned long long v =cnt32_to_63 (OST_OSCR ); +unsigned long long v =cnt32_to_63 (readl (OST_OSCR ));/* original conservative method, but overflow frequently * v *= NSEC_PER_SEC >> 12;
@@ -187,15 +187,15 @@ static void puv3_cpu_pm_restore(unsigned long *sleep_save)static int puv3_cpu_pm_prepare (void ) {/* set resume return address */ -PM_DIVCFG =virt_to_phys (puv3_cpu_resume); +writel (virt_to_phys (puv3_cpu_resume),PM_DIVCFG );return 0 ; }static void puv3_cpu_pm_enter (suspend_state_t state) {/* Clear reset status */ -RESETC_RSSR =RESETC_RSSR_HWR |RESETC_RSSR_WDR - |RESETC_RSSR_SMR |RESETC_RSSR_SWR ; +writel (RESETC_RSSR_HWR |RESETC_RSSR_WDR + |RESETC_RSSR_SMR |RESETC_RSSR_SWR ,RESETC_RSSR );switch (state) {/* case PM_SUSPEND_ON:
@@ -242,7 +242,7 @@ void puv3_ps2_init(void)struct clk *bclk32; bclk32 =clk_get (NULL ,"BUS32_CLK" ); -PS2_CNT =clk_get_rate (bclk32) /200000 ;/* should > 5us */ +writel (clk_get_rate (bclk32) /200000 ,PS2_CNT );/* should > 5us */ }void __init puv3_core_init (void )
arch/unicore32/kernel/rtc.c +17 -17
@@ -41,7 +41,7 @@ static irqreturn_t puv3_rtc_alarmirq(int irq, void *id) {struct rtc_device *rdev = id; -RTC_RTSR |=RTC_RTSR_AL ; +writel (readl (RTC_RTSR ) |RTC_RTSR_AL ,RTC_RTSR );rtc_update_irq (rdev,1 ,RTC_AF |RTC_IRQF );return IRQ_HANDLED ; }
@@ -50,7 +50,7 @@ static irqreturn_t puv3_rtc_tickirq(int irq, void *id) {struct rtc_device *rdev = id; -RTC_RTSR |=RTC_RTSR_HZ ; +writel (readl (RTC_RTSR ) |RTC_RTSR_HZ ,RTC_RTSR );rtc_update_irq (rdev,1 ,RTC_PF |RTC_IRQF );return IRQ_HANDLED ; }
@@ -62,12 +62,12 @@ static void puv3_rtc_setaie(int to)pr_debug ("%s: aie=%d\n" , __func__, to); - tmp =RTC_RTSR & ~RTC_RTSR_ALE ; + tmp =readl (RTC_RTSR ) & ~RTC_RTSR_ALE ;if (to) tmp |=RTC_RTSR_ALE ; -RTC_RTSR = tmp; +writel (tmp,RTC_RTSR ); }static int puv3_rtc_setpie (struct device *dev,int enabled)
@@ -77,12 +77,12 @@ static int puv3_rtc_setpie(struct device *dev, int enabled)pr_debug ("%s: pie=%d\n" , __func__, enabled);spin_lock_irq (&puv3_rtc_pie_lock); - tmp =RTC_RTSR & ~RTC_RTSR_HZE ; + tmp =readl (RTC_RTSR ) & ~RTC_RTSR_HZE ;if (enabled) tmp |=RTC_RTSR_HZE ; -RTC_RTSR = tmp; +writel (tmp,RTC_RTSR );spin_unlock_irq (&puv3_rtc_pie_lock);return 0 ;
@@ -97,7 +97,7 @@ static int puv3_rtc_setfreq(struct device *dev, int freq)static int puv3_rtc_gettime (struct device *dev,struct rtc_time *rtc_tm) { -rtc_time_to_tm (RTC_RCNR , rtc_tm); +rtc_time_to_tm (readl (RTC_RCNR ), rtc_tm); pr_debug("read time %02x.%02x.%02x %02x/%02x/%02x\n", rtc_tm->tm_year, rtc_tm->tm_mon, rtc_tm->tm_mday,
@@ -115,7 +115,7 @@ static int puv3_rtc_settime(struct device *dev, struct rtc_time *tm) tm->tm_hour, tm->tm_min, tm->tm_sec);rtc_tm_to_time (tm, &rtc_count); -RTC_RCNR = rtc_count; +writel (rtc_count,RTC_RCNR );return 0 ; }
@@ -124,9 +124,9 @@ static int puv3_rtc_getalarm(struct device *dev, struct rtc_wkalrm *alrm) {struct rtc_time *alm_tm = &alrm->time; -rtc_time_to_tm (RTC_RTAR , alm_tm); +rtc_time_to_tm (readl (RTC_RTAR ), alm_tm); - alrm->enabled =RTC_RTSR &RTC_RTSR_ALE ; + alrm->enabled =readl (RTC_RTSR ) &RTC_RTSR_ALE ; pr_debug("read alarm %02x %02x.%02x.%02x %02x/%02x/%02x\n", alrm->enabled,
@@ -147,7 +147,7 @@ static int puv3_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) tm->tm_hour & 0xff, tm->tm_min & 0xff, tm->tm_sec);rtc_tm_to_time (tm, &rtcalarm_count); -RTC_RTAR = rtcalarm_count; +writel (rtcalarm_count,RTC_RTAR );puv3_rtc_setaie (alrm->enabled);
@@ -162,7 +162,7 @@ static int puv3_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)static int puv3_rtc_proc (struct device *dev,struct seq_file *seq) {seq_printf (seq,"periodic_IRQ\t: %s\n" , - (RTC_RTSR &RTC_RTSR_HZE ) ?"yes" :"no" ); + (readl (RTC_RTSR ) &RTC_RTSR_HZE ) ?"yes" :"no" );return 0 ; }
@@ -222,13 +222,13 @@ static const struct rtc_class_ops puv3_rtcops = {static void puv3_rtc_enable (struct platform_device *pdev,int en) {if (!en) { -RTC_RTSR &= ~RTC_RTSR_HZE ; +writel (readl (RTC_RTSR ) & ~RTC_RTSR_HZE ,RTC_RTSR ); }else {/* re-enable the device, and check it is ok */ -if ((RTC_RTSR &RTC_RTSR_HZE ) ==0 ) { +if ((readl (RTC_RTSR ) &RTC_RTSR_HZE ) ==0 ) {dev_info (&pdev->dev,"rtc disabled, re-enabling\n" ); -RTC_RTSR |=RTC_RTSR_HZE ; +writel (readl (RTC_RTSR ) |RTC_RTSR_HZE ,RTC_RTSR ); } } }
@@ -331,7 +331,7 @@ static int ticnt_save;static int puv3_rtc_suspend (struct platform_device *pdev,pm_message_t state) {/* save RTAR for anyone using periodic interrupts */ - ticnt_save =RTC_RTAR ; + ticnt_save =readl (RTC_RTAR );puv3_rtc_enable (pdev,0 );return 0 ; }
@@ -339,7 +339,7 @@ static int puv3_rtc_suspend(struct platform_device *pdev, pm_message_t state)static int puv3_rtc_resume (struct platform_device *pdev) {puv3_rtc_enable (pdev,1 ); -RTC_RTAR = ticnt_save; +writel (ticnt_save,RTC_RTAR );return 0 ; }#else
arch/unicore32/kernel/time.c +23 -23
90 lines not on this page · raw message
drivers/input/serio/i8042-unicore32io.h +4 -4
@@ -29,11 +29,11 @@/* * Register numbers. */ -#define I8042_COMMAND_REG ((volatile void __iomem *)&PS2_COMMAND) -#define I8042_STATUS_REG ((volatile void __iomem *)&PS2_STATUS) -#define I8042_DATA_REG ((volatile void __iomem *)&PS2_DATA) +#define I8042_COMMAND_REG PS2_COMMAND +#define I8042_STATUS_REG PS2_STATUS +#define I8042_DATA_REG PS2_DATA -#define I8042_REGION_START (resource_size_t)(&PS2_DATA) +#define I8042_REGION_START (resource_size_t)(PS2_DATA)#define I8042_REGION_SIZE (resource_size_t)(16)static inline int i8042_read_data (void )
Signature · 1 line
1.7.4.1
cover unicore32: resend patches after machine related files
This patch set will resend patches after machine related files. I2C bus driver and framebuffer driver are also added in this set.
The whole subsystem code could be fetched from:
git://git.kernel.org/pub/scm/linux/kernel/git/epip/linux-2.6-unicore32.git
with branch name: unicore32.
GuanXuetao (17):
unicore32 machine related files: core files
unicore32 machine related files: hardware registers
unicore32 machine related files: pci bus handling
unicore32 machine related files: ps2 driver
unicore32: ADD MAINTAINER for unicore32 architecture
unicore32 time.c: change calculate method for clock_event_device
unicore32: remove unused lines in arch/unicore32/include/asm/irq.h
unicore32: modify function names and parameters for irq_chips
unicore32: rename PKUNITY_IOSPACE_BASE to PKUNITY_MMIO_BASE unicore32 i8042: adjust io funcs of i8042-unicore32io.h
unicore32 upgrade to v2.6.38-rc5: add one more paramter for pte_alloc_map call unicore32 i8042 upgrade and bugfix: adjust resource request region type unicore32 io: redefine __REG(x) and re-use readl/writel funcs unicore32 machine related files: add i2c bus drivers for pkunity-v3 soc unicore32 machine related: add frame buffer driver for pkunity-v3 soc
unicore32: add (void __iomem *) to io_p2v macro
unicore32: replace unicore32-specific iomap functions with generic
lib implementation
MAINTAINERS | 16 + arch/unicore32/Kconfig | 29 + arch/unicore32/configs/debug_defconfig | 7 +- arch/unicore32/include/asm/gpio.h | 9 +- arch/unicore32/include/asm/io.h | 9 +- arch/unicore32/include/asm/irq.h | 2 - arch/unicore32/include/asm/pci.h | 46 ++ arch/unicore32/include/mach/PKUnity.h | 104 ++++ arch/unicore32/include/mach/bitfield.h | 24 + arch/unicore32/include/mach/dma.h | 11 +- arch/unicore32/include/mach/hardware.h | 36 ++ arch/unicore32/include/mach/memory.h | 2 +- arch/unicore32/include/mach/regs-ac97.h | 32 ++ arch/unicore32/include/mach/regs-dmac.h | 81 +++ arch/unicore32/include/mach/regs-gpio.h | 70 +++ arch/unicore32/include/mach/regs-i2c.h | 63 +++ arch/unicore32/include/mach/regs-intc.h | 28 + arch/unicore32/include/mach/regs-nand.h | 79 +++ arch/unicore32/include/mach/regs-ost.h | 92 ++++ arch/unicore32/include/mach/regs-pci.h | 94 ++++ arch/unicore32/include/mach/regs-pm.h | 126 +++++ arch/unicore32/include/mach/regs-ps2.h | 20 + arch/unicore32/include/mach/regs-resetc.h | 34 ++ arch/unicore32/include/mach/regs-rtc.h | 37 ++ arch/unicore32/include/mach/regs-sdc.h | 156 ++++++ arch/unicore32/include/mach/regs-spi.h | 98 ++++ arch/unicore32/include/mach/regs-uart.h | 3 + arch/unicore32/include/mach/regs-umal.h | 229 ++++++++ arch/unicore32/include/mach/regs-unigfx.h | 200 +++++++ arch/unicore32/kernel/clock.c | 34 +- arch/unicore32/kernel/dma.c | 15 +- arch/unicore32/kernel/gpio.c | 12 +- arch/unicore32/kernel/irq.c | 148 +++--- arch/unicore32/kernel/pci.c | 404 ++++++++++++++ arch/unicore32/kernel/process.c | 10 +- arch/unicore32/kernel/puv3-core.c | 285 ++++++++++ arch/unicore32/kernel/puv3-nb0916.c | 145 +++++ arch/unicore32/kernel/rtc.c | 34 +- arch/unicore32/kernel/time.c | 55 +- arch/unicore32/mm/Makefile | 2 +- arch/unicore32/mm/iomap.c | 56 -- arch/unicore32/mm/pgd.c | 2 +- drivers/i2c/busses/Kconfig | 11 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-puv3.c | 306 +++++++++++ drivers/input/serio/i8042-unicore32io.h | 73 +++ drivers/input/serio/i8042.h | 2 + drivers/pci/Makefile | 1 + drivers/video/Kconfig | 11 + drivers/video/Makefile | 1 + drivers/video/fb-puv3.c | 846 +++++++++++++++++++++++++++++ include/linux/fb.h | 2 + 52 files changed, 3968 insertions(+), 225 deletions(-) create mode 100644 arch/unicore32/include/asm/pci.h create mode 100644 arch/unicore32/include/mach/PKUnity.h create mode 100644 arch/unicore32/include/mach/bitfield.h create mode 100644 arch/unicore32/include/mach/hardware.h create mode 100644 arch/unicore32/include/mach/regs-ac97.h create mode 100644 arch/unicore32/include/mach/regs-dmac.h create mode 100644 arch/unicore32/include/mach/regs-gpio.h create mode 100644 arch/unicore32/include/mach/regs-i2c.h create mode 100644 arch/unicore32/include/mach/regs-intc.h create mode 100644 arch/unicore32/include/mach/regs-nand.h create mode 100644 arch/unicore32/include/mach/regs-ost.h create mode 100644 arch/unicore32/include/mach/regs-pci.h create mode 100644 arch/unicore32/include/mach/regs-pm.h create mode 100644 arch/unicore32/include/mach/regs-ps2.h create mode 100644 arch/unicore32/include/mach/regs-resetc.h create mode 100644 arch/unicore32/include/mach/regs-rtc.h create mode 100644 arch/unicore32/include/mach/regs-sdc.h create mode 100644 arch/unicore32/include/mach/regs-spi.h create mode 100644 arch/unicore32/include/mach/regs-uart.h create mode 100644 arch/unicore32/include/mach/regs-umal.h create mode 100644 arch/unicore32/include/mach/regs-unigfx.h create mode 100644 arch/unicore32/kernel/pci.c create mode 100644 arch/unicore32/kernel/puv3-core.c create mode 100644 arch/unicore32/kernel/puv3-nb0916.c delete mode 100644 arch/unicore32/mm/iomap.c create mode 100644 drivers/i2c/busses/i2c-puv3.c create mode 100644 drivers/input/serio/i8042-unicore32io.h create mode 100644 drivers/video/fb-puv3.c
Signature · 1 line
1.7.4.1
PATCH 1/17 unicore32 machine related files: core files
From: GuanXuetao <[email protected]>
This patch adds machine related core files, also including build infrastructure.
--- arch/unicore32/Kconfig | 25 ++++ arch/unicore32/kernel/puv3-core.c | 270 +++++++++++++++++++++++++++++++++++ arch/unicore32/kernel/puv3-nb0916.c | 145 +++++++++++++++++++ 3 files changed, 440 insertions(+), 0 deletions(-) create mode 100644 arch/unicore32/kernel/puv3-core.c create mode 100644 arch/unicore32/kernel/puv3-nb0916.c
arch/unicore32/Kconfig +25 -0
@@ -231,6 +231,31 @@ config PUV3_RTC tristate "PKUnity v3 RTC Support" depends on !ARCH_FPGA +if PUV3_NB0916 + +menu "PKUnity NetBook-0916 Features" + +config I2C_BATTERY_BQ27200 + tristate "I2C Battery BQ27200 Support" + select PUV3_I2C + select POWER_SUPPLY + select BATTERY_BQ27x00 + +config I2C_EEPROM_AT24 + tristate "I2C EEPROMs AT24 support" + select PUV3_I2C + select MISC_DEVICES + select EEPROM_AT24 + +config LCD_BACKLIGHT + tristate "LCD Backlight support" + select BACKLIGHT_LCD_SUPPORT + select BACKLIGHT_PWM + +endmenu + +endif + endif source "drivers/Kconfig"
arch/unicore32/kernel/puv3-core.c new file +270 -0
270 lines not on this page · raw message
arch/unicore32/kernel/puv3-nb0916.c new file +145 -0
145 lines not on this page · raw message
Signature · 1 line
1.7.4.1
PATCH 3/17 unicore32 machine related files: pci bus handling
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
This patch implements arch-specific pci bus driver.
--- arch/unicore32/include/asm/pci.h | 46 +++++ arch/unicore32/kernel/pci.c | 404 ++++++++++++++++++++++++++++++++++++++ drivers/pci/Makefile | 1 + 3 files changed, 451 insertions(+), 0 deletions(-) create mode 100644 arch/unicore32/include/asm/pci.h create mode 100644 arch/unicore32/kernel/pci.c
arch/unicore32/include/asm/pci.h new file +46 -0
@@ -0,0 +1,46 @@ +/* +* linux/arch/unicore32/include/asm/pci.h +* +* Code specific to PKUnity SoC and UniCore ISA +* +* Copyright (C) 2001-2010 GUAN Xue-tao +* +* 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. +*/ +#ifndef __UNICORE_PCI_H__ +#define __UNICORE_PCI_H__ + +#ifdef __KERNEL__ +#include <asm-generic/pci-dma-compat.h> +#include <asm-generic/pci.h> +#include <mach/hardware.h> /* for PCIBIOS_MIN_* */ + +static inline void pcibios_set_master (struct pci_dev *dev) +{ +/* No special bus mastering setup handling */ +} + +static inline void pcibios_penalize_isa_irq (int irq,int active) +{ +/* We don't do dynamic PCI IRQ allocation */ +} + +#ifdef CONFIG_PCI +static inline void pci_dma_burst_advice (struct pci_dev *pdev, +enum pci_dma_burst_strategy *strat, +unsigned long *strategy_parameter) +{ + *strat =PCI_DMA_BURST_INFINITY ; + *strategy_parameter = ~0UL ; +} +#endif + +#define HAVE_PCI_MMAP +extern int pci_mmap_page_range (struct pci_dev *dev,struct vm_area_struct *vma, +enum pci_mmap_state mmap_state,int write_combine); + +#endif /* __KERNEL__ */ + +#endif
arch/unicore32/kernel/pci.c new file +404 -0
404 lines not on this page · raw message
drivers/pci/Makefile +1 -0
@@ -42,6 +42,7 @@ obj-$(CONFIG_PCI_IOV) += iov.o obj-$(CONFIG_X86) += setup-bus.o obj-$(CONFIG_ALPHA) += setup-bus.o setup-irq.o obj-$(CONFIG_ARM) += setup-bus.o setup-irq.o +obj-$(CONFIG_UNICORE32) += setup-bus.o setup-irq.o obj-$(CONFIG_PARISC) += setup-bus.o obj-$(CONFIG_SUPERH) += setup-bus.o setup-irq.o obj-$(CONFIG_PPC) += setup-bus.o
Signature · 1 line
1.7.4.1
PATCH 5/17 unicore32: ADD MAINTAINER for unicore32 architecture
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
Add MAINTAINER list for unicore32 architecture and pkunity soc drivers.
--- MAINTAINERS | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-)
MAINTAINERS +14 -0
@@ -4882,6 +4882,13 @@ S: Maintained F: drivers/block/pktcdvd.c F: include/linux/pktcdvd.h +PKUNITY SOC DRIVERS +M: Guan Xuetao <[email protected]> +W: http://mprc.pku.edu.cn/~guanxuetao/linux +S: Maintained +T: git git://git.kernel.org/pub/scm/linux/kernel/git/epip/linux-2.6-unicore32.git +F: drivers/input/serio/i8042-unicore32io.h + PMC SIERRA MaxRAID DRIVER M: Anil Ravindranath <[email protected]> L: [email protected]
@@ -6245,6 +6252,13 @@ F: drivers/uwb/ F: include/linux/uwb.h F: include/linux/uwb/ +UNICORE32 ARCHITECTURE: +M: Guan Xuetao <[email protected]> +W: http://mprc.pku.edu.cn/~guanxuetao/linux +S: Maintained +T: git git://git.kernel.org/pub/scm/linux/kernel/git/epip/linux-2.6-unicore32.git +F: arch/unicore32/ + UNIFDEF M: Tony Finch <[email protected]> W: http://dotat.at/prog/unifdef
Signature · 1 line
1.7.4.1
PATCH 7/17 unicore32: remove unused lines in arch/unicore32/include/asm/irq.h
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
--- arch/unicore32/include/asm/irq.h | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
arch/unicore32/include/asm/irq.h +0 -2
@@ -95,9 +95,7 @@#define IRQ_SD_CD IRQ_GPIO6/* falling or rising trigger */ #ifndef __ASSEMBLY__ -struct irqaction ;struct pt_regs ; -extern void migrate_irqs (void );extern void asm_do_IRQ (unsigned int ,struct pt_regs *);
Signature · 1 line
1.7.4.1
PATCH 9/17 unicore32: rename PKUNITY_IOSPACE_BASE to PKUNITY_MMIO_BASE
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
for the term IOSPACE normally refers to the PCI PIO space
-- by advice with Arnd Bergmann
--- arch/unicore32/include/mach/PKUnity.h | 2 +- arch/unicore32/include/mach/hardware.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
arch/unicore32/include/mach/PKUnity.h +1 -1
@@ -21,7 +21,7 @@* Memory Definitions */ #define PKUNITY_SDRAM_BASE 0x00000000/* 0x00000000 - 0x7FFFFFFF 2GB */ -#define PKUNITY_IOSPACE_BASE 0x80000000/* 0x80000000 - 0xFFFFFFFF 2GB */ +#define PKUNITY_MMIO_BASE 0x80000000/* 0x80000000 - 0xFFFFFFFF 2GB */ #define PKUNITY_PCI_BASE 0x80000000/* 0x80000000 - 0xBFFFFFFF 1GB */ #include "regs-pci.h" #define PKUNITY_BOOT_ROM2_BASE 0xF4000000/* 0xF4000000 - 0xF7FFFFFF 64MB */
arch/unicore32/include/mach/hardware.h +2 -2
@@ -17,8 +17,8 @@#include "PKUnity.h" -#define io_p2v (x) ((x) - PKUNITY_IOSPACE_BASE) -#define io_v2p (x) ((x) + PKUNITY_IOSPACE_BASE) +#define io_p2v (x) ((x) - PKUNITY_MMIO_BASE) +#define io_v2p (x) ((x) + PKUNITY_MMIO_BASE)#ifndef __ASSEMBLY__
Signature · 1 line
1.7.4.1
PATCH 14/17 unicore32 machine related files: add i2c bus drivers for pkunity-v3 soc
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
change from original version -- by advice of Jean Delvare
1. remove global variable i2c_reg, replaced by local variables
2. replace ENXIO with ENODEV when no platform resources
3. add adapter->nr assignment before i2c_add_numbered_adapter() call
4. add judgement for i2c_del_adapter() return value
5. release adapter when driver removed
6. add __devexit for puv3_i2c_remove() function
7. modify several names to more appropriated ones
--- MAINTAINERS | 1 + arch/unicore32/configs/debug_defconfig | 4 + drivers/i2c/busses/Kconfig | 11 ++ drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-puv3.c | 306 ++++++++++++++++++++++++++++++++ 5 files changed, 323 insertions(+), 0 deletions(-) create mode 100644 drivers/i2c/busses/i2c-puv3.c
MAINTAINERS +1 -0
@@ -4888,6 +4888,7 @@ W: http://mprc.pku.edu.cn/~guanxuetao/linux S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/epip/linux-2.6-unicore32.git F: drivers/input/serio/i8042-unicore32io.h +F: drivers/i2c/busses/i2c-puv3.c PMC SIERRA MaxRAID DRIVER M: Anil Ravindranath <[email protected]>
arch/unicore32/configs/debug_defconfig +4 -0
@@ -114,6 +114,10 @@ CONFIG_INPUT_EVDEV=m # Keyboards CONFIG_KEYBOARD_GPIO=m +# I2C support +CONFIG_I2C=y +CONFIG_I2C_PUV3=y + # Hardware Monitoring support #CONFIG_SENSORS_LM75=m # Generic Thermal sysfs driver
drivers/i2c/busses/Kconfig +11 -0
@@ -523,6 +523,17 @@ config I2C_PNX This driver can also be built as a module. If so, the module will be called i2c-pnx. +config I2C_PUV3 + tristate "PKUnity v3 I2C bus support" + depends on UNICORE32 && ARCH_PUV3 + select I2C_ALGOBIT + help + This driver supports the I2C IP inside the PKUnity-v3 SoC. + This I2C bus controller is under AMBA/AXI bus. + + This driver can also be built as a module. If so, the module + will be called i2c-puv3. + config I2C_PXA tristate "Intel PXA2XX I2C adapter" depends on ARCH_PXA || ARCH_MMP
drivers/i2c/busses/Makefile +1 -0
@@ -51,6 +51,7 @@ obj-$(CONFIG_I2C_PASEMI) += i2c-pasemi.o obj-$(CONFIG_I2C_PCA_PLATFORM) += i2c-pca-platform.o obj-$(CONFIG_I2C_PMCMSP) += i2c-pmcmsp.o obj-$(CONFIG_I2C_PNX) += i2c-pnx.o +obj-$(CONFIG_I2C_PUV3) += i2c-puv3.o obj-$(CONFIG_I2C_PXA) += i2c-pxa.o obj-$(CONFIG_I2C_S3C2410) += i2c-s3c2410.o obj-$(CONFIG_I2C_S6000) += i2c-s6000.o
drivers/i2c/busses/i2c-puv3.c new file +306 -0
306 lines not on this page · raw message
Signature · 1 line
1.7.4.1
PATCH 15/17 unicore32 machine related: add frame buffer driver for pkunity-v3 soc
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
change from original version -- by advice of Paul Mundt
1. remove videomemorysize definitions
2. remove unifb_enable and unifb_setup
3. use dev_warn instead of printk in fb driver
4. remove judgement for FB_ACCEL_PUV3_UNIGFX
5. adjust clk_get and clk_set_rate calls
6. add resources definitions
7. remove unifb_option
8. adjust register for platform_device
9. adjust unifb_ops position and unifb_regs assignment position
--- MAINTAINERS | 1 + arch/unicore32/configs/debug_defconfig | 3 +- arch/unicore32/include/mach/memory.h | 2 +- arch/unicore32/kernel/puv3-core.c | 15 + drivers/video/Kconfig | 11 + drivers/video/Makefile | 1 + drivers/video/fb-puv3.c | 846 ++++++++++++++++++++++++++++++++ include/linux/fb.h | 2 + 8 files changed, 879 insertions(+), 2 deletions(-) create mode 100644 drivers/video/fb-puv3.c
MAINTAINERS +1 -0
@@ -4889,6 +4889,7 @@ S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/epip/linux-2.6-unicore32.git F: drivers/input/serio/i8042-unicore32io.h F: drivers/i2c/busses/i2c-puv3.c +F: drivers/video/fb-puv3.c PMC SIERRA MaxRAID DRIVER M: Anil Ravindranath <[email protected]>
arch/unicore32/configs/debug_defconfig +2 -1
@@ -66,7 +66,6 @@ CONFIG_LCD_BACKLIGHT=n CONFIG_PUV3_RTC=y CONFIG_PUV3_UMAL=y -CONFIG_PUV3_UNIGFX=y CONFIG_PUV3_MUSB=n CONFIG_PUV3_AC97=n CONFIG_PUV3_NAND=n
@@ -130,6 +129,8 @@ CONFIG_VIDEO_DEV=n CONFIG_USB_VIDEO_CLASS=n # Graphics support +CONFIG_FB=y +CONFIG_FB_PUV3_UNIGFX=y # Console display driver support CONFIG_VGA_CONSOLE=n CONFIG_FRAMEBUFFER_CONSOLE=y
arch/unicore32/include/mach/memory.h +1 -1
@@ -50,7 +50,7 @@ void puv3_pci_adjust_zones(unsigned long *size, unsigned long *holes);/* kuser area */ #define KUSER_VECPAGE_BASE (KUSER_BASE + UL(0x3fff0000)) -#define KUSER_UNIGFX_BASE (KUSER_BASE + PKUNITY_UNIGFX_MMAP_BASE) +#define KUSER_UNIGFX_BASE (PAGE_OFFSET + PKUNITY_UNIGFX_MMAP_BASE)/* kuser_vecpage (0xbfff0000) is ro, and vectors page (0xffff0000) is rw */ #define kuser_vecpage_to_vectors (x) ((x) - (KUSER_VECPAGE_BASE) \ + (VECTORS_BASE))
arch/unicore32/kernel/puv3-core.c +15 -0
@@ -93,6 +93,19 @@ static struct resource puv3_mmc_resources[] = { }, }; +static struct resource puv3_unigfx_resources[] = { + [0 ] = { + .start =PKUNITY_UNIGFX_BASE , + .end =PKUNITY_UNIGFX_BASE +0xfff , + .flags =IORESOURCE_MEM , + }, + [1 ] = { + .start =PKUNITY_UNIGFX_MMAP_BASE , + .end =PKUNITY_UNIGFX_MMAP_BASE +PKUNITY_UNIGFX_MMAP_SIZE , + .flags =IORESOURCE_MEM , + }, +}; +static struct resource puv3_rtc_resources[] = { [0 ] = { .start =PKUNITY_RTC_BASE ,
@@ -256,6 +269,8 @@ void __init puv3_core_init(void) puv3_umal_resources, ARRAY_SIZE(puv3_umal_resources));platform_device_register_simple ("PKUnity-v3-MMC" ,-1 , puv3_mmc_resources,ARRAY_SIZE (puv3_mmc_resources)); +platform_device_register_simple ("PKUnity-v3-UNIGFX" ,-1 , + puv3_unigfx_resources,ARRAY_SIZE (puv3_unigfx_resources));platform_device_register_simple ("PKUnity-v3-PWM" ,-1 , puv3_pwm_resources,ARRAY_SIZE (puv3_pwm_resources)); platform_device_register_simple("PKUnity-v3-UART", 0,
drivers/video/Kconfig +11 -0
@@ -2365,6 +2365,17 @@ config FB_JZ4740 help Framebuffer support for the JZ4740 SoC. +config FB_PUV3_UNIGFX + tristate "PKUnity v3 Unigfx framebuffer support" + depends on FB && UNICORE32 && ARCH_PUV3 + select FB_SYS_FILLRECT + select FB_SYS_COPYAREA + select FB_SYS_IMAGEBLIT + select FB_SYS_FOPS + help + Choose this option if you want to use the Unigfx device as a + framebuffer device. Without the support of PCI & AGP. + source "drivers/video/omap/Kconfig" source "drivers/video/omap2/Kconfig"
drivers/video/Makefile +1 -0
@@ -139,6 +139,7 @@ obj-$(CONFIG_FB_MB862XX) += mb862xx/ obj-$(CONFIG_FB_MSM) += msm/ obj-$(CONFIG_FB_NUC900) += nuc900fb.o obj-$(CONFIG_FB_JZ4740) += jz4740_fb.o +obj-$(CONFIG_FB_PUV3_UNIGFX) += fb-puv3.o # Platform or fallback drivers go here obj-$(CONFIG_FB_UVESA) += uvesafb.o
drivers/video/fb-puv3.c new file +846 -0
846 lines not on this page · raw message
include/linux/fb.h +2 -0
@@ -152,6 +152,8 @@#define FB_ACCEL_PROSAVAGE_DDR 0x8d/* S3 ProSavage DDR */ #define FB_ACCEL_PROSAVAGE_DDRK 0x8e/* S3 ProSavage DDR-K */ +#define FB_ACCEL_PUV3_UNIGFX 0xa0/* PKUnity-v3 Unigfx */ +struct fb_fix_screeninfo {char id[16 ];/* identification string eg "TT Builtin" */ unsigned long smem_start;/* Start of frame buffer mem */
Signature · 1 line
1.7.4.1
PATCH 16/17 unicore32: add (void __iomem *) to io_p2v macro
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
-- by advice with Arnd Bergmann
--- arch/unicore32/include/mach/hardware.h | 9 +-- arch/unicore32/include/mach/regs-ac97.h | 20 ++-- arch/unicore32/include/mach/regs-dmac.h | 20 ++-- arch/unicore32/include/mach/regs-gpio.h | 16 ++-- arch/unicore32/include/mach/regs-i2c.h | 16 ++-- arch/unicore32/include/mach/regs-intc.h | 12 ++-- arch/unicore32/include/mach/regs-nand.h | 32 ++++---- arch/unicore32/include/mach/regs-ost.h | 22 +++--- arch/unicore32/include/mach/regs-pci.h | 122 ++++++++++++++-------------- arch/unicore32/include/mach/regs-pm.h | 36 ++++---- arch/unicore32/include/mach/regs-ps2.h | 8 +- arch/unicore32/include/mach/regs-resetc.h | 4 +- arch/unicore32/include/mach/regs-rtc.h | 8 +- arch/unicore32/include/mach/regs-sdc.h | 32 ++++---- arch/unicore32/include/mach/regs-spi.h | 12 ++-- arch/unicore32/include/mach/regs-umal.h | 76 +++++++++--------- arch/unicore32/include/mach/regs-unigfx.h | 128 ++++++++++++++-------------- 17 files changed, 285 insertions(+), 288 deletions(-)
arch/unicore32/include/mach/hardware.h +3 -6
@@ -17,13 +17,10 @@#include "PKUnity.h" -#define io_p2v (x) ((x) - PKUNITY_MMIO_BASE) -#define io_v2p (x) ((x) + PKUNITY_MMIO_BASE) -#ifndef __ASSEMBLY__ - -# define __REG (x) (void __iomem *)io_p2v(x) - +#define io_p2v (x) (void __iomem *)((x) - PKUNITY_MMIO_BASE) +#else +#define io_p2v (x) ((x) - PKUNITY_MMIO_BASE)#endif #define PCIBIOS_MIN_IO 0x4000/* should lower than 64KB */
arch/unicore32/include/mach/regs-ac97.h +10 -10
@@ -2,16 +2,16 @@* PKUnity AC97 Registers */ -#define PKUNITY_AC97_CONR __REG(PKUNITY_AC97_BASE + 0x0000) -#define PKUNITY_AC97_OCR __REG(PKUNITY_AC97_BASE + 0x0004) -#define PKUNITY_AC97_ICR __REG(PKUNITY_AC97_BASE + 0x0008) -#define PKUNITY_AC97_CRAC __REG(PKUNITY_AC97_BASE + 0x000C) -#define PKUNITY_AC97_INTR __REG(PKUNITY_AC97_BASE + 0x0010) -#define PKUNITY_AC97_INTRSTAT __REG(PKUNITY_AC97_BASE + 0x0014) -#define PKUNITY_AC97_INTRCLEAR __REG(PKUNITY_AC97_BASE + 0x0018) -#define PKUNITY_AC97_ENABLE __REG(PKUNITY_AC97_BASE + 0x001C) -#define PKUNITY_AC97_OUT_FIFO __REG(PKUNITY_AC97_BASE + 0x0020) -#define PKUNITY_AC97_IN_FIFO __REG(PKUNITY_AC97_BASE + 0x0030) +#define PKUNITY_AC97_CONR io_p2v(PKUNITY_AC97_BASE + 0x0000) +#define PKUNITY_AC97_OCR io_p2v(PKUNITY_AC97_BASE + 0x0004) +#define PKUNITY_AC97_ICR io_p2v(PKUNITY_AC97_BASE + 0x0008) +#define PKUNITY_AC97_CRAC io_p2v(PKUNITY_AC97_BASE + 0x000C) +#define PKUNITY_AC97_INTR io_p2v(PKUNITY_AC97_BASE + 0x0010) +#define PKUNITY_AC97_INTRSTAT io_p2v(PKUNITY_AC97_BASE + 0x0014) +#define PKUNITY_AC97_INTRCLEAR io_p2v(PKUNITY_AC97_BASE + 0x0018) +#define PKUNITY_AC97_ENABLE io_p2v(PKUNITY_AC97_BASE + 0x001C) +#define PKUNITY_AC97_OUT_FIFO io_p2v(PKUNITY_AC97_BASE + 0x0020) +#define PKUNITY_AC97_IN_FIFO io_p2v(PKUNITY_AC97_BASE + 0x0030)#define AC97_CODEC_REG (v) FIELD((v), 7, 16)#define AC97_CODEC_VAL (v) FIELD((v), 16, 0)
arch/unicore32/include/mach/regs-dmac.h +10 -10
@@ -5,27 +5,27 @@/* * Interrupt Status Reg DMAC_ISR. */ -#define DMAC_ISR __REG(PKUNITY_DMAC_BASE + 0x0020) +#define DMAC_ISR io_p2v(PKUNITY_DMAC_BASE + 0x0020)/* * Interrupt Transfer Complete Status Reg DMAC_ITCSR. */ -#define DMAC_ITCSR __REG(PKUNITY_DMAC_BASE + 0x0050) +#define DMAC_ITCSR io_p2v(PKUNITY_DMAC_BASE + 0x0050)/* * Interrupt Transfer Complete Clear Reg DMAC_ITCCR. */ -#define DMAC_ITCCR __REG(PKUNITY_DMAC_BASE + 0x0060) +#define DMAC_ITCCR io_p2v(PKUNITY_DMAC_BASE + 0x0060)/* * Interrupt Error Status Reg DMAC_IESR. */ -#define DMAC_IESR __REG(PKUNITY_DMAC_BASE + 0x0080) +#define DMAC_IESR io_p2v(PKUNITY_DMAC_BASE + 0x0080)/* * Interrupt Error Clear Reg DMAC_IECR. */ -#define DMAC_IECR __REG(PKUNITY_DMAC_BASE + 0x0090) +#define DMAC_IECR io_p2v(PKUNITY_DMAC_BASE + 0x0090)/* * Enable Channels Reg DMAC_ENCH. */ -#define DMAC_ENCH __REG(PKUNITY_DMAC_BASE + 0x00B0) +#define DMAC_ENCH io_p2v(PKUNITY_DMAC_BASE + 0x00B0)/* * DMA control reg. Space [byte]
@@ -35,19 +35,19 @@/* * Source Addr DMAC_SRCADDR(ch). */ -#define DMAC_SRCADDR (ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x00) +#define DMAC_SRCADDR (ch) io_p2v(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x00)/* * Destination Addr DMAC_DESTADDR(ch). */ -#define DMAC_DESTADDR (ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x04) +#define DMAC_DESTADDR (ch) io_p2v(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x04)/* * Control Reg DMAC_CONTROL(ch). */ -#define DMAC_CONTROL (ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x0C) +#define DMAC_CONTROL (ch) io_p2v(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x0C)/* * Configuration Reg DMAC_CONFIG(ch). */ -#define DMAC_CONFIG (ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x10) +#define DMAC_CONFIG (ch) io_p2v(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x10)#define DMAC_IR_MASK FMASK(6, 0)/*
arch/unicore32/include/mach/regs-gpio.h +8 -8
@@ -5,35 +5,35 @@/* * Voltage Status Reg GPIO_GPLR. */ -#define GPIO_GPLR __REG(PKUNITY_GPIO_BASE + 0x0000) +#define GPIO_GPLR io_p2v(PKUNITY_GPIO_BASE + 0x0000)/* * Pin Direction Reg GPIO_GPDR. */ -#define GPIO_GPDR __REG(PKUNITY_GPIO_BASE + 0x0004) +#define GPIO_GPDR io_p2v(PKUNITY_GPIO_BASE + 0x0004)/* * Output Pin Set Reg GPIO_GPSR. */ -#define GPIO_GPSR __REG(PKUNITY_GPIO_BASE + 0x0008) +#define GPIO_GPSR io_p2v(PKUNITY_GPIO_BASE + 0x0008)/* * Output Pin Clear Reg GPIO_GPCR. */ -#define GPIO_GPCR __REG(PKUNITY_GPIO_BASE + 0x000C) +#define GPIO_GPCR io_p2v(PKUNITY_GPIO_BASE + 0x000C)/* * Raise Edge Detect Reg GPIO_GRER. */ -#define GPIO_GRER __REG(PKUNITY_GPIO_BASE + 0x0010) +#define GPIO_GRER io_p2v(PKUNITY_GPIO_BASE + 0x0010)/* * Fall Edge Detect Reg GPIO_GFER. */ -#define GPIO_GFER __REG(PKUNITY_GPIO_BASE + 0x0014) +#define GPIO_GFER io_p2v(PKUNITY_GPIO_BASE + 0x0014)/* * Edge Status Reg GPIO_GEDR. */ -#define GPIO_GEDR __REG(PKUNITY_GPIO_BASE + 0x0018) +#define GPIO_GEDR io_p2v(PKUNITY_GPIO_BASE + 0x0018)/* * Sepcial Voltage Detect Reg GPIO_GPIR. */ -#define GPIO_GPIR __REG(PKUNITY_GPIO_BASE + 0x0020) +#define GPIO_GPIR io_p2v(PKUNITY_GPIO_BASE + 0x0020)#define GPIO_MIN (0)#define GPIO_MAX (27)
arch/unicore32/include/mach/regs-i2c.h +8 -8
@@ -5,35 +5,35 @@/* * Control Reg I2C_CON. */ -#define I2C_CON __REG(PKUNITY_I2C_BASE + 0x0000) +#define I2C_CON io_p2v(PKUNITY_I2C_BASE + 0x0000)/* * Target Address Reg I2C_TAR. */ -#define I2C_TAR __REG(PKUNITY_I2C_BASE + 0x0004) +#define I2C_TAR io_p2v(PKUNITY_I2C_BASE + 0x0004)/* * Data buffer and command Reg I2C_DATACMD. */ -#define I2C_DATACMD __REG(PKUNITY_I2C_BASE + 0x0010) +#define I2C_DATACMD io_p2v(PKUNITY_I2C_BASE + 0x0010)/* * Enable Reg I2C_ENABLE. */ -#define I2C_ENABLE __REG(PKUNITY_I2C_BASE + 0x006C) +#define I2C_ENABLE io_p2v(PKUNITY_I2C_BASE + 0x006C)/* * Status Reg I2C_STATUS. */ -#define I2C_STATUS __REG(PKUNITY_I2C_BASE + 0x0070) +#define I2C_STATUS io_p2v(PKUNITY_I2C_BASE + 0x0070)/* * Tx FIFO Length Reg I2C_TXFLR. */ -#define I2C_TXFLR __REG(PKUNITY_I2C_BASE + 0x0074) +#define I2C_TXFLR io_p2v(PKUNITY_I2C_BASE + 0x0074)/* * Rx FIFO Length Reg I2C_RXFLR. */ -#define I2C_RXFLR __REG(PKUNITY_I2C_BASE + 0x0078) +#define I2C_RXFLR io_p2v(PKUNITY_I2C_BASE + 0x0078)/* * Enable Status Reg I2C_ENSTATUS. */ -#define I2C_ENSTATUS __REG(PKUNITY_I2C_BASE + 0x009C) +#define I2C_ENSTATUS io_p2v(PKUNITY_I2C_BASE + 0x009C)#define I2C_CON_MASTER FIELD(1, 1, 0)#define I2C_CON_SPEED_STD FIELD(1, 2, 1)
arch/unicore32/include/mach/regs-intc.h +6 -6
@@ -4,25 +4,25 @@/* * INTC Level Reg INTC_ICLR. */ -#define INTC_ICLR __REG(PKUNITY_INTC_BASE + 0x0000) +#define INTC_ICLR io_p2v(PKUNITY_INTC_BASE + 0x0000)/* * INTC Mask Reg INTC_ICMR. */ -#define INTC_ICMR __REG(PKUNITY_INTC_BASE + 0x0004) +#define INTC_ICMR io_p2v(PKUNITY_INTC_BASE + 0x0004)/* * INTC Pending Reg INTC_ICPR. */ -#define INTC_ICPR __REG(PKUNITY_INTC_BASE + 0x0008) +#define INTC_ICPR io_p2v(PKUNITY_INTC_BASE + 0x0008)/* * INTC IRQ Pending Reg INTC_ICIP. */ -#define INTC_ICIP __REG(PKUNITY_INTC_BASE + 0x000C) +#define INTC_ICIP io_p2v(PKUNITY_INTC_BASE + 0x000C)/* * INTC REAL Pending Reg INTC_ICFP. */ -#define INTC_ICFP __REG(PKUNITY_INTC_BASE + 0x0010) +#define INTC_ICFP io_p2v(PKUNITY_INTC_BASE + 0x0010)/* * INTC Control Reg INTC_ICCR. */ -#define INTC_ICCR __REG(PKUNITY_INTC_BASE + 0x0014) +#define INTC_ICCR io_p2v(PKUNITY_INTC_BASE + 0x0014)
arch/unicore32/include/mach/regs-nand.h +16 -16
@@ -4,67 +4,67 @@/* * ID Reg. 0 NAND_IDR0 */ -#define NAND_IDR0 __REG(PKUNITY_NAND_BASE + 0x0000) +#define NAND_IDR0 io_p2v(PKUNITY_NAND_BASE + 0x0000)/* * ID Reg. 1 NAND_IDR1 */ -#define NAND_IDR1 __REG(PKUNITY_NAND_BASE + 0x0004) +#define NAND_IDR1 io_p2v(PKUNITY_NAND_BASE + 0x0004)/* * ID Reg. 2 NAND_IDR2 */ -#define NAND_IDR2 __REG(PKUNITY_NAND_BASE + 0x0008) +#define NAND_IDR2 io_p2v(PKUNITY_NAND_BASE + 0x0008)/* * ID Reg. 3 NAND_IDR3 */ -#define NAND_IDR3 __REG(PKUNITY_NAND_BASE + 0x000C) +#define NAND_IDR3 io_p2v(PKUNITY_NAND_BASE + 0x000C)/* * Page Address Reg 0 NAND_PAR0 */ -#define NAND_PAR0 __REG(PKUNITY_NAND_BASE + 0x0010) +#define NAND_PAR0 io_p2v(PKUNITY_NAND_BASE + 0x0010)/* * Page Address Reg 1 NAND_PAR1 */ -#define NAND_PAR1 __REG(PKUNITY_NAND_BASE + 0x0014) +#define NAND_PAR1 io_p2v(PKUNITY_NAND_BASE + 0x0014)/* * Page Address Reg 2 NAND_PAR2 */ -#define NAND_PAR2 __REG(PKUNITY_NAND_BASE + 0x0018) +#define NAND_PAR2 io_p2v(PKUNITY_NAND_BASE + 0x0018)/* * ECC Enable Reg NAND_ECCEN */ -#define NAND_ECCEN __REG(PKUNITY_NAND_BASE + 0x001C) +#define NAND_ECCEN io_p2v(PKUNITY_NAND_BASE + 0x001C)/* * Buffer Reg NAND_BUF */ -#define NAND_BUF __REG(PKUNITY_NAND_BASE + 0x0020) +#define NAND_BUF io_p2v(PKUNITY_NAND_BASE + 0x0020)/* * ECC Status Reg NAND_ECCSR */ -#define NAND_ECCSR __REG(PKUNITY_NAND_BASE + 0x0024) +#define NAND_ECCSR io_p2v(PKUNITY_NAND_BASE + 0x0024)/* * Command Reg NAND_CMD */ -#define NAND_CMD __REG(PKUNITY_NAND_BASE + 0x0028) +#define NAND_CMD io_p2v(PKUNITY_NAND_BASE + 0x0028)/* * DMA Configure Reg NAND_DMACR */ -#define NAND_DMACR __REG(PKUNITY_NAND_BASE + 0x002C) +#define NAND_DMACR io_p2v(PKUNITY_NAND_BASE + 0x002C)/* * Interrupt Reg NAND_IR */ -#define NAND_IR __REG(PKUNITY_NAND_BASE + 0x0030) +#define NAND_IR io_p2v(PKUNITY_NAND_BASE + 0x0030)/* * Interrupt Mask Reg NAND_IMR */ -#define NAND_IMR __REG(PKUNITY_NAND_BASE + 0x0034) +#define NAND_IMR io_p2v(PKUNITY_NAND_BASE + 0x0034)/* * Chip Enable Reg NAND_CHIPEN */ -#define NAND_CHIPEN __REG(PKUNITY_NAND_BASE + 0x0038) +#define NAND_CHIPEN io_p2v(PKUNITY_NAND_BASE + 0x0038)/* * Address Reg NAND_ADDR */ -#define NAND_ADDR __REG(PKUNITY_NAND_BASE + 0x003C) +#define NAND_ADDR io_p2v(PKUNITY_NAND_BASE + 0x003C)/* * Command bits NAND_CMD_CMD_MASK
arch/unicore32/include/mach/regs-ost.h +11 -11
@@ -4,47 +4,47 @@/* * Match Reg 0 OST_OSMR0 */ -#define OST_OSMR0 __REG(PKUNITY_OST_BASE + 0x0000) +#define OST_OSMR0 io_p2v(PKUNITY_OST_BASE + 0x0000)/* * Match Reg 1 OST_OSMR1 */ -#define OST_OSMR1 __REG(PKUNITY_OST_BASE + 0x0004) +#define OST_OSMR1 io_p2v(PKUNITY_OST_BASE + 0x0004)/* * Match Reg 2 OST_OSMR2 */ -#define OST_OSMR2 __REG(PKUNITY_OST_BASE + 0x0008) +#define OST_OSMR2 io_p2v(PKUNITY_OST_BASE + 0x0008)/* * Match Reg 3 OST_OSMR3 */ -#define OST_OSMR3 __REG(PKUNITY_OST_BASE + 0x000C) +#define OST_OSMR3 io_p2v(PKUNITY_OST_BASE + 0x000C)/* * Counter Reg OST_OSCR */ -#define OST_OSCR __REG(PKUNITY_OST_BASE + 0x0010) +#define OST_OSCR io_p2v(PKUNITY_OST_BASE + 0x0010)/* * Status Reg OST_OSSR */ -#define OST_OSSR __REG(PKUNITY_OST_BASE + 0x0014) +#define OST_OSSR io_p2v(PKUNITY_OST_BASE + 0x0014)/* * Watchdog Enable Reg OST_OWER */ -#define OST_OWER __REG(PKUNITY_OST_BASE + 0x0018) +#define OST_OWER io_p2v(PKUNITY_OST_BASE + 0x0018)/* * Interrupt Enable Reg OST_OIER */ -#define OST_OIER __REG(PKUNITY_OST_BASE + 0x001C) +#define OST_OIER io_p2v(PKUNITY_OST_BASE + 0x001C)/* * PWM Pulse Width Control Reg OST_PWMPWCR */ -#define OST_PWMPWCR __REG(PKUNITY_OST_BASE + 0x0080) +#define OST_PWMPWCR io_p2v(PKUNITY_OST_BASE + 0x0080)/* * PWM Duty Cycle Control Reg OST_PWMDCCR */ -#define OST_PWMDCCR __REG(PKUNITY_OST_BASE + 0x0084) +#define OST_PWMDCCR io_p2v(PKUNITY_OST_BASE + 0x0084)/* * PWM Period Control Reg OST_PWMPCR */ -#define OST_PWMPCR __REG(PKUNITY_OST_BASE + 0x0088) +#define OST_PWMPCR io_p2v(PKUNITY_OST_BASE + 0x0088)/* * Match detected 0 OST_OSSR_M0
arch/unicore32/include/mach/regs-pci.h +61 -61
140 lines not on this page · raw message
arch/unicore32/include/mach/regs-pm.h +18 -18
@@ -4,75 +4,75 @@/* * PM Control Reg PM_PMCR */ -#define PM_PMCR __REG(PKUNITY_PM_BASE + 0x0000) +#define PM_PMCR io_p2v(PKUNITY_PM_BASE + 0x0000)/* * PM General Conf. Reg PM_PGCR */ -#define PM_PGCR __REG(PKUNITY_PM_BASE + 0x0004) +#define PM_PGCR io_p2v(PKUNITY_PM_BASE + 0x0004)/* * PM PLL Conf. Reg PM_PPCR */ -#define PM_PPCR __REG(PKUNITY_PM_BASE + 0x0008) +#define PM_PPCR io_p2v(PKUNITY_PM_BASE + 0x0008)/* * PM Wakeup Enable Reg PM_PWER */ -#define PM_PWER __REG(PKUNITY_PM_BASE + 0x000C) +#define PM_PWER io_p2v(PKUNITY_PM_BASE + 0x000C)/* * PM GPIO Sleep Status Reg PM_PGSR */ -#define PM_PGSR __REG(PKUNITY_PM_BASE + 0x0010) +#define PM_PGSR io_p2v(PKUNITY_PM_BASE + 0x0010)/* * PM Clock Gate Reg PM_PCGR */ -#define PM_PCGR __REG(PKUNITY_PM_BASE + 0x0014) +#define PM_PCGR io_p2v(PKUNITY_PM_BASE + 0x0014)/* * PM SYS PLL Conf. Reg PM_PLLSYSCFG */ -#define PM_PLLSYSCFG __REG(PKUNITY_PM_BASE + 0x0018) +#define PM_PLLSYSCFG io_p2v(PKUNITY_PM_BASE + 0x0018)/* * PM DDR PLL Conf. Reg PM_PLLDDRCFG */ -#define PM_PLLDDRCFG __REG(PKUNITY_PM_BASE + 0x001C) +#define PM_PLLDDRCFG io_p2v(PKUNITY_PM_BASE + 0x001C)/* * PM VGA PLL Conf. Reg PM_PLLVGACFG */ -#define PM_PLLVGACFG __REG(PKUNITY_PM_BASE + 0x0020) +#define PM_PLLVGACFG io_p2v(PKUNITY_PM_BASE + 0x0020)/* * PM Div Conf. Reg PM_DIVCFG */ -#define PM_DIVCFG __REG(PKUNITY_PM_BASE + 0x0024) +#define PM_DIVCFG io_p2v(PKUNITY_PM_BASE + 0x0024)/* * PM SYS PLL Status Reg PM_PLLSYSSTATUS */ -#define PM_PLLSYSSTATUS __REG(PKUNITY_PM_BASE + 0x0028) +#define PM_PLLSYSSTATUS io_p2v(PKUNITY_PM_BASE + 0x0028)/* * PM DDR PLL Status Reg PM_PLLDDRSTATUS */ -#define PM_PLLDDRSTATUS __REG(PKUNITY_PM_BASE + 0x002C) +#define PM_PLLDDRSTATUS io_p2v(PKUNITY_PM_BASE + 0x002C)/* * PM VGA PLL Status Reg PM_PLLVGASTATUS */ -#define PM_PLLVGASTATUS __REG(PKUNITY_PM_BASE + 0x0030) +#define PM_PLLVGASTATUS io_p2v(PKUNITY_PM_BASE + 0x0030)/* * PM Div Status Reg PM_DIVSTATUS */ -#define PM_DIVSTATUS __REG(PKUNITY_PM_BASE + 0x0034) +#define PM_DIVSTATUS io_p2v(PKUNITY_PM_BASE + 0x0034)/* * PM Software Reset Reg PM_SWRESET */ -#define PM_SWRESET __REG(PKUNITY_PM_BASE + 0x0038) +#define PM_SWRESET io_p2v(PKUNITY_PM_BASE + 0x0038)/* * PM DDR2 PAD Start Reg PM_DDR2START */ -#define PM_DDR2START __REG(PKUNITY_PM_BASE + 0x003C) +#define PM_DDR2START io_p2v(PKUNITY_PM_BASE + 0x003C)/* * PM DDR2 PAD Status Reg PM_DDR2CAL0 */ -#define PM_DDR2CAL0 __REG(PKUNITY_PM_BASE + 0x0040) +#define PM_DDR2CAL0 io_p2v(PKUNITY_PM_BASE + 0x0040)/* * PM PLL DFC Done Reg PM_PLLDFCDONE */ -#define PM_PLLDFCDONE __REG(PKUNITY_PM_BASE + 0x0044) +#define PM_PLLDFCDONE io_p2v(PKUNITY_PM_BASE + 0x0044)#define PM_PMCR_SFB FIELD(1, 1, 0)#define PM_PMCR_IFB FIELD(1, 1, 1)
arch/unicore32/include/mach/regs-ps2.h +4 -4
@@ -4,17 +4,17 @@/* * the same as I8042_DATA_REG PS2_DATA */ -#define PS2_DATA __REG(PKUNITY_PS2_BASE + 0x0060) +#define PS2_DATA io_p2v(PKUNITY_PS2_BASE + 0x0060)/* * the same as I8042_COMMAND_REG PS2_COMMAND */ -#define PS2_COMMAND __REG(PKUNITY_PS2_BASE + 0x0064) +#define PS2_COMMAND io_p2v(PKUNITY_PS2_BASE + 0x0064)/* * the same as I8042_STATUS_REG PS2_STATUS */ -#define PS2_STATUS __REG(PKUNITY_PS2_BASE + 0x0064) +#define PS2_STATUS io_p2v(PKUNITY_PS2_BASE + 0x0064)/* * counter reg PS2_CNT */ -#define PS2_CNT __REG(PKUNITY_PS2_BASE + 0x0068) +#define PS2_CNT io_p2v(PKUNITY_PS2_BASE + 0x0068)
arch/unicore32/include/mach/regs-resetc.h +2 -2
@@ -4,11 +4,11 @@/* * Software Reset Register */ -#define RESETC_SWRR __REG(PKUNITY_RESETC_BASE + 0x0000) +#define RESETC_SWRR io_p2v(PKUNITY_RESETC_BASE + 0x0000)/* * Reset Status Register */ -#define RESETC_RSSR __REG(PKUNITY_RESETC_BASE + 0x0004) +#define RESETC_RSSR io_p2v(PKUNITY_RESETC_BASE + 0x0004)/* * Software Reset Bit
arch/unicore32/include/mach/regs-rtc.h +4 -4
@@ -4,19 +4,19 @@/* * RTC Alarm Reg RTC_RTAR */ -#define RTC_RTAR __REG(PKUNITY_RTC_BASE + 0x0000) +#define RTC_RTAR io_p2v(PKUNITY_RTC_BASE + 0x0000)/* * RTC Count Reg RTC_RCNR */ -#define RTC_RCNR __REG(PKUNITY_RTC_BASE + 0x0004) +#define RTC_RCNR io_p2v(PKUNITY_RTC_BASE + 0x0004)/* * RTC Trim Reg RTC_RTTR */ -#define RTC_RTTR __REG(PKUNITY_RTC_BASE + 0x0008) +#define RTC_RTTR io_p2v(PKUNITY_RTC_BASE + 0x0008)/* * RTC Status Reg RTC_RTSR */ -#define RTC_RTSR __REG(PKUNITY_RTC_BASE + 0x0010) +#define RTC_RTSR io_p2v(PKUNITY_RTC_BASE + 0x0010)/* * ALarm detected RTC_RTSR_AL
arch/unicore32/include/mach/regs-sdc.h +16 -16
@@ -4,67 +4,67 @@/* * Clock Control Reg SDC_CCR */ -#define SDC_CCR __REG(PKUNITY_SDC_BASE + 0x0000) +#define SDC_CCR io_p2v(PKUNITY_SDC_BASE + 0x0000)/* * Software Reset Reg SDC_SRR */ -#define SDC_SRR __REG(PKUNITY_SDC_BASE + 0x0004) +#define SDC_SRR io_p2v(PKUNITY_SDC_BASE + 0x0004)/* * Argument Reg SDC_ARGUMENT */ -#define SDC_ARGUMENT __REG(PKUNITY_SDC_BASE + 0x0008) +#define SDC_ARGUMENT io_p2v(PKUNITY_SDC_BASE + 0x0008)/* * Command Reg SDC_COMMAND */ -#define SDC_COMMAND __REG(PKUNITY_SDC_BASE + 0x000C) +#define SDC_COMMAND io_p2v(PKUNITY_SDC_BASE + 0x000C)/* * Block Size Reg SDC_BLOCKSIZE */ -#define SDC_BLOCKSIZE __REG(PKUNITY_SDC_BASE + 0x0010) +#define SDC_BLOCKSIZE io_p2v(PKUNITY_SDC_BASE + 0x0010)/* * Block Cound Reg SDC_BLOCKCOUNT */ -#define SDC_BLOCKCOUNT __REG(PKUNITY_SDC_BASE + 0x0014) +#define SDC_BLOCKCOUNT io_p2v(PKUNITY_SDC_BASE + 0x0014)/* * Transfer Mode Reg SDC_TMR */ -#define SDC_TMR __REG(PKUNITY_SDC_BASE + 0x0018) +#define SDC_TMR io_p2v(PKUNITY_SDC_BASE + 0x0018)/* * Response Reg. 0 SDC_RES0 */ -#define SDC_RES0 __REG(PKUNITY_SDC_BASE + 0x001C) +#define SDC_RES0 io_p2v(PKUNITY_SDC_BASE + 0x001C)/* * Response Reg. 1 SDC_RES1 */ -#define SDC_RES1 __REG(PKUNITY_SDC_BASE + 0x0020) +#define SDC_RES1 io_p2v(PKUNITY_SDC_BASE + 0x0020)/* * Response Reg. 2 SDC_RES2 */ -#define SDC_RES2 __REG(PKUNITY_SDC_BASE + 0x0024) +#define SDC_RES2 io_p2v(PKUNITY_SDC_BASE + 0x0024)/* * Response Reg. 3 SDC_RES3 */ -#define SDC_RES3 __REG(PKUNITY_SDC_BASE + 0x0028) +#define SDC_RES3 io_p2v(PKUNITY_SDC_BASE + 0x0028)/* * Read Timeout Control Reg SDC_RTCR */ -#define SDC_RTCR __REG(PKUNITY_SDC_BASE + 0x002C) +#define SDC_RTCR io_p2v(PKUNITY_SDC_BASE + 0x002C)/* * Interrupt Status Reg SDC_ISR */ -#define SDC_ISR __REG(PKUNITY_SDC_BASE + 0x0030) +#define SDC_ISR io_p2v(PKUNITY_SDC_BASE + 0x0030)/* * Interrupt Status Mask Reg SDC_ISMR */ -#define SDC_ISMR __REG(PKUNITY_SDC_BASE + 0x0034) +#define SDC_ISMR io_p2v(PKUNITY_SDC_BASE + 0x0034)/* * RX FIFO SDC_RXFIFO */ -#define SDC_RXFIFO __REG(PKUNITY_SDC_BASE + 0x0038) +#define SDC_RXFIFO io_p2v(PKUNITY_SDC_BASE + 0x0038)/* * TX FIFO SDC_TXFIFO */ -#define SDC_TXFIFO __REG(PKUNITY_SDC_BASE + 0x003C) +#define SDC_TXFIFO io_p2v(PKUNITY_SDC_BASE + 0x003C)/* * SD Clock Enable SDC_CCR_CLKEN
arch/unicore32/include/mach/regs-spi.h +6 -6
@@ -4,27 +4,27 @@/* * Control reg. 0 SPI_CR0 */ -#define SPI_CR0 __REG(PKUNITY_SPI_BASE + 0x0000) +#define SPI_CR0 io_p2v(PKUNITY_SPI_BASE + 0x0000)/* * Control reg. 1 SPI_CR1 */ -#define SPI_CR1 __REG(PKUNITY_SPI_BASE + 0x0004) +#define SPI_CR1 io_p2v(PKUNITY_SPI_BASE + 0x0004)/* * Enable reg SPI_SSIENR */ -#define SPI_SSIENR __REG(PKUNITY_SPI_BASE + 0x0008) +#define SPI_SSIENR io_p2v(PKUNITY_SPI_BASE + 0x0008)/* * Status reg SPI_SR */ -#define SPI_SR __REG(PKUNITY_SPI_BASE + 0x0028) +#define SPI_SR io_p2v(PKUNITY_SPI_BASE + 0x0028)/* * Interrupt Mask reg SPI_IMR */ -#define SPI_IMR __REG(PKUNITY_SPI_BASE + 0x002C) +#define SPI_IMR io_p2v(PKUNITY_SPI_BASE + 0x002C)/* * Interrupt Status reg SPI_ISR */ -#define SPI_ISR __REG(PKUNITY_SPI_BASE + 0x0030) +#define SPI_ISR io_p2v(PKUNITY_SPI_BASE + 0x0030)/* * Enable SPI Controller SPI_SSIENR_EN
arch/unicore32/include/mach/regs-umal.h +38 -38
159 lines not on this page · raw message
arch/unicore32/include/mach/regs-unigfx.h +64 -64
233 lines not on this page · raw message
Signature · 1 line
1.7.4.1
PATCH 17/17 unicore32: replace unicore32-specific iomap functions with generic lib implementation
In reply to Guan XuetaoFrom: GuanXuetao <[email protected]>
1. define and enable CONFIG_GENERIC_IOMAP
2. define unicore32-specific PCI_IOBASE for asm-generic/io.h
3. define HAVE_ARCH_PIO_SIZE and unicore32-specific PIO_* macros
4. remove all unicore32-specific iomap functions
--- arch/unicore32/Kconfig | 3 ++ arch/unicore32/include/asm/io.h | 9 ++++-- arch/unicore32/mm/Makefile | 2 +- arch/unicore32/mm/iomap.c | 56 --------------------------------------- 4 files changed, 10 insertions(+), 60 deletions(-) delete mode 100644 arch/unicore32/mm/iomap.c
arch/unicore32/Kconfig +3 -0
@@ -30,6 +30,9 @@ config GENERIC_CLOCKEVENTS config GENERIC_CSUM def_bool y +config GENERIC_IOMAP + def_bool y + config NO_IOPORT bool
arch/unicore32/include/asm/io.h +6 -3
@@ -18,6 +18,7 @@#include <asm/memory.h> #include <asm/system.h> +#define PCI_IOBASE io_p2v(PKUNITY_PCILIO_BASE)#include <asm-generic/io.h> /*
@@ -38,9 +39,6 @@ extern void __uc32_iounmap(volatile void __iomem *addr);#define ioremap_cached (cookie, size) __uc32_ioremap_cached(cookie, size)#define iounmap (cookie) __uc32_iounmap(cookie) -extern void __iomem *ioport_map (unsigned long port,unsigned int nr); -extern void ioport_unmap (void __iomem *addr); -/* * Convert a physical pointer to a virtual kernel pointer for /dev/mem * access
@@ -48,5 +46,10 @@ extern void ioport_unmap(void __iomem *addr);#undef xlate_dev_mem_ptr#define xlate_dev_mem_ptr (p) __va(p) +#define HAVE_ARCH_PIO_SIZE +#define PIO_OFFSET (unsigned int)(PCI_IOBASE) +#define PIO_MASK (unsigned int)(IO_SPACE_LIMIT) +#define PIO_RESERVED (PIO_OFFSET + PIO_MASK + 1) +#endif /* __KERNEL__ */ #endif /* __UNICORE_IO_H__ */
arch/unicore32/mm/Makefile +1 -1
@@ -3,7 +3,7 @@ # obj-y := extable.o fault.o init.o pgd.o mmu.o -obj-y += iomap.o flush.o ioremap.o +obj-y += flush.o ioremap.o obj-$(CONFIG_SWIOTLB) += dma-swiotlb.o
arch/unicore32/mm/iomap.c deleted +0 -56
56 lines not on this page · raw message
Signature · 1 line
1.7.4.1
Re: [PATCH 01/17] unicore32 machine related files: core files
In reply to Guan XuetaoQuoted 5 lines · Guan Xuetao
From: GuanXuetao <[email protected]>
This patch adds machine related core files, also including build infrastructure.
Signed-off-by Guan Xuetao <[email protected]>
Re: [PATCH 13/17] unicore32 io: redefine __REG(x) and re-use readl/writel funcs
In reply to Guan XuetaoQuoted 5 lines · Guan Xuetao
From: GuanXuetao <[email protected]>
-- by advice of Arnd Bergmann
Signed-off-by Guan Xuetao <[email protected]>
I was expecting this to get folded into the patches that introduce the files, but this way is fine as well.
Re: [PATCH 15/17] unicore32 machine related: add frame buffer driver for pkunity-v3 soc
In reply to Guan XuetaoQuoted 13 lines · Guan Xuetao
From: GuanXuetao <[email protected]>
change from original version -- by advice of Paul Mundt
1. remove videomemorysize definitions
2. removeunifb_enableandunifb_setup
3. usedev_warninstead of printk in fb driver
4. remove judgement forFB_ACCEL_PUV3_UNIGFX
5. adjustclk_getandclk_set_ratecalls
6. add resources definitions
7. removeunifb_option
8. adjust register forplatform_device
9. adjustunifb_opsposition andunifb_regsassignment position
Quoted 1 line
Signed-off-by Guan Xuetao <[email protected]>
Re: [PATCH 17/17] unicore32: replace unicore32-specific iomap functions with generic lib implementation
In reply to Guan XuetaoQuoted 8 lines · Guan Xuetao
From: GuanXuetao <[email protected]>
1. define and enable
CONFIG_GENERIC_IOMAP
2. define unicore32-specificPCI_IOBASEforasm-generic/io.h
3. defineHAVE_ARCH_PIO_SIZEand unicore32-specific PIO_* macros
4. remove all unicore32-specific iomap functionsSigned-off-by Guan Xuetao <[email protected]>
Re: [PATCH 14/17] unicore32 machine related files: add i2c bus drivers for pkunity-v3 soc
In reply to Guan XuetaoQuoted 11 lines · Guan Xuetao
From: GuanXuetao <[email protected]>
change from original version -- by advice of Jean Delvare
1. remove global variablei2c_reg, replaced by local variables
2. replace ENXIO with ENODEV when no platform resources
3. addadapter->nrassignment beforei2c_add_numbered_adapter()call
4. add judgement fori2c_del_adapter()return value
5. release adapter when driver removed
6. add__devexitforpuv3_i2c_remove()function
7. modify several names to more appropriated ones
Quoted 1 line
Signed-off-by Guan Xuetao <[email protected]>
Arnd Bergmann
maintainerRe: [PATCH 16/17] unicore32: add (void __iomem *) to io_p2v macro
In reply to Guan XuetaoQuoted 5 lines · Guan Xuetao
arch/unicore32/include/mach/regs-ac97.h +0
-5-#define PKUNITY_AC97_CONR __REG(PKUNITY_AC97_BASE + 0x0000) -#define PKUNITY_AC97_OCR __REG(PKUNITY_AC97_BASE + 0x0004) -#define PKUNITY_AC97_ICR __REG(PKUNITY_AC97_BASE + 0x0008) -#define PKUNITY_AC97_CRAC __REG(PKUNITY_AC97_BASE + 0x000C) -#define PKUNITY_AC97_INTR __REG(PKUNITY_AC97_BASE + 0x0010)
arch/unicore32/include/mach/regs-ac97.h line 9
Quoted 10 lines
arch/unicore32/include/mach/regs-ac97.h +5
-5-#define PKUNITY_AC97_INTRSTAT __REG(PKUNITY_AC97_BASE + 0x0014) -#define PKUNITY_AC97_INTRCLEAR __REG(PKUNITY_AC97_BASE + 0x0018) -#define PKUNITY_AC97_ENABLE __REG(PKUNITY_AC97_BASE + 0x001C) -#define PKUNITY_AC97_OUT_FIFO __REG(PKUNITY_AC97_BASE + 0x0020) -#define PKUNITY_AC97_IN_FIFO __REG(PKUNITY_AC97_BASE + 0x0030) +#define PKUNITY_AC97_CONR io_p2v(PKUNITY_AC97_BASE + 0x0000) +#define PKUNITY_AC97_OCR io_p2v(PKUNITY_AC97_BASE + 0x0004) +#define PKUNITY_AC97_ICR io_p2v(PKUNITY_AC97_BASE + 0x0008) +#define PKUNITY_AC97_CRAC io_p2v(PKUNITY_AC97_BASE + 0x000C) +#define PKUNITY_AC97_INTR io_p2v(PKUNITY_AC97_BASE + 0x0010)
One more comment on the types here (applies to the entire patch):
It would be more straightforward to the define the underlying base addresses using io_p2v, and then do a simple addition, instead of another macro that adds a type cast:
#define PKUNITY_SYSTEM_AHB io_p2v(0xC0000000)
#define PKUNITY_PERIPHERAL_AHB io_p2v(0xEE000000)
#define PKUNITY_UART0_BASE (PKUNITY_PERIPHERAL_AHB + 0x00000000)
#define PKUNITY_AC97_BASE (PKUNITY_PERIPHERAL_AHB + 0x00400000)
#define PKUNITY_AC97_CONR (PKUNITY_AC97_BASE + 0x0000)
#define PKUNITY_AC97_OCR (PKUNITY_AC97_BASE + 0x0004)
It would be nice if you could do that for the entire set of hardware headers.
In the long run, I would recommend moving away from hardcoded I/O addresses entirely, but you can do that at the same time as moving to a flattened device tree. When you do that, every driver will do an individual ioremap to get the virtual address for a physical location, rather than doing it once at boot time for all hardware. This makes the code more flexible when dealing with multiple SoC implemetations, but it's not something that you need to worry about too much for the initial merge.
Arnd
RE: [PATCH 13/17] unicore32 io: redefine __REG(x) and re-use readl/writel funcs
In reply to Arnd BergmannQuoted 12 lines
-----Original Message-----
From: Arnd Bergmann [mailto:[email protected]]
Sent: Monday, February 28, 2011 11:17 PM
To: Guan Xuetao
Cc: GuanXuetao; [email protected]; [email protected]; [email protected]
Subject: Re: [PATCH 13/17] unicore32 io: redefine__REG(x)and re-use readl/writel funcsQuoted 2 lines · Guan Xuetao
From: GuanXuetao <[email protected]>
Quoted 8 lines
Quoted 3 lines
-- by advice of Arnd Bergmann
Signed-off-by Guan Xuetao <[email protected]>Reviewed-by Arnd Bergmann <[email protected]>I was expecting this to get folded into the patches that introduce the files, but this way is fine as well.
I want to keep the patches for core and additional architecture files stable, so each usage of old __REG macor should be replaced by readl/writel and then generating a big patch.
Thanks & Regards.
Guan Xuetao
Arnd Bergmann
maintainerRe: [PATCH 13/17] unicore32 io: redefine __REG(x) and re-use readl/writel funcs
Quoted 6 lines · On Friday 04 March 2011 09:00:55 Guan Xuetao wrote:
Quoted 4 lines
Reviewed-by Arnd Bergmann <[email protected]>I was expecting this to get folded into the patches that introduce the files, but this way is fine as well.
I want to keep the patches for core and additional architecture files stable, so each usage of old
__REGmacor should be replaced by readl/writel and then generating a big patch.
Ok, makes sense.
Arnd
RE: [PATCH 16/17] unicore32: add (void __iomem *) to io_p2v macro
In reply to Arnd BergmannQuoted 35 lines
-----Original Message-----
From: Arnd Bergmann [mailto:[email protected]]
Sent: Monday, February 28, 2011 11:36 PM
To: Guan Xuetao
Cc: GuanXuetao; [email protected]; [email protected]; [email protected]
Subject: Re: [PATCH 16/17] unicore32: add (void__iomem*) toio_p2vmacroQuoted 5 lines · Guan Xuetao
(quoted diff) +0
-5-#define PKUNITY_AC97_CONR __REG(PKUNITY_AC97_BASE + 0x0000) -#define PKUNITY_AC97_OCR __REG(PKUNITY_AC97_BASE + 0x0004) -#define PKUNITY_AC97_ICR __REG(PKUNITY_AC97_BASE + 0x0008) -#define PKUNITY_AC97_CRAC __REG(PKUNITY_AC97_BASE + 0x000C) -#define PKUNITY_AC97_INTR __REG(PKUNITY_AC97_BASE + 0x0010)Review
Quoted 10 lines
(quoted diff) +5
-5-#define PKUNITY_AC97_INTRSTAT __REG(PKUNITY_AC97_BASE + 0x0014) -#define PKUNITY_AC97_INTRCLEAR __REG(PKUNITY_AC97_BASE + 0x0018) -#define PKUNITY_AC97_ENABLE __REG(PKUNITY_AC97_BASE + 0x001C) -#define PKUNITY_AC97_OUT_FIFO __REG(PKUNITY_AC97_BASE + 0x0020) -#define PKUNITY_AC97_IN_FIFO __REG(PKUNITY_AC97_BASE + 0x0030) +#define PKUNITY_AC97_CONR io_p2v(PKUNITY_AC97_BASE + 0x0000) +#define PKUNITY_AC97_OCR io_p2v(PKUNITY_AC97_BASE + 0x0004) +#define PKUNITY_AC97_ICR io_p2v(PKUNITY_AC97_BASE + 0x0008) +#define PKUNITY_AC97_CRAC io_p2v(PKUNITY_AC97_BASE + 0x000C) +#define PKUNITY_AC97_INTR io_p2v(PKUNITY_AC97_BASE + 0x0010)One more comment on the types here (applies to the entire patch):
It would be more straightforward to the define the underlying base addresses using
io_p2v, and then do a simple addition, instead of another macro that adds a type cast:#define
PKUNITY_SYSTEM_AHBio_p2v(0xC0000000)
#definePKUNITY_PERIPHERAL_AHBio_p2v(0xEE000000)
Quoted 8 lines
#define
PKUNITY_UART0_BASE(PKUNITY_PERIPHERAL_AHB+0x00000000)
#definePKUNITY_AC97_BASE(PKUNITY_PERIPHERAL_AHB+0x00400000)#define
PKUNITY_AC97_CONR(PKUNITY_AC97_BASE+0x0000)
#definePKUNITY_AC97_OCR(PKUNITY_AC97_BASE+0x0004)It would be nice if you could do that for the entire set of hardware headers.
Ok, I rewrite this patch, as following (sorry for tediousness):
From: GuanXuetao <[email protected]>
Date: Fri, 4 Mar 2011 18:07:48 +0800
Subject: [PATCH] unicore32: modify io_p2v and io_v2p macros, and adjust PKUNITY_mmio_BASEs
1. remove __REG macro
2. add (void __iomem *) to io_p2v macro
3. add (phys_addr_t) to io_v2p macro
4. add PKUNITY_AHB_BASE and PKUNITY_APB_BASE definitions
5. modify all PKUNITY_mmio_BASEs from physical addr to virtual addr
6. adjust prefix macro for all usage of PKUNITY_mmio_BASEs -- by advice with Arnd Bergmann
--- arch/unicore32/include/asm/io.h | 2 +- arch/unicore32/include/mach/PKUnity.h | 88 ++++++++++---------- arch/unicore32/include/mach/hardware.h | 11 +-- arch/unicore32/include/mach/memory.h | 4 +- arch/unicore32/include/mach/regs-ac97.h | 20 ++-- arch/unicore32/include/mach/regs-dmac.h | 20 ++-- arch/unicore32/include/mach/regs-gpio.h | 16 ++-- arch/unicore32/include/mach/regs-i2c.h | 16 ++-- arch/unicore32/include/mach/regs-intc.h | 12 ++-- arch/unicore32/include/mach/regs-nand.h | 32 ++++---- arch/unicore32/include/mach/regs-ost.h | 22 +++--- arch/unicore32/include/mach/regs-pci.h | 122 ++++++++++++++-------------- arch/unicore32/include/mach/regs-pm.h | 36 ++++---- arch/unicore32/include/mach/regs-ps2.h | 8 +- arch/unicore32/include/mach/regs-resetc.h | 4 +- arch/unicore32/include/mach/regs-rtc.h | 8 +- arch/unicore32/include/mach/regs-sdc.h | 32 ++++---- arch/unicore32/include/mach/regs-spi.h | 12 ++-- arch/unicore32/include/mach/regs-umal.h | 76 +++++++++--------- arch/unicore32/include/mach/regs-unigfx.h | 128 ++++++++++++++-------------- arch/unicore32/kernel/entry.S | 2 +- arch/unicore32/kernel/irq.c | 4 +- arch/unicore32/kernel/pci.c | 12 ++-- arch/unicore32/kernel/puv3-core.c | 32 ++++---- arch/unicore32/kernel/puv3-nb0916.c | 4 +- arch/unicore32/kernel/sleep.S | 4 +- 26 files changed, 365 insertions(+), 362 deletions(-)
arch/unicore32/include/asm/io.h +1 -1
@@ -18,7 +18,7 @@#include <asm/memory.h> #include <asm/system.h> -#define PCI_IOBASE io_p2v(PKUNITY_PCILIO_BASE) +#define PCI_IOBASE PKUNITY_PCILIO_BASE#include <asm-generic/io.h> /*
arch/unicore32/include/mach/PKUnity.h +46 -42
129 lines not on this page · raw message
arch/unicore32/include/mach/hardware.h +5 -6
@@ -17,17 +17,16 @@#include "PKUnity.h" +#ifndef __ASSEMBLY__ +#define io_p2v (x) (void __iomem *)((x) - PKUNITY_MMIO_BASE) +#define io_v2p (x) (phys_addr_t)((x) + PKUNITY_MMIO_BASE) +#else #define io_p2v (x) ((x) - PKUNITY_MMIO_BASE)#define io_v2p (x) ((x) + PKUNITY_MMIO_BASE) - -#ifndef __ASSEMBLY__ - -# define __REG (x) (void __iomem *)io_p2v(x) -#endif #define PCIBIOS_MIN_IO 0x4000/* should lower than 64KB */ -#define PCIBIOS_MIN_MEM PKUNITY_PCIMEM_BASE +#define PCIBIOS_MIN_MEM io_v2p(PKUNITY_PCIMEM_BASE)/* * We override the standard dma-mask routines for bouncing.
arch/unicore32/include/mach/memory.h +2 -2
@@ -45,8 +45,8 @@ void puv3_pci_adjust_zones(unsigned long *size, unsigned long *holes);#define is_pcibus_device (dev) (dev && \ (strncmp(dev->bus->name, "pci", 3) == 0)) -#define __virt_to_pcibus (x) (__virt_to_phys(x) + PKUNITY_PCIAHB_BASE) -#define __pcibus_to_virt (x) __phys_to_virt((x) - PKUNITY_PCIAHB_BASE) +#define __virt_to_pcibus (x) (__virt_to_phys((x) + PKUNITY_PCIAHB_BASE)) +#define __pcibus_to_virt (x) (__phys_to_virt(x) - PKUNITY_PCIAHB_BASE)/* kuser area */ #define KUSER_VECPAGE_BASE (KUSER_BASE + UL(0x3fff0000))
arch/unicore32/include/mach/regs-ac97.h +10 -10
@@ -2,16 +2,16 @@* PKUnity AC97 Registers */ -#define PKUNITY_AC97_CONR __REG(PKUNITY_AC97_BASE + 0x0000) -#define PKUNITY_AC97_OCR __REG(PKUNITY_AC97_BASE + 0x0004) -#define PKUNITY_AC97_ICR __REG(PKUNITY_AC97_BASE + 0x0008) -#define PKUNITY_AC97_CRAC __REG(PKUNITY_AC97_BASE + 0x000C) -#define PKUNITY_AC97_INTR __REG(PKUNITY_AC97_BASE + 0x0010) -#define PKUNITY_AC97_INTRSTAT __REG(PKUNITY_AC97_BASE + 0x0014) -#define PKUNITY_AC97_INTRCLEAR __REG(PKUNITY_AC97_BASE + 0x0018) -#define PKUNITY_AC97_ENABLE __REG(PKUNITY_AC97_BASE + 0x001C) -#define PKUNITY_AC97_OUT_FIFO __REG(PKUNITY_AC97_BASE + 0x0020) -#define PKUNITY_AC97_IN_FIFO __REG(PKUNITY_AC97_BASE + 0x0030) +#define PKUNITY_AC97_CONR (PKUNITY_AC97_BASE + 0x0000) +#define PKUNITY_AC97_OCR (PKUNITY_AC97_BASE + 0x0004) +#define PKUNITY_AC97_ICR (PKUNITY_AC97_BASE + 0x0008) +#define PKUNITY_AC97_CRAC (PKUNITY_AC97_BASE + 0x000C) +#define PKUNITY_AC97_INTR (PKUNITY_AC97_BASE + 0x0010) +#define PKUNITY_AC97_INTRSTAT (PKUNITY_AC97_BASE + 0x0014) +#define PKUNITY_AC97_INTRCLEAR (PKUNITY_AC97_BASE + 0x0018) +#define PKUNITY_AC97_ENABLE (PKUNITY_AC97_BASE + 0x001C) +#define PKUNITY_AC97_OUT_FIFO (PKUNITY_AC97_BASE + 0x0020) +#define PKUNITY_AC97_IN_FIFO (PKUNITY_AC97_BASE + 0x0030)#define AC97_CODEC_REG (v) FIELD((v), 7, 16)#define AC97_CODEC_VAL (v) FIELD((v), 16, 0)
arch/unicore32/include/mach/regs-dmac.h +10 -10
@@ -5,27 +5,27 @@/* * Interrupt Status Reg DMAC_ISR. */ -#define DMAC_ISR __REG(PKUNITY_DMAC_BASE + 0x0020) +#define DMAC_ISR (PKUNITY_DMAC_BASE + 0x0020)/* * Interrupt Transfer Complete Status Reg DMAC_ITCSR. */ -#define DMAC_ITCSR __REG(PKUNITY_DMAC_BASE + 0x0050) +#define DMAC_ITCSR (PKUNITY_DMAC_BASE + 0x0050)/* * Interrupt Transfer Complete Clear Reg DMAC_ITCCR. */ -#define DMAC_ITCCR __REG(PKUNITY_DMAC_BASE + 0x0060) +#define DMAC_ITCCR (PKUNITY_DMAC_BASE + 0x0060)/* * Interrupt Error Status Reg DMAC_IESR. */ -#define DMAC_IESR __REG(PKUNITY_DMAC_BASE + 0x0080) +#define DMAC_IESR (PKUNITY_DMAC_BASE + 0x0080)/* * Interrupt Error Clear Reg DMAC_IECR. */ -#define DMAC_IECR __REG(PKUNITY_DMAC_BASE + 0x0090) +#define DMAC_IECR (PKUNITY_DMAC_BASE + 0x0090)/* * Enable Channels Reg DMAC_ENCH. */ -#define DMAC_ENCH __REG(PKUNITY_DMAC_BASE + 0x00B0) +#define DMAC_ENCH (PKUNITY_DMAC_BASE + 0x00B0)/* * DMA control reg. Space [byte]
@@ -35,19 +35,19 @@/* * Source Addr DMAC_SRCADDR(ch). */ -#define DMAC_SRCADDR (ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x00) +#define DMAC_SRCADDR (ch) (PKUNITY_DMAC_BASE + (ch)*DMASp + 0x00)/* * Destination Addr DMAC_DESTADDR(ch). */ -#define DMAC_DESTADDR (ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x04) +#define DMAC_DESTADDR (ch) (PKUNITY_DMAC_BASE + (ch)*DMASp + 0x04)/* * Control Reg DMAC_CONTROL(ch). */ -#define DMAC_CONTROL (ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x0C) +#define DMAC_CONTROL (ch) (PKUNITY_DMAC_BASE + (ch)*DMASp + 0x0C)/* * Configuration Reg DMAC_CONFIG(ch). */ -#define DMAC_CONFIG (ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x10) +#define DMAC_CONFIG (ch) (PKUNITY_DMAC_BASE + (ch)*DMASp + 0x10)#define DMAC_IR_MASK FMASK(6, 0)/*
arch/unicore32/include/mach/regs-gpio.h +8 -8
@@ -5,35 +5,35 @@/* * Voltage Status Reg GPIO_GPLR. */ -#define GPIO_GPLR __REG(PKUNITY_GPIO_BASE + 0x0000) +#define GPIO_GPLR (PKUNITY_GPIO_BASE + 0x0000)/* * Pin Direction Reg GPIO_GPDR. */ -#define GPIO_GPDR __REG(PKUNITY_GPIO_BASE + 0x0004) +#define GPIO_GPDR (PKUNITY_GPIO_BASE + 0x0004)/* * Output Pin Set Reg GPIO_GPSR. */ -#define GPIO_GPSR __REG(PKUNITY_GPIO_BASE + 0x0008) +#define GPIO_GPSR (PKUNITY_GPIO_BASE + 0x0008)/* * Output Pin Clear Reg GPIO_GPCR. */ -#define GPIO_GPCR __REG(PKUNITY_GPIO_BASE + 0x000C) +#define GPIO_GPCR (PKUNITY_GPIO_BASE + 0x000C)/* * Raise Edge Detect Reg GPIO_GRER. */ -#define GPIO_GRER __REG(PKUNITY_GPIO_BASE + 0x0010) +#define GPIO_GRER (PKUNITY_GPIO_BASE + 0x0010)/* * Fall Edge Detect Reg GPIO_GFER. */ -#define GPIO_GFER __REG(PKUNITY_GPIO_BASE + 0x0014) +#define GPIO_GFER (PKUNITY_GPIO_BASE + 0x0014)/* * Edge Status Reg GPIO_GEDR. */ -#define GPIO_GEDR __REG(PKUNITY_GPIO_BASE + 0x0018) +#define GPIO_GEDR (PKUNITY_GPIO_BASE + 0x0018)/* * Sepcial Voltage Detect Reg GPIO_GPIR. */ -#define GPIO_GPIR __REG(PKUNITY_GPIO_BASE + 0x0020) +#define GPIO_GPIR (PKUNITY_GPIO_BASE + 0x0020)#define GPIO_MIN (0)#define GPIO_MAX (27)
arch/unicore32/include/mach/regs-i2c.h +8 -8
@@ -5,35 +5,35 @@/* * Control Reg I2C_CON. */ -#define I2C_CON __REG(PKUNITY_I2C_BASE + 0x0000) +#define I2C_CON (PKUNITY_I2C_BASE + 0x0000)/* * Target Address Reg I2C_TAR. */ -#define I2C_TAR __REG(PKUNITY_I2C_BASE + 0x0004) +#define I2C_TAR (PKUNITY_I2C_BASE + 0x0004)/* * Data buffer and command Reg I2C_DATACMD. */ -#define I2C_DATACMD __REG(PKUNITY_I2C_BASE + 0x0010) +#define I2C_DATACMD (PKUNITY_I2C_BASE + 0x0010)/* * Enable Reg I2C_ENABLE. */ -#define I2C_ENABLE __REG(PKUNITY_I2C_BASE + 0x006C) +#define I2C_ENABLE (PKUNITY_I2C_BASE + 0x006C)/* * Status Reg I2C_STATUS. */ -#define I2C_STATUS __REG(PKUNITY_I2C_BASE + 0x0070) +#define I2C_STATUS (PKUNITY_I2C_BASE + 0x0070)/* * Tx FIFO Length Reg I2C_TXFLR. */ -#define I2C_TXFLR __REG(PKUNITY_I2C_BASE + 0x0074) +#define I2C_TXFLR (PKUNITY_I2C_BASE + 0x0074)/* * Rx FIFO Length Reg I2C_RXFLR. */ -#define I2C_RXFLR __REG(PKUNITY_I2C_BASE + 0x0078) +#define I2C_RXFLR (PKUNITY_I2C_BASE + 0x0078)/* * Enable Status Reg I2C_ENSTATUS. */ -#define I2C_ENSTATUS __REG(PKUNITY_I2C_BASE + 0x009C) +#define I2C_ENSTATUS (PKUNITY_I2C_BASE + 0x009C)#define I2C_CON_MASTER FIELD(1, 1, 0)#define I2C_CON_SPEED_STD FIELD(1, 2, 1)
arch/unicore32/include/mach/regs-intc.h +6 -6
@@ -4,25 +4,25 @@/* * INTC Level Reg INTC_ICLR. */ -#define INTC_ICLR __REG(PKUNITY_INTC_BASE + 0x0000) +#define INTC_ICLR (PKUNITY_INTC_BASE + 0x0000)/* * INTC Mask Reg INTC_ICMR. */ -#define INTC_ICMR __REG(PKUNITY_INTC_BASE + 0x0004) +#define INTC_ICMR (PKUNITY_INTC_BASE + 0x0004)/* * INTC Pending Reg INTC_ICPR. */ -#define INTC_ICPR __REG(PKUNITY_INTC_BASE + 0x0008) +#define INTC_ICPR (PKUNITY_INTC_BASE + 0x0008)/* * INTC IRQ Pending Reg INTC_ICIP. */ -#define INTC_ICIP __REG(PKUNITY_INTC_BASE + 0x000C) +#define INTC_ICIP (PKUNITY_INTC_BASE + 0x000C)/* * INTC REAL Pending Reg INTC_ICFP. */ -#define INTC_ICFP __REG(PKUNITY_INTC_BASE + 0x0010) +#define INTC_ICFP (PKUNITY_INTC_BASE + 0x0010)/* * INTC Control Reg INTC_ICCR. */ -#define INTC_ICCR __REG(PKUNITY_INTC_BASE + 0x0014) +#define INTC_ICCR (PKUNITY_INTC_BASE + 0x0014)
arch/unicore32/include/mach/regs-nand.h +16 -16
@@ -4,67 +4,67 @@/* * ID Reg. 0 NAND_IDR0 */ -#define NAND_IDR0 __REG(PKUNITY_NAND_BASE + 0x0000) +#define NAND_IDR0 (PKUNITY_NAND_BASE + 0x0000)/* * ID Reg. 1 NAND_IDR1 */ -#define NAND_IDR1 __REG(PKUNITY_NAND_BASE + 0x0004) +#define NAND_IDR1 (PKUNITY_NAND_BASE + 0x0004)/* * ID Reg. 2 NAND_IDR2 */ -#define NAND_IDR2 __REG(PKUNITY_NAND_BASE + 0x0008) +#define NAND_IDR2 (PKUNITY_NAND_BASE + 0x0008)/* * ID Reg. 3 NAND_IDR3 */ -#define NAND_IDR3 __REG(PKUNITY_NAND_BASE + 0x000C) +#define NAND_IDR3 (PKUNITY_NAND_BASE + 0x000C)/* * Page Address Reg 0 NAND_PAR0 */ -#define NAND_PAR0 __REG(PKUNITY_NAND_BASE + 0x0010) +#define NAND_PAR0 (PKUNITY_NAND_BASE + 0x0010)/* * Page Address Reg 1 NAND_PAR1 */ -#define NAND_PAR1 __REG(PKUNITY_NAND_BASE + 0x0014) +#define NAND_PAR1 (PKUNITY_NAND_BASE + 0x0014)/* * Page Address Reg 2 NAND_PAR2 */ -#define NAND_PAR2 __REG(PKUNITY_NAND_BASE + 0x0018) +#define NAND_PAR2 (PKUNITY_NAND_BASE + 0x0018)/* * ECC Enable Reg NAND_ECCEN */ -#define NAND_ECCEN __REG(PKUNITY_NAND_BASE + 0x001C) +#define NAND_ECCEN (PKUNITY_NAND_BASE + 0x001C)/* * Buffer Reg NAND_BUF */ -#define NAND_BUF __REG(PKUNITY_NAND_BASE + 0x0020) +#define NAND_BUF (PKUNITY_NAND_BASE + 0x0020)/* * ECC Status Reg NAND_ECCSR */ -#define NAND_ECCSR __REG(PKUNITY_NAND_BASE + 0x0024) +#define NAND_ECCSR (PKUNITY_NAND_BASE + 0x0024)/* * Command Reg NAND_CMD */ -#define NAND_CMD __REG(PKUNITY_NAND_BASE + 0x0028) +#define NAND_CMD (PKUNITY_NAND_BASE + 0x0028)/* * DMA Configure Reg NAND_DMACR */ -#define NAND_DMACR __REG(PKUNITY_NAND_BASE + 0x002C) +#define NAND_DMACR (PKUNITY_NAND_BASE + 0x002C)/* * Interrupt Reg NAND_IR */ -#define NAND_IR __REG(PKUNITY_NAND_BASE + 0x0030) +#define NAND_IR (PKUNITY_NAND_BASE + 0x0030)/* * Interrupt Mask Reg NAND_IMR */ -#define NAND_IMR __REG(PKUNITY_NAND_BASE + 0x0034) +#define NAND_IMR (PKUNITY_NAND_BASE + 0x0034)/* * Chip Enable Reg NAND_CHIPEN */ -#define NAND_CHIPEN __REG(PKUNITY_NAND_BASE + 0x0038) +#define NAND_CHIPEN (PKUNITY_NAND_BASE + 0x0038)/* * Address Reg NAND_ADDR */ -#define NAND_ADDR __REG(PKUNITY_NAND_BASE + 0x003C) +#define NAND_ADDR (PKUNITY_NAND_BASE + 0x003C)/* * Command bits NAND_CMD_CMD_MASK
arch/unicore32/include/mach/regs-ost.h +11 -11
@@ -4,47 +4,47 @@/* * Match Reg 0 OST_OSMR0 */ -#define OST_OSMR0 __REG(PKUNITY_OST_BASE + 0x0000) +#define OST_OSMR0 (PKUNITY_OST_BASE + 0x0000)/* * Match Reg 1 OST_OSMR1 */ -#define OST_OSMR1 __REG(PKUNITY_OST_BASE + 0x0004) +#define OST_OSMR1 (PKUNITY_OST_BASE + 0x0004)/* * Match Reg 2 OST_OSMR2 */ -#define OST_OSMR2 __REG(PKUNITY_OST_BASE + 0x0008) +#define OST_OSMR2 (PKUNITY_OST_BASE + 0x0008)/* * Match Reg 3 OST_OSMR3 */ -#define OST_OSMR3 __REG(PKUNITY_OST_BASE + 0x000C) +#define OST_OSMR3 (PKUNITY_OST_BASE + 0x000C)/* * Counter Reg OST_OSCR */ -#define OST_OSCR __REG(PKUNITY_OST_BASE + 0x0010) +#define OST_OSCR (PKUNITY_OST_BASE + 0x0010)/* * Status Reg OST_OSSR */ -#define OST_OSSR __REG(PKUNITY_OST_BASE + 0x0014) +#define OST_OSSR (PKUNITY_OST_BASE + 0x0014)/* * Watchdog Enable Reg OST_OWER */ -#define OST_OWER __REG(PKUNITY_OST_BASE + 0x0018) +#define OST_OWER (PKUNITY_OST_BASE + 0x0018)/* * Interrupt Enable Reg OST_OIER */ -#define OST_OIER __REG(PKUNITY_OST_BASE + 0x001C) +#define OST_OIER (PKUNITY_OST_BASE + 0x001C)/* * PWM Pulse Width Control Reg OST_PWMPWCR */ -#define OST_PWMPWCR __REG(PKUNITY_OST_BASE + 0x0080) +#define OST_PWMPWCR (PKUNITY_OST_BASE + 0x0080)/* * PWM Duty Cycle Control Reg OST_PWMDCCR */ -#define OST_PWMDCCR __REG(PKUNITY_OST_BASE + 0x0084) +#define OST_PWMDCCR (PKUNITY_OST_BASE + 0x0084)/* * PWM Period Control Reg OST_PWMPCR */ -#define OST_PWMPCR __REG(PKUNITY_OST_BASE + 0x0088) +#define OST_PWMPCR (PKUNITY_OST_BASE + 0x0088)/* * Match detected 0 OST_OSSR_M0
arch/unicore32/include/mach/regs-pci.h +61 -61
140 lines not on this page · raw message
arch/unicore32/include/mach/regs-pm.h +18 -18
@@ -4,75 +4,75 @@/* * PM Control Reg PM_PMCR */ -#define PM_PMCR __REG(PKUNITY_PM_BASE + 0x0000) +#define PM_PMCR (PKUNITY_PM_BASE + 0x0000)/* * PM General Conf. Reg PM_PGCR */ -#define PM_PGCR __REG(PKUNITY_PM_BASE + 0x0004) +#define PM_PGCR (PKUNITY_PM_BASE + 0x0004)/* * PM PLL Conf. Reg PM_PPCR */ -#define PM_PPCR __REG(PKUNITY_PM_BASE + 0x0008) +#define PM_PPCR (PKUNITY_PM_BASE + 0x0008)/* * PM Wakeup Enable Reg PM_PWER */ -#define PM_PWER __REG(PKUNITY_PM_BASE + 0x000C) +#define PM_PWER (PKUNITY_PM_BASE + 0x000C)/* * PM GPIO Sleep Status Reg PM_PGSR */ -#define PM_PGSR __REG(PKUNITY_PM_BASE + 0x0010) +#define PM_PGSR (PKUNITY_PM_BASE + 0x0010)/* * PM Clock Gate Reg PM_PCGR */ -#define PM_PCGR __REG(PKUNITY_PM_BASE + 0x0014) +#define PM_PCGR (PKUNITY_PM_BASE + 0x0014)/* * PM SYS PLL Conf. Reg PM_PLLSYSCFG */ -#define PM_PLLSYSCFG __REG(PKUNITY_PM_BASE + 0x0018) +#define PM_PLLSYSCFG (PKUNITY_PM_BASE + 0x0018)/* * PM DDR PLL Conf. Reg PM_PLLDDRCFG */ -#define PM_PLLDDRCFG __REG(PKUNITY_PM_BASE + 0x001C) +#define PM_PLLDDRCFG (PKUNITY_PM_BASE + 0x001C)/* * PM VGA PLL Conf. Reg PM_PLLVGACFG */ -#define PM_PLLVGACFG __REG(PKUNITY_PM_BASE + 0x0020) +#define PM_PLLVGACFG (PKUNITY_PM_BASE + 0x0020)/* * PM Div Conf. Reg PM_DIVCFG */ -#define PM_DIVCFG __REG(PKUNITY_PM_BASE + 0x0024) +#define PM_DIVCFG (PKUNITY_PM_BASE + 0x0024)/* * PM SYS PLL Status Reg PM_PLLSYSSTATUS */ -#define PM_PLLSYSSTATUS __REG(PKUNITY_PM_BASE + 0x0028) +#define PM_PLLSYSSTATUS (PKUNITY_PM_BASE + 0x0028)/* * PM DDR PLL Status Reg PM_PLLDDRSTATUS */ -#define PM_PLLDDRSTATUS __REG(PKUNITY_PM_BASE + 0x002C) +#define PM_PLLDDRSTATUS (PKUNITY_PM_BASE + 0x002C)/* * PM VGA PLL Status Reg PM_PLLVGASTATUS */ -#define PM_PLLVGASTATUS __REG(PKUNITY_PM_BASE + 0x0030) +#define PM_PLLVGASTATUS (PKUNITY_PM_BASE + 0x0030)/* * PM Div Status Reg PM_DIVSTATUS */ -#define PM_DIVSTATUS __REG(PKUNITY_PM_BASE + 0x0034) +#define PM_DIVSTATUS (PKUNITY_PM_BASE + 0x0034)/* * PM Software Reset Reg PM_SWRESET */ -#define PM_SWRESET __REG(PKUNITY_PM_BASE + 0x0038) +#define PM_SWRESET (PKUNITY_PM_BASE + 0x0038)/* * PM DDR2 PAD Start Reg PM_DDR2START */ -#define PM_DDR2START __REG(PKUNITY_PM_BASE + 0x003C) +#define PM_DDR2START (PKUNITY_PM_BASE + 0x003C)/* * PM DDR2 PAD Status Reg PM_DDR2CAL0 */ -#define PM_DDR2CAL0 __REG(PKUNITY_PM_BASE + 0x0040) +#define PM_DDR2CAL0 (PKUNITY_PM_BASE + 0x0040)/* * PM PLL DFC Done Reg PM_PLLDFCDONE */ -#define PM_PLLDFCDONE __REG(PKUNITY_PM_BASE + 0x0044) +#define PM_PLLDFCDONE (PKUNITY_PM_BASE + 0x0044)#define PM_PMCR_SFB FIELD(1, 1, 0)#define PM_PMCR_IFB FIELD(1, 1, 1)
arch/unicore32/include/mach/regs-ps2.h +4 -4
@@ -4,17 +4,17 @@/* * the same as I8042_DATA_REG PS2_DATA */ -#define PS2_DATA __REG(PKUNITY_PS2_BASE + 0x0060) +#define PS2_DATA (PKUNITY_PS2_BASE + 0x0060)/* * the same as I8042_COMMAND_REG PS2_COMMAND */ -#define PS2_COMMAND __REG(PKUNITY_PS2_BASE + 0x0064) +#define PS2_COMMAND (PKUNITY_PS2_BASE + 0x0064)/* * the same as I8042_STATUS_REG PS2_STATUS */ -#define PS2_STATUS __REG(PKUNITY_PS2_BASE + 0x0064) +#define PS2_STATUS (PKUNITY_PS2_BASE + 0x0064)/* * counter reg PS2_CNT */ -#define PS2_CNT __REG(PKUNITY_PS2_BASE + 0x0068) +#define PS2_CNT (PKUNITY_PS2_BASE + 0x0068)
arch/unicore32/include/mach/regs-resetc.h +2 -2
@@ -4,11 +4,11 @@/* * Software Reset Register */ -#define RESETC_SWRR __REG(PKUNITY_RESETC_BASE + 0x0000) +#define RESETC_SWRR (PKUNITY_RESETC_BASE + 0x0000)/* * Reset Status Register */ -#define RESETC_RSSR __REG(PKUNITY_RESETC_BASE + 0x0004) +#define RESETC_RSSR (PKUNITY_RESETC_BASE + 0x0004)/* * Software Reset Bit
arch/unicore32/include/mach/regs-rtc.h +4 -4
@@ -4,19 +4,19 @@/* * RTC Alarm Reg RTC_RTAR */ -#define RTC_RTAR __REG(PKUNITY_RTC_BASE + 0x0000) +#define RTC_RTAR (PKUNITY_RTC_BASE + 0x0000)/* * RTC Count Reg RTC_RCNR */ -#define RTC_RCNR __REG(PKUNITY_RTC_BASE + 0x0004) +#define RTC_RCNR (PKUNITY_RTC_BASE + 0x0004)/* * RTC Trim Reg RTC_RTTR */ -#define RTC_RTTR __REG(PKUNITY_RTC_BASE + 0x0008) +#define RTC_RTTR (PKUNITY_RTC_BASE + 0x0008)/* * RTC Status Reg RTC_RTSR */ -#define RTC_RTSR __REG(PKUNITY_RTC_BASE + 0x0010) +#define RTC_RTSR (PKUNITY_RTC_BASE + 0x0010)/* * ALarm detected RTC_RTSR_AL
arch/unicore32/include/mach/regs-sdc.h +16 -16
@@ -4,67 +4,67 @@/* * Clock Control Reg SDC_CCR */ -#define SDC_CCR __REG(PKUNITY_SDC_BASE + 0x0000) +#define SDC_CCR (PKUNITY_SDC_BASE + 0x0000)/* * Software Reset Reg SDC_SRR */ -#define SDC_SRR __REG(PKUNITY_SDC_BASE + 0x0004) +#define SDC_SRR (PKUNITY_SDC_BASE + 0x0004)/* * Argument Reg SDC_ARGUMENT */ -#define SDC_ARGUMENT __REG(PKUNITY_SDC_BASE + 0x0008) +#define SDC_ARGUMENT (PKUNITY_SDC_BASE + 0x0008)/* * Command Reg SDC_COMMAND */ -#define SDC_COMMAND __REG(PKUNITY_SDC_BASE + 0x000C) +#define SDC_COMMAND (PKUNITY_SDC_BASE + 0x000C)/* * Block Size Reg SDC_BLOCKSIZE */ -#define SDC_BLOCKSIZE __REG(PKUNITY_SDC_BASE + 0x0010) +#define SDC_BLOCKSIZE (PKUNITY_SDC_BASE + 0x0010)/* * Block Cound Reg SDC_BLOCKCOUNT */ -#define SDC_BLOCKCOUNT __REG(PKUNITY_SDC_BASE + 0x0014) +#define SDC_BLOCKCOUNT (PKUNITY_SDC_BASE + 0x0014)/* * Transfer Mode Reg SDC_TMR */ -#define SDC_TMR __REG(PKUNITY_SDC_BASE + 0x0018) +#define SDC_TMR (PKUNITY_SDC_BASE + 0x0018)/* * Response Reg. 0 SDC_RES0 */ -#define SDC_RES0 __REG(PKUNITY_SDC_BASE + 0x001C) +#define SDC_RES0 (PKUNITY_SDC_BASE + 0x001C)/* * Response Reg. 1 SDC_RES1 */ -#define SDC_RES1 __REG(PKUNITY_SDC_BASE + 0x0020) +#define SDC_RES1 (PKUNITY_SDC_BASE + 0x0020)/* * Response Reg. 2 SDC_RES2 */ -#define SDC_RES2 __REG(PKUNITY_SDC_BASE + 0x0024) +#define SDC_RES2 (PKUNITY_SDC_BASE + 0x0024)/* * Response Reg. 3 SDC_RES3 */ -#define SDC_RES3 __REG(PKUNITY_SDC_BASE + 0x0028) +#define SDC_RES3 (PKUNITY_SDC_BASE + 0x0028)/* * Read Timeout Control Reg SDC_RTCR */ -#define SDC_RTCR __REG(PKUNITY_SDC_BASE + 0x002C) +#define SDC_RTCR (PKUNITY_SDC_BASE + 0x002C)/* * Interrupt Status Reg SDC_ISR */ -#define SDC_ISR __REG(PKUNITY_SDC_BASE + 0x0030) +#define SDC_ISR (PKUNITY_SDC_BASE + 0x0030)/* * Interrupt Status Mask Reg SDC_ISMR */ -#define SDC_ISMR __REG(PKUNITY_SDC_BASE + 0x0034) +#define SDC_ISMR (PKUNITY_SDC_BASE + 0x0034)/* * RX FIFO SDC_RXFIFO */ -#define SDC_RXFIFO __REG(PKUNITY_SDC_BASE + 0x0038) +#define SDC_RXFIFO (PKUNITY_SDC_BASE + 0x0038)/* * TX FIFO SDC_TXFIFO */ -#define SDC_TXFIFO __REG(PKUNITY_SDC_BASE + 0x003C) +#define SDC_TXFIFO (PKUNITY_SDC_BASE + 0x003C)/* * SD Clock Enable SDC_CCR_CLKEN
arch/unicore32/include/mach/regs-spi.h +6 -6
@@ -4,27 +4,27 @@/* * Control reg. 0 SPI_CR0 */ -#define SPI_CR0 __REG(PKUNITY_SPI_BASE + 0x0000) +#define SPI_CR0 (PKUNITY_SPI_BASE + 0x0000)/* * Control reg. 1 SPI_CR1 */ -#define SPI_CR1 __REG(PKUNITY_SPI_BASE + 0x0004) +#define SPI_CR1 (PKUNITY_SPI_BASE + 0x0004)/* * Enable reg SPI_SSIENR */ -#define SPI_SSIENR __REG(PKUNITY_SPI_BASE + 0x0008) +#define SPI_SSIENR (PKUNITY_SPI_BASE + 0x0008)/* * Status reg SPI_SR */ -#define SPI_SR __REG(PKUNITY_SPI_BASE + 0x0028) +#define SPI_SR (PKUNITY_SPI_BASE + 0x0028)/* * Interrupt Mask reg SPI_IMR */ -#define SPI_IMR __REG(PKUNITY_SPI_BASE + 0x002C) +#define SPI_IMR (PKUNITY_SPI_BASE + 0x002C)/* * Interrupt Status reg SPI_ISR */ -#define SPI_ISR __REG(PKUNITY_SPI_BASE + 0x0030) +#define SPI_ISR (PKUNITY_SPI_BASE + 0x0030)/* * Enable SPI Controller SPI_SSIENR_EN
arch/unicore32/include/mach/regs-umal.h +38 -38
159 lines not on this page · raw message
arch/unicore32/include/mach/regs-unigfx.h +64 -64
233 lines not on this page · raw message
arch/unicore32/kernel/entry.S +1 -1
@@ -91,7 +91,7 @@ .endm .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - ldw \base, =(io_p2v(PKUNITY_INTC_BASE)) + ldw \base, =(PKUNITY_INTC_BASE) ldw \irqstat, [\base+], #0xC @ INTC_ICIP ldw \tmp, [\base+], #0x4 @ INTC_ICMR and.a \irqstat, \irqstat, \tmp
arch/unicore32/kernel/irq.c +2 -2
@@ -226,8 +226,8 @@ static struct irq_chip puv3_normal_chip = {static struct resource irq_resource = { .name ="irqs" , - .start =PKUNITY_INTC_BASE , - .end =PKUNITY_INTC_BASE +0xFFFFF , + .start =io_v2p (PKUNITY_INTC_BASE ), + .end =io_v2p (PKUNITY_INTC_BASE ) +0xFFFFF , }; static struct puv3_irq_state {
arch/unicore32/kernel/pci.c +6 -6
@@ -75,27 +75,27 @@ void pci_puv3_preinit(void) {printk (KERN_DEBUG "PCI: PKUnity PCI Controller Initializing ...\n" );/* config PCI bridge base */ -writel (PKUNITY_PCIBRI_BASE ,PCICFG_BRIBASE ); +writel (io_v2p (PKUNITY_PCIBRI_BASE ),PCICFG_BRIBASE );writel (0 ,PCIBRI_AHBCTL0 ); -writel (PKUNITY_PCIBRI_BASE | PCIBRI_BARx_MEM,PCIBRI_AHBBAR0 ); +writel (io_v2p (PKUNITY_PCIBRI_BASE ) | PCIBRI_BARx_MEM,PCIBRI_AHBBAR0 );writel (0xFFFF0000 ,PCIBRI_AHBAMR0 );writel (0 ,PCIBRI_AHBTAR0 );writel (PCIBRI_CTLx_AT,PCIBRI_AHBCTL1 ); -writel (PKUNITY_PCILIO_BASE | PCIBRI_BARx_IO,PCIBRI_AHBBAR1 ); +writel (io_v2p (PKUNITY_PCILIO_BASE ) | PCIBRI_BARx_IO,PCIBRI_AHBBAR1 );writel (0xFFFF0000 ,PCIBRI_AHBAMR1 );writel (0x00000000 ,PCIBRI_AHBTAR1 );writel (PCIBRI_CTLx_PREF,PCIBRI_AHBCTL2 ); -writel (PKUNITY_PCIMEM_BASE | PCIBRI_BARx_MEM,PCIBRI_AHBBAR2 ); +writel (io_v2p (PKUNITY_PCIMEM_BASE ) | PCIBRI_BARx_MEM,PCIBRI_AHBBAR2 );writel (0xF8000000 ,PCIBRI_AHBAMR2 );writel (0 ,PCIBRI_AHBTAR2 ); -writel (PKUNITY_PCIAHB_BASE | PCIBRI_BARx_MEM,PCIBRI_BAR1 ); +writel (io_v2p (PKUNITY_PCIAHB_BASE ) | PCIBRI_BARx_MEM,PCIBRI_BAR1 );writel (PCIBRI_CTLx_AT | PCIBRI_CTLx_PREF,PCIBRI_PCICTL0 ); -writel (PKUNITY_PCIAHB_BASE | PCIBRI_BARx_MEM,PCIBRI_PCIBAR0 ); +writel (io_v2p (PKUNITY_PCIAHB_BASE ) | PCIBRI_BARx_MEM,PCIBRI_PCIBAR0 );writel (0xF8000000 ,PCIBRI_PCIAMR0 );writel (PKUNITY_SDRAM_BASE ,PCIBRI_PCITAR0 );
arch/unicore32/kernel/puv3-core.c +16 -16
@@ -50,8 +50,8 @@ unsigned long long sched_clock(void)static struct resource puv3_usb_resources[] = {/* order is significant! */ { - .start =PKUNITY_USB_BASE , - .end =PKUNITY_USB_BASE +0x3ff , + .start =io_v2p (PKUNITY_USB_BASE ), + .end =io_v2p (PKUNITY_USB_BASE ) +0x3ff , .flags =IORESOURCE_MEM , }, { .start =IRQ_USB ,
@@ -82,8 +82,8 @@ static struct musb_hdrc_platform_data puv3_usb_plat = {static struct resource puv3_mmc_resources[] = { [0 ] = { - .start =PKUNITY_SDC_BASE , - .end =PKUNITY_SDC_BASE +0xfff , + .start =io_v2p (PKUNITY_SDC_BASE ), + .end =io_v2p (PKUNITY_SDC_BASE ) +0xfff , .flags =IORESOURCE_MEM , }, [1 ] = {
@@ -95,8 +95,8 @@ static struct resource puv3_mmc_resources[] = {static struct resource puv3_unigfx_resources[] = { [0 ] = { - .start =PKUNITY_UNIGFX_BASE , - .end =PKUNITY_UNIGFX_BASE +0xfff , + .start =io_v2p (PKUNITY_UNIGFX_BASE ), + .end =io_v2p (PKUNITY_UNIGFX_BASE ) +0xfff , .flags =IORESOURCE_MEM , }, [1 ] = {
@@ -108,8 +108,8 @@ static struct resource puv3_unigfx_resources[] = {static struct resource puv3_rtc_resources[] = { [0 ] = { - .start =PKUNITY_RTC_BASE , - .end =PKUNITY_RTC_BASE +0xff , + .start =io_v2p (PKUNITY_RTC_BASE ), + .end =io_v2p (PKUNITY_RTC_BASE ) +0xff , .flags =IORESOURCE_MEM , }, [1 ] = {
@@ -126,16 +126,16 @@ static struct resource puv3_rtc_resources[] = {static struct resource puv3_pwm_resources[] = { [0 ] = { - .start =PKUNITY_OST_BASE +0x80 , - .end =PKUNITY_OST_BASE +0xff , + .start =io_v2p (PKUNITY_OST_BASE ) +0x80 , + .end =io_v2p (PKUNITY_OST_BASE ) +0xff , .flags =IORESOURCE_MEM , }, };static struct resource puv3_uart0_resources[] = { [0 ] = { - .start =PKUNITY_UART0_BASE , - .end =PKUNITY_UART0_BASE +0xff , + .start =io_v2p (PKUNITY_UART0_BASE ), + .end =io_v2p (PKUNITY_UART0_BASE ) +0xff , .flags =IORESOURCE_MEM , }, [1 ] = {
@@ -147,8 +147,8 @@ static struct resource puv3_uart0_resources[] = {static struct resource puv3_uart1_resources[] = { [0 ] = { - .start =PKUNITY_UART1_BASE , - .end =PKUNITY_UART1_BASE +0xff , + .start =io_v2p (PKUNITY_UART1_BASE ), + .end =io_v2p (PKUNITY_UART1_BASE ) +0xff , .flags =IORESOURCE_MEM , }, [1 ] = {
@@ -160,8 +160,8 @@ static struct resource puv3_uart1_resources[] = {static struct resource puv3_umal_resources[] = { [0 ] = { - .start =PKUNITY_UMAL_BASE , - .end =PKUNITY_UMAL_BASE +0x1fff , + .start =io_v2p (PKUNITY_UMAL_BASE ), + .end =io_v2p (PKUNITY_UMAL_BASE ) +0x1fff , .flags =IORESOURCE_MEM , }, [1 ] = {
arch/unicore32/kernel/puv3-nb0916.c +2 -2
@@ -39,8 +39,8 @@ static struct resource physmap_flash_resource = {static struct resource puv3_i2c_resources[] = { [0 ] = { - .start =PKUNITY_I2C_BASE , - .end =PKUNITY_I2C_BASE +0xff , + .start =io_v2p (PKUNITY_I2C_BASE ), + .end =io_v2p (PKUNITY_I2C_BASE ) +0xff , .flags =IORESOURCE_MEM , }, [1 ] = {
arch/unicore32/kernel/sleep.S +2 -2
@@ -76,10 +76,10 @@ ENTRY(puv3_cpu_suspend) @ DDR2 BaseAddr - ldw r0, =io_p2v(PKUNITY_DDR2CTRL_BASE) + ldw r0, =(PKUNITY_DDR2CTRL_BASE) @ PM BaseAddr - ldw r1, =io_p2v(PKUNITY_PM_BASE) + ldw r1, =(PKUNITY_PM_BASE) @ set PLL_SYS_CFG reg, 275 movl r6, #0x00002401
Signature · 1 line
1.6.2.2
Quoted 10 lines
In the long run, I would recommend moving away from hardcoded I/O addresses entirely, but you can do that at the same time as moving to a flattened device tree. When you do that, every driver will do an individual ioremap to get the virtual address for a physical location, rather than doing it once at boot time for all hardware. This makes the code more flexible when dealing with multiple SoC implemetations, but it's not something that you need to worry about too much for the initial merge.
Arnd
Thanks Arnd.
Guan Xuetao
Re: [PATCH 16/17] unicore32: add (void __iomem *) to io_p2v macro
Quoted 12 lines · Guan Xuetao
From: GuanXuetao <[email protected]>
Date: Fri, 4 Mar 2011 18:07:48 +0800
Subject: [PATCH] unicore32: modifyio_p2vandio_v2pmacros, and adjustPKUNITY_mmio_BASEs1. remove
__REGmacro
2. add (void__iomem*) toio_p2vmacro
3. add (phys_addr_t) toio_v2pmacro
4. addPKUNITY_AHB_BASEandPKUNITY_APB_BASEdefinitions
5. modify allPKUNITY_mmio_BASEsfrom physical addr to virtual addr
6. adjust prefix macro for all usage ofPKUNITY_mmio_BASEs-- by advice with Arnd Bergmann
Quoted 1 line
Signed-off-by Guan Xuetao <[email protected]>
Looks good,