Changeset 32489


Ignore:
Timestamp:
2012-06-23T13:03:50+02:00 (6 years ago)
Author:
florian
Message:

[mcs814x] provide an early ioremap cookie of the system configuration register

Location:
trunk/target/linux/mcs814x/files-3.3/arch/arm/mach-mcs814x
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/mcs814x/files-3.3/arch/arm/mach-mcs814x/clock.c

    r32488 r32489  
    1717#include <mach/mcs814x.h> 
    1818 
     19#include "common.h" 
     20 
    1921#define KHZ     1000 
    2022#define MHZ     (KHZ * KHZ) 
     
    3335        u32 usecount;                   /* reference count */ 
    3436        struct clk_ops *ops;            /* clock operation */ 
    35         void __iomem *enable_reg;       /* clock enable register */ 
     37        u32 enable_reg;                 /* clock enable register */ 
    3638        u32 enable_mask;                /* clock enable mask */ 
    3739}; 
     
    5355                return 0; 
    5456 
    55         tmp = __raw_readl(clk->enable_reg); 
     57        tmp = __raw_readl(mcs814x_sysdbg_base + clk->enable_reg); 
    5658        if (!enable) 
    5759                tmp &= ~clk->enable_mask; 
     
    5961                tmp |= clk->enable_mask; 
    6062 
    61         __raw_writel(tmp, clk->enable_reg); 
     63        __raw_writel(tmp, mcs814x_sysdbg_base + clk->enable_reg); 
    6264 
    6365        return 0; 
     
    118120static struct clk clk_emac = { 
    119121        .ops            = &default_clk_ops, 
    120         .enable_reg     = (void __iomem *)(_CONFADDR_SYSDBG + SYSDBG_SYSCTL), 
     122        .enable_reg     = SYSDBG_SYSCTL, 
    121123        .enable_mask    = SYSCTL_EMAC, 
    122124}; 
     
    124126static struct clk clk_ephy = { 
    125127        .ops            = &default_clk_ops, 
    126         .enable_reg     = (void __iomem *)(_CONFADDR_SYSDBG + SYSDBG_PLL_CTL), 
    127         .enable_mask    = ~(1 << 0), 
     128        .enable_reg     = SYSDBG_PLL_CTL, 
     129        .enable_mask    = ~SYSCTL_EPHY, /* active low */ 
    128130}; 
    129131 
    130132static struct clk clk_cipher = { 
    131133        .ops            = &default_clk_ops, 
    132         .enable_reg     = (void __iomem *)(_CONFADDR_SYSDBG + SYSDBG_SYSCTL), 
     134        .enable_reg     = SYSDBG_SYSCTL, 
    133135        .enable_mask    = SYSCTL_CIPHER, 
    134136}; 
     
    253255 
    254256        /* read the bootstrap registers to know the exact clocking scheme */ 
    255         bs1 = __raw_readl(_CONFADDR_SYSDBG + SYSDBG_BS1); 
     257        bs1 = __raw_readl(mcs814x_sysdbg_base + SYSDBG_BS1); 
    256258        cpu_freq = (bs1 >> CPU_FREQ_SHIFT) & CPU_FREQ_MASK; 
    257259 
  • trunk/target/linux/mcs814x/files-3.3/arch/arm/mach-mcs814x/common.c

    r32488 r32489  
    2323#include <asm/pgtable.h> 
    2424#include <asm/mach/map.h> 
     25 
     26void __iomem *mcs814x_sysdbg_base; 
    2527 
    2628static struct map_desc mcs814x_io_desc[] __initdata = { 
     
    6668        u32 reg; 
    6769 
    68         reg = __raw_readl(_CONFADDR_DBGLED); 
     70        reg = __raw_readl(MCS814X_VIRT_BASE + MCS814X_DBGLED); 
    6971        if (value) 
    7072                reg |= 0x80; 
    7173        else 
    7274                reg &= ~0x80; 
    73         __raw_writel(reg, _CONFADDR_DBGLED); 
     75        __raw_writel(reg, MCS814X_VIRT_BASE + MCS814X_DBGLED); 
    7476} 
    7577 
     
    7880        u32 reg; 
    7981 
    80         reg = __raw_readl(_CONFADDR_SYSDBG + SYSDBG_BS2); 
     82        reg = __raw_readl(mcs814x_sysdbg_base + SYSDBG_BS2); 
    8183        reg &= ~LED_CFG_MASK; 
    8284        reg |= cfg; 
    83         __raw_writel(reg, _CONFADDR_SYSDBG + SYSDBG_BS2); 
     85        __raw_writel(reg, mcs814x_sysdbg_base + SYSDBG_BS2); 
    8486} 
    8587 
     
    8890        u8 reg; 
    8991 
    90         reg = __raw_readb(_CONFADDR_SYSDBG + SYSDBG_SYSCTL_MAC); 
     92        reg = __raw_readb(mcs814x_sysdbg_base + SYSDBG_SYSCTL_MAC); 
    9193        if (value) 
    9294                reg |= BUF_SHIFT_BIT; 
    9395        else 
    9496                reg &= ~BUF_SHIFT_BIT; 
    95         __raw_writeb(reg, _CONFADDR_SYSDBG + SYSDBG_SYSCTL_MAC); 
     97        __raw_writeb(reg, mcs814x_sysdbg_base + SYSDBG_SYSCTL_MAC); 
    9698} 
    9799 
     
    131133        int gpio; 
    132134 
    133         bs2 = __raw_readl(_CONFADDR_SYSDBG + SYSDBG_BS2); 
     135        bs2 = __raw_readl(mcs814x_sysdbg_base + SYSDBG_BS2); 
    134136        cpu_mode = (bs2 >> CPU_MODE_SHIFT) & CPU_MODE_MASK; 
    135137 
     
    149151{ 
    150152        iotable_init(mcs814x_io_desc, ARRAY_SIZE(mcs814x_io_desc)); 
     153 
     154        mcs814x_sysdbg_base = ioremap(MCS814X_IO_START + MCS814X_SYSDBG, 
     155                                        MCS814X_SYSDBG_SIZE); 
     156        if (!mcs814x_sysdbg_base) 
     157                panic("unable to remap sysdbg base"); 
    151158} 
    152159 
    153160void mcs814x_restart(char mode, const char *cmd) 
    154161{ 
    155         __raw_writel(~(1 << 31), _CONFADDR_SYSDBG); 
     162        __raw_writel(~(1 << 31), mcs814x_sysdbg_base); 
    156163} 
  • trunk/target/linux/mcs814x/files-3.3/arch/arm/mach-mcs814x/common.h

    r32462 r32489  
    1111void mcs814x_restart(char mode, const char *cmd); 
    1212extern struct sys_timer mcs814x_timer; 
     13extern void __iomem *mcs814x_sysdbg_base; 
    1314 
    1415#endif /* __ARCH_MCS814X_COMMON_H */ 
  • trunk/target/linux/mcs814x/files-3.3/arch/arm/mach-mcs814x/include/mach/debug-macro.S

    r32487 r32489  
    22 
    33                .macro  addruart, rp, rv, tmp 
    4                 ldr     \rp, =_PHYS_CONFADDR 
    5                 ldr     \rv, =_VIRT_CONFADDR 
    6                 orr     \rp, \rp, #_CONFOFFSET_UART 
    7                 orr     \rv, \rv, #_CONFOFFSET_UART 
     4                ldr     \rp, =MCS814X_PHYS_BASE 
     5                ldr     \rv, =MCS814X_VIRT_BASE 
     6                orr     \rp, \rp, #MCS814X_UART 
     7                orr     \rv, \rv, #MCS814X_UART 
    88                .endm 
    99 
  • trunk/target/linux/mcs814x/files-3.3/arch/arm/mach-mcs814x/include/mach/mcs814x.h

    r32488 r32489  
    2121#define MCS814X_IRQ_STS0        0x40 
    2222 
    23 #define _PHYS_CONFADDR          0x40000000 
    24 #define _VIRT_CONFADDR          MCS814X_IO_BASE 
     23#define MCS814X_PHYS_BASE       0x40000000 
     24#define MCS814X_VIRT_BASE       MCS814X_IO_BASE 
    2525 
    26 #define _CONFOFFSET_UART    0x000DC000 
    27 #define _CONFOFFSET_DBGLED  0x000EC000 
    28 #define _CONFOFFSET_SYSDBG  0x000F8000 
    29  
    30 #define _CONFADDR_DBGLED  (_VIRT_CONFADDR + _CONFOFFSET_DBGLED) 
    31 #define _CONFADDR_SYSDBG  (_VIRT_CONFADDR + _CONFOFFSET_SYSDBG) 
     26#define MCS814X_UART            0x000DC000 
     27#define MCS814X_DBGLED          0x000EC000 
     28#define MCS814X_SYSDBG          0x000F8000 
     29#define MCS814X_SYSDBG_SIZE     0x50 
    3230 
    3331/* System configuration and bootstrap registers */ 
     
    4745#define SYSDBG_SYSCTL           0x08 
    4846#define  SYSCTL_EMAC            (1 << 0) 
     47#define  SYSCTL_EPHY            (1 << 1) /* active low */ 
    4948#define  SYSCTL_CIPHER          (1 << 16) 
    5049 
  • trunk/target/linux/mcs814x/files-3.3/arch/arm/mach-mcs814x/include/mach/uncompress.h

    r32487 r32489  
    3333{ 
    3434        if (soc_is_mcs8140()) 
    35                 uart_base = (void __iomem *)(_PHYS_CONFADDR + _CONFOFFSET_UART); 
     35                uart_base = (void __iomem *)(MCS814X_PHYS_BASE +MCS814X_UART); 
    3636} 
    3737 
Note: See TracChangeset for help on using the changeset viewer.