GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
if ARCH_RMOBILE
|
||||
|
||||
choice
|
||||
prompt "Target Renesas SoC select"
|
||||
default RCAR_32
|
||||
|
||||
config RCAR_32
|
||||
bool "Renesas ARM SoCs R-Car Gen1/Gen2 (32bit)"
|
||||
select CPU_V7A
|
||||
|
||||
config RCAR_GEN3
|
||||
bool "Renesas ARM SoCs R-Car Gen3 (64bit)"
|
||||
select ARM64
|
||||
select PHY
|
||||
select CMD_CACHE
|
||||
select PINCTRL
|
||||
select PINCONF
|
||||
select PINCTRL_PFC
|
||||
select SUPPORT_SPL
|
||||
imply CMD_FS_UUID
|
||||
imply CMD_GPT
|
||||
imply CMD_UUID
|
||||
imply CMD_MMC_SWRITE if MMC
|
||||
imply SUPPORT_EMMC_RPMB if MMC
|
||||
imply SPL
|
||||
imply SPL_BOARD_INIT
|
||||
imply SPL_GZIP
|
||||
imply SPL_LIBCOMMON_SUPPORT
|
||||
imply SPL_LIBGENERIC_SUPPORT
|
||||
imply SPL_SERIAL_SUPPORT
|
||||
imply SPL_SYS_MALLOC_SIMPLE
|
||||
imply SPL_TINY_MEMSET
|
||||
imply SPL_YMODEM_SUPPORT
|
||||
imply SPL_USE_TINY_PRINTF
|
||||
|
||||
config RZA1
|
||||
prompt "Renesas ARM SoCs RZ/A1 (32bit)"
|
||||
select CPU_V7A
|
||||
|
||||
endchoice
|
||||
|
||||
source "arch/arm/mach-rmobile/Kconfig.32"
|
||||
source "arch/arm/mach-rmobile/Kconfig.64"
|
||||
source "arch/arm/mach-rmobile/Kconfig.rza1"
|
||||
|
||||
endif
|
||||
@@ -0,0 +1,171 @@
|
||||
if RCAR_32
|
||||
|
||||
config ARCH_RMOBILE_BOARD_STRING
|
||||
string "Renesas RCar Gen2 board name"
|
||||
default "Board"
|
||||
|
||||
config RCAR_GEN2
|
||||
bool "Renesas RCar Gen2"
|
||||
select PHY
|
||||
select PHY_RCAR_GEN2
|
||||
|
||||
config R8A7740
|
||||
bool "Renesas SoC R8A7740"
|
||||
|
||||
config R8A7790
|
||||
bool "Renesas SoC R8A7790"
|
||||
select RCAR_GEN2
|
||||
select ARM_CORTEX_A15_CVE_2017_5715
|
||||
imply CLK_R8A7790
|
||||
imply PINCTRL_PFC_R8A7790
|
||||
|
||||
config R8A7791
|
||||
bool "Renesas SoC R8A7791"
|
||||
select RCAR_GEN2
|
||||
select ARM_CORTEX_A15_CVE_2017_5715
|
||||
imply CLK_R8A7791
|
||||
imply PINCTRL_PFC_R8A7791
|
||||
|
||||
config R8A7792
|
||||
bool "Renesas SoC R8A7792"
|
||||
select RCAR_GEN2
|
||||
select ARM_CORTEX_A15_CVE_2017_5715
|
||||
imply CLK_R8A7792
|
||||
imply PINCTRL_PFC_R8A7792
|
||||
|
||||
config R8A7793
|
||||
bool "Renesas SoC R8A7793"
|
||||
select RCAR_GEN2
|
||||
select ARM_CORTEX_A15_CVE_2017_5715
|
||||
imply CLK_R8A7793
|
||||
imply PINCTRL_PFC_R8A7793
|
||||
|
||||
config R8A7794
|
||||
bool "Renesas SoC R8A7794"
|
||||
select RCAR_GEN2
|
||||
imply CLK_R8A7794
|
||||
imply PINCTRL_PFC_R8A7794
|
||||
|
||||
choice
|
||||
prompt "Renesas ARM SoCs board select"
|
||||
optional
|
||||
|
||||
config TARGET_ARMADILLO_800EVA
|
||||
bool "armadillo 800 eva board"
|
||||
|
||||
config TARGET_BLANCHE
|
||||
bool "Blanche board"
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
imply CMD_DM
|
||||
|
||||
config TARGET_GOSE
|
||||
bool "Gose board"
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
select SPL_TINY_MEMSET
|
||||
select SUPPORT_SPL
|
||||
select SPL_USE_TINY_PRINTF
|
||||
imply CMD_DM
|
||||
|
||||
config TARGET_KOELSCH
|
||||
bool "Koelsch board"
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
select SPL_TINY_MEMSET
|
||||
select SUPPORT_SPL
|
||||
select SPL_USE_TINY_PRINTF
|
||||
imply CMD_DM
|
||||
|
||||
config TARGET_LAGER
|
||||
bool "Lager board"
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
select SPL_TINY_MEMSET
|
||||
select SUPPORT_SPL
|
||||
select SPL_USE_TINY_PRINTF
|
||||
imply CMD_DM
|
||||
|
||||
config TARGET_KZM9G
|
||||
bool "KZM9D board"
|
||||
|
||||
config TARGET_ALT
|
||||
bool "Alt board"
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
select SPL_TINY_MEMSET
|
||||
select SUPPORT_SPL
|
||||
select SPL_USE_TINY_PRINTF
|
||||
imply CMD_DM
|
||||
|
||||
config TARGET_SILK
|
||||
bool "Silk board"
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
select SPL_TINY_MEMSET
|
||||
select SUPPORT_SPL
|
||||
select SPL_USE_TINY_PRINTF
|
||||
imply CMD_DM
|
||||
|
||||
config TARGET_PORTER
|
||||
bool "Porter board"
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
select SPL_TINY_MEMSET
|
||||
select SUPPORT_SPL
|
||||
select SPL_USE_TINY_PRINTF
|
||||
imply CMD_DM
|
||||
|
||||
config TARGET_STOUT
|
||||
bool "Stout board"
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
select SPL_TINY_MEMSET
|
||||
select SUPPORT_SPL
|
||||
select SPL_USE_TINY_PRINTF
|
||||
imply CMD_DM
|
||||
|
||||
endchoice
|
||||
|
||||
config SYS_SOC
|
||||
default "rmobile"
|
||||
|
||||
config RMOBILE_EXTRAM_BOOT
|
||||
bool "Enable boot from RAM"
|
||||
depends on TARGET_ALT || TARGET_BLANCHE || TARGET_KOELSCH || TARGET_LAGER || TARGET_PORTER || TARGET_SILK || TARGET_STOUT
|
||||
default n
|
||||
|
||||
choice
|
||||
prompt "Qos setting primary"
|
||||
depends on TARGET_ALT || TARGET_BLANCHE || TARGET_GOSE || TARGET_KOELSCH || TARGET_LAGER
|
||||
default QOS_PRI_NORMAL
|
||||
|
||||
config QOS_PRI_NORMAL
|
||||
bool "Non primary"
|
||||
help
|
||||
Select normal mode for QoS setting.
|
||||
|
||||
config QOS_PRI_MEDIA
|
||||
bool "Media primary"
|
||||
help
|
||||
Select multimedia primary mode for QoS setting.
|
||||
|
||||
config QOS_PRI_GFX
|
||||
bool "GFX primary"
|
||||
help
|
||||
Select GFX(graphics) primary mode for QoS setting.
|
||||
|
||||
endchoice
|
||||
|
||||
source "board/atmark-techno/armadillo-800eva/Kconfig"
|
||||
source "board/renesas/blanche/Kconfig"
|
||||
source "board/renesas/gose/Kconfig"
|
||||
source "board/renesas/koelsch/Kconfig"
|
||||
source "board/renesas/lager/Kconfig"
|
||||
source "board/kmc/kzm9g/Kconfig"
|
||||
source "board/renesas/alt/Kconfig"
|
||||
source "board/renesas/silk/Kconfig"
|
||||
source "board/renesas/porter/Kconfig"
|
||||
source "board/renesas/stout/Kconfig"
|
||||
|
||||
endif
|
||||
@@ -0,0 +1,115 @@
|
||||
if RCAR_GEN3
|
||||
|
||||
menu "Select Target SoC"
|
||||
|
||||
config R8A7795
|
||||
bool "Renesas SoC R8A7795"
|
||||
imply CLK_R8A7795
|
||||
imply PINCTRL_PFC_R8A7795
|
||||
|
||||
config R8A7796
|
||||
bool "Renesas SoC R8A7796"
|
||||
imply CLK_R8A7796
|
||||
imply PINCTRL_PFC_R8A7796
|
||||
|
||||
config R8A77965
|
||||
bool "Renesas SoC R8A77965"
|
||||
imply CLK_R8A77965
|
||||
imply PINCTRL_PFC_R8A77965
|
||||
|
||||
config R8A77970
|
||||
bool "Renesas SoC R8A77970"
|
||||
imply CLK_R8A77970
|
||||
imply PINCTRL_PFC_R8A77970
|
||||
|
||||
config R8A77980
|
||||
bool "Renesas SoC R8A77980"
|
||||
imply CLK_R8A77980
|
||||
imply PINCTRL_PFC_R8A77980
|
||||
|
||||
config R8A77990
|
||||
bool "Renesas SoC R8A77990"
|
||||
imply CLK_R8A77990
|
||||
imply PINCTRL_PFC_R8A77990
|
||||
|
||||
config R8A77995
|
||||
bool "Renesas SoC R8A77995"
|
||||
imply CLK_R8A77995
|
||||
imply PINCTRL_PFC_R8A77995
|
||||
|
||||
endmenu
|
||||
|
||||
choice
|
||||
prompt "Renesas ARM64 SoCs board select"
|
||||
optional
|
||||
|
||||
config TARGET_CONDOR
|
||||
bool "Condor board"
|
||||
imply R8A77980
|
||||
help
|
||||
Support for Renesas R-Car Gen3 Condor platform
|
||||
|
||||
config TARGET_DRAAK
|
||||
bool "Draak board"
|
||||
imply R8A77995
|
||||
help
|
||||
Support for Renesas R-Car Gen3 Draak platform
|
||||
|
||||
config TARGET_EAGLE
|
||||
bool "Eagle board"
|
||||
imply R8A77970
|
||||
help
|
||||
Support for Renesas R-Car Gen3 Eagle platform
|
||||
|
||||
config TARGET_EBISU
|
||||
bool "Ebisu board"
|
||||
imply R8A77990
|
||||
help
|
||||
Support for Renesas R-Car Gen3 Ebisu platform
|
||||
|
||||
config TARGET_SALVATOR_X
|
||||
bool "Salvator-X board"
|
||||
imply R8A7795
|
||||
imply R8A7796
|
||||
imply R8A77965
|
||||
imply SYS_MALLOC_F
|
||||
imply MULTI_DTB_FIT
|
||||
imply MULTI_DTB_FIT_USER_DEFINED_AREA
|
||||
help
|
||||
Support for Renesas R-Car Gen3 platform
|
||||
|
||||
config TARGET_ULCB
|
||||
bool "ULCB board"
|
||||
imply R8A7795
|
||||
imply R8A7796
|
||||
imply R8A77965
|
||||
imply SYS_MALLOC_F
|
||||
imply MULTI_DTB_FIT
|
||||
imply MULTI_DTB_FIT_USER_DEFINED_AREA
|
||||
help
|
||||
Support for Renesas R-Car Gen3 ULCB platform
|
||||
|
||||
endchoice
|
||||
|
||||
config SYS_SOC
|
||||
default "rmobile"
|
||||
|
||||
source "board/renesas/condor/Kconfig"
|
||||
source "board/renesas/draak/Kconfig"
|
||||
source "board/renesas/eagle/Kconfig"
|
||||
source "board/renesas/ebisu/Kconfig"
|
||||
source "board/renesas/salvator-x/Kconfig"
|
||||
source "board/renesas/ulcb/Kconfig"
|
||||
|
||||
config MULTI_DTB_FIT_UNCOMPRESS_SZ
|
||||
default 0x80000 if TARGET_SALVATOR_X
|
||||
default 0x80000 if TARGET_ULCB
|
||||
|
||||
config MULTI_DTB_FIT_USER_DEF_ADDR
|
||||
default 0x49000000 if TARGET_SALVATOR_X
|
||||
default 0x49000000 if TARGET_ULCB
|
||||
|
||||
config SYS_MALLOC_F_LEN
|
||||
default 0x8000 if RCAR_GEN3
|
||||
|
||||
endif
|
||||
@@ -0,0 +1,28 @@
|
||||
if RZA1
|
||||
|
||||
# required by the Ethernet driver
|
||||
config R7S72100
|
||||
bool
|
||||
default y
|
||||
|
||||
# required by serial and usb driver
|
||||
config CPU_RZA1
|
||||
bool
|
||||
default y
|
||||
|
||||
choice
|
||||
prompt "Renesas RZ/A1 board select"
|
||||
|
||||
# Renesas Supported Boards
|
||||
config TARGET_GRPEACH
|
||||
bool "GR-PEACH board"
|
||||
|
||||
endchoice
|
||||
|
||||
config SYS_SOC
|
||||
default "rmobile"
|
||||
|
||||
# Renesas Supported Boards
|
||||
source "board/renesas/grpeach/Kconfig"
|
||||
|
||||
endif
|
||||
@@ -0,0 +1,88 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# (C) Copyright 2000-2006
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
|
||||
obj-y = cpu_info.o
|
||||
obj-y += emac.o
|
||||
|
||||
obj-$(CONFIG_DISPLAY_BOARDINFO) += board.o
|
||||
obj-$(CONFIG_GLOBAL_TIMER) += timer.o
|
||||
obj-$(CONFIG_TMU_TIMER) += ../../sh/lib/time.o
|
||||
obj-$(CONFIG_SH73A0) += lowlevel_init.o cpu_info-sh73a0.o pfc-sh73a0.o
|
||||
obj-$(CONFIG_R8A7740) += lowlevel_init.o cpu_info-r8a7740.o pfc-r8a7740.o
|
||||
obj-$(CONFIG_RCAR_GEN2) += lowlevel_init_ca15.o cpu_info-rcar.o
|
||||
obj-$(CONFIG_RCAR_GEN3) += lowlevel_init_gen3.o cpu_info-rcar.o memmap-gen3.o
|
||||
|
||||
OBJCOPYFLAGS_u-boot-spl.srec := -O srec
|
||||
quiet_cmd_objcopy = OBJCOPY $@
|
||||
cmd_objcopy = $(OBJCOPY) --gap-fill=0x00 $(OBJCOPYFLAGS) \
|
||||
$(OBJCOPYFLAGS_$(@F)) $< $@
|
||||
|
||||
spl/u-boot-spl.srec: spl/u-boot-spl FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
ifneq ($(CONFIG_R8A77990)$(CONFIG_R8A77995),)
|
||||
#
|
||||
# The first 6 generate statements generate the R-Car Gen3 SCIF loader header.
|
||||
# The subsequent generate statements represent the following chunk of assembler
|
||||
# code, which copies the loaded data from 0xe6304030 to 0xe6318000. This is to
|
||||
# work around a limitation of the D3/E3 BootROM, which does not permit loading
|
||||
# to 0xe6318000 directly.
|
||||
#
|
||||
# mov x0, #0xe6000000
|
||||
# orr x0, x0, #0x00300000
|
||||
# orr x1, x0, #0x00004000
|
||||
# orr x1, x1, #0x00000030
|
||||
#
|
||||
# orr x2, x0, #0x00018000
|
||||
# mov x0, x2
|
||||
# mov x3, #0x7000
|
||||
#1: ldp x4, x5, [x1], #16
|
||||
#
|
||||
# stp x4, x5, [x2], #16
|
||||
# subs x3, x3, #16
|
||||
# b.ge 1b
|
||||
# br x0
|
||||
#
|
||||
quiet_cmd_srec_cat = SRECCAT $@
|
||||
cmd_srec_cat = srec_cat -output $@ -M 8 $< -M 8 \
|
||||
-offset -0x13fd0 \
|
||||
-Output_Block_Size 16 \
|
||||
-generate 0xe6300400 0xe6300404 -l-e-constant 0x0 4 \
|
||||
-generate 0xe630048c 0xe6300490 -l-e-constant 0x0 4 \
|
||||
-generate 0xe63005d4 0xe63005d8 -l-e-constant 0xe6304000 4 \
|
||||
-generate 0xe63006e4 0xe63006e8 -l-e-constant $2 4 \
|
||||
-generate 0xe6301154 0xe6301158 -l-e-constant 0xe6304000 4 \
|
||||
-generate 0xe6301264 0xe6301268 -l-e-constant $2 4 \
|
||||
-generate 0xe6304000 0xe6304004 -l-e-constant 0xd2bcc000 4 \
|
||||
-generate 0xe6304004 0xe6304008 -l-e-constant 0xb26c0400 4 \
|
||||
-generate 0xe6304008 0xe630400c -l-e-constant 0xb2720001 4 \
|
||||
-generate 0xe630400c 0xe6304010 -l-e-constant 0xb27c0421 4 \
|
||||
-generate 0xe6304010 0xe6304014 -l-e-constant 0xb2710402 4 \
|
||||
-generate 0xe6304014 0xe6304018 -l-e-constant 0xaa0203e0 4 \
|
||||
-generate 0xe6304018 0xe630401c -l-e-constant 0xd28e0003 4 \
|
||||
-generate 0xe630401c 0xe6304020 -l-e-constant 0xa8c11424 4 \
|
||||
-generate 0xe6304020 0xe6304024 -l-e-constant 0xa8811444 4 \
|
||||
-generate 0xe6304024 0xe6304028 -l-e-constant 0xf1004063 4 \
|
||||
-generate 0xe6304028 0xe630402c -l-e-constant 0x54ffffaa 4 \
|
||||
-generate 0xe630402c 0xe6304030 -l-e-constant 0xd61f0000 4
|
||||
else
|
||||
quiet_cmd_srec_cat = SRECCAT $@
|
||||
cmd_srec_cat = srec_cat -output $@ -M 8 $< -M 8 \
|
||||
-Output_Block_Size 16 \
|
||||
-generate 0xe6300400 0xe6300404 -l-e-constant 0x0 4 \
|
||||
-generate 0xe630048c 0xe6300490 -l-e-constant 0x0 4 \
|
||||
-generate 0xe63005d4 0xe63005d8 -l-e-constant $(CONFIG_SPL_TEXT_BASE) 4 \
|
||||
-generate 0xe63006e4 0xe63006e8 -l-e-constant $2 4 \
|
||||
-generate 0xe6301154 0xe6301158 -l-e-constant $(CONFIG_SPL_TEXT_BASE) 4 \
|
||||
-generate 0xe6301264 0xe6301268 -l-e-constant $2 4
|
||||
endif
|
||||
|
||||
spl/u-boot-spl.scif: spl/u-boot-spl.srec spl/u-boot-spl.bin
|
||||
$(call cmd,srec_cat,$(shell wc -c spl/u-boot-spl.bin | awk '{printf("0x%08x\n",$$1)}'))
|
||||
|
||||
# if srec_cat is present build u-boot-spl.scif by default
|
||||
has_srec_cat = $(call try-run,srec_cat -VERSion,y,n)
|
||||
ALL-$(has_srec_cat) += u-boot-spl.scif
|
||||
CLEAN_FILES += u-boot-spl.scif
|
||||
@@ -0,0 +1,15 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
|
||||
* (C) Copyright 2012 Renesas Solutions Corp.
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#ifdef CONFIG_ARCH_RMOBILE_BOARD_STRING
|
||||
int checkboard(void)
|
||||
{
|
||||
printf("Board: %s\n", CONFIG_ARCH_RMOBILE_BOARD_STRING);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,31 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
|
||||
* (C) Copyright 2012 Renesas Solutions Corp.
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
u32 rmobile_get_cpu_type(void)
|
||||
{
|
||||
u32 id;
|
||||
u32 type;
|
||||
struct r8a7740_hpb *hpb = (struct r8a7740_hpb *)HPB_BASE;
|
||||
|
||||
id = readl(hpb->cccr);
|
||||
type = (id >> 8) & 0xFF;
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
u32 rmobile_get_cpu_rev(void)
|
||||
{
|
||||
u32 id;
|
||||
u32 rev;
|
||||
struct r8a7740_hpb *hpb = (struct r8a7740_hpb *)HPB_BASE;
|
||||
|
||||
id = readl(hpb->cccr);
|
||||
rev = (id >> 4) & 0xF;
|
||||
|
||||
return rev;
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* arch/arm/cpu/armv7/rmobile/cpu_info-rcar.c
|
||||
*
|
||||
* Copyright (C) 2013,2014 Renesas Electronics Corporation
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#define PRR_MASK 0x7fff
|
||||
#define R8A7796_REV_1_0 0x5200
|
||||
#define R8A7796_REV_1_1 0x5210
|
||||
|
||||
static u32 rmobile_get_prr(void)
|
||||
{
|
||||
#ifdef CONFIG_RCAR_GEN3
|
||||
return readl(0xFFF00044);
|
||||
#else
|
||||
return readl(0xFF000044);
|
||||
#endif
|
||||
}
|
||||
|
||||
u32 rmobile_get_cpu_type(void)
|
||||
{
|
||||
return (rmobile_get_prr() & 0x00007F00) >> 8;
|
||||
}
|
||||
|
||||
u32 rmobile_get_cpu_rev_integer(void)
|
||||
{
|
||||
const u32 prr = rmobile_get_prr();
|
||||
|
||||
if ((prr & PRR_MASK) == R8A7796_REV_1_1)
|
||||
return 1;
|
||||
else
|
||||
return ((prr & 0x000000F0) >> 4) + 1;
|
||||
}
|
||||
|
||||
u32 rmobile_get_cpu_rev_fraction(void)
|
||||
{
|
||||
const u32 prr = rmobile_get_prr();
|
||||
|
||||
if ((prr & PRR_MASK) == R8A7796_REV_1_1)
|
||||
return 1;
|
||||
else
|
||||
return prr & 0x0000000F;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
|
||||
* (C) Copyright 2012 Renesas Solutions Corp.
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
u32 rmobile_get_cpu_type(void)
|
||||
{
|
||||
u32 id;
|
||||
u32 type;
|
||||
struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;
|
||||
|
||||
id = readl(&hpb->cccr);
|
||||
type = (id >> 8) & 0xFF;
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
u32 rmobile_get_cpu_rev_integer(void)
|
||||
{
|
||||
u32 id;
|
||||
u32 rev;
|
||||
struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;
|
||||
|
||||
id = readl(&hpb->cccr);
|
||||
rev = ((id >> 4) & 0xF) + 1;
|
||||
|
||||
return rev;
|
||||
}
|
||||
|
||||
u32 rmobile_get_cpu_rev_fraction(void)
|
||||
{
|
||||
u32 id;
|
||||
u32 rev;
|
||||
struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;
|
||||
|
||||
id = readl(&hpb->cccr);
|
||||
rev = id & 0xF;
|
||||
|
||||
return rev;
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
|
||||
* (C) Copyright 2012 Renesas Solutions Corp.
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <cpu_func.h>
|
||||
#include <asm/io.h>
|
||||
#include <env.h>
|
||||
#include <linux/ctype.h>
|
||||
|
||||
#ifdef CONFIG_ARCH_CPU_INIT
|
||||
int arch_cpu_init(void)
|
||||
{
|
||||
icache_enable();
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* R-Car Gen3 D-cache is enabled in memmap-gen3.c */
|
||||
#ifndef CONFIG_RCAR_GEN3
|
||||
#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
|
||||
void enable_caches(void)
|
||||
{
|
||||
dcache_enable();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DISPLAY_CPUINFO
|
||||
#ifndef CONFIG_RZA1
|
||||
static u32 __rmobile_get_cpu_type(void)
|
||||
{
|
||||
return 0x0;
|
||||
}
|
||||
u32 rmobile_get_cpu_type(void)
|
||||
__attribute__((weak, alias("__rmobile_get_cpu_type")));
|
||||
|
||||
static u32 __rmobile_get_cpu_rev_integer(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
u32 rmobile_get_cpu_rev_integer(void)
|
||||
__attribute__((weak, alias("__rmobile_get_cpu_rev_integer")));
|
||||
|
||||
static u32 __rmobile_get_cpu_rev_fraction(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
u32 rmobile_get_cpu_rev_fraction(void)
|
||||
__attribute__((weak, alias("__rmobile_get_cpu_rev_fraction")));
|
||||
|
||||
/* CPU infomation table */
|
||||
static const struct {
|
||||
u16 cpu_type;
|
||||
u8 cpu_name[10];
|
||||
} rmobile_cpuinfo[] = {
|
||||
{ RMOBILE_CPU_TYPE_SH73A0, "SH73A0" },
|
||||
{ RMOBILE_CPU_TYPE_R8A7740, "R8A7740" },
|
||||
{ RMOBILE_CPU_TYPE_R8A7790, "R8A7790" },
|
||||
{ RMOBILE_CPU_TYPE_R8A7791, "R8A7791" },
|
||||
{ RMOBILE_CPU_TYPE_R8A7792, "R8A7792" },
|
||||
{ RMOBILE_CPU_TYPE_R8A7793, "R8A7793" },
|
||||
{ RMOBILE_CPU_TYPE_R8A7794, "R8A7794" },
|
||||
{ RMOBILE_CPU_TYPE_R8A7795, "R8A7795" },
|
||||
{ RMOBILE_CPU_TYPE_R8A7796, "R8A7796" },
|
||||
{ RMOBILE_CPU_TYPE_R8A77965, "R8A77965" },
|
||||
{ RMOBILE_CPU_TYPE_R8A77970, "R8A77970" },
|
||||
{ RMOBILE_CPU_TYPE_R8A77980, "R8A77980" },
|
||||
{ RMOBILE_CPU_TYPE_R8A77990, "R8A77990" },
|
||||
{ RMOBILE_CPU_TYPE_R8A77995, "R8A77995" },
|
||||
{ 0x0, "CPU" },
|
||||
};
|
||||
|
||||
static int rmobile_cpuinfo_idx(void)
|
||||
{
|
||||
int i = 0;
|
||||
u32 cpu_type = rmobile_get_cpu_type();
|
||||
|
||||
for (; i < ARRAY_SIZE(rmobile_cpuinfo); i++)
|
||||
if (rmobile_cpuinfo[i].cpu_type == cpu_type)
|
||||
break;
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_MISC_INIT
|
||||
int arch_misc_init(void)
|
||||
{
|
||||
int i, idx = rmobile_cpuinfo_idx();
|
||||
char cpu[10] = { 0 };
|
||||
|
||||
for (i = 0; i < sizeof(cpu); i++)
|
||||
cpu[i] = tolower(rmobile_cpuinfo[idx].cpu_name[i]);
|
||||
|
||||
env_set("platform", cpu);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int print_cpuinfo(void)
|
||||
{
|
||||
int i = rmobile_cpuinfo_idx();
|
||||
|
||||
printf("CPU: Renesas Electronics %s rev %d.%d\n",
|
||||
rmobile_cpuinfo[i].cpu_name, rmobile_get_cpu_rev_integer(),
|
||||
rmobile_get_cpu_rev_fraction());
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int print_cpuinfo(void)
|
||||
{
|
||||
printf("CPU: Renesas Electronics RZ/A1\n");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif /* CONFIG_DISPLAY_CPUINFO */
|
||||
@@ -0,0 +1,20 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* RMOBILE EtherMAC initialization.
|
||||
*
|
||||
* Copyright (C) 2012 Renesas Solutions Corp.
|
||||
* Copyright (C) 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <linux/errno.h>
|
||||
#include <netdev.h>
|
||||
|
||||
int cpu_eth_init(bd_t *bis)
|
||||
{
|
||||
int ret = -ENODEV;
|
||||
#ifdef CONFIG_SH_ETHER
|
||||
ret = sh_eth_initialize(bis);
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Specialty padding for the RCar Gen2 SPL JTAG loading
|
||||
*/
|
||||
|
||||
#ifndef __BOOT0_H
|
||||
#define __BOOT0_H
|
||||
|
||||
_start:
|
||||
ARM_VECTORS
|
||||
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
.word 0x0badc0d3;
|
||||
.word 0x0badc0d3;
|
||||
.word 0x0badc0d3;
|
||||
.word 0x0badc0d3;
|
||||
.word 0x0badc0d3;
|
||||
.word 0x0badc0d3;
|
||||
.word 0x0badc0d3;
|
||||
.word 0x0badc0d3;
|
||||
#endif
|
||||
|
||||
#endif /* __BOOT0_H */
|
||||
@@ -0,0 +1,146 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2013,2014 Renesas Electronics Corporation
|
||||
* Copyright (C) 2014 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
|
||||
*/
|
||||
|
||||
#ifndef __EHCI_RMOBILE_H__
|
||||
#define __EHCI_RMOBILE_H__
|
||||
|
||||
/* Register offset */
|
||||
#define OHCI_OFFSET 0x00
|
||||
#define OHCI_SIZE 0x1000
|
||||
#define EHCI_OFFSET 0x1000
|
||||
#define EHCI_SIZE 0x1000
|
||||
|
||||
#define EHCI_USBCMD (EHCI_OFFSET + 0x0020)
|
||||
|
||||
/* USBCTR */
|
||||
#define DIRPD (1 << 8)
|
||||
#define PLL_RST (1 << 2)
|
||||
#define PCICLK_MASK (1 << 1)
|
||||
#define USBH_RST (1 << 0)
|
||||
|
||||
/* CMND_STS */
|
||||
#define SERREN (1 << 8)
|
||||
#define PERREN (1 << 6)
|
||||
#define MASTEREN (1 << 2)
|
||||
#define MEMEN (1 << 1)
|
||||
|
||||
/* PCIAHB_WIN1_CTR and PCIAHB_WIN2_CTR */
|
||||
#define PCIAHB_WIN_PREFETCH ((1 << 1)|(1 << 0))
|
||||
|
||||
/* AHBPCI_WIN1_CTR */
|
||||
#define PCIWIN1_PCICMD ((1 << 3)|(1 << 1))
|
||||
#define AHB_CFG_AHBPCI 0x40000000
|
||||
#define AHB_CFG_HOST 0x80000000
|
||||
|
||||
/* AHBPCI_WIN2_CTR */
|
||||
#define PCIWIN2_PCICMD ((1 << 2)|(1 << 1))
|
||||
|
||||
/* PCI_INT_ENABLE */
|
||||
#define USBH_PMEEN (1 << 19)
|
||||
#define USBH_INTBEN (1 << 17)
|
||||
#define USBH_INTAEN (1 << 16)
|
||||
|
||||
/* AHB_BUS_CTR */
|
||||
#define SMODE_READY_CTR (1 << 17)
|
||||
#define SMODE_READ_BURST (1 << 16)
|
||||
#define MMODE_HBUSREQ (1 << 7)
|
||||
#define MMODE_BOUNDARY ((1 << 6)|(1 << 5))
|
||||
#define MMODE_BURST_WIDTH ((1 << 4)|(1 << 3))
|
||||
#define MMODE_SINGLE_MODE ((1 << 4)|(1 << 3))
|
||||
#define MMODE_WR_INCR (1 << 2)
|
||||
#define MMODE_BYTE_BURST (1 << 1)
|
||||
#define MMODE_HTRANS (1 << 0)
|
||||
|
||||
/* PCI_ARBITER_CTR */
|
||||
#define PCIBUS_PARK_TIMER 0x00FF0000
|
||||
#define PCIBUS_PARK_TIMER_SET 0x00070000
|
||||
#define PCIBP_MODE (1 << 12)
|
||||
#define PCIREQ7 (1 << 7)
|
||||
#define PCIREQ6 (1 << 6)
|
||||
#define PCIREQ5 (1 << 5)
|
||||
#define PCIREQ4 (1 << 4)
|
||||
#define PCIREQ3 (1 << 3)
|
||||
#define PCIREQ2 (1 << 2)
|
||||
#define PCIREQ1 (1 << 1)
|
||||
#define PCIREQ0 (1 << 0)
|
||||
|
||||
#define SMSTPCR7 0xE615014C
|
||||
#define SMSTPCR703 (1 << 3)
|
||||
|
||||
/* Init AHB master and slave functions of the host logic */
|
||||
#define AHB_BUS_CTR_INIT \
|
||||
(SMODE_READY_CTR | MMODE_HBUSREQ | MMODE_WR_INCR | \
|
||||
MMODE_BYTE_BURST | MMODE_HTRANS)
|
||||
|
||||
#define USBCTR_WIN_SIZE_1GB 0x800
|
||||
|
||||
/* PCI Configuration Registers */
|
||||
#define PCI_CONF_OHCI_OFFSET 0x10000
|
||||
#define PCI_CONF_EHCI_OFFSET 0x10100
|
||||
struct ahb_pciconf {
|
||||
u32 vid_did;
|
||||
u32 cmnd_sts;
|
||||
u32 rev;
|
||||
u32 cache_line;
|
||||
u32 basead;
|
||||
};
|
||||
|
||||
/* PCI Configuration Registers for AHB-PCI Bridge Registers */
|
||||
#define PCI_CONF_AHBPCI_OFFSET 0x10000
|
||||
struct ahbconf_pci_bridge {
|
||||
u32 vid_did; /* 0x00 */
|
||||
u32 cmnd_sts;
|
||||
u32 revid_cc;
|
||||
u32 cls_lt_ht_bist;
|
||||
u32 basead; /* 0x10 */
|
||||
u32 win1_basead;
|
||||
u32 win2_basead;
|
||||
u32 dummy0[5];
|
||||
u32 ssvdi_ssid; /* 0x2C */
|
||||
u32 dummy1[4];
|
||||
u32 intr_line_pin;
|
||||
};
|
||||
|
||||
/* AHB-PCI Bridge PCI Communication Registers */
|
||||
#define AHBPCI_OFFSET 0x10800
|
||||
struct ahbcom_pci_bridge {
|
||||
u32 pciahb_win1_ctr; /* 0x00 */
|
||||
u32 pciahb_win2_ctr;
|
||||
u32 pciahb_dct_ctr;
|
||||
u32 dummy0;
|
||||
u32 ahbpci_win1_ctr; /* 0x10 */
|
||||
u32 ahbpci_win2_ctr;
|
||||
u32 dummy1;
|
||||
u32 ahbpci_dct_ctr;
|
||||
u32 pci_int_enable; /* 0x20 */
|
||||
u32 pci_int_status;
|
||||
u32 dummy2[2];
|
||||
u32 ahb_bus_ctr; /* 0x30 */
|
||||
u32 usbctr;
|
||||
u32 dummy3[2];
|
||||
u32 pci_arbiter_ctr; /* 0x40 */
|
||||
u32 dummy4;
|
||||
u32 pci_unit_rev; /* 0x48 */
|
||||
};
|
||||
|
||||
struct rmobile_ehci_reg {
|
||||
u32 hciversion; /* hciversion/caplength */
|
||||
u32 hcsparams; /* hcsparams */
|
||||
u32 hccparams; /* hccparams */
|
||||
u32 hcsp_portroute; /* hcsp_portroute */
|
||||
u32 usbcmd; /* usbcmd */
|
||||
u32 usbsts; /* usbsts */
|
||||
u32 usbintr; /* usbintr */
|
||||
u32 frindex; /* frindex */
|
||||
u32 ctrldssegment; /* ctrldssegment */
|
||||
u32 periodiclistbase; /* periodiclistbase */
|
||||
u32 asynclistaddr; /* asynclistaddr */
|
||||
u32 dummy[9];
|
||||
u32 configflag; /* configflag */
|
||||
u32 portsc; /* portsc */
|
||||
};
|
||||
|
||||
#endif /* __EHCI_RMOBILE_H__ */
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef __ASM_ARCH_GPIO_H
|
||||
#define __ASM_ARCH_GPIO_H
|
||||
|
||||
#if defined(CONFIG_SH73A0)
|
||||
#include "sh73a0-gpio.h"
|
||||
void sh73a0_pinmux_init(void);
|
||||
#elif defined(CONFIG_R8A7740)
|
||||
#include "r8a7740-gpio.h"
|
||||
void r8a7740_pinmux_init(void);
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_ARCH_GPIO_H */
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef __ASM_MACH_IRQS_H
|
||||
#define __ASM_MACH_IRQS_H
|
||||
|
||||
#define NR_IRQS 1024
|
||||
|
||||
/* GIC */
|
||||
#define gic_spi(nr) ((nr) + 32)
|
||||
|
||||
/* INTCA */
|
||||
#define evt2irq(evt) (((evt) >> 5) - 16)
|
||||
#define irq2evt(irq) (((irq) + 16) << 5)
|
||||
|
||||
/* INTCS */
|
||||
#define INTCS_VECT_BASE 0x2200
|
||||
#define INTCS_VECT(n, vect) INTC_VECT((n), INTCS_VECT_BASE + (vect))
|
||||
#define intcs_evt2irq(evt) evt2irq(INTCS_VECT_BASE + (evt))
|
||||
|
||||
#endif /* __ASM_MACH_IRQS_H */
|
||||
@@ -0,0 +1,13 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Renesas SuperH MMCIF driver.
|
||||
*
|
||||
* Copyright (C) 2014 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
|
||||
* Copyright (C) 2014 Renesas Electronics Corporation
|
||||
*/
|
||||
#ifndef _RMOBILE_MMC_H_
|
||||
#define _RMOBILE_MMC_H_
|
||||
|
||||
int mmcif_mmc_init(void);
|
||||
|
||||
#endif /* _RMOBILE_MMC_H_ */
|
||||
@@ -0,0 +1,572 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2011 Renesas Solutions Corp.
|
||||
* Copyright (C) 2011 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
*/
|
||||
|
||||
#ifndef __ASM_R8A7740_H__
|
||||
#define __ASM_R8A7740_H__
|
||||
|
||||
/*
|
||||
* MD_CKx pin
|
||||
*/
|
||||
#define MD_CK2 (1 << 2)
|
||||
#define MD_CK1 (1 << 1)
|
||||
#define MD_CK0 (1 << 0)
|
||||
|
||||
/*
|
||||
* Pin Function Controller:
|
||||
* GPIO_FN_xx - GPIO used to select pin function
|
||||
* GPIO_PORTxx - GPIO mapped to real I/O pin on CPU
|
||||
*/
|
||||
enum {
|
||||
/* PORT */
|
||||
GPIO_PORT0, GPIO_PORT1, GPIO_PORT2, GPIO_PORT3, GPIO_PORT4,
|
||||
GPIO_PORT5, GPIO_PORT6, GPIO_PORT7, GPIO_PORT8, GPIO_PORT9,
|
||||
|
||||
GPIO_PORT10, GPIO_PORT11, GPIO_PORT12, GPIO_PORT13, GPIO_PORT14,
|
||||
GPIO_PORT15, GPIO_PORT16, GPIO_PORT17, GPIO_PORT18, GPIO_PORT19,
|
||||
|
||||
GPIO_PORT20, GPIO_PORT21, GPIO_PORT22, GPIO_PORT23, GPIO_PORT24,
|
||||
GPIO_PORT25, GPIO_PORT26, GPIO_PORT27, GPIO_PORT28, GPIO_PORT29,
|
||||
|
||||
GPIO_PORT30, GPIO_PORT31, GPIO_PORT32, GPIO_PORT33, GPIO_PORT34,
|
||||
GPIO_PORT35, GPIO_PORT36, GPIO_PORT37, GPIO_PORT38, GPIO_PORT39,
|
||||
|
||||
GPIO_PORT40, GPIO_PORT41, GPIO_PORT42, GPIO_PORT43, GPIO_PORT44,
|
||||
GPIO_PORT45, GPIO_PORT46, GPIO_PORT47, GPIO_PORT48, GPIO_PORT49,
|
||||
|
||||
GPIO_PORT50, GPIO_PORT51, GPIO_PORT52, GPIO_PORT53, GPIO_PORT54,
|
||||
GPIO_PORT55, GPIO_PORT56, GPIO_PORT57, GPIO_PORT58, GPIO_PORT59,
|
||||
|
||||
GPIO_PORT60, GPIO_PORT61, GPIO_PORT62, GPIO_PORT63, GPIO_PORT64,
|
||||
GPIO_PORT65, GPIO_PORT66, GPIO_PORT67, GPIO_PORT68, GPIO_PORT69,
|
||||
|
||||
GPIO_PORT70, GPIO_PORT71, GPIO_PORT72, GPIO_PORT73, GPIO_PORT74,
|
||||
GPIO_PORT75, GPIO_PORT76, GPIO_PORT77, GPIO_PORT78, GPIO_PORT79,
|
||||
|
||||
GPIO_PORT80, GPIO_PORT81, GPIO_PORT82, GPIO_PORT83, GPIO_PORT84,
|
||||
GPIO_PORT85, GPIO_PORT86, GPIO_PORT87, GPIO_PORT88, GPIO_PORT89,
|
||||
|
||||
GPIO_PORT90, GPIO_PORT91, GPIO_PORT92, GPIO_PORT93, GPIO_PORT94,
|
||||
GPIO_PORT95, GPIO_PORT96, GPIO_PORT97, GPIO_PORT98, GPIO_PORT99,
|
||||
|
||||
GPIO_PORT100, GPIO_PORT101, GPIO_PORT102, GPIO_PORT103, GPIO_PORT104,
|
||||
GPIO_PORT105, GPIO_PORT106, GPIO_PORT107, GPIO_PORT108, GPIO_PORT109,
|
||||
|
||||
GPIO_PORT110, GPIO_PORT111, GPIO_PORT112, GPIO_PORT113, GPIO_PORT114,
|
||||
GPIO_PORT115, GPIO_PORT116, GPIO_PORT117, GPIO_PORT118, GPIO_PORT119,
|
||||
|
||||
GPIO_PORT120, GPIO_PORT121, GPIO_PORT122, GPIO_PORT123, GPIO_PORT124,
|
||||
GPIO_PORT125, GPIO_PORT126, GPIO_PORT127, GPIO_PORT128, GPIO_PORT129,
|
||||
|
||||
GPIO_PORT130, GPIO_PORT131, GPIO_PORT132, GPIO_PORT133, GPIO_PORT134,
|
||||
GPIO_PORT135, GPIO_PORT136, GPIO_PORT137, GPIO_PORT138, GPIO_PORT139,
|
||||
|
||||
GPIO_PORT140, GPIO_PORT141, GPIO_PORT142, GPIO_PORT143, GPIO_PORT144,
|
||||
GPIO_PORT145, GPIO_PORT146, GPIO_PORT147, GPIO_PORT148, GPIO_PORT149,
|
||||
|
||||
GPIO_PORT150, GPIO_PORT151, GPIO_PORT152, GPIO_PORT153, GPIO_PORT154,
|
||||
GPIO_PORT155, GPIO_PORT156, GPIO_PORT157, GPIO_PORT158, GPIO_PORT159,
|
||||
|
||||
GPIO_PORT160, GPIO_PORT161, GPIO_PORT162, GPIO_PORT163, GPIO_PORT164,
|
||||
GPIO_PORT165, GPIO_PORT166, GPIO_PORT167, GPIO_PORT168, GPIO_PORT169,
|
||||
|
||||
GPIO_PORT170, GPIO_PORT171, GPIO_PORT172, GPIO_PORT173, GPIO_PORT174,
|
||||
GPIO_PORT175, GPIO_PORT176, GPIO_PORT177, GPIO_PORT178, GPIO_PORT179,
|
||||
|
||||
GPIO_PORT180, GPIO_PORT181, GPIO_PORT182, GPIO_PORT183, GPIO_PORT184,
|
||||
GPIO_PORT185, GPIO_PORT186, GPIO_PORT187, GPIO_PORT188, GPIO_PORT189,
|
||||
|
||||
GPIO_PORT190, GPIO_PORT191, GPIO_PORT192, GPIO_PORT193, GPIO_PORT194,
|
||||
GPIO_PORT195, GPIO_PORT196, GPIO_PORT197, GPIO_PORT198, GPIO_PORT199,
|
||||
|
||||
GPIO_PORT200, GPIO_PORT201, GPIO_PORT202, GPIO_PORT203, GPIO_PORT204,
|
||||
GPIO_PORT205, GPIO_PORT206, GPIO_PORT207, GPIO_PORT208, GPIO_PORT209,
|
||||
|
||||
GPIO_PORT210, GPIO_PORT211,
|
||||
|
||||
/* IRQ */
|
||||
GPIO_FN_IRQ0_PORT2, GPIO_FN_IRQ0_PORT13,
|
||||
GPIO_FN_IRQ1,
|
||||
GPIO_FN_IRQ2_PORT11, GPIO_FN_IRQ2_PORT12,
|
||||
GPIO_FN_IRQ3_PORT10, GPIO_FN_IRQ3_PORT14,
|
||||
GPIO_FN_IRQ4_PORT15, GPIO_FN_IRQ4_PORT172,
|
||||
GPIO_FN_IRQ5_PORT0, GPIO_FN_IRQ5_PORT1,
|
||||
GPIO_FN_IRQ6_PORT121, GPIO_FN_IRQ6_PORT173,
|
||||
GPIO_FN_IRQ7_PORT120, GPIO_FN_IRQ7_PORT209,
|
||||
GPIO_FN_IRQ8,
|
||||
GPIO_FN_IRQ9_PORT118, GPIO_FN_IRQ9_PORT210,
|
||||
GPIO_FN_IRQ10,
|
||||
GPIO_FN_IRQ11,
|
||||
GPIO_FN_IRQ12_PORT42, GPIO_FN_IRQ12_PORT97,
|
||||
GPIO_FN_IRQ13_PORT64, GPIO_FN_IRQ13_PORT98,
|
||||
GPIO_FN_IRQ14_PORT63, GPIO_FN_IRQ14_PORT99,
|
||||
GPIO_FN_IRQ15_PORT62, GPIO_FN_IRQ15_PORT100,
|
||||
GPIO_FN_IRQ16_PORT68, GPIO_FN_IRQ16_PORT211,
|
||||
GPIO_FN_IRQ17,
|
||||
GPIO_FN_IRQ18,
|
||||
GPIO_FN_IRQ19,
|
||||
GPIO_FN_IRQ20,
|
||||
GPIO_FN_IRQ21,
|
||||
GPIO_FN_IRQ22,
|
||||
GPIO_FN_IRQ23,
|
||||
GPIO_FN_IRQ24,
|
||||
GPIO_FN_IRQ25,
|
||||
GPIO_FN_IRQ26_PORT58, GPIO_FN_IRQ26_PORT81,
|
||||
GPIO_FN_IRQ27_PORT57, GPIO_FN_IRQ27_PORT168,
|
||||
GPIO_FN_IRQ28_PORT56, GPIO_FN_IRQ28_PORT169,
|
||||
GPIO_FN_IRQ29_PORT50, GPIO_FN_IRQ29_PORT170,
|
||||
GPIO_FN_IRQ30_PORT49, GPIO_FN_IRQ30_PORT171,
|
||||
GPIO_FN_IRQ31_PORT41, GPIO_FN_IRQ31_PORT167,
|
||||
|
||||
/* Function */
|
||||
|
||||
/* DBGT */
|
||||
GPIO_FN_DBGMDT2, GPIO_FN_DBGMDT1, GPIO_FN_DBGMDT0,
|
||||
GPIO_FN_DBGMD10, GPIO_FN_DBGMD11, GPIO_FN_DBGMD20,
|
||||
GPIO_FN_DBGMD21,
|
||||
|
||||
/* FSI */
|
||||
GPIO_FN_FSIAISLD_PORT0, /* FSIAISLD Port 0/5 */
|
||||
GPIO_FN_FSIAISLD_PORT5,
|
||||
GPIO_FN_FSIASPDIF_PORT9, /* FSIASPDIF Port 9/18 */
|
||||
GPIO_FN_FSIASPDIF_PORT18,
|
||||
GPIO_FN_FSIAOSLD1, GPIO_FN_FSIAOSLD2,
|
||||
GPIO_FN_FSIAOLR, GPIO_FN_FSIAOBT,
|
||||
GPIO_FN_FSIAOSLD, GPIO_FN_FSIAOMC,
|
||||
GPIO_FN_FSIACK, GPIO_FN_FSIAILR,
|
||||
GPIO_FN_FSIAIBT,
|
||||
|
||||
/* FMSI */
|
||||
GPIO_FN_FMSISLD_PORT1, /* FMSISLD Port 1/6 */
|
||||
GPIO_FN_FMSISLD_PORT6,
|
||||
GPIO_FN_FMSIILR, GPIO_FN_FMSIIBT,
|
||||
GPIO_FN_FMSIOLR, GPIO_FN_FMSIOBT,
|
||||
GPIO_FN_FMSICK, GPIO_FN_FMSOILR,
|
||||
GPIO_FN_FMSOIBT, GPIO_FN_FMSOOLR,
|
||||
GPIO_FN_FMSOOBT, GPIO_FN_FMSOSLD,
|
||||
GPIO_FN_FMSOCK,
|
||||
|
||||
/* SCIFA0 */
|
||||
GPIO_FN_SCIFA0_SCK, GPIO_FN_SCIFA0_CTS,
|
||||
GPIO_FN_SCIFA0_RTS, GPIO_FN_SCIFA0_RXD,
|
||||
GPIO_FN_SCIFA0_TXD,
|
||||
|
||||
/* SCIFA1 */
|
||||
GPIO_FN_SCIFA1_CTS, GPIO_FN_SCIFA1_SCK,
|
||||
GPIO_FN_SCIFA1_RXD, GPIO_FN_SCIFA1_TXD,
|
||||
GPIO_FN_SCIFA1_RTS,
|
||||
|
||||
/* SCIFA2 */
|
||||
GPIO_FN_SCIFA2_SCK_PORT22, /* SCIFA2_SCK Port 22/199 */
|
||||
GPIO_FN_SCIFA2_SCK_PORT199,
|
||||
GPIO_FN_SCIFA2_RXD, GPIO_FN_SCIFA2_TXD,
|
||||
GPIO_FN_SCIFA2_CTS, GPIO_FN_SCIFA2_RTS,
|
||||
|
||||
/* SCIFA3 */
|
||||
GPIO_FN_SCIFA3_RTS_PORT105, /* MSEL5CR_8_0 */
|
||||
GPIO_FN_SCIFA3_SCK_PORT116,
|
||||
GPIO_FN_SCIFA3_CTS_PORT117,
|
||||
GPIO_FN_SCIFA3_RXD_PORT174,
|
||||
GPIO_FN_SCIFA3_TXD_PORT175,
|
||||
|
||||
GPIO_FN_SCIFA3_RTS_PORT161, /* MSEL5CR_8_1 */
|
||||
GPIO_FN_SCIFA3_SCK_PORT158,
|
||||
GPIO_FN_SCIFA3_CTS_PORT162,
|
||||
GPIO_FN_SCIFA3_RXD_PORT159,
|
||||
GPIO_FN_SCIFA3_TXD_PORT160,
|
||||
|
||||
/* SCIFA4 */
|
||||
GPIO_FN_SCIFA4_RXD_PORT12, /* MSEL5CR[12:11] = 00 */
|
||||
GPIO_FN_SCIFA4_TXD_PORT13,
|
||||
|
||||
GPIO_FN_SCIFA4_RXD_PORT204, /* MSEL5CR[12:11] = 01 */
|
||||
GPIO_FN_SCIFA4_TXD_PORT203,
|
||||
|
||||
GPIO_FN_SCIFA4_RXD_PORT94, /* MSEL5CR[12:11] = 10 */
|
||||
GPIO_FN_SCIFA4_TXD_PORT93,
|
||||
|
||||
GPIO_FN_SCIFA4_SCK_PORT21, /* SCIFA4_SCK Port 21/205 */
|
||||
GPIO_FN_SCIFA4_SCK_PORT205,
|
||||
|
||||
/* SCIFA5 */
|
||||
GPIO_FN_SCIFA5_TXD_PORT20, /* MSEL5CR[15:14] = 00 */
|
||||
GPIO_FN_SCIFA5_RXD_PORT10,
|
||||
|
||||
GPIO_FN_SCIFA5_RXD_PORT207, /* MSEL5CR[15:14] = 01 */
|
||||
GPIO_FN_SCIFA5_TXD_PORT208,
|
||||
|
||||
GPIO_FN_SCIFA5_TXD_PORT91, /* MSEL5CR[15:14] = 10 */
|
||||
GPIO_FN_SCIFA5_RXD_PORT92,
|
||||
|
||||
GPIO_FN_SCIFA5_SCK_PORT23, /* SCIFA5_SCK Port 23/206 */
|
||||
GPIO_FN_SCIFA5_SCK_PORT206,
|
||||
|
||||
/* SCIFA6 */
|
||||
GPIO_FN_SCIFA6_SCK, GPIO_FN_SCIFA6_RXD, GPIO_FN_SCIFA6_TXD,
|
||||
|
||||
/* SCIFA7 */
|
||||
GPIO_FN_SCIFA7_TXD, GPIO_FN_SCIFA7_RXD,
|
||||
|
||||
/* SCIFAB */
|
||||
GPIO_FN_SCIFB_SCK_PORT190, /* MSEL5CR_17_0 */
|
||||
GPIO_FN_SCIFB_RXD_PORT191,
|
||||
GPIO_FN_SCIFB_TXD_PORT192,
|
||||
GPIO_FN_SCIFB_RTS_PORT186,
|
||||
GPIO_FN_SCIFB_CTS_PORT187,
|
||||
|
||||
GPIO_FN_SCIFB_SCK_PORT2, /* MSEL5CR_17_1 */
|
||||
GPIO_FN_SCIFB_RXD_PORT3,
|
||||
GPIO_FN_SCIFB_TXD_PORT4,
|
||||
GPIO_FN_SCIFB_RTS_PORT172,
|
||||
GPIO_FN_SCIFB_CTS_PORT173,
|
||||
|
||||
/* LCD0 */
|
||||
GPIO_FN_LCDC0_SELECT,
|
||||
GPIO_FN_LCD0_D0, GPIO_FN_LCD0_D1, GPIO_FN_LCD0_D2,
|
||||
GPIO_FN_LCD0_D3, GPIO_FN_LCD0_D4, GPIO_FN_LCD0_D5,
|
||||
GPIO_FN_LCD0_D6, GPIO_FN_LCD0_D7, GPIO_FN_LCD0_D8,
|
||||
GPIO_FN_LCD0_D9, GPIO_FN_LCD0_D10, GPIO_FN_LCD0_D11,
|
||||
GPIO_FN_LCD0_D12, GPIO_FN_LCD0_D13, GPIO_FN_LCD0_D14,
|
||||
GPIO_FN_LCD0_D15, GPIO_FN_LCD0_D16, GPIO_FN_LCD0_D17,
|
||||
GPIO_FN_LCD0_DON, GPIO_FN_LCD0_VCPWC, GPIO_FN_LCD0_VEPWC,
|
||||
|
||||
GPIO_FN_LCD0_DCK, GPIO_FN_LCD0_VSYN, /* for RGB */
|
||||
GPIO_FN_LCD0_HSYN, GPIO_FN_LCD0_DISP, /* for RGB */
|
||||
|
||||
GPIO_FN_LCD0_WR, GPIO_FN_LCD0_RD, /* for SYS */
|
||||
GPIO_FN_LCD0_CS, GPIO_FN_LCD0_RS, /* for SYS */
|
||||
|
||||
GPIO_FN_LCD0_D18_PORT163, GPIO_FN_LCD0_D19_PORT162,
|
||||
GPIO_FN_LCD0_D20_PORT161, GPIO_FN_LCD0_D21_PORT158,
|
||||
GPIO_FN_LCD0_D22_PORT160, GPIO_FN_LCD0_D23_PORT159,
|
||||
GPIO_FN_LCD0_LCLK_PORT165, /* MSEL5CR_6_1 */
|
||||
|
||||
GPIO_FN_LCD0_D18_PORT40, GPIO_FN_LCD0_D19_PORT4,
|
||||
GPIO_FN_LCD0_D20_PORT3, GPIO_FN_LCD0_D21_PORT2,
|
||||
GPIO_FN_LCD0_D22_PORT0, GPIO_FN_LCD0_D23_PORT1,
|
||||
GPIO_FN_LCD0_LCLK_PORT102, /* MSEL5CR_6_0 */
|
||||
|
||||
/* LCD1 */
|
||||
GPIO_FN_LCDC1_SELECT,
|
||||
GPIO_FN_LCD1_D0, GPIO_FN_LCD1_D1, GPIO_FN_LCD1_D2,
|
||||
GPIO_FN_LCD1_D3, GPIO_FN_LCD1_D4, GPIO_FN_LCD1_D5,
|
||||
GPIO_FN_LCD1_D6, GPIO_FN_LCD1_D7, GPIO_FN_LCD1_D8,
|
||||
GPIO_FN_LCD1_D9, GPIO_FN_LCD1_D10, GPIO_FN_LCD1_D11,
|
||||
GPIO_FN_LCD1_D12, GPIO_FN_LCD1_D13, GPIO_FN_LCD1_D14,
|
||||
GPIO_FN_LCD1_D15, GPIO_FN_LCD1_D16, GPIO_FN_LCD1_D17,
|
||||
GPIO_FN_LCD1_D18, GPIO_FN_LCD1_D19, GPIO_FN_LCD1_D20,
|
||||
GPIO_FN_LCD1_D21, GPIO_FN_LCD1_D22, GPIO_FN_LCD1_D23,
|
||||
GPIO_FN_LCD1_DON, GPIO_FN_LCD1_VCPWC,
|
||||
GPIO_FN_LCD1_LCLK, GPIO_FN_LCD1_VEPWC,
|
||||
|
||||
GPIO_FN_LCD1_DCK, GPIO_FN_LCD1_VSYN, /* for RGB */
|
||||
GPIO_FN_LCD1_HSYN, GPIO_FN_LCD1_DISP, /* for RGB */
|
||||
|
||||
GPIO_FN_LCD1_WR, GPIO_FN_LCD1_RD, /* for SYS */
|
||||
GPIO_FN_LCD1_CS, GPIO_FN_LCD1_RS, /* for SYS */
|
||||
|
||||
/* RSPI */
|
||||
GPIO_FN_RSPI_SSL0_A, GPIO_FN_RSPI_SSL1_A,
|
||||
GPIO_FN_RSPI_SSL2_A, GPIO_FN_RSPI_SSL3_A,
|
||||
GPIO_FN_RSPI_MOSI_A, GPIO_FN_RSPI_MISO_A,
|
||||
GPIO_FN_RSPI_CK_A,
|
||||
|
||||
/* VIO CKO */
|
||||
GPIO_FN_VIO_CKO1,
|
||||
GPIO_FN_VIO_CKO2,
|
||||
GPIO_FN_VIO_CKO_1,
|
||||
GPIO_FN_VIO_CKO,
|
||||
|
||||
/* VIO0 */
|
||||
GPIO_FN_VIO0_D0, GPIO_FN_VIO0_D1, GPIO_FN_VIO0_D2,
|
||||
GPIO_FN_VIO0_D3, GPIO_FN_VIO0_D4, GPIO_FN_VIO0_D5,
|
||||
GPIO_FN_VIO0_D6, GPIO_FN_VIO0_D7, GPIO_FN_VIO0_D8,
|
||||
GPIO_FN_VIO0_D9, GPIO_FN_VIO0_D10, GPIO_FN_VIO0_D11,
|
||||
GPIO_FN_VIO0_D12, GPIO_FN_VIO0_VD, GPIO_FN_VIO0_HD,
|
||||
GPIO_FN_VIO0_CLK, GPIO_FN_VIO0_FIELD,
|
||||
|
||||
GPIO_FN_VIO0_D13_PORT26, /* MSEL5CR_27_0 */
|
||||
GPIO_FN_VIO0_D14_PORT25,
|
||||
GPIO_FN_VIO0_D15_PORT24,
|
||||
|
||||
GPIO_FN_VIO0_D13_PORT22, /* MSEL5CR_27_1 */
|
||||
GPIO_FN_VIO0_D14_PORT95,
|
||||
GPIO_FN_VIO0_D15_PORT96,
|
||||
|
||||
/* VIO1 */
|
||||
GPIO_FN_VIO1_D0, GPIO_FN_VIO1_D1, GPIO_FN_VIO1_D2,
|
||||
GPIO_FN_VIO1_D3, GPIO_FN_VIO1_D4, GPIO_FN_VIO1_D5,
|
||||
GPIO_FN_VIO1_D6, GPIO_FN_VIO1_D7, GPIO_FN_VIO1_VD,
|
||||
GPIO_FN_VIO1_HD, GPIO_FN_VIO1_CLK, GPIO_FN_VIO1_FIELD,
|
||||
|
||||
/* TPU0 */
|
||||
GPIO_FN_TPU0TO0, GPIO_FN_TPU0TO1,
|
||||
GPIO_FN_TPU0TO3,
|
||||
GPIO_FN_TPU0TO2_PORT66, /* TPU0TO2 Port 66/202 */
|
||||
GPIO_FN_TPU0TO2_PORT202,
|
||||
|
||||
/* SSP1 0 */
|
||||
GPIO_FN_STP0_IPD0, GPIO_FN_STP0_IPD1, GPIO_FN_STP0_IPD2,
|
||||
GPIO_FN_STP0_IPD3, GPIO_FN_STP0_IPD4, GPIO_FN_STP0_IPD5,
|
||||
GPIO_FN_STP0_IPD6, GPIO_FN_STP0_IPD7, GPIO_FN_STP0_IPEN,
|
||||
GPIO_FN_STP0_IPCLK, GPIO_FN_STP0_IPSYNC,
|
||||
|
||||
/* SSP1 1 */
|
||||
GPIO_FN_STP1_IPD1, GPIO_FN_STP1_IPD2, GPIO_FN_STP1_IPD3,
|
||||
GPIO_FN_STP1_IPD4, GPIO_FN_STP1_IPD5, GPIO_FN_STP1_IPD6,
|
||||
GPIO_FN_STP1_IPD7, GPIO_FN_STP1_IPCLK, GPIO_FN_STP1_IPSYNC,
|
||||
|
||||
GPIO_FN_STP1_IPD0_PORT186, /* MSEL5CR_23_0 */
|
||||
GPIO_FN_STP1_IPEN_PORT187,
|
||||
|
||||
GPIO_FN_STP1_IPD0_PORT194, /* MSEL5CR_23_1 */
|
||||
GPIO_FN_STP1_IPEN_PORT193,
|
||||
|
||||
/* SIM */
|
||||
GPIO_FN_SIM_RST, GPIO_FN_SIM_CLK,
|
||||
GPIO_FN_SIM_D_PORT22, /* SIM_D Port 22/199 */
|
||||
GPIO_FN_SIM_D_PORT199,
|
||||
|
||||
/* SDHI0 */
|
||||
GPIO_FN_SDHI0_D0, GPIO_FN_SDHI0_D1, GPIO_FN_SDHI0_D2,
|
||||
GPIO_FN_SDHI0_D3, GPIO_FN_SDHI0_CD, GPIO_FN_SDHI0_WP,
|
||||
GPIO_FN_SDHI0_CMD, GPIO_FN_SDHI0_CLK,
|
||||
|
||||
/* SDHI1 */
|
||||
GPIO_FN_SDHI1_D0, GPIO_FN_SDHI1_D1, GPIO_FN_SDHI1_D2,
|
||||
GPIO_FN_SDHI1_D3, GPIO_FN_SDHI1_CD, GPIO_FN_SDHI1_WP,
|
||||
GPIO_FN_SDHI1_CMD, GPIO_FN_SDHI1_CLK,
|
||||
|
||||
/* SDHI2 */
|
||||
GPIO_FN_SDHI2_D0, GPIO_FN_SDHI2_D1, GPIO_FN_SDHI2_D2,
|
||||
GPIO_FN_SDHI2_D3, GPIO_FN_SDHI2_CLK, GPIO_FN_SDHI2_CMD,
|
||||
|
||||
GPIO_FN_SDHI2_CD_PORT24, /* MSEL5CR_19_0 */
|
||||
GPIO_FN_SDHI2_WP_PORT25,
|
||||
|
||||
GPIO_FN_SDHI2_WP_PORT177, /* MSEL5CR_19_1 */
|
||||
GPIO_FN_SDHI2_CD_PORT202,
|
||||
|
||||
/* MSIOF2 */
|
||||
GPIO_FN_MSIOF2_TXD, GPIO_FN_MSIOF2_RXD, GPIO_FN_MSIOF2_TSCK,
|
||||
GPIO_FN_MSIOF2_SS2, GPIO_FN_MSIOF2_TSYNC, GPIO_FN_MSIOF2_SS1,
|
||||
GPIO_FN_MSIOF2_MCK1, GPIO_FN_MSIOF2_MCK0, GPIO_FN_MSIOF2_RSYNC,
|
||||
GPIO_FN_MSIOF2_RSCK,
|
||||
|
||||
/* KEYSC */
|
||||
GPIO_FN_KEYIN4, GPIO_FN_KEYIN5,
|
||||
GPIO_FN_KEYIN6, GPIO_FN_KEYIN7,
|
||||
GPIO_FN_KEYOUT0, GPIO_FN_KEYOUT1, GPIO_FN_KEYOUT2,
|
||||
GPIO_FN_KEYOUT3, GPIO_FN_KEYOUT4, GPIO_FN_KEYOUT5,
|
||||
GPIO_FN_KEYOUT6, GPIO_FN_KEYOUT7,
|
||||
|
||||
GPIO_FN_KEYIN0_PORT43, /* MSEL4CR_18_0 */
|
||||
GPIO_FN_KEYIN1_PORT44,
|
||||
GPIO_FN_KEYIN2_PORT45,
|
||||
GPIO_FN_KEYIN3_PORT46,
|
||||
|
||||
GPIO_FN_KEYIN0_PORT58, /* MSEL4CR_18_1 */
|
||||
GPIO_FN_KEYIN1_PORT57,
|
||||
GPIO_FN_KEYIN2_PORT56,
|
||||
GPIO_FN_KEYIN3_PORT55,
|
||||
|
||||
/* VOU */
|
||||
GPIO_FN_DV_D0, GPIO_FN_DV_D1, GPIO_FN_DV_D2, GPIO_FN_DV_D3,
|
||||
GPIO_FN_DV_D4, GPIO_FN_DV_D5, GPIO_FN_DV_D6, GPIO_FN_DV_D7,
|
||||
GPIO_FN_DV_D8, GPIO_FN_DV_D9, GPIO_FN_DV_D10, GPIO_FN_DV_D11,
|
||||
GPIO_FN_DV_D12, GPIO_FN_DV_D13, GPIO_FN_DV_D14, GPIO_FN_DV_D15,
|
||||
GPIO_FN_DV_CLK,
|
||||
GPIO_FN_DV_VSYNC,
|
||||
GPIO_FN_DV_HSYNC,
|
||||
|
||||
/* MEMC */
|
||||
GPIO_FN_MEMC_AD0, GPIO_FN_MEMC_AD1, GPIO_FN_MEMC_AD2,
|
||||
GPIO_FN_MEMC_AD3, GPIO_FN_MEMC_AD4, GPIO_FN_MEMC_AD5,
|
||||
GPIO_FN_MEMC_AD6, GPIO_FN_MEMC_AD7, GPIO_FN_MEMC_AD8,
|
||||
GPIO_FN_MEMC_AD9, GPIO_FN_MEMC_AD10, GPIO_FN_MEMC_AD11,
|
||||
GPIO_FN_MEMC_AD12, GPIO_FN_MEMC_AD13, GPIO_FN_MEMC_AD14,
|
||||
GPIO_FN_MEMC_AD15, GPIO_FN_MEMC_CS0, GPIO_FN_MEMC_INT,
|
||||
GPIO_FN_MEMC_NWE, GPIO_FN_MEMC_NOE,
|
||||
|
||||
GPIO_FN_MEMC_CS1, /* MSEL4CR_6_0 */
|
||||
GPIO_FN_MEMC_ADV,
|
||||
GPIO_FN_MEMC_WAIT,
|
||||
GPIO_FN_MEMC_BUSCLK,
|
||||
|
||||
GPIO_FN_MEMC_A1, /* MSEL4CR_6_1 */
|
||||
GPIO_FN_MEMC_DREQ0,
|
||||
GPIO_FN_MEMC_DREQ1,
|
||||
GPIO_FN_MEMC_A0,
|
||||
|
||||
/* MMC */
|
||||
GPIO_FN_MMC0_D0_PORT68, GPIO_FN_MMC0_D1_PORT69,
|
||||
GPIO_FN_MMC0_D2_PORT70, GPIO_FN_MMC0_D3_PORT71,
|
||||
GPIO_FN_MMC0_D4_PORT72, GPIO_FN_MMC0_D5_PORT73,
|
||||
GPIO_FN_MMC0_D6_PORT74, GPIO_FN_MMC0_D7_PORT75,
|
||||
GPIO_FN_MMC0_CLK_PORT66,
|
||||
GPIO_FN_MMC0_CMD_PORT67, /* MSEL4CR_15_0 */
|
||||
|
||||
GPIO_FN_MMC1_D0_PORT149, GPIO_FN_MMC1_D1_PORT148,
|
||||
GPIO_FN_MMC1_D2_PORT147, GPIO_FN_MMC1_D3_PORT146,
|
||||
GPIO_FN_MMC1_D4_PORT145, GPIO_FN_MMC1_D5_PORT144,
|
||||
GPIO_FN_MMC1_D6_PORT143, GPIO_FN_MMC1_D7_PORT142,
|
||||
GPIO_FN_MMC1_CLK_PORT103,
|
||||
GPIO_FN_MMC1_CMD_PORT104, /* MSEL4CR_15_1 */
|
||||
|
||||
/* MSIOF0 */
|
||||
GPIO_FN_MSIOF0_SS1, GPIO_FN_MSIOF0_SS2,
|
||||
GPIO_FN_MSIOF0_RXD, GPIO_FN_MSIOF0_TXD,
|
||||
GPIO_FN_MSIOF0_MCK0, GPIO_FN_MSIOF0_MCK1,
|
||||
GPIO_FN_MSIOF0_RSYNC, GPIO_FN_MSIOF0_RSCK,
|
||||
GPIO_FN_MSIOF0_TSCK, GPIO_FN_MSIOF0_TSYNC,
|
||||
|
||||
/* MSIOF1 */
|
||||
GPIO_FN_MSIOF1_RSCK, GPIO_FN_MSIOF1_RSYNC,
|
||||
GPIO_FN_MSIOF1_MCK0, GPIO_FN_MSIOF1_MCK1,
|
||||
|
||||
GPIO_FN_MSIOF1_SS2_PORT116, GPIO_FN_MSIOF1_SS1_PORT117,
|
||||
GPIO_FN_MSIOF1_RXD_PORT118, GPIO_FN_MSIOF1_TXD_PORT119,
|
||||
GPIO_FN_MSIOF1_TSYNC_PORT120,
|
||||
GPIO_FN_MSIOF1_TSCK_PORT121, /* MSEL4CR_10_0 */
|
||||
|
||||
GPIO_FN_MSIOF1_SS1_PORT67, GPIO_FN_MSIOF1_TSCK_PORT72,
|
||||
GPIO_FN_MSIOF1_TSYNC_PORT73, GPIO_FN_MSIOF1_TXD_PORT74,
|
||||
GPIO_FN_MSIOF1_RXD_PORT75,
|
||||
GPIO_FN_MSIOF1_SS2_PORT202, /* MSEL4CR_10_1 */
|
||||
|
||||
/* GPIO */
|
||||
GPIO_FN_GPO0, GPIO_FN_GPI0,
|
||||
GPIO_FN_GPO1, GPIO_FN_GPI1,
|
||||
|
||||
/* USB0 */
|
||||
GPIO_FN_USB0_OCI, GPIO_FN_USB0_PPON, GPIO_FN_VBUS,
|
||||
|
||||
/* USB1 */
|
||||
GPIO_FN_USB1_OCI, GPIO_FN_USB1_PPON,
|
||||
|
||||
/* BBIF1 */
|
||||
GPIO_FN_BBIF1_RXD, GPIO_FN_BBIF1_TXD, GPIO_FN_BBIF1_TSYNC,
|
||||
GPIO_FN_BBIF1_TSCK, GPIO_FN_BBIF1_RSCK, GPIO_FN_BBIF1_RSYNC,
|
||||
GPIO_FN_BBIF1_FLOW, GPIO_FN_BBIF1_RX_FLOW_N,
|
||||
|
||||
/* BBIF2 */
|
||||
GPIO_FN_BBIF2_TXD2_PORT5, /* MSEL5CR_0_0 */
|
||||
GPIO_FN_BBIF2_RXD2_PORT60,
|
||||
GPIO_FN_BBIF2_TSYNC2_PORT6,
|
||||
GPIO_FN_BBIF2_TSCK2_PORT59,
|
||||
|
||||
GPIO_FN_BBIF2_RXD2_PORT90, /* MSEL5CR_0_1 */
|
||||
GPIO_FN_BBIF2_TXD2_PORT183,
|
||||
GPIO_FN_BBIF2_TSCK2_PORT89,
|
||||
GPIO_FN_BBIF2_TSYNC2_PORT184,
|
||||
|
||||
/* BSC / FLCTL / PCMCIA */
|
||||
GPIO_FN_CS0, GPIO_FN_CS2, GPIO_FN_CS4,
|
||||
GPIO_FN_CS5B, GPIO_FN_CS6A,
|
||||
GPIO_FN_CS5A_PORT105, /* CS5A PORT 19/105 */
|
||||
GPIO_FN_CS5A_PORT19,
|
||||
GPIO_FN_IOIS16, /* ? */
|
||||
|
||||
GPIO_FN_A0, GPIO_FN_A1, GPIO_FN_A2, GPIO_FN_A3,
|
||||
GPIO_FN_A4_FOE, /* share with FLCTL */
|
||||
GPIO_FN_A5_FCDE, /* share with FLCTL */
|
||||
GPIO_FN_A6, GPIO_FN_A7, GPIO_FN_A8, GPIO_FN_A9,
|
||||
GPIO_FN_A10, GPIO_FN_A11, GPIO_FN_A12, GPIO_FN_A13,
|
||||
GPIO_FN_A14, GPIO_FN_A15, GPIO_FN_A16, GPIO_FN_A17,
|
||||
GPIO_FN_A18, GPIO_FN_A19, GPIO_FN_A20, GPIO_FN_A21,
|
||||
GPIO_FN_A22, GPIO_FN_A23, GPIO_FN_A24, GPIO_FN_A25,
|
||||
GPIO_FN_A26,
|
||||
|
||||
GPIO_FN_D0_NAF0, GPIO_FN_D1_NAF1, /* share with FLCTL */
|
||||
GPIO_FN_D2_NAF2, GPIO_FN_D3_NAF3, /* share with FLCTL */
|
||||
GPIO_FN_D4_NAF4, GPIO_FN_D5_NAF5, /* share with FLCTL */
|
||||
GPIO_FN_D6_NAF6, GPIO_FN_D7_NAF7, /* share with FLCTL */
|
||||
GPIO_FN_D8_NAF8, GPIO_FN_D9_NAF9, /* share with FLCTL */
|
||||
GPIO_FN_D10_NAF10, GPIO_FN_D11_NAF11, /* share with FLCTL */
|
||||
GPIO_FN_D12_NAF12, GPIO_FN_D13_NAF13, /* share with FLCTL */
|
||||
GPIO_FN_D14_NAF14, GPIO_FN_D15_NAF15, /* share with FLCTL */
|
||||
|
||||
GPIO_FN_D16, GPIO_FN_D17, GPIO_FN_D18, GPIO_FN_D19,
|
||||
GPIO_FN_D20, GPIO_FN_D21, GPIO_FN_D22, GPIO_FN_D23,
|
||||
GPIO_FN_D24, GPIO_FN_D25, GPIO_FN_D26, GPIO_FN_D27,
|
||||
GPIO_FN_D28, GPIO_FN_D29, GPIO_FN_D30, GPIO_FN_D31,
|
||||
|
||||
GPIO_FN_WE0_FWE, /* share with FLCTL */
|
||||
GPIO_FN_WE1,
|
||||
GPIO_FN_WE2_ICIORD, /* share with PCMCIA */
|
||||
GPIO_FN_WE3_ICIOWR, /* share with PCMCIA */
|
||||
GPIO_FN_CKO, GPIO_FN_BS, GPIO_FN_RDWR,
|
||||
GPIO_FN_RD_FSC, /* share with FLCTL */
|
||||
GPIO_FN_WAIT_PORT177, /* WAIT Port 90/177 */
|
||||
GPIO_FN_WAIT_PORT90,
|
||||
|
||||
GPIO_FN_FCE0, GPIO_FN_FCE1, GPIO_FN_FRB, /* FLCTL */
|
||||
|
||||
/* IRDA */
|
||||
GPIO_FN_IRDA_FIRSEL, GPIO_FN_IRDA_IN, GPIO_FN_IRDA_OUT,
|
||||
|
||||
/* ATAPI */
|
||||
GPIO_FN_IDE_D0, GPIO_FN_IDE_D1, GPIO_FN_IDE_D2,
|
||||
GPIO_FN_IDE_D3, GPIO_FN_IDE_D4, GPIO_FN_IDE_D5,
|
||||
GPIO_FN_IDE_D6, GPIO_FN_IDE_D7, GPIO_FN_IDE_D8,
|
||||
GPIO_FN_IDE_D9, GPIO_FN_IDE_D10, GPIO_FN_IDE_D11,
|
||||
GPIO_FN_IDE_D12, GPIO_FN_IDE_D13, GPIO_FN_IDE_D14,
|
||||
GPIO_FN_IDE_D15, GPIO_FN_IDE_A0, GPIO_FN_IDE_A1,
|
||||
GPIO_FN_IDE_A2, GPIO_FN_IDE_CS0, GPIO_FN_IDE_CS1,
|
||||
GPIO_FN_IDE_IOWR, GPIO_FN_IDE_IORD, GPIO_FN_IDE_IORDY,
|
||||
GPIO_FN_IDE_INT, GPIO_FN_IDE_RST, GPIO_FN_IDE_DIRECTION,
|
||||
GPIO_FN_IDE_EXBUF_ENB, GPIO_FN_IDE_IODACK, GPIO_FN_IDE_IODREQ,
|
||||
|
||||
/* RMII */
|
||||
GPIO_FN_RMII_CRS_DV, GPIO_FN_RMII_RX_ER, GPIO_FN_RMII_RXD0,
|
||||
GPIO_FN_RMII_RXD1, GPIO_FN_RMII_TX_EN, GPIO_FN_RMII_TXD0,
|
||||
GPIO_FN_RMII_MDC, GPIO_FN_RMII_TXD1, GPIO_FN_RMII_MDIO,
|
||||
GPIO_FN_RMII_REF50CK, /* for RMII */
|
||||
GPIO_FN_RMII_REF125CK, /* for GMII */
|
||||
|
||||
/* GEther */
|
||||
GPIO_FN_ET_TX_CLK, GPIO_FN_ET_TX_EN, GPIO_FN_ET_ETXD0,
|
||||
GPIO_FN_ET_ETXD1, GPIO_FN_ET_ETXD2, GPIO_FN_ET_ETXD3,
|
||||
GPIO_FN_ET_ETXD4, GPIO_FN_ET_ETXD5, /* for GEther */
|
||||
GPIO_FN_ET_ETXD6, GPIO_FN_ET_ETXD7, /* for GEther */
|
||||
GPIO_FN_ET_COL, GPIO_FN_ET_TX_ER,
|
||||
GPIO_FN_ET_RX_CLK, GPIO_FN_ET_RX_DV,
|
||||
GPIO_FN_ET_ERXD0, GPIO_FN_ET_ERXD1,
|
||||
GPIO_FN_ET_ERXD2, GPIO_FN_ET_ERXD3,
|
||||
GPIO_FN_ET_ERXD4, GPIO_FN_ET_ERXD5, /* for GEther */
|
||||
GPIO_FN_ET_ERXD6, GPIO_FN_ET_ERXD7, /* for GEther */
|
||||
GPIO_FN_ET_RX_ER, GPIO_FN_ET_CRS,
|
||||
GPIO_FN_ET_MDC, GPIO_FN_ET_MDIO,
|
||||
GPIO_FN_ET_LINK, GPIO_FN_ET_PHY_INT,
|
||||
GPIO_FN_ET_WOL, GPIO_FN_ET_GTX_CLK,
|
||||
|
||||
/* DMA0 */
|
||||
GPIO_FN_DREQ0, GPIO_FN_DACK0,
|
||||
|
||||
/* DMA1 */
|
||||
GPIO_FN_DREQ1, GPIO_FN_DACK1,
|
||||
|
||||
/* SYSC */
|
||||
GPIO_FN_RESETOUTS,
|
||||
GPIO_FN_RESETP_PULLUP,
|
||||
GPIO_FN_RESETP_PLAIN,
|
||||
|
||||
/* SDENC */
|
||||
GPIO_FN_SDENC_CPG,
|
||||
GPIO_FN_SDENC_DV_CLKI,
|
||||
|
||||
/* IRREM */
|
||||
GPIO_FN_IROUT,
|
||||
|
||||
/* DEBUG */
|
||||
GPIO_FN_EDEBGREQ_PULLDOWN,
|
||||
GPIO_FN_EDEBGREQ_PULLUP,
|
||||
|
||||
GPIO_FN_TRACEAUD_FROM_VIO,
|
||||
GPIO_FN_TRACEAUD_FROM_LCDC0,
|
||||
GPIO_FN_TRACEAUD_FROM_MEMC,
|
||||
};
|
||||
|
||||
#endif /* __ASM_R8A7740_H__ */
|
||||
@@ -0,0 +1,274 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2012 Renesas Solutions Corp.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_R8A7740_H
|
||||
#define __ASM_ARCH_R8A7740_H
|
||||
|
||||
/*
|
||||
* R8A7740 I/O Addresses
|
||||
*/
|
||||
|
||||
#define MERAM_BASE 0xE5580000
|
||||
#define DDRP_BASE 0xC12A0000
|
||||
#define HPB_BASE 0xE6000000
|
||||
#define RWDT0_BASE 0xE6020000
|
||||
#define RWDT1_BASE 0xE6030000
|
||||
#define GPIO_BASE 0xE6050000
|
||||
#define CMT1_BASE 0xE6138000
|
||||
#define CPG_BASE 0xE6150000
|
||||
#define SYSC_BASE 0xE6180000
|
||||
#define SDHI0_BASE 0xE6850000
|
||||
#define SDHI1_BASE 0xE6860000
|
||||
#define MMCIF_BASE 0xE6BD0000
|
||||
#define SCIF5_BASE 0xE6CB0000
|
||||
#define SCIF6_BASE 0xE6CC0000
|
||||
#define DBSC_BASE 0xFE400000
|
||||
#define BSC_BASE 0xFEC10000
|
||||
#define I2C0_BASE 0xFFF20000
|
||||
#define I2C1_BASE 0xE6C20000
|
||||
#define TMU_BASE 0xFFF80000
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <asm/types.h>
|
||||
|
||||
/* RWDT */
|
||||
struct r8a7740_rwdt {
|
||||
u16 rwtcnt0; /* 0x00 */
|
||||
u16 dummy0; /* 0x02 */
|
||||
u16 rwtcsra0; /* 0x04 */
|
||||
u16 dummy1; /* 0x06 */
|
||||
u16 rwtcsrb0; /* 0x08 */
|
||||
u16 dummy2; /* 0x0A */
|
||||
};
|
||||
|
||||
/* HPB Semaphore Control Registers */
|
||||
struct r8a7740_hpb {
|
||||
u32 hpbctrl0;
|
||||
u32 hpbctrl1;
|
||||
u32 hpbctrl2;
|
||||
u32 cccr;
|
||||
u32 dummy0; /* 0x20 */
|
||||
u32 hpbctrl4;
|
||||
u32 hpbctrl5;
|
||||
};
|
||||
|
||||
/* CPG */
|
||||
struct r8a7740_cpg {
|
||||
u32 frqcra;
|
||||
u32 frqcrb;
|
||||
u32 vclkcr1;
|
||||
u32 vclkcr2;
|
||||
u32 fmsickcr;
|
||||
u32 fmsockcr;
|
||||
u32 fsiackcr;
|
||||
u32 dummy0; /* 0x1c */
|
||||
u32 rtstbcr;
|
||||
u32 systbcr;
|
||||
u32 pllc01cr;
|
||||
u32 pllc2cr;
|
||||
u32 mstpsr0;
|
||||
u32 dummy1; /* 0x34 */
|
||||
u32 mstpsr1;
|
||||
u32 mstpsr5;
|
||||
u32 mstpsr2;
|
||||
u32 dummy2; /* 0x44 */
|
||||
u32 mstpsr3;
|
||||
u32 mstpsr4;
|
||||
u32 dummy3; /* 0x50 */
|
||||
u32 astat;
|
||||
u32 dummy4[4]; /* 0x58 .. 0x64 */
|
||||
u32 ztrckcr;
|
||||
u32 dummy5[5]; /* 0x6c .. 0x7c */
|
||||
u32 subckcr;
|
||||
u32 spuckcr;
|
||||
u32 vouckcr;
|
||||
u32 usbckcr;
|
||||
u32 dummy6[3]; /* 0x90 .. 0x98 */
|
||||
u32 stprckcr;
|
||||
u32 srcr0;
|
||||
u32 dummy7; /* 0xa4 */
|
||||
u32 srcr1;
|
||||
u32 dummy8; /* 0xac */
|
||||
u32 srcr2;
|
||||
u32 dummy9; /* 0xb4 */
|
||||
u32 srcr3;
|
||||
u32 srcr4;
|
||||
u32 dummy10; /* 0xc0 */
|
||||
u32 srcr5;
|
||||
u32 pllc01stpcr;
|
||||
u32 dummy11[5]; /* 0xcc .. 0xdc */
|
||||
u32 frqcrc;
|
||||
u32 frqcrd;
|
||||
u32 dummy12[10]; /* 0xe8 .. 0x10c */
|
||||
u32 rmstpcr0;
|
||||
u32 rmstpcr1;
|
||||
u32 rmstpcr2;
|
||||
u32 rmstpcr3;
|
||||
u32 rmstpcr4;
|
||||
u32 rmstpcr5;
|
||||
u32 dummy13[2]; /* 0x128 .. 0x12c */
|
||||
u32 smstpcr0;
|
||||
u32 smstpcr1;
|
||||
u32 smstpcr2;
|
||||
u32 smstpcr3;
|
||||
u32 smstpcr4;
|
||||
u32 smstpcr5;
|
||||
};
|
||||
|
||||
/* BSC */
|
||||
struct r8a7740_bsc {
|
||||
u32 cmncr;
|
||||
u32 cs0bcr;
|
||||
u32 cs2bcr;
|
||||
u32 dummy0; /* 0x0c */
|
||||
u32 cs4bcr;
|
||||
u32 cs5abcr;
|
||||
u32 cs5bbcr;
|
||||
u32 cs6abcr;
|
||||
u32 dummy1; /* 0x20 */
|
||||
u32 cs0wcr;
|
||||
u32 cs2wcr;
|
||||
u32 dummy2; /* 0x2c */
|
||||
u32 cs4wcr;
|
||||
u32 cs5awcr;
|
||||
u32 cs5bwcr;
|
||||
u32 cs6awcr;
|
||||
u32 dummy3[5]; /* 0x40 .. 0x50 */
|
||||
u32 rbwtcnt;
|
||||
u32 busycr;
|
||||
u32 dummy4[5]; /* 0x5c .. 0x6c */
|
||||
u32 bromtimcr;
|
||||
u32 dummy5[7]; /* 0x74 .. 0x8c */
|
||||
u32 bptcr00;
|
||||
u32 bptcr01;
|
||||
u32 bptcr02;
|
||||
u32 bptcr03;
|
||||
u32 bptcr04;
|
||||
u32 bptcr05;
|
||||
u32 bptcr06;
|
||||
u32 bptcr07;
|
||||
u32 bptcr08;
|
||||
u32 bptcr09;
|
||||
u32 bptcr10;
|
||||
u32 bptcr11;
|
||||
u32 bptcr12;
|
||||
u32 bptcr13;
|
||||
u32 bptcr14;
|
||||
u32 bptcr15;
|
||||
u32 bptcr16;
|
||||
u32 bptcr17;
|
||||
u32 bptcr18;
|
||||
u32 bptcr19;
|
||||
u32 bptcr20;
|
||||
u32 bptcr21;
|
||||
u32 bptcr22;
|
||||
u32 bptcr23;
|
||||
u32 bptcr24;
|
||||
u32 bptcr25;
|
||||
u32 bptcr26;
|
||||
u32 bptcr27;
|
||||
u32 bptcr28;
|
||||
u32 bptcr29;
|
||||
u32 bptcr30;
|
||||
u32 bptcr31;
|
||||
u32 bswcr;
|
||||
u32 dummy6[68]; /* 0x114 .. 0x220 */
|
||||
u32 cs0wcr2;
|
||||
u32 cs2wcr2;
|
||||
u32 dummy7; /* 0x22c */
|
||||
u32 cs4wcr2;
|
||||
};
|
||||
|
||||
#define CS0WCR2 0xFEC10224
|
||||
#define CS2WCR2 0xFEC10228
|
||||
#define CS4WCR2 0xFEC10230
|
||||
|
||||
/* DDRP */
|
||||
struct r8a7740_ddrp {
|
||||
u32 funcctrl;
|
||||
u32 dllctrl;
|
||||
u32 zqcalctrl;
|
||||
u32 zqodtctrl;
|
||||
u32 rdctrl;
|
||||
u32 rdtmg;
|
||||
u32 fifoinit;
|
||||
u32 outctrl;
|
||||
u32 dummy0[50]; /* 0x20 .. 0xe4 */
|
||||
u32 dqcalofs1;
|
||||
u32 dqcalofs2;
|
||||
u32 dummy1[2]; /* 0xf0 .. 0xf4 */
|
||||
u32 dqcalexp;
|
||||
};
|
||||
|
||||
#define DDRPNCNT 0xE605803C
|
||||
#define DDRVREFCNT 0xE61500EC
|
||||
|
||||
/* DBSC */
|
||||
struct r8a7740_dbsc {
|
||||
u32 dummy0;
|
||||
u32 dbsvcr;
|
||||
u32 dbstate0;
|
||||
u32 dbstate1;
|
||||
u32 dbacen;
|
||||
u32 dbrfen;
|
||||
u32 dbcmd;
|
||||
u32 dbwait;
|
||||
u32 dbkind;
|
||||
u32 dbconf0;
|
||||
u32 dummy1[2]; /* 0x28 .. 0x2c */
|
||||
u32 dbphytype;
|
||||
u32 dummy2[3]; /* 0x34 .. 0x3c */
|
||||
u32 dbtr0;
|
||||
u32 dbtr1;
|
||||
u32 dbtr2;
|
||||
u32 dummy3; /* 0x4c */
|
||||
u32 dbtr3;
|
||||
u32 dbtr4;
|
||||
u32 dbtr5;
|
||||
u32 dbtr6;
|
||||
u32 dbtr7;
|
||||
u32 dbtr8;
|
||||
u32 dbtr9;
|
||||
u32 dbtr10;
|
||||
u32 dbtr11;
|
||||
u32 dbtr12;
|
||||
u32 dbtr13;
|
||||
u32 dbtr14;
|
||||
u32 dbtr15;
|
||||
u32 dbtr16;
|
||||
u32 dbtr17;
|
||||
u32 dbtr18;
|
||||
u32 dbtr19;
|
||||
u32 dummy4[7]; /* 0x94 .. 0xac */
|
||||
u32 dbbl;
|
||||
u32 dummy5[3]; /* 0xb4 .. 0xbc */
|
||||
u32 dbadj0;
|
||||
u32 dbadj1;
|
||||
u32 dbadj2;
|
||||
u32 dummy6[5]; /* 0xcc .. 0xdc */
|
||||
u32 dbrfcnf0;
|
||||
u32 dbrfcnf1;
|
||||
u32 dbrfcnf2;
|
||||
u32 dbrfcnf3;
|
||||
u32 dummy7; /* 0xf0 */
|
||||
u32 dbcalcnf;
|
||||
u32 dbcaltr;
|
||||
u32 dummy8; /* 0xfc */;
|
||||
u32 dbrnk0;
|
||||
u32 dummy9[31]; /* 0x104 .. 0x17C */
|
||||
u32 dbpdncnf;
|
||||
u32 dummy10[7]; /* 0x184 .. 0x19C */
|
||||
u32 dbmrrdr;
|
||||
u32 dummy11[39]; /* 0x1A4 .. 0x23C */
|
||||
u32 dbdfistat;
|
||||
u32 dbdficnt;
|
||||
u32 dummy12[46]; /* 0x248 .. 0x2FC */
|
||||
u32 dbbs0cnt0;
|
||||
u32 dbbs0cnt1;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_ARCH_R8A7740_H */
|
||||
@@ -0,0 +1,40 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* arch/arm/include/asm/arch-rmobile/r8a7790.h
|
||||
*
|
||||
* Copyright (C) 2013,2014 Renesas Electronics Corporation
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_R8A7790_H
|
||||
#define __ASM_ARCH_R8A7790_H
|
||||
|
||||
#include "rcar-base.h"
|
||||
|
||||
/* SH-I2C */
|
||||
#define CONFIG_SYS_I2C_SH_BASE2 0xE6520000
|
||||
#define CONFIG_SYS_I2C_SH_BASE3 0xE60B0000
|
||||
|
||||
/* Module stop control/status register bits */
|
||||
#define MSTP0_BITS 0x00640801
|
||||
#define MSTP1_BITS 0xDB6E9BDF
|
||||
#define MSTP2_BITS 0x300DA1FC
|
||||
#define MSTP3_BITS 0xF08CF831
|
||||
#define MSTP4_BITS 0x80000184
|
||||
#define MSTP5_BITS 0x44C00046
|
||||
#define MSTP7_BITS 0x07F30718
|
||||
#define MSTP8_BITS 0x01F0FF84
|
||||
#define MSTP9_BITS 0xF5979FCF
|
||||
#define MSTP10_BITS 0xFFFEFFE0
|
||||
#define MSTP11_BITS 0x00000000
|
||||
|
||||
/* SDHI */
|
||||
#define CONFIG_SYS_SH_SDHI1_BASE 0xEE120000
|
||||
#define CONFIG_SYS_SH_SDHI2_BASE 0xEE140000
|
||||
#define CONFIG_SYS_SH_SDHI3_BASE 0xEE160000
|
||||
#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 4
|
||||
|
||||
#define R8A7790_CUT_ES2X 2
|
||||
#define IS_R8A7790_ES2() \
|
||||
(rmobile_get_cpu_rev_integer() == R8A7790_CUT_ES2X)
|
||||
|
||||
#endif /* __ASM_ARCH_R8A7790_H */
|
||||
@@ -0,0 +1,75 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* arch/arm/include/asm/arch-rmobile/r8a7791.h
|
||||
*
|
||||
* Copyright (C) 2013,2014 Renesas Electronics Corporation
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_R8A7791_H
|
||||
#define __ASM_ARCH_R8A7791_H
|
||||
|
||||
#include "rcar-base.h"
|
||||
/*
|
||||
* R-Car (R8A7791) I/O Addresses
|
||||
*/
|
||||
|
||||
/* SH-I2C */
|
||||
#define CONFIG_SYS_I2C_SH_BASE2 0xE60B0000
|
||||
|
||||
/* SDHI */
|
||||
#define CONFIG_SYS_SH_SDHI1_BASE 0xEE140000
|
||||
#define CONFIG_SYS_SH_SDHI2_BASE 0xEE160000
|
||||
#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3
|
||||
|
||||
#define DBSC3_1_QOS_R0_BASE 0xE67A1000
|
||||
#define DBSC3_1_QOS_R1_BASE 0xE67A1100
|
||||
#define DBSC3_1_QOS_R2_BASE 0xE67A1200
|
||||
#define DBSC3_1_QOS_R3_BASE 0xE67A1300
|
||||
#define DBSC3_1_QOS_R4_BASE 0xE67A1400
|
||||
#define DBSC3_1_QOS_R5_BASE 0xE67A1500
|
||||
#define DBSC3_1_QOS_R6_BASE 0xE67A1600
|
||||
#define DBSC3_1_QOS_R7_BASE 0xE67A1700
|
||||
#define DBSC3_1_QOS_R8_BASE 0xE67A1800
|
||||
#define DBSC3_1_QOS_R9_BASE 0xE67A1900
|
||||
#define DBSC3_1_QOS_R10_BASE 0xE67A1A00
|
||||
#define DBSC3_1_QOS_R11_BASE 0xE67A1B00
|
||||
#define DBSC3_1_QOS_R12_BASE 0xE67A1C00
|
||||
#define DBSC3_1_QOS_R13_BASE 0xE67A1D00
|
||||
#define DBSC3_1_QOS_R14_BASE 0xE67A1E00
|
||||
#define DBSC3_1_QOS_R15_BASE 0xE67A1F00
|
||||
#define DBSC3_1_QOS_W0_BASE 0xE67A2000
|
||||
#define DBSC3_1_QOS_W1_BASE 0xE67A2100
|
||||
#define DBSC3_1_QOS_W2_BASE 0xE67A2200
|
||||
#define DBSC3_1_QOS_W3_BASE 0xE67A2300
|
||||
#define DBSC3_1_QOS_W4_BASE 0xE67A2400
|
||||
#define DBSC3_1_QOS_W5_BASE 0xE67A2500
|
||||
#define DBSC3_1_QOS_W6_BASE 0xE67A2600
|
||||
#define DBSC3_1_QOS_W7_BASE 0xE67A2700
|
||||
#define DBSC3_1_QOS_W8_BASE 0xE67A2800
|
||||
#define DBSC3_1_QOS_W9_BASE 0xE67A2900
|
||||
#define DBSC3_1_QOS_W10_BASE 0xE67A2A00
|
||||
#define DBSC3_1_QOS_W11_BASE 0xE67A2B00
|
||||
#define DBSC3_1_QOS_W12_BASE 0xE67A2C00
|
||||
#define DBSC3_1_QOS_W13_BASE 0xE67A2D00
|
||||
#define DBSC3_1_QOS_W14_BASE 0xE67A2E00
|
||||
#define DBSC3_1_QOS_W15_BASE 0xE67A2F00
|
||||
#define DBSC3_1_DBADJ2 0xE67A00C8
|
||||
|
||||
/* Module stop control/status register bits */
|
||||
#define MSTP0_BITS 0x00640801
|
||||
#define MSTP1_BITS 0x9B6C9B5A
|
||||
#define MSTP2_BITS 0x100D21FC
|
||||
#define MSTP3_BITS 0xF08CD810
|
||||
#define MSTP4_BITS 0x800001C4
|
||||
#define MSTP5_BITS 0x44C00046
|
||||
#define MSTP7_BITS 0x05BFE618
|
||||
#define MSTP8_BITS 0x40C0FE85
|
||||
#define MSTP9_BITS 0xFF979FFF
|
||||
#define MSTP10_BITS 0xFFFEFFE0
|
||||
#define MSTP11_BITS 0x000001C0
|
||||
|
||||
#define R8A7791_CUT_ES2X 2
|
||||
#define IS_R8A7791_ES2() \
|
||||
(rmobile_get_cpu_rev_integer() == R8A7791_CUT_ES2X)
|
||||
|
||||
#endif /* __ASM_ARCH_R8A7791_H */
|
||||
@@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* arch/arm/include/asm/arch-rmobile/r8a7792.h
|
||||
*
|
||||
* Copyright (C) 2016 Renesas Electronics Corporation
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_R8A7792_H
|
||||
#define __ASM_ARCH_R8A7792_H
|
||||
|
||||
#include "rcar-base.h"
|
||||
|
||||
/* SH-I2C */
|
||||
#define CONFIG_SYS_I2C_SH_BASE2 0xE6520000
|
||||
#define CONFIG_SYS_I2C_SH_BASE3 0xE60B0000
|
||||
|
||||
/* Module stop control/status register bits */
|
||||
#define MSTP0_BITS 0x00400801
|
||||
#define MSTP1_BITS 0x9B6F987F
|
||||
#define MSTP2_BITS 0x108CE100
|
||||
#define MSTP3_BITS 0x20004010
|
||||
#define MSTP4_BITS 0x80000184
|
||||
#define MSTP5_BITS 0x44C00004
|
||||
#define MSTP7_BITS 0x01BF0000
|
||||
#define MSTP8_BITS 0x1FE01FB0
|
||||
#define MSTP9_BITS 0xFE2BFFB2
|
||||
#define MSTP10_BITS 0x00001820
|
||||
#define MSTP11_BITS 0x00000008
|
||||
|
||||
/* SDHI */
|
||||
#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 1
|
||||
|
||||
#endif /* __ASM_ARCH_R8A7792_H */
|
||||
@@ -0,0 +1,81 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* arch/arm/include/asm/arch-rmobile/r8a7793.h
|
||||
*
|
||||
* Copyright (C) 2014 Renesas Electronics Corporation
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_R8A7793_H
|
||||
#define __ASM_ARCH_R8A7793_H
|
||||
|
||||
#include "rcar-base.h"
|
||||
|
||||
/*
|
||||
* R8A7793 I/O Addresses
|
||||
*/
|
||||
|
||||
/* SH-I2C */
|
||||
#define CONFIG_SYS_I2C_SH_BASE2 0xE60B0000
|
||||
|
||||
/* SDHI */
|
||||
#define CONFIG_SYS_SH_SDHI1_BASE 0xEE140000
|
||||
#define CONFIG_SYS_SH_SDHI2_BASE 0xEE160000
|
||||
#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3
|
||||
|
||||
#define DBSC3_1_QOS_R0_BASE 0xE67A1000
|
||||
#define DBSC3_1_QOS_R1_BASE 0xE67A1100
|
||||
#define DBSC3_1_QOS_R2_BASE 0xE67A1200
|
||||
#define DBSC3_1_QOS_R3_BASE 0xE67A1300
|
||||
#define DBSC3_1_QOS_R4_BASE 0xE67A1400
|
||||
#define DBSC3_1_QOS_R5_BASE 0xE67A1500
|
||||
#define DBSC3_1_QOS_R6_BASE 0xE67A1600
|
||||
#define DBSC3_1_QOS_R7_BASE 0xE67A1700
|
||||
#define DBSC3_1_QOS_R8_BASE 0xE67A1800
|
||||
#define DBSC3_1_QOS_R9_BASE 0xE67A1900
|
||||
#define DBSC3_1_QOS_R10_BASE 0xE67A1A00
|
||||
#define DBSC3_1_QOS_R11_BASE 0xE67A1B00
|
||||
#define DBSC3_1_QOS_R12_BASE 0xE67A1C00
|
||||
#define DBSC3_1_QOS_R13_BASE 0xE67A1D00
|
||||
#define DBSC3_1_QOS_R14_BASE 0xE67A1E00
|
||||
#define DBSC3_1_QOS_R15_BASE 0xE67A1F00
|
||||
#define DBSC3_1_QOS_W0_BASE 0xE67A2000
|
||||
#define DBSC3_1_QOS_W1_BASE 0xE67A2100
|
||||
#define DBSC3_1_QOS_W2_BASE 0xE67A2200
|
||||
#define DBSC3_1_QOS_W3_BASE 0xE67A2300
|
||||
#define DBSC3_1_QOS_W4_BASE 0xE67A2400
|
||||
#define DBSC3_1_QOS_W5_BASE 0xE67A2500
|
||||
#define DBSC3_1_QOS_W6_BASE 0xE67A2600
|
||||
#define DBSC3_1_QOS_W7_BASE 0xE67A2700
|
||||
#define DBSC3_1_QOS_W8_BASE 0xE67A2800
|
||||
#define DBSC3_1_QOS_W9_BASE 0xE67A2900
|
||||
#define DBSC3_1_QOS_W10_BASE 0xE67A2A00
|
||||
#define DBSC3_1_QOS_W11_BASE 0xE67A2B00
|
||||
#define DBSC3_1_QOS_W12_BASE 0xE67A2C00
|
||||
#define DBSC3_1_QOS_W13_BASE 0xE67A2D00
|
||||
#define DBSC3_1_QOS_W14_BASE 0xE67A2E00
|
||||
#define DBSC3_1_QOS_W15_BASE 0xE67A2F00
|
||||
|
||||
#define DBSC3_1_DBADJ2 0xE67A00C8
|
||||
|
||||
/*
|
||||
* R8A7793 I/O Product Information
|
||||
*/
|
||||
|
||||
/* Module stop control/status register bits */
|
||||
#define MSTP0_BITS 0x00640801
|
||||
#define MSTP1_BITS 0x9B6C9B5A
|
||||
#define MSTP2_BITS 0x100D21FC
|
||||
#define MSTP3_BITS 0xF08CD810
|
||||
#define MSTP4_BITS 0x800001C4
|
||||
#define MSTP5_BITS 0x44C00046
|
||||
#define MSTP7_BITS 0x05BFE618
|
||||
#define MSTP8_BITS 0x40C0FE85
|
||||
#define MSTP9_BITS 0xFF979FFF
|
||||
#define MSTP10_BITS 0xFFFEFFE0
|
||||
#define MSTP11_BITS 0x000001C0
|
||||
|
||||
#define R8A7793_CUT_ES2X 2
|
||||
#define IS_R8A7793_ES2() \
|
||||
(rmobile_get_cpu_rev_integer() == R8A7793_CUT_ES2X)
|
||||
|
||||
#endif /* __ASM_ARCH_R8A7793_H */
|
||||
@@ -0,0 +1,38 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* arch/arm/include/asm/arch-rmobile/r8a7794.h
|
||||
*
|
||||
* Copyright (C) 2014 Renesas Electronics Corporation
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_R8A7794_H
|
||||
#define __ASM_ARCH_R8A7794_H
|
||||
|
||||
#include "rcar-base.h"
|
||||
|
||||
/* SH-I2C */
|
||||
#define CONFIG_SYS_I2C_SH_BASE2 0xE60B0000
|
||||
|
||||
/* Module stop control/status register bits */
|
||||
#define MSTP0_BITS 0x00440801
|
||||
#define MSTP1_BITS 0x936899DA
|
||||
#define MSTP2_BITS 0x100D21FC
|
||||
#define MSTP3_BITS 0xE084D810
|
||||
#define MSTP4_BITS 0x800001C4
|
||||
#define MSTP5_BITS 0x40C00044
|
||||
#define MSTP7_BITS 0x013FE618
|
||||
#define MSTP8_BITS 0x40803C05
|
||||
#define MSTP9_BITS 0xFB879FEE
|
||||
#define MSTP10_BITS 0xFFFEFFE0
|
||||
#define MSTP11_BITS 0x000001C0
|
||||
|
||||
/* SDHI */
|
||||
#define CONFIG_SYS_SH_SDHI1_BASE 0xEE140000
|
||||
#define CONFIG_SYS_SH_SDHI2_BASE 0xEE160000
|
||||
#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3
|
||||
|
||||
#define R8A7794_CUT_ES2 2
|
||||
#define IS_R8A7794_ES2() \
|
||||
(rmobile_get_cpu_rev_integer() == R8A7794_CUT_ES2)
|
||||
|
||||
#endif /* __ASM_ARCH_R8A7794_H */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,98 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* ./arch/arm/mach-rmobile/include/mach/rcar-gen3-base.h
|
||||
*
|
||||
* Copyright (C) 2015 Renesas Electronics Corporation
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_RCAR_GEN3_BASE_H
|
||||
#define __ASM_ARCH_RCAR_GEN3_BASE_H
|
||||
|
||||
/*
|
||||
* R-Car (R8A7750) I/O Addresses
|
||||
*/
|
||||
#define RWDT_BASE 0xE6020000
|
||||
#define SWDT_BASE 0xE6030000
|
||||
#define LBSC_BASE 0xEE220200
|
||||
#define TMU_BASE 0xE61E0000
|
||||
#define GPIO5_BASE 0xE6055000
|
||||
|
||||
/* SCIF */
|
||||
#define SCIF0_BASE 0xE6E60000
|
||||
#define SCIF1_BASE 0xE6E68000
|
||||
#define SCIF2_BASE 0xE6E88000
|
||||
#define SCIF3_BASE 0xE6C50000
|
||||
#define SCIF4_BASE 0xE6C40000
|
||||
#define SCIF5_BASE 0xE6F30000
|
||||
|
||||
/* Module stop status register */
|
||||
#define MSTPSR0 0xE6150030
|
||||
#define MSTPSR1 0xE6150038
|
||||
#define MSTPSR2 0xE6150040
|
||||
#define MSTPSR3 0xE6150048
|
||||
#define MSTPSR4 0xE615004C
|
||||
#define MSTPSR5 0xE615003C
|
||||
#define MSTPSR6 0xE61501C0
|
||||
#define MSTPSR7 0xE61501C4
|
||||
#define MSTPSR8 0xE61509A0
|
||||
#define MSTPSR9 0xE61509A4
|
||||
#define MSTPSR10 0xE61509A8
|
||||
#define MSTPSR11 0xE61509AC
|
||||
|
||||
/* Realtime module stop control register */
|
||||
#define RMSTPCR0 0xE6150110
|
||||
#define RMSTPCR1 0xE6150114
|
||||
#define RMSTPCR2 0xE6150118
|
||||
#define RMSTPCR3 0xE615011C
|
||||
#define RMSTPCR4 0xE6150120
|
||||
#define RMSTPCR5 0xE6150124
|
||||
#define RMSTPCR6 0xE6150128
|
||||
#define RMSTPCR7 0xE615012C
|
||||
#define RMSTPCR8 0xE6150980
|
||||
#define RMSTPCR9 0xE6150984
|
||||
#define RMSTPCR10 0xE6150988
|
||||
#define RMSTPCR11 0xE615098C
|
||||
|
||||
/* System module stop control register */
|
||||
#define SMSTPCR0 0xE6150130
|
||||
#define SMSTPCR1 0xE6150134
|
||||
#define SMSTPCR2 0xE6150138
|
||||
#define SMSTPCR3 0xE615013C
|
||||
#define SMSTPCR4 0xE6150140
|
||||
#define SMSTPCR5 0xE6150144
|
||||
#define SMSTPCR6 0xE6150148
|
||||
#define SMSTPCR7 0xE615014C
|
||||
#define SMSTPCR8 0xE6150990
|
||||
#define SMSTPCR9 0xE6150994
|
||||
#define SMSTPCR10 0xE6150998
|
||||
#define SMSTPCR11 0xE615099C
|
||||
|
||||
/* PFC */
|
||||
#define PFC_PUEN5 0xE6060414
|
||||
#define PUEN_SSI_SDATA4 BIT(17)
|
||||
#define PFC_PUEN6 0xE6060418
|
||||
#define PUEN_USB1_OVC (1 << 2)
|
||||
#define PUEN_USB1_PWEN (1 << 1)
|
||||
|
||||
/* IICDVFS (I2C) */
|
||||
#define CONFIG_SYS_I2C_SH_BASE0 0xE60B0000
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <asm/types.h>
|
||||
|
||||
/* RWDT */
|
||||
struct rcar_rwdt {
|
||||
u32 rwtcnt;
|
||||
u32 rwtcsra;
|
||||
u32 rwtcsrb;
|
||||
};
|
||||
|
||||
/* SWDT */
|
||||
struct rcar_swdt {
|
||||
u32 swtcnt;
|
||||
u32 swtcsra;
|
||||
u32 swtcsrb;
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_ARCH_RCAR_GEN3_BASE_H */
|
||||
@@ -0,0 +1,108 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* arch/arm/include/asm/arch-rmobile/rcar-mstp.h
|
||||
*
|
||||
* Copyright (C) 2013, 2014 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
|
||||
* Copyright (C) 2013, 2014 Renesas Electronics Corporation
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_RCAR_MSTP_H
|
||||
#define __ASM_ARCH_RCAR_MSTP_H
|
||||
|
||||
#define mstp_setbits(type, addr, saddr, set) \
|
||||
out_##type((saddr), in_##type(addr) | (set))
|
||||
#define mstp_clrbits(type, addr, saddr, clear) \
|
||||
out_##type((saddr), in_##type(addr) & ~(clear))
|
||||
#define mstp_setclrbits(type, addr, set, clear) \
|
||||
out_##type((addr), (in_##type(addr) | (set)) & ~(clear))
|
||||
#define mstp_setbits_le32(addr, saddr, set) \
|
||||
mstp_setbits(le32, addr, saddr, set)
|
||||
#define mstp_clrbits_le32(addr, saddr, clear) \
|
||||
mstp_clrbits(le32, addr, saddr, clear)
|
||||
#define mstp_setclrbits_le32(addr, set, clear) \
|
||||
mstp_setclrbits(le32, addr, set, clear)
|
||||
|
||||
#ifndef CONFIG_SMSTP0_ENA
|
||||
#define CONFIG_SMSTP0_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP1_ENA
|
||||
#define CONFIG_SMSTP1_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP2_ENA
|
||||
#define CONFIG_SMSTP2_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP3_ENA
|
||||
#define CONFIG_SMSTP3_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP4_ENA
|
||||
#define CONFIG_SMSTP4_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP5_ENA
|
||||
#define CONFIG_SMSTP5_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP6_ENA
|
||||
#define CONFIG_SMSTP6_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP7_ENA
|
||||
#define CONFIG_SMSTP7_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP8_ENA
|
||||
#define CONFIG_SMSTP8_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP9_ENA
|
||||
#define CONFIG_SMSTP9_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP10_ENA
|
||||
#define CONFIG_SMSTP10_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_SMSTP11_ENA
|
||||
#define CONFIG_SMSTP11_ENA 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_RMSTP0_ENA
|
||||
#define CONFIG_RMSTP0_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP1_ENA
|
||||
#define CONFIG_RMSTP1_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP2_ENA
|
||||
#define CONFIG_RMSTP2_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP3_ENA
|
||||
#define CONFIG_RMSTP3_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP4_ENA
|
||||
#define CONFIG_RMSTP4_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP5_ENA
|
||||
#define CONFIG_RMSTP5_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP6_ENA
|
||||
#define CONFIG_RMSTP6_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP7_ENA
|
||||
#define CONFIG_RMSTP7_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP8_ENA
|
||||
#define CONFIG_RMSTP8_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP9_ENA
|
||||
#define CONFIG_RMSTP9_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP10_ENA
|
||||
#define CONFIG_RMSTP10_ENA 0x00
|
||||
#endif
|
||||
#ifndef CONFIG_RMSTP11_ENA
|
||||
#define CONFIG_RMSTP11_ENA 0x00
|
||||
#endif
|
||||
|
||||
struct mstp_ctl {
|
||||
u32 s_addr;
|
||||
u32 s_dis;
|
||||
u32 s_ena;
|
||||
u32 r_addr;
|
||||
u32 r_dis;
|
||||
u32 r_ena;
|
||||
};
|
||||
|
||||
#endif /* __ASM_ARCH_RCAR_MSTP_H */
|
||||
@@ -0,0 +1,49 @@
|
||||
#ifndef __ASM_ARCH_RMOBILE_H
|
||||
#define __ASM_ARCH_RMOBILE_H
|
||||
|
||||
#if defined(CONFIG_ARCH_RMOBILE)
|
||||
#if defined(CONFIG_SH73A0)
|
||||
#include <asm/arch/sh73a0.h>
|
||||
#elif defined(CONFIG_R8A7740)
|
||||
#include <asm/arch/r8a7740.h>
|
||||
#elif defined(CONFIG_R8A7790)
|
||||
#include <asm/arch/r8a7790.h>
|
||||
#elif defined(CONFIG_R8A7791)
|
||||
#include <asm/arch/r8a7791.h>
|
||||
#elif defined(CONFIG_R8A7792)
|
||||
#include <asm/arch/r8a7792.h>
|
||||
#elif defined(CONFIG_R8A7793)
|
||||
#include <asm/arch/r8a7793.h>
|
||||
#elif defined(CONFIG_R8A7794)
|
||||
#include <asm/arch/r8a7794.h>
|
||||
#elif defined(CONFIG_RCAR_GEN3)
|
||||
#include <asm/arch/rcar-gen3-base.h>
|
||||
#elif defined(CONFIG_R7S72100)
|
||||
#else
|
||||
#error "SOC Name not defined"
|
||||
#endif
|
||||
#endif /* CONFIG_ARCH_RMOBILE */
|
||||
|
||||
/* PRR CPU IDs */
|
||||
#define RMOBILE_CPU_TYPE_SH73A0 0x37
|
||||
#define RMOBILE_CPU_TYPE_R8A7740 0x40
|
||||
#define RMOBILE_CPU_TYPE_R8A7790 0x45
|
||||
#define RMOBILE_CPU_TYPE_R8A7791 0x47
|
||||
#define RMOBILE_CPU_TYPE_R8A7792 0x4A
|
||||
#define RMOBILE_CPU_TYPE_R8A7793 0x4B
|
||||
#define RMOBILE_CPU_TYPE_R8A7794 0x4C
|
||||
#define RMOBILE_CPU_TYPE_R8A7795 0x4F
|
||||
#define RMOBILE_CPU_TYPE_R8A7796 0x52
|
||||
#define RMOBILE_CPU_TYPE_R8A77965 0x55
|
||||
#define RMOBILE_CPU_TYPE_R8A77970 0x54
|
||||
#define RMOBILE_CPU_TYPE_R8A77980 0x56
|
||||
#define RMOBILE_CPU_TYPE_R8A77990 0x57
|
||||
#define RMOBILE_CPU_TYPE_R8A77995 0x58
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
u32 rmobile_get_cpu_type(void);
|
||||
u32 rmobile_get_cpu_rev_integer(void);
|
||||
u32 rmobile_get_cpu_rev_fraction(void);
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __ASM_ARCH_RMOBILE_H */
|
||||
@@ -0,0 +1,553 @@
|
||||
#ifndef __ASM_SH73A0_H__
|
||||
#define __ASM_SH73A0_H__
|
||||
|
||||
/* Pin Function Controller:
|
||||
* GPIO_FN_xx - GPIO used to select pin function and MSEL switch
|
||||
* GPIO_PORTxx - GPIO mapped to real I/O pin on CPU
|
||||
*/
|
||||
enum {
|
||||
/* Hardware manual Table 25-1 (GPIO) */
|
||||
GPIO_PORT0, GPIO_PORT1, GPIO_PORT2, GPIO_PORT3, GPIO_PORT4,
|
||||
GPIO_PORT5, GPIO_PORT6, GPIO_PORT7, GPIO_PORT8, GPIO_PORT9,
|
||||
|
||||
GPIO_PORT10, GPIO_PORT11, GPIO_PORT12, GPIO_PORT13, GPIO_PORT14,
|
||||
GPIO_PORT15, GPIO_PORT16, GPIO_PORT17, GPIO_PORT18, GPIO_PORT19,
|
||||
|
||||
GPIO_PORT20, GPIO_PORT21, GPIO_PORT22, GPIO_PORT23, GPIO_PORT24,
|
||||
GPIO_PORT25, GPIO_PORT26, GPIO_PORT27, GPIO_PORT28, GPIO_PORT29,
|
||||
|
||||
GPIO_PORT30, GPIO_PORT31, GPIO_PORT32, GPIO_PORT33, GPIO_PORT34,
|
||||
GPIO_PORT35, GPIO_PORT36, GPIO_PORT37, GPIO_PORT38, GPIO_PORT39,
|
||||
|
||||
GPIO_PORT40, GPIO_PORT41, GPIO_PORT42, GPIO_PORT43, GPIO_PORT44,
|
||||
GPIO_PORT45, GPIO_PORT46, GPIO_PORT47, GPIO_PORT48, GPIO_PORT49,
|
||||
|
||||
GPIO_PORT50, GPIO_PORT51, GPIO_PORT52, GPIO_PORT53, GPIO_PORT54,
|
||||
GPIO_PORT55, GPIO_PORT56, GPIO_PORT57, GPIO_PORT58, GPIO_PORT59,
|
||||
|
||||
GPIO_PORT60, GPIO_PORT61, GPIO_PORT62, GPIO_PORT63, GPIO_PORT64,
|
||||
GPIO_PORT65, GPIO_PORT66, GPIO_PORT67, GPIO_PORT68, GPIO_PORT69,
|
||||
|
||||
GPIO_PORT70, GPIO_PORT71, GPIO_PORT72, GPIO_PORT73, GPIO_PORT74,
|
||||
GPIO_PORT75, GPIO_PORT76, GPIO_PORT77, GPIO_PORT78, GPIO_PORT79,
|
||||
|
||||
GPIO_PORT80, GPIO_PORT81, GPIO_PORT82, GPIO_PORT83, GPIO_PORT84,
|
||||
GPIO_PORT85, GPIO_PORT86, GPIO_PORT87, GPIO_PORT88, GPIO_PORT89,
|
||||
|
||||
GPIO_PORT90, GPIO_PORT91, GPIO_PORT92, GPIO_PORT93, GPIO_PORT94,
|
||||
GPIO_PORT95, GPIO_PORT96, GPIO_PORT97, GPIO_PORT98, GPIO_PORT99,
|
||||
|
||||
GPIO_PORT100, GPIO_PORT101, GPIO_PORT102, GPIO_PORT103, GPIO_PORT104,
|
||||
GPIO_PORT105, GPIO_PORT106, GPIO_PORT107, GPIO_PORT108, GPIO_PORT109,
|
||||
|
||||
GPIO_PORT110, GPIO_PORT111, GPIO_PORT112, GPIO_PORT113, GPIO_PORT114,
|
||||
GPIO_PORT115, GPIO_PORT116, GPIO_PORT117, GPIO_PORT118,
|
||||
|
||||
GPIO_PORT128, GPIO_PORT129,
|
||||
|
||||
GPIO_PORT130, GPIO_PORT131, GPIO_PORT132, GPIO_PORT133, GPIO_PORT134,
|
||||
GPIO_PORT135, GPIO_PORT136, GPIO_PORT137, GPIO_PORT138, GPIO_PORT139,
|
||||
|
||||
GPIO_PORT140, GPIO_PORT141, GPIO_PORT142, GPIO_PORT143, GPIO_PORT144,
|
||||
GPIO_PORT145, GPIO_PORT146, GPIO_PORT147, GPIO_PORT148, GPIO_PORT149,
|
||||
|
||||
GPIO_PORT150, GPIO_PORT151, GPIO_PORT152, GPIO_PORT153, GPIO_PORT154,
|
||||
GPIO_PORT155, GPIO_PORT156, GPIO_PORT157, GPIO_PORT158, GPIO_PORT159,
|
||||
|
||||
GPIO_PORT160, GPIO_PORT161, GPIO_PORT162, GPIO_PORT163, GPIO_PORT164,
|
||||
|
||||
GPIO_PORT192, GPIO_PORT193, GPIO_PORT194,
|
||||
GPIO_PORT195, GPIO_PORT196, GPIO_PORT197, GPIO_PORT198, GPIO_PORT199,
|
||||
|
||||
GPIO_PORT200, GPIO_PORT201, GPIO_PORT202, GPIO_PORT203, GPIO_PORT204,
|
||||
GPIO_PORT205, GPIO_PORT206, GPIO_PORT207, GPIO_PORT208, GPIO_PORT209,
|
||||
|
||||
GPIO_PORT210, GPIO_PORT211, GPIO_PORT212, GPIO_PORT213, GPIO_PORT214,
|
||||
GPIO_PORT215, GPIO_PORT216, GPIO_PORT217, GPIO_PORT218, GPIO_PORT219,
|
||||
|
||||
GPIO_PORT220, GPIO_PORT221, GPIO_PORT222, GPIO_PORT223, GPIO_PORT224,
|
||||
GPIO_PORT225, GPIO_PORT226, GPIO_PORT227, GPIO_PORT228, GPIO_PORT229,
|
||||
|
||||
GPIO_PORT230, GPIO_PORT231, GPIO_PORT232, GPIO_PORT233, GPIO_PORT234,
|
||||
GPIO_PORT235, GPIO_PORT236, GPIO_PORT237, GPIO_PORT238, GPIO_PORT239,
|
||||
|
||||
GPIO_PORT240, GPIO_PORT241, GPIO_PORT242, GPIO_PORT243, GPIO_PORT244,
|
||||
GPIO_PORT245, GPIO_PORT246, GPIO_PORT247, GPIO_PORT248, GPIO_PORT249,
|
||||
|
||||
GPIO_PORT250, GPIO_PORT251, GPIO_PORT252, GPIO_PORT253, GPIO_PORT254,
|
||||
GPIO_PORT255, GPIO_PORT256, GPIO_PORT257, GPIO_PORT258, GPIO_PORT259,
|
||||
|
||||
GPIO_PORT260, GPIO_PORT261, GPIO_PORT262, GPIO_PORT263, GPIO_PORT264,
|
||||
GPIO_PORT265, GPIO_PORT266, GPIO_PORT267, GPIO_PORT268, GPIO_PORT269,
|
||||
|
||||
GPIO_PORT270, GPIO_PORT271, GPIO_PORT272, GPIO_PORT273, GPIO_PORT274,
|
||||
GPIO_PORT275, GPIO_PORT276, GPIO_PORT277, GPIO_PORT278, GPIO_PORT279,
|
||||
|
||||
GPIO_PORT280, GPIO_PORT281, GPIO_PORT282,
|
||||
|
||||
GPIO_PORT288, GPIO_PORT289,
|
||||
|
||||
GPIO_PORT290, GPIO_PORT291, GPIO_PORT292, GPIO_PORT293, GPIO_PORT294,
|
||||
GPIO_PORT295, GPIO_PORT296, GPIO_PORT297, GPIO_PORT298, GPIO_PORT299,
|
||||
|
||||
GPIO_PORT300, GPIO_PORT301, GPIO_PORT302, GPIO_PORT303, GPIO_PORT304,
|
||||
GPIO_PORT305, GPIO_PORT306, GPIO_PORT307, GPIO_PORT308, GPIO_PORT309,
|
||||
|
||||
/* Table 25-1 (Function 0-7) */
|
||||
GPIO_FN_VBUS_0,
|
||||
GPIO_FN_GPI0,
|
||||
GPIO_FN_GPI1,
|
||||
GPIO_FN_GPI2,
|
||||
GPIO_FN_GPI3,
|
||||
GPIO_FN_GPI4,
|
||||
GPIO_FN_GPI5,
|
||||
GPIO_FN_GPI6,
|
||||
GPIO_FN_GPI7,
|
||||
GPIO_FN_SCIFA7_RXD,
|
||||
GPIO_FN_SCIFA7_CTS_,
|
||||
GPIO_FN_GPO7, GPIO_FN_MFG0_OUT2,
|
||||
GPIO_FN_GPO6, GPIO_FN_MFG1_OUT2,
|
||||
GPIO_FN_GPO5, GPIO_FN_SCIFA0_SCK, GPIO_FN_FSICOSLDT3, \
|
||||
GPIO_FN_PORT16_VIO_CKOR,
|
||||
GPIO_FN_SCIFA0_TXD,
|
||||
GPIO_FN_SCIFA7_TXD,
|
||||
GPIO_FN_SCIFA7_RTS_, GPIO_FN_PORT19_VIO_CKO2,
|
||||
GPIO_FN_GPO0,
|
||||
GPIO_FN_GPO1,
|
||||
GPIO_FN_GPO2, GPIO_FN_STATUS0,
|
||||
GPIO_FN_GPO3, GPIO_FN_STATUS1,
|
||||
GPIO_FN_GPO4, GPIO_FN_STATUS2,
|
||||
GPIO_FN_VINT,
|
||||
GPIO_FN_TCKON,
|
||||
GPIO_FN_XDVFS1, GPIO_FN_PORT27_I2C_SCL2, GPIO_FN_PORT27_I2C_SCL3, \
|
||||
GPIO_FN_MFG0_OUT1, GPIO_FN_PORT27_IROUT,
|
||||
GPIO_FN_XDVFS2, GPIO_FN_PORT28_I2C_SDA2, GPIO_FN_PORT28_I2C_SDA3, \
|
||||
GPIO_FN_PORT28_TPU1TO1,
|
||||
GPIO_FN_SIM_RST, GPIO_FN_PORT29_TPU1TO1,
|
||||
GPIO_FN_SIM_CLK, GPIO_FN_PORT30_VIO_CKOR,
|
||||
GPIO_FN_SIM_D, GPIO_FN_PORT31_IROUT,
|
||||
GPIO_FN_SCIFA4_TXD,
|
||||
GPIO_FN_SCIFA4_RXD, GPIO_FN_XWUP,
|
||||
GPIO_FN_SCIFA4_RTS_,
|
||||
GPIO_FN_SCIFA4_CTS_,
|
||||
GPIO_FN_FSIBOBT, GPIO_FN_FSIBIBT,
|
||||
GPIO_FN_FSIBOLR, GPIO_FN_FSIBILR,
|
||||
GPIO_FN_FSIBOSLD,
|
||||
GPIO_FN_FSIBISLD,
|
||||
GPIO_FN_VACK,
|
||||
GPIO_FN_XTAL1L,
|
||||
GPIO_FN_SCIFA0_RTS_, GPIO_FN_FSICOSLDT2,
|
||||
GPIO_FN_SCIFA0_RXD,
|
||||
GPIO_FN_SCIFA0_CTS_, GPIO_FN_FSICOSLDT1,
|
||||
GPIO_FN_FSICOBT, GPIO_FN_FSICIBT, GPIO_FN_FSIDOBT, GPIO_FN_FSIDIBT,
|
||||
GPIO_FN_FSICOLR, GPIO_FN_FSICILR, GPIO_FN_FSIDOLR, GPIO_FN_FSIDILR,
|
||||
GPIO_FN_FSICOSLD, GPIO_FN_PORT47_FSICSPDIF,
|
||||
GPIO_FN_FSICISLD, GPIO_FN_FSIDISLD,
|
||||
GPIO_FN_FSIACK, GPIO_FN_PORT49_IRDA_OUT, GPIO_FN_PORT49_IROUT, \
|
||||
GPIO_FN_FSIAOMC,
|
||||
GPIO_FN_FSIAOLR, GPIO_FN_BBIF2_TSYNC2, GPIO_FN_TPU2TO2, GPIO_FN_FSIAILR,
|
||||
|
||||
GPIO_FN_FSIAOBT, GPIO_FN_BBIF2_TSCK2, GPIO_FN_TPU2TO3, GPIO_FN_FSIAIBT,
|
||||
GPIO_FN_FSIAOSLD, GPIO_FN_BBIF2_TXD2,
|
||||
GPIO_FN_FSIASPDIF, GPIO_FN_PORT53_IRDA_IN, GPIO_FN_TPU3TO3, \
|
||||
GPIO_FN_FSIBSPDIF, GPIO_FN_PORT53_FSICSPDIF,
|
||||
GPIO_FN_FSIBCK, GPIO_FN_PORT54_IRDA_FIRSEL, GPIO_FN_TPU3TO2, \
|
||||
GPIO_FN_FSIBOMC, GPIO_FN_FSICCK, GPIO_FN_FSICOMC,
|
||||
GPIO_FN_FSIAISLD, GPIO_FN_TPU0TO0,
|
||||
GPIO_FN_A0, GPIO_FN_BS_,
|
||||
GPIO_FN_A12, GPIO_FN_PORT58_KEYOUT7, GPIO_FN_TPU4TO2,
|
||||
GPIO_FN_A13, GPIO_FN_PORT59_KEYOUT6, GPIO_FN_TPU0TO1,
|
||||
GPIO_FN_A14, GPIO_FN_KEYOUT5,
|
||||
GPIO_FN_A15, GPIO_FN_KEYOUT4,
|
||||
GPIO_FN_A16, GPIO_FN_KEYOUT3, GPIO_FN_MSIOF0_SS1,
|
||||
GPIO_FN_A17, GPIO_FN_KEYOUT2, GPIO_FN_MSIOF0_TSYNC,
|
||||
GPIO_FN_A18, GPIO_FN_KEYOUT1, GPIO_FN_MSIOF0_TSCK,
|
||||
GPIO_FN_A19, GPIO_FN_KEYOUT0, GPIO_FN_MSIOF0_TXD,
|
||||
GPIO_FN_A20, GPIO_FN_KEYIN0, GPIO_FN_MSIOF0_RSCK,
|
||||
GPIO_FN_A21, GPIO_FN_KEYIN1, GPIO_FN_MSIOF0_RSYNC,
|
||||
GPIO_FN_A22, GPIO_FN_KEYIN2, GPIO_FN_MSIOF0_MCK0,
|
||||
GPIO_FN_A23, GPIO_FN_KEYIN3, GPIO_FN_MSIOF0_MCK1,
|
||||
GPIO_FN_A24, GPIO_FN_KEYIN4, GPIO_FN_MSIOF0_RXD,
|
||||
GPIO_FN_A25, GPIO_FN_KEYIN5, GPIO_FN_MSIOF0_SS2,
|
||||
GPIO_FN_A26, GPIO_FN_KEYIN6,
|
||||
GPIO_FN_KEYIN7,
|
||||
GPIO_FN_D0_NAF0,
|
||||
GPIO_FN_D1_NAF1,
|
||||
GPIO_FN_D2_NAF2,
|
||||
GPIO_FN_D3_NAF3,
|
||||
GPIO_FN_D4_NAF4,
|
||||
GPIO_FN_D5_NAF5,
|
||||
GPIO_FN_D6_NAF6,
|
||||
GPIO_FN_D7_NAF7,
|
||||
GPIO_FN_D8_NAF8,
|
||||
GPIO_FN_D9_NAF9,
|
||||
GPIO_FN_D10_NAF10,
|
||||
GPIO_FN_D11_NAF11,
|
||||
GPIO_FN_D12_NAF12,
|
||||
GPIO_FN_D13_NAF13,
|
||||
GPIO_FN_D14_NAF14,
|
||||
GPIO_FN_D15_NAF15,
|
||||
GPIO_FN_CS4_,
|
||||
GPIO_FN_CS5A_, GPIO_FN_PORT91_RDWR,
|
||||
GPIO_FN_CS5B_, GPIO_FN_FCE1_,
|
||||
GPIO_FN_CS6B_, GPIO_FN_DACK0,
|
||||
GPIO_FN_FCE0_, GPIO_FN_CS6A_,
|
||||
GPIO_FN_WAIT_, GPIO_FN_DREQ0,
|
||||
GPIO_FN_RD__FSC,
|
||||
GPIO_FN_WE0__FWE, GPIO_FN_RDWR_FWE,
|
||||
GPIO_FN_WE1_,
|
||||
GPIO_FN_FRB,
|
||||
GPIO_FN_CKO,
|
||||
GPIO_FN_NBRSTOUT_,
|
||||
GPIO_FN_NBRST_,
|
||||
GPIO_FN_BBIF2_TXD,
|
||||
GPIO_FN_BBIF2_RXD,
|
||||
GPIO_FN_BBIF2_SYNC,
|
||||
GPIO_FN_BBIF2_SCK,
|
||||
GPIO_FN_SCIFA3_CTS_, GPIO_FN_MFG3_IN2,
|
||||
GPIO_FN_SCIFA3_RXD, GPIO_FN_MFG3_IN1,
|
||||
GPIO_FN_BBIF1_SS2, GPIO_FN_SCIFA3_RTS_, GPIO_FN_MFG3_OUT1,
|
||||
GPIO_FN_SCIFA3_TXD,
|
||||
GPIO_FN_HSI_RX_DATA, GPIO_FN_BBIF1_RXD,
|
||||
GPIO_FN_HSI_TX_WAKE, GPIO_FN_BBIF1_TSCK,
|
||||
GPIO_FN_HSI_TX_DATA, GPIO_FN_BBIF1_TSYNC,
|
||||
GPIO_FN_HSI_TX_READY, GPIO_FN_BBIF1_TXD,
|
||||
GPIO_FN_HSI_RX_READY, GPIO_FN_BBIF1_RSCK, GPIO_FN_PORT115_I2C_SCL2, \
|
||||
GPIO_FN_PORT115_I2C_SCL3,
|
||||
GPIO_FN_HSI_RX_WAKE, GPIO_FN_BBIF1_RSYNC, GPIO_FN_PORT116_I2C_SDA2, \
|
||||
GPIO_FN_PORT116_I2C_SDA3,
|
||||
GPIO_FN_HSI_RX_FLAG, GPIO_FN_BBIF1_SS1, GPIO_FN_BBIF1_FLOW,
|
||||
GPIO_FN_HSI_TX_FLAG,
|
||||
GPIO_FN_VIO_VD, GPIO_FN_PORT128_LCD2VSYN, GPIO_FN_VIO2_VD, \
|
||||
GPIO_FN_LCD2D0,
|
||||
|
||||
GPIO_FN_VIO_HD, GPIO_FN_PORT129_LCD2HSYN, GPIO_FN_PORT129_LCD2CS_, \
|
||||
GPIO_FN_VIO2_HD, GPIO_FN_LCD2D1,
|
||||
GPIO_FN_VIO_D0, GPIO_FN_PORT130_MSIOF2_RXD, GPIO_FN_LCD2D10,
|
||||
GPIO_FN_VIO_D1, GPIO_FN_PORT131_KEYOUT6, GPIO_FN_PORT131_MSIOF2_SS1, \
|
||||
GPIO_FN_PORT131_KEYOUT11, GPIO_FN_LCD2D11,
|
||||
GPIO_FN_VIO_D2, GPIO_FN_PORT132_KEYOUT7, GPIO_FN_PORT132_MSIOF2_SS2, \
|
||||
GPIO_FN_PORT132_KEYOUT10, GPIO_FN_LCD2D12,
|
||||
GPIO_FN_VIO_D3, GPIO_FN_MSIOF2_TSYNC, GPIO_FN_LCD2D13,
|
||||
GPIO_FN_VIO_D4, GPIO_FN_MSIOF2_TXD, GPIO_FN_LCD2D14,
|
||||
GPIO_FN_VIO_D5, GPIO_FN_MSIOF2_TSCK, GPIO_FN_LCD2D15,
|
||||
GPIO_FN_VIO_D6, GPIO_FN_PORT136_KEYOUT8, GPIO_FN_LCD2D16,
|
||||
GPIO_FN_VIO_D7, GPIO_FN_PORT137_KEYOUT9, GPIO_FN_LCD2D17,
|
||||
GPIO_FN_VIO_D8, GPIO_FN_PORT138_KEYOUT8, GPIO_FN_VIO2_D0, \
|
||||
GPIO_FN_LCD2D6,
|
||||
GPIO_FN_VIO_D9, GPIO_FN_PORT139_KEYOUT9, GPIO_FN_VIO2_D1, \
|
||||
GPIO_FN_LCD2D7,
|
||||
GPIO_FN_VIO_D10, GPIO_FN_TPU0TO2, GPIO_FN_VIO2_D2, GPIO_FN_LCD2D8,
|
||||
GPIO_FN_VIO_D11, GPIO_FN_TPU0TO3, GPIO_FN_VIO2_D3, GPIO_FN_LCD2D9,
|
||||
GPIO_FN_VIO_D12, GPIO_FN_PORT142_KEYOUT10, GPIO_FN_VIO2_D4, \
|
||||
GPIO_FN_LCD2D2,
|
||||
GPIO_FN_VIO_D13, GPIO_FN_PORT143_KEYOUT11, GPIO_FN_PORT143_KEYOUT6, \
|
||||
GPIO_FN_VIO2_D5, GPIO_FN_LCD2D3,
|
||||
GPIO_FN_VIO_D14, GPIO_FN_PORT144_KEYOUT7, GPIO_FN_VIO2_D6, \
|
||||
GPIO_FN_LCD2D4,
|
||||
GPIO_FN_VIO_D15, GPIO_FN_TPU1TO3, GPIO_FN_PORT145_LCD2DISP, \
|
||||
GPIO_FN_PORT145_LCD2RS, GPIO_FN_VIO2_D7, GPIO_FN_LCD2D5,
|
||||
GPIO_FN_VIO_CLK, GPIO_FN_LCD2DCK, GPIO_FN_PORT146_LCD2WR_, \
|
||||
GPIO_FN_VIO2_CLK, GPIO_FN_LCD2D18,
|
||||
GPIO_FN_VIO_FIELD, GPIO_FN_LCD2RD_, GPIO_FN_VIO2_FIELD, GPIO_FN_LCD2D19,
|
||||
GPIO_FN_VIO_CKO,
|
||||
GPIO_FN_A27, GPIO_FN_PORT149_RDWR, GPIO_FN_MFG0_IN1, \
|
||||
GPIO_FN_PORT149_KEYOUT9,
|
||||
GPIO_FN_MFG0_IN2,
|
||||
GPIO_FN_TS_SPSYNC3, GPIO_FN_MSIOF2_RSCK,
|
||||
GPIO_FN_TS_SDAT3, GPIO_FN_MSIOF2_RSYNC,
|
||||
GPIO_FN_TPU1TO2, GPIO_FN_TS_SDEN3, GPIO_FN_PORT153_MSIOF2_SS1,
|
||||
GPIO_FN_SCIFA2_TXD1, GPIO_FN_MSIOF2_MCK0,
|
||||
GPIO_FN_SCIFA2_RXD1, GPIO_FN_MSIOF2_MCK1,
|
||||
GPIO_FN_SCIFA2_RTS1_, GPIO_FN_PORT156_MSIOF2_SS2,
|
||||
GPIO_FN_SCIFA2_CTS1_, GPIO_FN_PORT157_MSIOF2_RXD,
|
||||
GPIO_FN_DINT_, GPIO_FN_SCIFA2_SCK1, GPIO_FN_TS_SCK3,
|
||||
GPIO_FN_PORT159_SCIFB_SCK, GPIO_FN_PORT159_SCIFA5_SCK, GPIO_FN_NMI,
|
||||
GPIO_FN_PORT160_SCIFB_TXD, GPIO_FN_PORT160_SCIFA5_TXD,
|
||||
GPIO_FN_PORT161_SCIFB_CTS_, GPIO_FN_PORT161_SCIFA5_CTS_,
|
||||
GPIO_FN_PORT162_SCIFB_RXD, GPIO_FN_PORT162_SCIFA5_RXD,
|
||||
GPIO_FN_PORT163_SCIFB_RTS_, GPIO_FN_PORT163_SCIFA5_RTS_, \
|
||||
GPIO_FN_TPU3TO0,
|
||||
GPIO_FN_LCDD0,
|
||||
GPIO_FN_LCDD1, GPIO_FN_PORT193_SCIFA5_CTS_, GPIO_FN_BBIF2_TSYNC1,
|
||||
GPIO_FN_LCDD2, GPIO_FN_PORT194_SCIFA5_RTS_, GPIO_FN_BBIF2_TSCK1,
|
||||
GPIO_FN_LCDD3, GPIO_FN_PORT195_SCIFA5_RXD, GPIO_FN_BBIF2_TXD1,
|
||||
GPIO_FN_LCDD4, GPIO_FN_PORT196_SCIFA5_TXD,
|
||||
GPIO_FN_LCDD5, GPIO_FN_PORT197_SCIFA5_SCK, GPIO_FN_MFG2_OUT2, \
|
||||
GPIO_FN_TPU2TO1,
|
||||
GPIO_FN_LCDD6,
|
||||
GPIO_FN_LCDD7, GPIO_FN_TPU4TO1, GPIO_FN_MFG4_OUT2,
|
||||
GPIO_FN_LCDD8, GPIO_FN_D16,
|
||||
GPIO_FN_LCDD9, GPIO_FN_D17,
|
||||
GPIO_FN_LCDD10, GPIO_FN_D18,
|
||||
GPIO_FN_LCDD11, GPIO_FN_D19,
|
||||
GPIO_FN_LCDD12, GPIO_FN_D20,
|
||||
GPIO_FN_LCDD13, GPIO_FN_D21,
|
||||
GPIO_FN_LCDD14, GPIO_FN_D22,
|
||||
GPIO_FN_LCDD15, GPIO_FN_PORT207_MSIOF0L_SS1, GPIO_FN_D23,
|
||||
GPIO_FN_LCDD16, GPIO_FN_PORT208_MSIOF0L_SS2, GPIO_FN_D24,
|
||||
GPIO_FN_LCDD17, GPIO_FN_D25,
|
||||
GPIO_FN_LCDD18, GPIO_FN_DREQ2, GPIO_FN_PORT210_MSIOF0L_SS1, GPIO_FN_D26,
|
||||
GPIO_FN_LCDD19, GPIO_FN_PORT211_MSIOF0L_SS2, GPIO_FN_D27,
|
||||
GPIO_FN_LCDD20, GPIO_FN_TS_SPSYNC1, GPIO_FN_MSIOF0L_MCK0, GPIO_FN_D28,
|
||||
GPIO_FN_LCDD21, GPIO_FN_TS_SDAT1, GPIO_FN_MSIOF0L_MCK1, GPIO_FN_D29,
|
||||
GPIO_FN_LCDD22, GPIO_FN_TS_SDEN1, GPIO_FN_MSIOF0L_RSCK, GPIO_FN_D30,
|
||||
GPIO_FN_LCDD23, GPIO_FN_TS_SCK1, GPIO_FN_MSIOF0L_RSYNC, GPIO_FN_D31,
|
||||
GPIO_FN_LCDDCK, GPIO_FN_LCDWR_,
|
||||
GPIO_FN_LCDRD_, GPIO_FN_DACK2, GPIO_FN_PORT217_LCD2RS, \
|
||||
GPIO_FN_MSIOF0L_TSYNC, GPIO_FN_VIO2_FIELD3, GPIO_FN_PORT217_LCD2DISP,
|
||||
GPIO_FN_LCDHSYN, GPIO_FN_LCDCS_, GPIO_FN_LCDCS2_, GPIO_FN_DACK3, \
|
||||
GPIO_FN_PORT218_VIO_CKOR,
|
||||
GPIO_FN_LCDDISP, GPIO_FN_LCDRS, GPIO_FN_PORT219_LCD2WR_, \
|
||||
GPIO_FN_DREQ3, GPIO_FN_MSIOF0L_TSCK, GPIO_FN_VIO2_CLK3, \
|
||||
GPIO_FN_LCD2DCK_2,
|
||||
GPIO_FN_LCDVSYN, GPIO_FN_LCDVSYN2,
|
||||
GPIO_FN_LCDLCLK, GPIO_FN_DREQ1, GPIO_FN_PORT221_LCD2CS_, \
|
||||
GPIO_FN_PWEN, GPIO_FN_MSIOF0L_RXD, GPIO_FN_VIO2_HD3, \
|
||||
GPIO_FN_PORT221_LCD2HSYN,
|
||||
GPIO_FN_LCDDON, GPIO_FN_LCDDON2, GPIO_FN_DACK1, GPIO_FN_OVCN, \
|
||||
GPIO_FN_MSIOF0L_TXD, GPIO_FN_VIO2_VD3, GPIO_FN_PORT222_LCD2VSYN,
|
||||
|
||||
GPIO_FN_SCIFA1_TXD, GPIO_FN_OVCN2,
|
||||
GPIO_FN_EXTLP, GPIO_FN_SCIFA1_SCK, GPIO_FN_PORT226_VIO_CKO2,
|
||||
GPIO_FN_SCIFA1_RTS_, GPIO_FN_IDIN,
|
||||
GPIO_FN_SCIFA1_RXD,
|
||||
GPIO_FN_SCIFA1_CTS_, GPIO_FN_MFG1_IN1,
|
||||
GPIO_FN_MSIOF1_TXD, GPIO_FN_SCIFA2_TXD2,
|
||||
GPIO_FN_MSIOF1_TSYNC, GPIO_FN_SCIFA2_CTS2_,
|
||||
GPIO_FN_MSIOF1_TSCK, GPIO_FN_SCIFA2_SCK2,
|
||||
GPIO_FN_MSIOF1_RXD, GPIO_FN_SCIFA2_RXD2,
|
||||
GPIO_FN_MSIOF1_RSCK, GPIO_FN_SCIFA2_RTS2_, GPIO_FN_VIO2_CLK2, \
|
||||
GPIO_FN_LCD2D20,
|
||||
GPIO_FN_MSIOF1_RSYNC, GPIO_FN_MFG1_IN2, GPIO_FN_VIO2_VD2, \
|
||||
GPIO_FN_LCD2D21,
|
||||
GPIO_FN_MSIOF1_MCK0, GPIO_FN_PORT236_I2C_SDA2,
|
||||
GPIO_FN_MSIOF1_MCK1, GPIO_FN_PORT237_I2C_SCL2,
|
||||
GPIO_FN_MSIOF1_SS1, GPIO_FN_VIO2_FIELD2, GPIO_FN_LCD2D22,
|
||||
GPIO_FN_MSIOF1_SS2, GPIO_FN_VIO2_HD2, GPIO_FN_LCD2D23,
|
||||
GPIO_FN_SCIFA6_TXD,
|
||||
GPIO_FN_PORT241_IRDA_OUT, GPIO_FN_PORT241_IROUT, GPIO_FN_MFG4_OUT1, \
|
||||
GPIO_FN_TPU4TO0,
|
||||
GPIO_FN_PORT242_IRDA_IN, GPIO_FN_MFG4_IN2,
|
||||
GPIO_FN_PORT243_IRDA_FIRSEL, GPIO_FN_PORT243_VIO_CKO2,
|
||||
GPIO_FN_PORT244_SCIFA5_CTS_, GPIO_FN_MFG2_IN1, \
|
||||
GPIO_FN_PORT244_SCIFB_CTS_, GPIO_FN_MSIOF2R_RXD,
|
||||
GPIO_FN_PORT245_SCIFA5_RTS_, GPIO_FN_MFG2_IN2, \
|
||||
GPIO_FN_PORT245_SCIFB_RTS_, GPIO_FN_MSIOF2R_TXD,
|
||||
GPIO_FN_PORT246_SCIFA5_RXD, GPIO_FN_MFG1_OUT1, \
|
||||
GPIO_FN_PORT246_SCIFB_RXD, GPIO_FN_TPU1TO0,
|
||||
GPIO_FN_PORT247_SCIFA5_TXD, GPIO_FN_MFG3_OUT2, \
|
||||
GPIO_FN_PORT247_SCIFB_TXD, GPIO_FN_TPU3TO1,
|
||||
GPIO_FN_PORT248_SCIFA5_SCK, GPIO_FN_MFG2_OUT1, \
|
||||
GPIO_FN_PORT248_SCIFB_SCK, GPIO_FN_TPU2TO0, \
|
||||
GPIO_FN_PORT248_I2C_SCL3, GPIO_FN_MSIOF2R_TSCK,
|
||||
GPIO_FN_PORT249_IROUT, GPIO_FN_MFG4_IN1, \
|
||||
GPIO_FN_PORT249_I2C_SDA3, GPIO_FN_MSIOF2R_TSYNC,
|
||||
GPIO_FN_SDHICLK0,
|
||||
GPIO_FN_SDHICD0,
|
||||
GPIO_FN_SDHID0_0,
|
||||
GPIO_FN_SDHID0_1,
|
||||
GPIO_FN_SDHID0_2,
|
||||
GPIO_FN_SDHID0_3,
|
||||
GPIO_FN_SDHICMD0,
|
||||
GPIO_FN_SDHIWP0,
|
||||
GPIO_FN_SDHICLK1,
|
||||
GPIO_FN_SDHID1_0, GPIO_FN_TS_SPSYNC2,
|
||||
GPIO_FN_SDHID1_1, GPIO_FN_TS_SDAT2,
|
||||
GPIO_FN_SDHID1_2, GPIO_FN_TS_SDEN2,
|
||||
GPIO_FN_SDHID1_3, GPIO_FN_TS_SCK2,
|
||||
GPIO_FN_SDHICMD1,
|
||||
GPIO_FN_SDHICLK2,
|
||||
GPIO_FN_SDHID2_0, GPIO_FN_TS_SPSYNC4,
|
||||
GPIO_FN_SDHID2_1, GPIO_FN_TS_SDAT4,
|
||||
GPIO_FN_SDHID2_2, GPIO_FN_TS_SDEN4,
|
||||
GPIO_FN_SDHID2_3, GPIO_FN_TS_SCK4,
|
||||
GPIO_FN_SDHICMD2,
|
||||
GPIO_FN_MMCCLK0,
|
||||
GPIO_FN_MMCD0_0,
|
||||
GPIO_FN_MMCD0_1,
|
||||
GPIO_FN_MMCD0_2,
|
||||
GPIO_FN_MMCD0_3,
|
||||
GPIO_FN_MMCD0_4, GPIO_FN_TS_SPSYNC5,
|
||||
GPIO_FN_MMCD0_5, GPIO_FN_TS_SDAT5,
|
||||
GPIO_FN_MMCD0_6, GPIO_FN_TS_SDEN5,
|
||||
GPIO_FN_MMCD0_7, GPIO_FN_TS_SCK5,
|
||||
GPIO_FN_MMCCMD0,
|
||||
GPIO_FN_RESETOUTS_, GPIO_FN_EXTAL2OUT,
|
||||
GPIO_FN_MCP_WAIT__MCP_FRB,
|
||||
GPIO_FN_MCP_CKO, GPIO_FN_MMCCLK1,
|
||||
GPIO_FN_MCP_D15_MCP_NAF15,
|
||||
GPIO_FN_MCP_D14_MCP_NAF14,
|
||||
GPIO_FN_MCP_D13_MCP_NAF13,
|
||||
GPIO_FN_MCP_D12_MCP_NAF12,
|
||||
GPIO_FN_MCP_D11_MCP_NAF11,
|
||||
GPIO_FN_MCP_D10_MCP_NAF10,
|
||||
GPIO_FN_MCP_D9_MCP_NAF9,
|
||||
GPIO_FN_MCP_D8_MCP_NAF8, GPIO_FN_MMCCMD1,
|
||||
GPIO_FN_MCP_D7_MCP_NAF7, GPIO_FN_MMCD1_7,
|
||||
|
||||
GPIO_FN_MCP_D6_MCP_NAF6, GPIO_FN_MMCD1_6,
|
||||
GPIO_FN_MCP_D5_MCP_NAF5, GPIO_FN_MMCD1_5,
|
||||
GPIO_FN_MCP_D4_MCP_NAF4, GPIO_FN_MMCD1_4,
|
||||
GPIO_FN_MCP_D3_MCP_NAF3, GPIO_FN_MMCD1_3,
|
||||
GPIO_FN_MCP_D2_MCP_NAF2, GPIO_FN_MMCD1_2,
|
||||
GPIO_FN_MCP_D1_MCP_NAF1, GPIO_FN_MMCD1_1,
|
||||
GPIO_FN_MCP_D0_MCP_NAF0, GPIO_FN_MMCD1_0,
|
||||
GPIO_FN_MCP_NBRSTOUT_,
|
||||
GPIO_FN_MCP_WE0__MCP_FWE, GPIO_FN_MCP_RDWR_MCP_FWE,
|
||||
|
||||
/* MSEL2 special case */
|
||||
GPIO_FN_TSIF2_TS_XX1,
|
||||
GPIO_FN_TSIF2_TS_XX2,
|
||||
GPIO_FN_TSIF2_TS_XX3,
|
||||
GPIO_FN_TSIF2_TS_XX4,
|
||||
GPIO_FN_TSIF2_TS_XX5,
|
||||
GPIO_FN_TSIF1_TS_XX1,
|
||||
GPIO_FN_TSIF1_TS_XX2,
|
||||
GPIO_FN_TSIF1_TS_XX3,
|
||||
GPIO_FN_TSIF1_TS_XX4,
|
||||
GPIO_FN_TSIF1_TS_XX5,
|
||||
GPIO_FN_TSIF0_TS_XX1,
|
||||
GPIO_FN_TSIF0_TS_XX2,
|
||||
GPIO_FN_TSIF0_TS_XX3,
|
||||
GPIO_FN_TSIF0_TS_XX4,
|
||||
GPIO_FN_TSIF0_TS_XX5,
|
||||
GPIO_FN_MST1_TS_XX1,
|
||||
GPIO_FN_MST1_TS_XX2,
|
||||
GPIO_FN_MST1_TS_XX3,
|
||||
GPIO_FN_MST1_TS_XX4,
|
||||
GPIO_FN_MST1_TS_XX5,
|
||||
GPIO_FN_MST0_TS_XX1,
|
||||
GPIO_FN_MST0_TS_XX2,
|
||||
GPIO_FN_MST0_TS_XX3,
|
||||
GPIO_FN_MST0_TS_XX4,
|
||||
GPIO_FN_MST0_TS_XX5,
|
||||
|
||||
/* MSEL3 special cases */
|
||||
GPIO_FN_SDHI0_VCCQ_MC0_ON,
|
||||
GPIO_FN_SDHI0_VCCQ_MC0_OFF,
|
||||
GPIO_FN_DEBUG_MON_VIO,
|
||||
GPIO_FN_DEBUG_MON_LCDD,
|
||||
GPIO_FN_LCDC_LCDC0,
|
||||
GPIO_FN_LCDC_LCDC1,
|
||||
|
||||
/* MSEL4 special cases */
|
||||
GPIO_FN_IRQ9_MEM_INT,
|
||||
GPIO_FN_IRQ9_MCP_INT,
|
||||
GPIO_FN_A11,
|
||||
GPIO_FN_KEYOUT8,
|
||||
GPIO_FN_TPU4TO3,
|
||||
GPIO_FN_RESETA_N_PU_ON,
|
||||
GPIO_FN_RESETA_N_PU_OFF,
|
||||
GPIO_FN_EDBGREQ_PD,
|
||||
GPIO_FN_EDBGREQ_PU,
|
||||
|
||||
/* Functions with pull-ups */
|
||||
GPIO_FN_KEYIN0_PU,
|
||||
GPIO_FN_KEYIN1_PU,
|
||||
GPIO_FN_KEYIN2_PU,
|
||||
GPIO_FN_KEYIN3_PU,
|
||||
GPIO_FN_KEYIN4_PU,
|
||||
GPIO_FN_KEYIN5_PU,
|
||||
GPIO_FN_KEYIN6_PU,
|
||||
GPIO_FN_KEYIN7_PU,
|
||||
GPIO_FN_SDHICD0_PU,
|
||||
GPIO_FN_SDHID0_0_PU,
|
||||
GPIO_FN_SDHID0_1_PU,
|
||||
GPIO_FN_SDHID0_2_PU,
|
||||
GPIO_FN_SDHID0_3_PU,
|
||||
GPIO_FN_SDHICMD0_PU,
|
||||
GPIO_FN_SDHIWP0_PU,
|
||||
GPIO_FN_SDHID1_0_PU,
|
||||
GPIO_FN_SDHID1_1_PU,
|
||||
GPIO_FN_SDHID1_2_PU,
|
||||
GPIO_FN_SDHID1_3_PU,
|
||||
GPIO_FN_SDHICMD1_PU,
|
||||
GPIO_FN_SDHID2_0_PU,
|
||||
GPIO_FN_SDHID2_1_PU,
|
||||
GPIO_FN_SDHID2_2_PU,
|
||||
GPIO_FN_SDHID2_3_PU,
|
||||
GPIO_FN_SDHICMD2_PU,
|
||||
GPIO_FN_MMCCMD0_PU,
|
||||
GPIO_FN_MMCCMD1_PU,
|
||||
GPIO_FN_MMCD0_0_PU,
|
||||
GPIO_FN_MMCD0_1_PU,
|
||||
GPIO_FN_MMCD0_2_PU,
|
||||
GPIO_FN_MMCD0_3_PU,
|
||||
GPIO_FN_MMCD0_4_PU,
|
||||
GPIO_FN_MMCD0_5_PU,
|
||||
GPIO_FN_MMCD0_6_PU,
|
||||
GPIO_FN_MMCD0_7_PU,
|
||||
GPIO_FN_FSIACK_PU,
|
||||
GPIO_FN_FSIAILR_PU,
|
||||
GPIO_FN_FSIAIBT_PU,
|
||||
GPIO_FN_FSIAISLD_PU,
|
||||
|
||||
/* end of GPIO */
|
||||
GPIO_NR,
|
||||
};
|
||||
|
||||
/* DMA slave IDs */
|
||||
enum {
|
||||
SHDMA_SLAVE_INVALID,
|
||||
SHDMA_SLAVE_SCIF0_TX,
|
||||
SHDMA_SLAVE_SCIF0_RX,
|
||||
SHDMA_SLAVE_SCIF1_TX,
|
||||
SHDMA_SLAVE_SCIF1_RX,
|
||||
SHDMA_SLAVE_SCIF2_TX,
|
||||
SHDMA_SLAVE_SCIF2_RX,
|
||||
SHDMA_SLAVE_SCIF3_TX,
|
||||
SHDMA_SLAVE_SCIF3_RX,
|
||||
SHDMA_SLAVE_SCIF4_TX,
|
||||
SHDMA_SLAVE_SCIF4_RX,
|
||||
SHDMA_SLAVE_SCIF5_TX,
|
||||
SHDMA_SLAVE_SCIF5_RX,
|
||||
SHDMA_SLAVE_SCIF6_TX,
|
||||
SHDMA_SLAVE_SCIF6_RX,
|
||||
SHDMA_SLAVE_SCIF7_TX,
|
||||
SHDMA_SLAVE_SCIF7_RX,
|
||||
SHDMA_SLAVE_SCIF8_TX,
|
||||
SHDMA_SLAVE_SCIF8_RX,
|
||||
SHDMA_SLAVE_SDHI0_TX,
|
||||
SHDMA_SLAVE_SDHI0_RX,
|
||||
SHDMA_SLAVE_SDHI1_TX,
|
||||
SHDMA_SLAVE_SDHI1_RX,
|
||||
SHDMA_SLAVE_SDHI2_TX,
|
||||
SHDMA_SLAVE_SDHI2_RX,
|
||||
SHDMA_SLAVE_MMCIF_TX,
|
||||
SHDMA_SLAVE_MMCIF_RX,
|
||||
};
|
||||
|
||||
/*
|
||||
* SH73A0 IRQ LOCATION TABLE
|
||||
*
|
||||
* 416 -----------------------------------------
|
||||
* IRQ0-IRQ15
|
||||
* 431 -----------------------------------------
|
||||
* ...
|
||||
* 448 -----------------------------------------
|
||||
* sh73a0-intcs
|
||||
* sh73a0-intca-irq-pins
|
||||
* 680 -----------------------------------------
|
||||
* ...
|
||||
* 700 -----------------------------------------
|
||||
* sh73a0-pint0
|
||||
* 731 -----------------------------------------
|
||||
* 732 -----------------------------------------
|
||||
* sh73a0-pint1
|
||||
* 739 -----------------------------------------
|
||||
* ...
|
||||
* 800 -----------------------------------------
|
||||
* IRQ16-IRQ31
|
||||
* 815 -----------------------------------------
|
||||
* ...
|
||||
* 928 -----------------------------------------
|
||||
* sh73a0-intca-irq-pins
|
||||
* 943 -----------------------------------------
|
||||
*/
|
||||
|
||||
/* PINT interrupts are located at Linux IRQ 700 and up */
|
||||
#define SH73A0_PINT0_IRQ(irq) ((irq) + 700)
|
||||
#define SH73A0_PINT1_IRQ(irq) ((irq) + 732)
|
||||
|
||||
#endif /* __ASM_SH73A0_H__ */
|
||||
@@ -0,0 +1,289 @@
|
||||
#ifndef __ASM_ARCH_RMOBILE_SH73A0_H
|
||||
#define __ASM_ARCH_RMOBILE_SH73A0_H
|
||||
|
||||
/* Global Timer */
|
||||
#define GLOBAL_TIMER_BASE_ADDR (0xF0000200)
|
||||
#define MERAM_BASE (0xE5580000)
|
||||
|
||||
/* GIC */
|
||||
#define GIC_BASE (0xF0000100)
|
||||
#define ICCICR GIC_BASE
|
||||
|
||||
/* Secure control register */
|
||||
#define LIFEC_SEC_SRC (0xE6110008)
|
||||
|
||||
/* RWDT */
|
||||
#define RWDT_BASE (0xE6020000)
|
||||
|
||||
/* HPB Semaphore Control Registers */
|
||||
#define HPB_BASE (0xE6001010)
|
||||
|
||||
/* Bus Semaphore Control Registers */
|
||||
#define HPBSCR_BASE (0xE6001600)
|
||||
|
||||
/* SBSC1 */
|
||||
#define SBSC1_BASE (0xFE400000)
|
||||
#define SDMRA1A (SBSC1_BASE + 0x100000)
|
||||
#define SDMRA2A (SBSC1_BASE + 0x1C0000)
|
||||
#define SDMRA3A (SBSC1_BASE + 0x104000)
|
||||
|
||||
/* SBSC2 */
|
||||
#define SBSC2_BASE (0xFB400000)
|
||||
#define SDMRA1B (SBSC2_BASE + 0x100000)
|
||||
#define SDMRA2B (SBSC2_BASE + 0x1C0000)
|
||||
#define SDMRA3B (SBSC2_BASE + 0x104000)
|
||||
|
||||
/* CPG */
|
||||
#define CPG_BASE (0xE6150000)
|
||||
#define CPG_SRCR_BASE (CPG_BASE + 0x80A0)
|
||||
#define WUPCR (CPG_BASE + 0x1010)
|
||||
#define SRESCR (CPG_BASE + 0x1018)
|
||||
#define PCLKCR (CPG_BASE + 0x1020)
|
||||
|
||||
/* SYSC */
|
||||
#define SYSC_BASE (0xE6180000)
|
||||
#define RESCNT2 (SYSC_BASE + 0x8020)
|
||||
|
||||
/* BSC */
|
||||
#define BSC_BASE (0xFEC10000)
|
||||
|
||||
/* SCIF */
|
||||
#define SCIF0_BASE (0xE6C40000)
|
||||
#define SCIF1_BASE (0xE6C50000)
|
||||
#define SCIF2_BASE (0xE6C60000)
|
||||
#define SCIF3_BASE (0xE6C70000)
|
||||
#define SCIF4_BASE (0xE6C80000)
|
||||
#define SCIF5_BASE (0xE6CB0000)
|
||||
#define SCIF6_BASE (0xE6CC0000)
|
||||
#define SCIF7_BASE (0xE6CD0000)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <asm/types.h>
|
||||
|
||||
/* RWDT */
|
||||
struct sh73a0_rwdt {
|
||||
u16 rwtcnt0; /* 0x00 */
|
||||
u16 dummy0; /* 0x02 */
|
||||
u16 rwtcsra0; /* 0x04 */
|
||||
u16 dummy1; /* 0x06 */
|
||||
u16 rwtcsrb0; /* 0x08 */
|
||||
};
|
||||
|
||||
/* HPB Semaphore Control Registers */
|
||||
struct sh73a0_hpb {
|
||||
u32 hpbctrl0;
|
||||
u32 hpbctrl1;
|
||||
u32 hpbctrl2;
|
||||
u32 cccr;
|
||||
u32 dummy0; /* 0x20 */
|
||||
u32 hpbctrl4;
|
||||
u32 hpbctrl5;
|
||||
u32 dummy1; /* 0x2C */
|
||||
u32 hpbctrl6;
|
||||
};
|
||||
|
||||
/* Bus Semaphore Control Registers */
|
||||
struct sh73a0_hpb_bscr {
|
||||
u32 mpsrc; /* 0x00 */
|
||||
u32 mpacctl; /* 0x04 */
|
||||
u32 dummy0[6];
|
||||
u32 smgpiosrc; /* 0x20 */
|
||||
u32 smgpioerr;
|
||||
u32 smgpiotime;
|
||||
u32 smgpiocnt;
|
||||
u32 dummy1[4]; /* 0x30 .. 0x3C */
|
||||
u32 smcmt2src;
|
||||
u32 smcmt2err;
|
||||
u32 smcmt2time;
|
||||
u32 smcmt2cnt;
|
||||
u32 smcpgsrc;
|
||||
u32 smcpgerr;
|
||||
u32 smcpgtime;
|
||||
u32 smcpgcnt;
|
||||
u32 dummy2[4]; /* 0x60 - 0x6C */
|
||||
u32 smsyscsrc;
|
||||
u32 smsyscerr;
|
||||
u32 smsysctime;
|
||||
u32 smsysccnt;
|
||||
};
|
||||
|
||||
/* SBSC */
|
||||
struct sh73a0_sbsc {
|
||||
u32 dummy0[2]; /* 0x00, 0x04 */
|
||||
u32 sdcr0;
|
||||
u32 sdcr1;
|
||||
u32 sdpcr;
|
||||
u32 dummy1; /* 0x14 */
|
||||
u32 sdcr0s;
|
||||
u32 sdcr1s;
|
||||
u32 rtcsr;
|
||||
u32 dummy2; /* 0x24 */
|
||||
u32 rtcor;
|
||||
u32 rtcorh;
|
||||
u32 rtcors;
|
||||
u32 rtcorsh;
|
||||
u32 dummy3[2]; /* 0x38, 0x3C */
|
||||
u32 sdwcrc0;
|
||||
u32 sdwcrc1;
|
||||
u32 sdwcr00;
|
||||
u32 sdwcr01;
|
||||
u32 sdwcr10;
|
||||
u32 sdwcr11;
|
||||
u32 sdpdcr0;
|
||||
u32 dummy4; /* 0x5C */
|
||||
u32 sdwcr2;
|
||||
u32 sdwcrc2;
|
||||
u32 zqccr;
|
||||
u32 dummy5[6]; /* 0x6C .. 0x80 */
|
||||
u32 sdmracr0;
|
||||
u32 dummy6; /* 0x88 */
|
||||
u32 sdmrtmpcr;
|
||||
u32 dummy7; /* 0x90 */
|
||||
u32 sdmrtmpmsk;
|
||||
u32 dummy8; /* 0x98 */
|
||||
u32 sdgencnt;
|
||||
u32 dphycnt0;
|
||||
u32 dphycnt1;
|
||||
u32 dphycnt2;
|
||||
u32 dummy9[2]; /* 0xAC .. 0xB0 */
|
||||
u32 sddrvcr0;
|
||||
u32 dummy10[14]; /* 0xB8 .. 0xEC */
|
||||
u32 dptdivcr0;
|
||||
u32 dptdivcr1;
|
||||
u32 dptdivcr2;
|
||||
u32 dummy11; /* 0xFC */
|
||||
u32 sdptcr0;
|
||||
u32 sdptcr1;
|
||||
u32 sdptcr2;
|
||||
u32 sdptcr3; /* 0x10C */
|
||||
u32 dummy12[145]; /* 0x110 .. 0x350 */
|
||||
u32 dllcnt0; /* 0x354 */
|
||||
u32 sbscmon0;
|
||||
};
|
||||
|
||||
/* CPG */
|
||||
struct sh73a0_sbsc_cpg {
|
||||
u32 frqcra; /* 0x00 */
|
||||
u32 frqcrb;
|
||||
u32 vclkcr1;
|
||||
u32 vclkcr2;
|
||||
u32 zbckcr;
|
||||
u32 flckcr;
|
||||
u32 fsiackcr;
|
||||
u32 vclkcr3;
|
||||
u32 rtstbcr;
|
||||
u32 systbcr;
|
||||
u32 pll1cr;
|
||||
u32 pll2cr;
|
||||
u32 mstpsr0;
|
||||
u32 dummy0; /* 0x34 */
|
||||
u32 mstpsr1;
|
||||
u32 mstpsr5;
|
||||
u32 mstpsr2;
|
||||
u32 dummy1; /* 0x44 */
|
||||
u32 mstpsr3;
|
||||
u32 mstpsr4;
|
||||
u32 dummy2; /* 0x50 */
|
||||
u32 astat;
|
||||
u32 dvfscr0;
|
||||
u32 dvfscr1;
|
||||
u32 dsitckcr;
|
||||
u32 dsi0pckcr;
|
||||
u32 dsi1pckcr;
|
||||
u32 dsi0phycr;
|
||||
u32 dsi1phycr;
|
||||
u32 sd0ckcr;
|
||||
u32 sd1ckcr;
|
||||
u32 sd2ckcr;
|
||||
u32 subckcr;
|
||||
u32 spuackcr;
|
||||
u32 msuckcr;
|
||||
u32 hsickcr;
|
||||
u32 fsibckcr;
|
||||
u32 spuvckcr;
|
||||
u32 mfck1cr;
|
||||
u32 mfck2cr;
|
||||
u32 dummy3[8]; /* 0xA0 .. 0xBC */
|
||||
u32 ckscr;
|
||||
u32 dummy4; /* 0xC4 */
|
||||
u32 pll1stpcr;
|
||||
u32 mpmode;
|
||||
u32 pllecr;
|
||||
u32 dummy5; /* 0xD4 */
|
||||
u32 pll0cr;
|
||||
u32 pll3cr;
|
||||
u32 dummy6; /* 0xE0 */
|
||||
u32 frqcrd;
|
||||
u32 dummyi7; /* 0xE8 */
|
||||
u32 vrefcr;
|
||||
u32 pll0stpcr;
|
||||
u32 dummy8; /* 0xF4 */
|
||||
u32 pll2stpcr;
|
||||
u32 pll3stpcr;
|
||||
u32 dummy9[4]; /* 0x100 .. 0x10c */
|
||||
u32 rmstpcr0;
|
||||
u32 rmstpcr1;
|
||||
u32 rmstpcr2;
|
||||
u32 rmstpcr3;
|
||||
u32 rmstpcr4;
|
||||
u32 rmstpcr5;
|
||||
u32 dummy10[2]; /* 0x128 .. 0x12c */
|
||||
u32 smstpcr0;
|
||||
u32 smstpcr1;
|
||||
u32 smstpcr2;
|
||||
u32 smstpcr3;
|
||||
u32 smstpcr4;
|
||||
u32 smstpcr5;
|
||||
u32 dummy11[2]; /* 0x148 .. 0x14c */
|
||||
u32 cpgxxcs4;
|
||||
u32 dummy12[7]; /* 0x154 .. 0x16c */
|
||||
u32 dvfscr2;
|
||||
u32 dvfscr3;
|
||||
u32 dvfscr4;
|
||||
u32 dvfscr5; /* 0x17C */
|
||||
};
|
||||
|
||||
/* CPG SRCR part OK */
|
||||
struct sh73a0_sbsc_cpg_srcr {
|
||||
u32 srcr0;
|
||||
u32 dummy0; /* 0xA4 */
|
||||
u32 srcr1;
|
||||
u32 dummy1; /* 0xAC */
|
||||
u32 srcr2;
|
||||
u32 dummy2; /* 0xB4 */
|
||||
u32 srcr3;
|
||||
u32 srcr4;
|
||||
u32 dummy3; /* 0xC0 */
|
||||
u32 srcr5;
|
||||
};
|
||||
|
||||
/* BSC */
|
||||
struct sh73a0_bsc {
|
||||
u32 cmncr;
|
||||
u32 cs0bcr;
|
||||
u32 cs2bcr;
|
||||
u32 dummy0; /* 0x0C */
|
||||
u32 cs4bcr;
|
||||
u32 cs5abcr;
|
||||
u32 cs5bbcr;
|
||||
u32 cs6abcr;
|
||||
u32 cs6bbcr;
|
||||
u32 cs0wcr;
|
||||
u32 cs2wcr;
|
||||
u32 dummy1; /* 0x2C */
|
||||
u32 cs4wcr;
|
||||
u32 cs5awcr;
|
||||
u32 cs5bwcr;
|
||||
u32 cs6awcr;
|
||||
u32 cs6bwcr;
|
||||
u32 rbwtcnt;
|
||||
u32 busycr;
|
||||
u32 dummy2; /* 0x5c */
|
||||
u32 cs7abcr;
|
||||
u32 cs7awcr;
|
||||
u32 dummy3[2]; /* 0x68, 0x6C */
|
||||
u32 bromtimcr;
|
||||
};
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __ASM_ARCH_RMOBILE_SH73A0_H */
|
||||
@@ -0,0 +1,169 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* drivers/mmc/sh-sdhi.h
|
||||
*
|
||||
* SD/MMC driver for Renesas rmobile ARM SoCs
|
||||
*
|
||||
* Copyright (C) 2013-2017 Renesas Electronics Corporation
|
||||
* Copyright (C) 2008-2009 Renesas Solutions Corp.
|
||||
*/
|
||||
|
||||
#ifndef _SH_SDHI_H
|
||||
#define _SH_SDHI_H
|
||||
|
||||
#define SDHI_CMD (0x0000 >> 1)
|
||||
#define SDHI_PORTSEL (0x0004 >> 1)
|
||||
#define SDHI_ARG0 (0x0008 >> 1)
|
||||
#define SDHI_ARG1 (0x000C >> 1)
|
||||
#define SDHI_STOP (0x0010 >> 1)
|
||||
#define SDHI_SECCNT (0x0014 >> 1)
|
||||
#define SDHI_RSP00 (0x0018 >> 1)
|
||||
#define SDHI_RSP01 (0x001C >> 1)
|
||||
#define SDHI_RSP02 (0x0020 >> 1)
|
||||
#define SDHI_RSP03 (0x0024 >> 1)
|
||||
#define SDHI_RSP04 (0x0028 >> 1)
|
||||
#define SDHI_RSP05 (0x002C >> 1)
|
||||
#define SDHI_RSP06 (0x0030 >> 1)
|
||||
#define SDHI_RSP07 (0x0034 >> 1)
|
||||
#define SDHI_INFO1 (0x0038 >> 1)
|
||||
#define SDHI_INFO2 (0x003C >> 1)
|
||||
#define SDHI_INFO1_MASK (0x0040 >> 1)
|
||||
#define SDHI_INFO2_MASK (0x0044 >> 1)
|
||||
#define SDHI_CLK_CTRL (0x0048 >> 1)
|
||||
#define SDHI_SIZE (0x004C >> 1)
|
||||
#define SDHI_OPTION (0x0050 >> 1)
|
||||
#define SDHI_ERR_STS1 (0x0058 >> 1)
|
||||
#define SDHI_ERR_STS2 (0x005C >> 1)
|
||||
#define SDHI_BUF0 (0x0060 >> 1)
|
||||
#define SDHI_SDIO_MODE (0x0068 >> 1)
|
||||
#define SDHI_SDIO_INFO1 (0x006C >> 1)
|
||||
#define SDHI_SDIO_INFO1_MASK (0x0070 >> 1)
|
||||
#define SDHI_CC_EXT_MODE (0x01B0 >> 1)
|
||||
#define SDHI_SOFT_RST (0x01C0 >> 1)
|
||||
#define SDHI_VERSION (0x01C4 >> 1)
|
||||
#define SDHI_HOST_MODE (0x01C8 >> 1)
|
||||
#define SDHI_SDIF_MODE (0x01CC >> 1)
|
||||
#define SDHI_EXT_SWAP (0x01E0 >> 1)
|
||||
#define SDHI_SD_DMACR (0x0324 >> 1)
|
||||
|
||||
/* SDHI CMD VALUE */
|
||||
#define CMD_MASK 0x0000ffff
|
||||
|
||||
/* SDHI_PORTSEL */
|
||||
#define USE_1PORT (1 << 8) /* 1 port */
|
||||
|
||||
/* SDHI_ARG */
|
||||
#define ARG0_MASK 0x0000ffff
|
||||
#define ARG1_MASK 0x0000ffff
|
||||
|
||||
/* SDHI_STOP */
|
||||
#define STOP_SEC_ENABLE (1 << 8)
|
||||
|
||||
/* SDHI_INFO1 */
|
||||
#define INFO1_RESP_END (1 << 0)
|
||||
#define INFO1_ACCESS_END (1 << 2)
|
||||
#define INFO1_CARD_RE (1 << 3)
|
||||
#define INFO1_CARD_IN (1 << 4)
|
||||
#define INFO1_ISD0CD (1 << 5)
|
||||
#define INFO1_WRITE_PRO (1 << 7)
|
||||
#define INFO1_DATA3_CARD_RE (1 << 8)
|
||||
#define INFO1_DATA3_CARD_IN (1 << 9)
|
||||
#define INFO1_DATA3 (1 << 10)
|
||||
|
||||
/* SDHI_INFO2 */
|
||||
#define INFO2_CMD_ERROR (1 << 0)
|
||||
#define INFO2_CRC_ERROR (1 << 1)
|
||||
#define INFO2_END_ERROR (1 << 2)
|
||||
#define INFO2_TIMEOUT (1 << 3)
|
||||
#define INFO2_BUF_ILL_WRITE (1 << 4)
|
||||
#define INFO2_BUF_ILL_READ (1 << 5)
|
||||
#define INFO2_RESP_TIMEOUT (1 << 6)
|
||||
#define INFO2_SDDAT0 (1 << 7)
|
||||
#define INFO2_BRE_ENABLE (1 << 8)
|
||||
#define INFO2_BWE_ENABLE (1 << 9)
|
||||
#define INFO2_CBUSY (1 << 14)
|
||||
#define INFO2_ILA (1 << 15)
|
||||
#define INFO2_ALL_ERR (0x807f)
|
||||
|
||||
/* SDHI_INFO1_MASK */
|
||||
#define INFO1M_RESP_END (1 << 0)
|
||||
#define INFO1M_ACCESS_END (1 << 2)
|
||||
#define INFO1M_CARD_RE (1 << 3)
|
||||
#define INFO1M_CARD_IN (1 << 4)
|
||||
#define INFO1M_DATA3_CARD_RE (1 << 8)
|
||||
#define INFO1M_DATA3_CARD_IN (1 << 9)
|
||||
#define INFO1M_ALL (0xffff)
|
||||
#define INFO1M_SET (INFO1M_RESP_END | \
|
||||
INFO1M_ACCESS_END | \
|
||||
INFO1M_DATA3_CARD_RE | \
|
||||
INFO1M_DATA3_CARD_IN)
|
||||
|
||||
/* SDHI_INFO2_MASK */
|
||||
#define INFO2M_CMD_ERROR (1 << 0)
|
||||
#define INFO2M_CRC_ERROR (1 << 1)
|
||||
#define INFO2M_END_ERROR (1 << 2)
|
||||
#define INFO2M_TIMEOUT (1 << 3)
|
||||
#define INFO2M_BUF_ILL_WRITE (1 << 4)
|
||||
#define INFO2M_BUF_ILL_READ (1 << 5)
|
||||
#define INFO2M_RESP_TIMEOUT (1 << 6)
|
||||
#define INFO2M_BRE_ENABLE (1 << 8)
|
||||
#define INFO2M_BWE_ENABLE (1 << 9)
|
||||
#define INFO2M_ILA (1 << 15)
|
||||
#define INFO2M_ALL (0xffff)
|
||||
#define INFO2M_ALL_ERR (0x807f)
|
||||
|
||||
/* SDHI_CLK_CTRL */
|
||||
#define CLK_ENABLE (1 << 8)
|
||||
|
||||
/* SDHI_OPTION */
|
||||
#define OPT_BUS_WIDTH_M (5 << 13) /* 101b (15-13bit) */
|
||||
#define OPT_BUS_WIDTH_1 (4 << 13) /* bus width = 1 bit */
|
||||
#define OPT_BUS_WIDTH_4 (0 << 13) /* bus width = 4 bit */
|
||||
#define OPT_BUS_WIDTH_8 (1 << 13) /* bus width = 8 bit */
|
||||
|
||||
/* SDHI_ERR_STS1 */
|
||||
#define ERR_STS1_CRC_ERROR ((1 << 11) | (1 << 10) | (1 << 9) | \
|
||||
(1 << 8) | (1 << 5))
|
||||
#define ERR_STS1_CMD_ERROR ((1 << 4) | (1 << 3) | (1 << 2) | \
|
||||
(1 << 1) | (1 << 0))
|
||||
|
||||
/* SDHI_ERR_STS2 */
|
||||
#define ERR_STS2_RES_TIMEOUT (1 << 0)
|
||||
#define ERR_STS2_RES_STOP_TIMEOUT ((1 << 0) | (1 << 1))
|
||||
#define ERR_STS2_SYS_ERROR ((1 << 6) | (1 << 5) | (1 << 4) | \
|
||||
(1 << 3) | (1 << 2) | (1 << 1) | \
|
||||
(1 << 0))
|
||||
|
||||
/* SDHI_SDIO_MODE */
|
||||
#define SDIO_MODE_ON (1 << 0)
|
||||
#define SDIO_MODE_OFF (0 << 0)
|
||||
|
||||
/* SDHI_SDIO_INFO1 */
|
||||
#define SDIO_INFO1_IOIRQ (1 << 0)
|
||||
#define SDIO_INFO1_EXPUB52 (1 << 14)
|
||||
#define SDIO_INFO1_EXWT (1 << 15)
|
||||
|
||||
/* SDHI_SDIO_INFO1_MASK */
|
||||
#define SDIO_INFO1M_CLEAR ((1 << 1) | (1 << 2))
|
||||
#define SDIO_INFO1M_ON ((1 << 15) | (1 << 14) | (1 << 2) | \
|
||||
(1 << 1) | (1 << 0))
|
||||
|
||||
/* SDHI_EXT_SWAP */
|
||||
#define SET_SWAP ((1 << 6) | (1 << 7)) /* SWAP */
|
||||
|
||||
/* SDHI_SOFT_RST */
|
||||
#define SOFT_RST_ON (0 << 0)
|
||||
#define SOFT_RST_OFF (1 << 0)
|
||||
|
||||
#define CLKDEV_SD_DATA 25000000 /* 25 MHz */
|
||||
#define CLKDEV_HS_DATA 50000000 /* 50 MHz */
|
||||
#define CLKDEV_MMC_DATA 20000000 /* 20MHz */
|
||||
#define CLKDEV_INIT 400000 /* 100 - 400 KHz */
|
||||
|
||||
/* For quirk */
|
||||
#define SH_SDHI_QUIRK_16BIT_BUF BIT(0)
|
||||
#define SH_SDHI_QUIRK_64BIT_BUF BIT(1)
|
||||
|
||||
int sh_sdhi_init(unsigned long addr, int ch, unsigned long quirks);
|
||||
|
||||
#endif /* _SH_SDHI_H */
|
||||
@@ -0,0 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* (C) Copyright 2010
|
||||
* Texas Instruments, <www.ti.com>
|
||||
*/
|
||||
|
||||
#ifndef _SYS_PROTO_H_
|
||||
#define _SYS_PROTO_H_
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,71 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright (C) 2012 Nobuhiro Iwamatsu <nobuhiro.Iwamatsu.yj@renesas.com>
|
||||
* Copyright (C) 2012 Renesas Solutions Corp.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <linux/linkage.h>
|
||||
|
||||
ENTRY(lowlevel_init)
|
||||
ldr r0, =MERAM_BASE
|
||||
mov r1, #0x0
|
||||
str r1, [r0]
|
||||
|
||||
mrc p15, 0, r0, c0, c0, 5
|
||||
ands r0, r0, #0xF
|
||||
beq lowlevel_init__
|
||||
b wait_interrupt
|
||||
|
||||
.pool
|
||||
.align 4
|
||||
|
||||
wait_interrupt:
|
||||
#ifdef ICCICR
|
||||
ldr r1, =ICCICR
|
||||
mov r2, #0x0
|
||||
str r2, [r1]
|
||||
mov r2, #0xF0
|
||||
adds r1, r1, #4 /* ICCPMR */
|
||||
str r2, [r1]
|
||||
ldr r1, =ICCICR
|
||||
mov r2, #0x1
|
||||
str r2, [r1]
|
||||
#endif
|
||||
|
||||
wait_loop:
|
||||
.long 0xE320F003 /* wfi */
|
||||
|
||||
ldr r2, [r1, #0xC]
|
||||
str r2, [r1, #0x10]
|
||||
|
||||
ldr r0, =MERAM_BASE
|
||||
ldr r2, [r0]
|
||||
cmp r2, #0
|
||||
movne pc, r2
|
||||
|
||||
b wait_loop
|
||||
|
||||
wait_loop_end:
|
||||
.pool
|
||||
.align 4
|
||||
|
||||
lowlevel_init__:
|
||||
|
||||
mov r0, #0x200000
|
||||
|
||||
loop0:
|
||||
subs r0, r0, #1
|
||||
bne loop0
|
||||
|
||||
ldr sp, MERAM_STACK
|
||||
b s_init
|
||||
|
||||
.pool
|
||||
.align 4
|
||||
|
||||
ENDPROC(lowlevel_init)
|
||||
.ltorg
|
||||
|
||||
MERAM_STACK:
|
||||
.word LOW_LEVEL_MERAM_STACK
|
||||
@@ -0,0 +1,90 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* arch/arm/cpu/armv7/rmobile/lowlevel_init_ca15.S
|
||||
* This file is lager low level initialize.
|
||||
*
|
||||
* Copyright (C) 2013, 2014 Renesas Electronics Corporation
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <linux/linkage.h>
|
||||
|
||||
ENTRY(lowlevel_init)
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
mrc p15, 0, r4, c0, c0, 5 /* mpidr */
|
||||
orr r4, r4, r4, lsr #6
|
||||
and r4, r4, #7 /* id 0-3 = ca15.0,1,2,3 */
|
||||
|
||||
b do_lowlevel_init
|
||||
|
||||
.pool
|
||||
|
||||
/*
|
||||
* CPU ID #1-#3 come here
|
||||
*/
|
||||
.align 4
|
||||
do_cpu_waiting:
|
||||
ldr r1, =0xe6180000 /* sysc */
|
||||
1: ldr r0, [r1, #0x20] /* sbar */
|
||||
tst r0, r0
|
||||
beq 1b
|
||||
bx r0
|
||||
|
||||
/*
|
||||
* Only CPU ID #0 comes here
|
||||
*/
|
||||
.align 4
|
||||
do_lowlevel_init:
|
||||
ldr r2, =0xFF000044 /* PRR */
|
||||
ldr r1, [r2]
|
||||
and r1, r1, #0x7F00
|
||||
lsrs r1, r1, #8
|
||||
cmp r1, #0x4C /* 0x4C is ID of r8a7794 */
|
||||
beq _enable_actlr_smp
|
||||
|
||||
/* surpress wfe if ca15 */
|
||||
tst r4, #4
|
||||
mrceq p15, 0, r0, c1, c0, 1 /* actlr */
|
||||
orreq r0, r0, #(1<<7)
|
||||
mcreq p15, 0, r0, c1, c0, 1
|
||||
|
||||
/* and set l2 latency */
|
||||
mrc p15, 0, r0, c0, c0, 5 /* r0 = MPIDR */
|
||||
and r0, r0, #0xf00
|
||||
lsr r0, r0, #8
|
||||
tst r0, #1 /* only need for cluster 0 */
|
||||
bne _exit_init_l2_a15
|
||||
|
||||
mrc p15, 1, r0, c9, c0, 2 /* r0 = L2CTLR */
|
||||
and r1, r0, #7
|
||||
cmp r1, #3 /* has already been set up */
|
||||
bicne r0, r0, #0xe7
|
||||
orrne r0, r0, #0x83 /* L2CTLR[7:6] + L2CTLR[2:0] */
|
||||
#if defined(CONFIG_R8A7790)
|
||||
orrne r0, r0, #0x20 /* L2CTLR[5] */
|
||||
#endif
|
||||
mcrne p15, 1, r0, c9, c0, 2
|
||||
|
||||
b _exit_init_l2_a15
|
||||
|
||||
_enable_actlr_smp: /* R8A7794 only (CA7) */
|
||||
#ifndef CONFIG_DCACHE_OFF
|
||||
mrc p15, 0, r0, c1, c0, 1
|
||||
orr r0, r0, #0x40
|
||||
mcr p15, 0, r0, c1, c0, 1
|
||||
#endif
|
||||
|
||||
_exit_init_l2_a15:
|
||||
ldr r3, =(CONFIG_SYS_INIT_SP_ADDR)
|
||||
sub sp, r3, #4
|
||||
str lr, [sp]
|
||||
|
||||
/* initialize system */
|
||||
bl s_init
|
||||
|
||||
ldr lr, [sp]
|
||||
#endif
|
||||
mov pc, lr
|
||||
nop
|
||||
ENDPROC(lowlevel_init)
|
||||
.ltorg
|
||||
@@ -0,0 +1,97 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* arch/arm/cpu/armv8/rcar_gen3/lowlevel_init.S
|
||||
* This file is lowlevel initialize routine.
|
||||
*
|
||||
* (C) Copyright 2015 Renesas Electronics Corporation
|
||||
*
|
||||
* This file is based on the arch/arm/cpu/armv8/start.S
|
||||
*
|
||||
* (C) Copyright 2013
|
||||
* David Feng <fenghua@phytium.com.cn>
|
||||
*/
|
||||
|
||||
#include <asm-offsets.h>
|
||||
#include <config.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/macro.h>
|
||||
|
||||
.align 8
|
||||
.globl rcar_atf_boot_args
|
||||
rcar_atf_boot_args:
|
||||
.dword 0
|
||||
.dword 0
|
||||
.dword 0
|
||||
.dword 0
|
||||
|
||||
ENTRY(save_boot_params)
|
||||
adr x8, rcar_atf_boot_args
|
||||
stp x0, x1, [x8], #16
|
||||
stp x2, x3, [x8], #16
|
||||
b save_boot_params_ret
|
||||
ENDPROC(save_boot_params)
|
||||
|
||||
ENTRY(lowlevel_init)
|
||||
mov x29, lr /* Save LR */
|
||||
|
||||
#ifndef CONFIG_ARMV8_MULTIENTRY
|
||||
/*
|
||||
* For single-entry systems the lowlevel init is very simple.
|
||||
*/
|
||||
ldr x0, =GICD_BASE
|
||||
bl gic_init_secure
|
||||
|
||||
#else /* CONFIG_ARMV8_MULTIENTRY is set */
|
||||
|
||||
#if defined(CONFIG_GICV2) || defined(CONFIG_GICV3)
|
||||
branch_if_slave x0, 1f
|
||||
ldr x0, =GICD_BASE
|
||||
bl gic_init_secure
|
||||
1:
|
||||
#if defined(CONFIG_GICV3)
|
||||
ldr x0, =GICR_BASE
|
||||
bl gic_init_secure_percpu
|
||||
#elif defined(CONFIG_GICV2)
|
||||
ldr x0, =GICD_BASE
|
||||
ldr x1, =GICC_BASE
|
||||
bl gic_init_secure_percpu
|
||||
#endif
|
||||
#endif
|
||||
|
||||
branch_if_master x0, x1, 2f
|
||||
|
||||
/*
|
||||
* Slave should wait for master clearing spin table.
|
||||
* This sync prevent salves observing incorrect
|
||||
* value of spin table and jumping to wrong place.
|
||||
*/
|
||||
#if defined(CONFIG_GICV2) || defined(CONFIG_GICV3)
|
||||
#ifdef CONFIG_GICV2
|
||||
ldr x0, =GICC_BASE
|
||||
#endif
|
||||
bl gic_wait_for_interrupt
|
||||
#endif
|
||||
|
||||
/*
|
||||
* All slaves will enter EL2 and optionally EL1.
|
||||
*/
|
||||
adr x4, lowlevel_in_el2
|
||||
ldr x5, =ES_TO_AARCH64
|
||||
bl armv8_switch_to_el2
|
||||
|
||||
lowlevel_in_el2:
|
||||
#ifdef CONFIG_ARMV8_SWITCH_TO_EL1
|
||||
adr x4, lowlevel_in_el1
|
||||
ldr x5, =ES_TO_AARCH64
|
||||
bl armv8_switch_to_el1
|
||||
|
||||
lowlevel_in_el1:
|
||||
#endif
|
||||
#endif /* CONFIG_ARMV8_MULTIENTRY */
|
||||
|
||||
bl s_init
|
||||
|
||||
2:
|
||||
mov lr, x29 /* Restore LR */
|
||||
ret
|
||||
ENDPROC(lowlevel_init)
|
||||
@@ -0,0 +1,148 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Renesas RCar Gen3 memory map tables
|
||||
*
|
||||
* Copyright (C) 2017 Marek Vasut <marek.vasut@gmail.com>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <cpu_func.h>
|
||||
#include <asm/armv8/mmu.h>
|
||||
|
||||
#define GEN3_NR_REGIONS 16
|
||||
|
||||
static struct mm_region gen3_mem_map[GEN3_NR_REGIONS] = {
|
||||
{
|
||||
.virt = 0x0UL,
|
||||
.phys = 0x0UL,
|
||||
.size = 0x40000000UL,
|
||||
.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
|
||||
PTE_BLOCK_NON_SHARE |
|
||||
PTE_BLOCK_PXN | PTE_BLOCK_UXN
|
||||
}, {
|
||||
.virt = 0x40000000UL,
|
||||
.phys = 0x40000000UL,
|
||||
.size = 0x03F00000UL,
|
||||
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||
PTE_BLOCK_INNER_SHARE
|
||||
}, {
|
||||
.virt = 0x47E00000UL,
|
||||
.phys = 0x47E00000UL,
|
||||
.size = 0x78200000UL,
|
||||
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||
PTE_BLOCK_INNER_SHARE
|
||||
}, {
|
||||
.virt = 0xc0000000UL,
|
||||
.phys = 0xc0000000UL,
|
||||
.size = 0x40000000UL,
|
||||
.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
|
||||
PTE_BLOCK_NON_SHARE |
|
||||
PTE_BLOCK_PXN | PTE_BLOCK_UXN
|
||||
}, {
|
||||
.virt = 0x100000000UL,
|
||||
.phys = 0x100000000UL,
|
||||
.size = 0xf00000000UL,
|
||||
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||
PTE_BLOCK_INNER_SHARE
|
||||
}, {
|
||||
/* List terminator */
|
||||
0,
|
||||
}
|
||||
};
|
||||
|
||||
struct mm_region *mem_map = gen3_mem_map;
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
void enable_caches(void)
|
||||
{
|
||||
u64 start, size;
|
||||
int bank, i = 0;
|
||||
|
||||
/* Create map for RPC access */
|
||||
gen3_mem_map[i].virt = 0x0ULL;
|
||||
gen3_mem_map[i].phys = 0x0ULL;
|
||||
gen3_mem_map[i].size = 0x40000000ULL;
|
||||
gen3_mem_map[i].attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
|
||||
PTE_BLOCK_NON_SHARE |
|
||||
PTE_BLOCK_PXN | PTE_BLOCK_UXN;
|
||||
i++;
|
||||
|
||||
/* Generate entires for DRAM in 32bit address space */
|
||||
for (bank = 0; bank < CONFIG_NR_DRAM_BANKS; bank++) {
|
||||
start = gd->bd->bi_dram[bank].start;
|
||||
size = gd->bd->bi_dram[bank].size;
|
||||
|
||||
/* Skip empty DRAM banks */
|
||||
if (!size)
|
||||
continue;
|
||||
|
||||
/* Skip DRAM above 4 GiB */
|
||||
if (start >> 32ULL)
|
||||
continue;
|
||||
|
||||
/* Mark memory reserved by ATF as cacheable too. */
|
||||
if (start == 0x48000000) {
|
||||
/* Unmark protection area (0x43F00000 to 0x47DFFFFF) */
|
||||
gen3_mem_map[i].virt = 0x40000000ULL;
|
||||
gen3_mem_map[i].phys = 0x40000000ULL;
|
||||
gen3_mem_map[i].size = 0x03F00000ULL;
|
||||
gen3_mem_map[i].attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||
PTE_BLOCK_INNER_SHARE;
|
||||
i++;
|
||||
|
||||
start = 0x47E00000ULL;
|
||||
size += 0x00200000ULL;
|
||||
}
|
||||
|
||||
gen3_mem_map[i].virt = start;
|
||||
gen3_mem_map[i].phys = start;
|
||||
gen3_mem_map[i].size = size;
|
||||
gen3_mem_map[i].attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||
PTE_BLOCK_INNER_SHARE;
|
||||
i++;
|
||||
}
|
||||
|
||||
/* Create map for register access */
|
||||
gen3_mem_map[i].virt = 0xc0000000ULL;
|
||||
gen3_mem_map[i].phys = 0xc0000000ULL;
|
||||
gen3_mem_map[i].size = 0x40000000ULL;
|
||||
gen3_mem_map[i].attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
|
||||
PTE_BLOCK_NON_SHARE |
|
||||
PTE_BLOCK_PXN | PTE_BLOCK_UXN;
|
||||
i++;
|
||||
|
||||
/* Generate entires for DRAM in 64bit address space */
|
||||
for (bank = 0; bank < CONFIG_NR_DRAM_BANKS; bank++) {
|
||||
start = gd->bd->bi_dram[bank].start;
|
||||
size = gd->bd->bi_dram[bank].size;
|
||||
|
||||
/* Skip empty DRAM banks */
|
||||
if (!size)
|
||||
continue;
|
||||
|
||||
/* Skip DRAM below 4 GiB */
|
||||
if (!(start >> 32ULL))
|
||||
continue;
|
||||
|
||||
gen3_mem_map[i].virt = start;
|
||||
gen3_mem_map[i].phys = start;
|
||||
gen3_mem_map[i].size = size;
|
||||
gen3_mem_map[i].attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||
PTE_BLOCK_INNER_SHARE;
|
||||
i++;
|
||||
}
|
||||
|
||||
/* Zero out the remaining regions. */
|
||||
for (; i < GEN3_NR_REGIONS; i++) {
|
||||
gen3_mem_map[i].virt = 0;
|
||||
gen3_mem_map[i].phys = 0;
|
||||
gen3_mem_map[i].size = 0;
|
||||
gen3_mem_map[i].attrs = 0;
|
||||
}
|
||||
|
||||
if (!icache_status())
|
||||
icache_enable();
|
||||
|
||||
dcache_enable();
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,139 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* arch/arm/cpu/armv7/rmobile/pfc-r8a7790.h
|
||||
*
|
||||
* Copyright (C) 2013 Renesas Electronics Corporation
|
||||
*/
|
||||
|
||||
#ifndef __PFC_R8A7790_H__
|
||||
#define __PFC_R8A7790_H__
|
||||
|
||||
#include <sh_pfc.h>
|
||||
#include <asm/gpio.h>
|
||||
|
||||
#define CPU_32_PORT(fn, pfx, sfx) \
|
||||
PORT_10(fn, pfx, sfx), PORT_10(fn, pfx##1, sfx), \
|
||||
PORT_10(fn, pfx##2, sfx), PORT_1(fn, pfx##30, sfx), \
|
||||
PORT_1(fn, pfx##31, sfx)
|
||||
|
||||
#define CPU_32_PORT2(fn, pfx, sfx) \
|
||||
PORT_10(fn, pfx, sfx), PORT_10(fn, pfx##1, sfx), \
|
||||
PORT_10(fn, pfx##2, sfx)
|
||||
|
||||
#if defined(CONFIG_R8A7790)
|
||||
#define CPU_32_PORT1(fn, pfx, sfx) \
|
||||
PORT_10(fn, pfx, sfx), PORT_10(fn, pfx##1, sfx), \
|
||||
PORT_10(fn, pfx##2, sfx) \
|
||||
/* GP_0_0_DATA -> GP_5_31_DATA (except for GP1[30],GP1[31],GP2[30],GP2[31]) */
|
||||
#define CPU_ALL_PORT(fn, pfx, sfx) \
|
||||
CPU_32_PORT(fn, pfx##_0_, sfx), \
|
||||
CPU_32_PORT1(fn, pfx##_1_, sfx), \
|
||||
CPU_32_PORT2(fn, pfx##_2_, sfx), \
|
||||
CPU_32_PORT(fn, pfx##_3_, sfx), \
|
||||
CPU_32_PORT(fn, pfx##_4_, sfx), \
|
||||
CPU_32_PORT(fn, pfx##_5_, sfx)
|
||||
|
||||
#elif defined(CONFIG_R8A7791)
|
||||
#define CPU_32_PORT1(fn, pfx, sfx) \
|
||||
PORT_10(fn, pfx, sfx), PORT_10(fn, pfx##1, sfx), \
|
||||
PORT_1(fn, pfx##20, sfx), PORT_1(fn, pfx##21, sfx), \
|
||||
PORT_1(fn, pfx##22, sfx), PORT_1(fn, pfx##23, sfx), \
|
||||
PORT_1(fn, pfx##24, sfx), PORT_1(fn, pfx##25, sfx)
|
||||
|
||||
/*
|
||||
* GP_0_0_DATA -> GP_7_25_DATA
|
||||
* (except for GP1[26],GP1[27],GP1[28],GP1[29]),GP1[30]),GP1[31]
|
||||
* GP7[26],GP7[27],GP7[28],GP7[29]),GP7[30]),GP7[31])
|
||||
*/
|
||||
#define CPU_ALL_PORT(fn, pfx, sfx) \
|
||||
CPU_32_PORT(fn, pfx##_0_, sfx), \
|
||||
CPU_32_PORT1(fn, pfx##_1_, sfx), \
|
||||
CPU_32_PORT(fn, pfx##_2_, sfx), \
|
||||
CPU_32_PORT(fn, pfx##_3_, sfx), \
|
||||
CPU_32_PORT(fn, pfx##_4_, sfx), \
|
||||
CPU_32_PORT(fn, pfx##_5_, sfx), \
|
||||
CPU_32_PORT(fn, pfx##_6_, sfx), \
|
||||
CPU_32_PORT1(fn, pfx##_7_, sfx)
|
||||
|
||||
#elif defined(CONFIG_R8A7792)
|
||||
/*
|
||||
* GP_0_0_DATA -> GP_11_29_DATA
|
||||
* (except for GP0[29..31],GP1[23..31],GP3[28..31],GP4[17..31],GP5[17..31]
|
||||
* GP6[17..31],GP7[17..31],GP8[17..31],GP9[17..31],GP11[30..31])
|
||||
*/
|
||||
#define CPU_32_PORT0_28(fn, pfx, sfx) \
|
||||
PORT_10(fn, pfx, sfx), PORT_10(fn, pfx##1, sfx), \
|
||||
PORT_1(fn, pfx##20, sfx), PORT_1(fn, pfx##21, sfx), \
|
||||
PORT_1(fn, pfx##22, sfx), PORT_1(fn, pfx##23, sfx), \
|
||||
PORT_1(fn, pfx##24, sfx), PORT_1(fn, pfx##25, sfx), \
|
||||
PORT_1(fn, pfx##26, sfx), PORT_1(fn, pfx##27, sfx), \
|
||||
PORT_1(fn, pfx##28, sfx)
|
||||
|
||||
#define CPU_32_PORT0_22(fn, pfx, sfx) \
|
||||
PORT_10(fn, pfx, sfx), PORT_10(fn, pfx##1, sfx), \
|
||||
PORT_1(fn, pfx##20, sfx), PORT_1(fn, pfx##21, sfx), \
|
||||
PORT_1(fn, pfx##22, sfx)
|
||||
|
||||
#define CPU_32_PORT0_27(fn, pfx, sfx) \
|
||||
PORT_10(fn, pfx, sfx), PORT_10(fn, pfx##1, sfx), \
|
||||
PORT_1(fn, pfx##20, sfx), PORT_1(fn, pfx##21, sfx), \
|
||||
PORT_1(fn, pfx##22, sfx), PORT_1(fn, pfx##23, sfx), \
|
||||
PORT_1(fn, pfx##24, sfx), PORT_1(fn, pfx##25, sfx), \
|
||||
PORT_1(fn, pfx##26, sfx), PORT_1(fn, pfx##27, sfx)
|
||||
|
||||
#define CPU_32_PORT0_16(fn, pfx, sfx) \
|
||||
PORT_10(fn, pfx, sfx), \
|
||||
PORT_1(fn, pfx##10, sfx),PORT_1(fn, pfx##11, sfx), \
|
||||
PORT_1(fn, pfx##12, sfx), PORT_1(fn, pfx##13, sfx), \
|
||||
PORT_1(fn, pfx##14, sfx), PORT_1(fn, pfx##15, sfx), \
|
||||
PORT_1(fn, pfx##16, sfx)
|
||||
|
||||
#define CPU_ALL_PORT(fn, pfx, sfx) \
|
||||
CPU_32_PORT0_28(fn, pfx##_0_, sfx), \
|
||||
CPU_32_PORT0_22(fn, pfx##_1_, sfx), \
|
||||
CPU_32_PORT(fn, pfx##_2_, sfx), \
|
||||
CPU_32_PORT0_27(fn, pfx##_3_, sfx), \
|
||||
CPU_32_PORT0_16(fn, pfx##_4_, sfx), \
|
||||
CPU_32_PORT0_16(fn, pfx##_5_, sfx), \
|
||||
CPU_32_PORT0_16(fn, pfx##_6_, sfx), \
|
||||
CPU_32_PORT0_16(fn, pfx##_7_, sfx), \
|
||||
CPU_32_PORT0_16(fn, pfx##_8_, sfx), \
|
||||
CPU_32_PORT0_16(fn, pfx##_9_, sfx), \
|
||||
CPU_32_PORT(fn, pfx##_10_, sfx), \
|
||||
CPU_32_PORT2(fn, pfx##_11_, sfx)
|
||||
|
||||
#else
|
||||
#error "NO support"
|
||||
#endif
|
||||
|
||||
#define _GP_GPIO(pfx, sfx) PINMUX_GPIO(GPIO_GP##pfx, GP##pfx##_DATA)
|
||||
#define _GP_DATA(pfx, sfx) PINMUX_DATA(GP##pfx##_DATA, GP##pfx##_FN, \
|
||||
GP##pfx##_IN, GP##pfx##_OUT)
|
||||
|
||||
#define _GP_INOUTSEL(pfx, sfx) GP##pfx##_IN, GP##pfx##_OUT
|
||||
#define _GP_INDT(pfx, sfx) GP##pfx##_DATA
|
||||
|
||||
#define GP_ALL(str) CPU_ALL_PORT(_PORT_ALL, GP, str)
|
||||
#define PINMUX_GPIO_GP_ALL() CPU_ALL_PORT(_GP_GPIO, , unused)
|
||||
#define PINMUX_DATA_GP_ALL() CPU_ALL_PORT(_GP_DATA, , unused)
|
||||
|
||||
#define PORT_10_REV(fn, pfx, sfx) \
|
||||
PORT_1(fn, pfx##9, sfx), PORT_1(fn, pfx##8, sfx), \
|
||||
PORT_1(fn, pfx##7, sfx), PORT_1(fn, pfx##6, sfx), \
|
||||
PORT_1(fn, pfx##5, sfx), PORT_1(fn, pfx##4, sfx), \
|
||||
PORT_1(fn, pfx##3, sfx), PORT_1(fn, pfx##2, sfx), \
|
||||
PORT_1(fn, pfx##1, sfx), PORT_1(fn, pfx##0, sfx)
|
||||
|
||||
#define CPU_32_PORT_REV(fn, pfx, sfx) \
|
||||
PORT_1(fn, pfx##31, sfx), PORT_1(fn, pfx##30, sfx), \
|
||||
PORT_10_REV(fn, pfx##2, sfx), PORT_10_REV(fn, pfx##1, sfx), \
|
||||
PORT_10_REV(fn, pfx, sfx)
|
||||
|
||||
#define GP_INOUTSEL(bank) CPU_32_PORT_REV(_GP_INOUTSEL, _##bank##_, unused)
|
||||
#define GP_INDT(bank) CPU_32_PORT_REV(_GP_INDT, _##bank##_, unused)
|
||||
|
||||
#define PINMUX_IPSR_DATA(ipsr, fn) PINMUX_DATA(fn##_MARK, FN_##ipsr, FN_##fn)
|
||||
#define PINMUX_IPSR_MODSEL_DATA(ipsr, fn, ms) PINMUX_DATA(fn##_MARK, FN_##ms, \
|
||||
FN_##ipsr, FN_##fn)
|
||||
|
||||
#endif /* __PFC_R8A7790_H__ */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,85 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
|
||||
* (C) Copyright 2012 Renesas Solutions Corp.
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <div64.h>
|
||||
#include <time.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch-armv7/globaltimer.h>
|
||||
#include <asm/arch/rmobile.h>
|
||||
|
||||
static struct globaltimer *global_timer = \
|
||||
(struct globaltimer *)GLOBAL_TIMER_BASE_ADDR;
|
||||
|
||||
#define CLK2MHZ(clk) (clk / 1000 / 1000)
|
||||
static u64 get_cpu_global_timer(void)
|
||||
{
|
||||
u32 low, high;
|
||||
u64 timer;
|
||||
|
||||
u32 old = readl(&global_timer->cnt_h);
|
||||
while (1) {
|
||||
low = readl(&global_timer->cnt_l);
|
||||
high = readl(&global_timer->cnt_h);
|
||||
if (old == high)
|
||||
break;
|
||||
else
|
||||
old = high;
|
||||
}
|
||||
|
||||
timer = high;
|
||||
return (u64)((timer << 32) | low);
|
||||
}
|
||||
|
||||
static u64 get_time_us(void)
|
||||
{
|
||||
u64 timer = get_cpu_global_timer();
|
||||
|
||||
timer = ((timer << 2) + (CLK2MHZ(CONFIG_SYS_CPU_CLK) >> 1));
|
||||
do_div(timer, CLK2MHZ(CONFIG_SYS_CPU_CLK));
|
||||
return timer;
|
||||
}
|
||||
|
||||
static ulong get_time_ms(void)
|
||||
{
|
||||
u64 us = get_time_us();
|
||||
|
||||
do_div(us, 1000);
|
||||
return us;
|
||||
}
|
||||
|
||||
int timer_init(void)
|
||||
{
|
||||
writel(0x01, &global_timer->ctl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void __udelay(unsigned long usec)
|
||||
{
|
||||
u64 start, current;
|
||||
u64 wait;
|
||||
|
||||
start = get_cpu_global_timer();
|
||||
wait = (u64)((usec * CLK2MHZ(CONFIG_SYS_CPU_CLK)) >> 2);
|
||||
do {
|
||||
current = get_cpu_global_timer();
|
||||
} while ((current - start) < wait);
|
||||
}
|
||||
|
||||
ulong get_timer(ulong base)
|
||||
{
|
||||
return get_time_ms() - base;
|
||||
}
|
||||
|
||||
unsigned long long get_ticks(void)
|
||||
{
|
||||
return get_cpu_global_timer();
|
||||
}
|
||||
|
||||
ulong get_tbclk(void)
|
||||
{
|
||||
return (ulong)(CONFIG_SYS_CPU_CLK >> 2);
|
||||
}
|
||||
Reference in New Issue
Block a user