mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-17 14:18:14 +01:00
Merge branch 'next'
This commit is contained in:
commit
90eba245a6
@ -148,7 +148,7 @@ jobs:
|
|||||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
|
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
|
||||||
export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
|
export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
|
||||||
export PATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}
|
export PATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}
|
||||||
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w sandbox_spl
|
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl
|
||||||
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test
|
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test
|
||||||
./tools/buildman/buildman -t
|
./tools/buildman/buildman -t
|
||||||
./tools/dtoc/dtoc -t
|
./tools/dtoc/dtoc -t
|
||||||
@ -187,6 +187,9 @@ jobs:
|
|||||||
sandbox_spl:
|
sandbox_spl:
|
||||||
TEST_PY_BD: "sandbox_spl"
|
TEST_PY_BD: "sandbox_spl"
|
||||||
TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl"
|
TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl"
|
||||||
|
sandbox_noinst:
|
||||||
|
TEST_PY_BD: "sandbox_noinst"
|
||||||
|
TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl"
|
||||||
sandbox_flattree:
|
sandbox_flattree:
|
||||||
TEST_PY_BD: "sandbox_flattree"
|
TEST_PY_BD: "sandbox_flattree"
|
||||||
evb_ast2500:
|
evb_ast2500:
|
||||||
|
@ -168,7 +168,8 @@ Run binman, buildman, dtoc, Kconfig and patman testsuites:
|
|||||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl;
|
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl;
|
||||||
export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt";
|
export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt";
|
||||||
export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}";
|
export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}";
|
||||||
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w sandbox_spl;
|
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w
|
||||||
|
--board sandbox_spl;
|
||||||
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test;
|
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test;
|
||||||
./tools/buildman/buildman -t;
|
./tools/buildman/buildman -t;
|
||||||
./tools/dtoc/dtoc -t;
|
./tools/dtoc/dtoc -t;
|
||||||
@ -204,6 +205,13 @@ sandbox_spl test.py:
|
|||||||
TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl"
|
TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl"
|
||||||
<<: *buildman_and_testpy_dfn
|
<<: *buildman_and_testpy_dfn
|
||||||
|
|
||||||
|
sandbox_noinst_test.py:
|
||||||
|
tags: [ 'all' ]
|
||||||
|
variables:
|
||||||
|
TEST_PY_BD: "sandbox_noinst"
|
||||||
|
TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl"
|
||||||
|
<<: *buildman_and_testpy_dfn
|
||||||
|
|
||||||
evb-ast2500 test.py:
|
evb-ast2500 test.py:
|
||||||
tags: [ 'all' ]
|
tags: [ 'all' ]
|
||||||
variables:
|
variables:
|
||||||
|
22
Makefile
22
Makefile
@ -17,9 +17,13 @@ NAME =
|
|||||||
# o Look for make include files relative to root of kernel src
|
# o Look for make include files relative to root of kernel src
|
||||||
MAKEFLAGS += -rR --include-dir=$(CURDIR)
|
MAKEFLAGS += -rR --include-dir=$(CURDIR)
|
||||||
|
|
||||||
# Determine host architecture
|
# Determine target architecture for the sandbox
|
||||||
include include/host_arch.h
|
include include/host_arch.h
|
||||||
MK_ARCH="${shell uname -m}"
|
ifeq ("", "$(CROSS_COMPILE)")
|
||||||
|
MK_ARCH="${shell uname -m}"
|
||||||
|
else
|
||||||
|
MK_ARCH="${shell echo $(CROSS_COMPILE) | sed -n 's/^\s*\([^\/]*\/\)*\([^-]*\)-\S*/\2/p'}"
|
||||||
|
endif
|
||||||
unexport HOST_ARCH
|
unexport HOST_ARCH
|
||||||
ifeq ("x86_64", $(MK_ARCH))
|
ifeq ("x86_64", $(MK_ARCH))
|
||||||
export HOST_ARCH=$(HOST_ARCH_X86_64)
|
export HOST_ARCH=$(HOST_ARCH_X86_64)
|
||||||
@ -27,7 +31,7 @@ else ifneq (,$(findstring $(MK_ARCH), "i386" "i486" "i586" "i686"))
|
|||||||
export HOST_ARCH=$(HOST_ARCH_X86)
|
export HOST_ARCH=$(HOST_ARCH_X86)
|
||||||
else ifneq (,$(findstring $(MK_ARCH), "aarch64" "armv8l"))
|
else ifneq (,$(findstring $(MK_ARCH), "aarch64" "armv8l"))
|
||||||
export HOST_ARCH=$(HOST_ARCH_AARCH64)
|
export HOST_ARCH=$(HOST_ARCH_AARCH64)
|
||||||
else ifeq ("armv7l", $(MK_ARCH))
|
else ifneq (,$(findstring $(MK_ARCH), "arm" "armv7" "armv7l"))
|
||||||
export HOST_ARCH=$(HOST_ARCH_ARM)
|
export HOST_ARCH=$(HOST_ARCH_ARM)
|
||||||
else ifeq ("riscv32", $(MK_ARCH))
|
else ifeq ("riscv32", $(MK_ARCH))
|
||||||
export HOST_ARCH=$(HOST_ARCH_RISCV32)
|
export HOST_ARCH=$(HOST_ARCH_RISCV32)
|
||||||
@ -1265,7 +1269,13 @@ u-boot.ldr: u-boot
|
|||||||
# binman
|
# binman
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Use 'make BINMAN_DEBUG=1' to enable debugging
|
# Use 'make BINMAN_DEBUG=1' to enable debugging
|
||||||
|
# Use 'make BINMAN_VERBOSE=3' to set vebosity level
|
||||||
default_dt := $(if $(DEVICE_TREE),$(DEVICE_TREE),$(CONFIG_DEFAULT_DEVICE_TREE))
|
default_dt := $(if $(DEVICE_TREE),$(DEVICE_TREE),$(CONFIG_DEFAULT_DEVICE_TREE))
|
||||||
|
|
||||||
|
# Tell binman whether we have a devicetree for SPL and TPL
|
||||||
|
have_spl_dt := $(if $(CONFIG_SPL_OF_PLATDATA),,$(CONFIG_SPL_OF_CONTROL))
|
||||||
|
have_tpl_dt := $(if $(CONFIG_TPL_OF_PLATDATA),,$(CONFIG_TPL_OF_CONTROL))
|
||||||
|
|
||||||
quiet_cmd_binman = BINMAN $@
|
quiet_cmd_binman = BINMAN $@
|
||||||
cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
|
cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
|
||||||
--toolpath $(objtree)/tools \
|
--toolpath $(objtree)/tools \
|
||||||
@ -1276,6 +1286,9 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
|
|||||||
-a atf-bl31-path=${BL31} \
|
-a atf-bl31-path=${BL31} \
|
||||||
-a default-dt=$(default_dt) \
|
-a default-dt=$(default_dt) \
|
||||||
-a scp-path=$(SCP) \
|
-a scp-path=$(SCP) \
|
||||||
|
-a spl-bss-pad=$(if $(CONFIG_SPL_SEPARATE_BSS),,1) \
|
||||||
|
-a tpl-bss-pad=$(if $(CONFIG_TPL_SEPARATE_BSS),,1) \
|
||||||
|
-a spl-dtb=$(have_spl_dt) -a tpl-dtb=$(have_tpl_dt) \
|
||||||
$(BINMAN_$(@F))
|
$(BINMAN_$(@F))
|
||||||
|
|
||||||
OBJCOPYFLAGS_u-boot.ldr.hex := -I binary -O ihex
|
OBJCOPYFLAGS_u-boot.ldr.hex := -I binary -O ihex
|
||||||
@ -1666,6 +1679,9 @@ u-boot-elf.lds: arch/u-boot-elf.lds prepare FORCE
|
|||||||
|
|
||||||
ifeq ($(CONFIG_SPL),y)
|
ifeq ($(CONFIG_SPL),y)
|
||||||
spl/u-boot-spl-mtk.bin: spl/u-boot-spl
|
spl/u-boot-spl-mtk.bin: spl/u-boot-spl
|
||||||
|
|
||||||
|
u-boot-mtk.bin: u-boot-with-spl.bin
|
||||||
|
$(call if_changed,copy)
|
||||||
else
|
else
|
||||||
MKIMAGEFLAGS_u-boot-mtk.bin = -T mtk_image \
|
MKIMAGEFLAGS_u-boot-mtk.bin = -T mtk_image \
|
||||||
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \
|
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \
|
||||||
|
@ -142,6 +142,8 @@ config SANDBOX
|
|||||||
imply AVB_VERIFY
|
imply AVB_VERIFY
|
||||||
imply LIBAVB
|
imply LIBAVB
|
||||||
imply CMD_AVB
|
imply CMD_AVB
|
||||||
|
imply SCP03
|
||||||
|
imply CMD_SCP03
|
||||||
imply UDP_FUNCTION_FASTBOOT
|
imply UDP_FUNCTION_FASTBOOT
|
||||||
imply VIRTIO_MMIO
|
imply VIRTIO_MMIO
|
||||||
imply VIRTIO_PCI
|
imply VIRTIO_PCI
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <cpu_func.h>
|
#include <cpu_func.h>
|
||||||
|
|
||||||
__weak void reset_cpu(ulong addr)
|
__weak void reset_cpu(void)
|
||||||
{
|
{
|
||||||
/* Stop debug session here */
|
/* Stop debug session here */
|
||||||
__builtin_arc_brk();
|
__builtin_arc_brk();
|
||||||
@ -17,7 +17,7 @@ int do_reset(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
|||||||
{
|
{
|
||||||
printf("Resetting the board...\n");
|
printf("Resetting the board...\n");
|
||||||
|
|
||||||
reset_cpu(0);
|
reset_cpu();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
||||||
/* We reset the CPU by generating a 1-->0 transition on DeviceCfg bit 31. */
|
/* We reset the CPU by generating a 1-->0 transition on DeviceCfg bit 31. */
|
||||||
extern void reset_cpu(ulong addr)
|
extern void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct syscon_regs *syscon = (struct syscon_regs *)SYSCON_BASE;
|
struct syscon_regs *syscon = (struct syscon_regs *)SYSCON_BASE;
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
|
@ -81,7 +81,7 @@ ulong get_tbclk(void)
|
|||||||
/*
|
/*
|
||||||
* Reset the cpu by setting up the watchdog timer and let him time out
|
* Reset the cpu by setting up the watchdog timer and let him time out
|
||||||
*/
|
*/
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
/* Disable watchdog and set Time-Out field to 0 */
|
/* Disable watchdog and set Time-Out field to 0 */
|
||||||
WCR = 0x00000000;
|
WCR = 0x00000000;
|
||||||
|
@ -142,7 +142,7 @@ int timer_init(void)
|
|||||||
* 2. Write key value to TMP_WSAR reg.
|
* 2. Write key value to TMP_WSAR reg.
|
||||||
* 3. Perform write operation.
|
* 3. Perform write operation.
|
||||||
*/
|
*/
|
||||||
void reset_cpu(unsigned long ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct armd1mpmu_registers *mpmu =
|
struct armd1mpmu_registers *mpmu =
|
||||||
(struct armd1mpmu_registers *) ARMD1_MPMU_BASE;
|
(struct armd1mpmu_registers *) ARMD1_MPMU_BASE;
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
/*
|
/*
|
||||||
* Reset the cpu by setting up the watchdog timer and let it time out
|
* Reset the cpu by setting up the watchdog timer and let it time out
|
||||||
*/
|
*/
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct wdog_regs *regs = (struct wdog_regs *)IMX_WDT_BASE;
|
struct wdog_regs *regs = (struct wdog_regs *)IMX_WDT_BASE;
|
||||||
/* Disable watchdog and set Time-Out field to 0 */
|
/* Disable watchdog and set Time-Out field to 0 */
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
/*
|
/*
|
||||||
* Reset the cpu by setting up the watchdog timer and let it time out
|
* Reset the cpu by setting up the watchdog timer and let it time out
|
||||||
*/
|
*/
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct wdog_regs *regs = (struct wdog_regs *)IMX_WDT_BASE;
|
struct wdog_regs *regs = (struct wdog_regs *)IMX_WDT_BASE;
|
||||||
/* Disable watchdog and set Time-Out field to 0 */
|
/* Disable watchdog and set Time-Out field to 0 */
|
||||||
|
@ -32,9 +32,9 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||||||
/* Lowlevel init isn't used on i.MX28, so just have a dummy here */
|
/* Lowlevel init isn't used on i.MX28, so just have a dummy here */
|
||||||
__weak void lowlevel_init(void) {}
|
__weak void lowlevel_init(void) {}
|
||||||
|
|
||||||
void reset_cpu(ulong ignored) __attribute__((noreturn));
|
void reset_cpu(void) __attribute__((noreturn));
|
||||||
|
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct mxs_rtc_regs *rtc_regs =
|
struct mxs_rtc_regs *rtc_regs =
|
||||||
(struct mxs_rtc_regs *)MXS_RTC_BASE;
|
(struct mxs_rtc_regs *)MXS_RTC_BASE;
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
#include <asm/arch/spr_syscntl.h>
|
#include <asm/arch/spr_syscntl.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct syscntl_regs *syscntl_regs_p =
|
struct syscntl_regs *syscntl_regs_p =
|
||||||
(struct syscntl_regs *)CONFIG_SPEAR_SYSCNTLBASE;
|
(struct syscntl_regs *)CONFIG_SPEAR_SYSCNTLBASE;
|
||||||
|
@ -56,7 +56,7 @@ static void cache_flush (void)
|
|||||||
|
|
||||||
#ifndef CONFIG_ARCH_INTEGRATOR
|
#ifndef CONFIG_ARCH_INTEGRATOR
|
||||||
|
|
||||||
__attribute__((noreturn)) void reset_cpu(ulong addr __attribute__((unused)))
|
__attribute__((noreturn)) void reset_cpu(void)
|
||||||
{
|
{
|
||||||
writew(0x0, 0xfffece10);
|
writew(0x0, 0xfffece10);
|
||||||
writew(0x8, 0xfffece10);
|
writew(0x8, 0xfffece10);
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#define CLKS_SHIFT 20 /* Clock period shift */
|
#define CLKS_SHIFT 20 /* Clock period shift */
|
||||||
#define LD_SHIFT 0 /* Reload value shift */
|
#define LD_SHIFT 0 /* Reload value shift */
|
||||||
|
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Set WD enable, RST enable,
|
* Set WD enable, RST enable,
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
#define CRMU_MAIL_BOX1 0x03024028
|
#define CRMU_MAIL_BOX1 0x03024028
|
||||||
#define CRMU_SOFT_RESET_CMD 0xFFFFFFFF
|
#define CRMU_SOFT_RESET_CMD 0xFFFFFFFF
|
||||||
|
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
/* Send soft reset command via Mailbox. */
|
/* Send soft reset command via Mailbox. */
|
||||||
writel(CRMU_SOFT_RESET_CMD, CRMU_MAIL_BOX1);
|
writel(CRMU_SOFT_RESET_CMD, CRMU_MAIL_BOX1);
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
#define CRU_RESET_OFFSET 0x1803F184
|
#define CRU_RESET_OFFSET 0x1803F184
|
||||||
|
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
/* Reset the cpu by setting software reset request bit */
|
/* Reset the cpu by setting software reset request bit */
|
||||||
writel(0x1, CRU_RESET_OFFSET);
|
writel(0x1, CRU_RESET_OFFSET);
|
||||||
|
@ -176,9 +176,6 @@ void mmu_page_table_flush(unsigned long start, unsigned long stop)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void arm_init_domains(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif /* #if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) */
|
#endif /* #if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) */
|
||||||
|
|
||||||
#if !CONFIG_IS_ENABLED(SYS_ICACHE_OFF)
|
#if !CONFIG_IS_ENABLED(SYS_ICACHE_OFF)
|
||||||
|
@ -375,7 +375,7 @@ void smp_kick_all_cpus(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
|
struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ int print_cpuinfo(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
void *clkpwr_reg = (void *)PHY_BASEADDR_CLKPWR;
|
void *clkpwr_reg = (void *)PHY_BASEADDR_CLKPWR;
|
||||||
const u32 sw_rst_enb_bitpos = 3;
|
const u32 sw_rst_enb_bitpos = 3;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/stv0991_wdru.h>
|
#include <asm/arch/stv0991_wdru.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
puts("System is going to reboot ...\n");
|
puts("System is going to reboot ...\n");
|
||||||
/*
|
/*
|
||||||
|
@ -47,7 +47,7 @@ int cleanup_before_linux(void)
|
|||||||
/*
|
/*
|
||||||
* Perform the low-level reset.
|
* Perform the low-level reset.
|
||||||
*/
|
*/
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Perform reset but keep priority group unchanged.
|
* Perform reset but keep priority group unchanged.
|
||||||
|
@ -1231,7 +1231,7 @@ int timer_init(void)
|
|||||||
|
|
||||||
__efi_runtime_data u32 __iomem *rstcr = (u32 *)CONFIG_SYS_FSL_RST_ADDR;
|
__efi_runtime_data u32 __iomem *rstcr = (u32 *)CONFIG_SYS_FSL_RST_ADDR;
|
||||||
|
|
||||||
void __efi_runtime reset_cpu(ulong addr)
|
void __efi_runtime reset_cpu(void)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_ARCH_LX2160A) || defined(CONFIG_ARCH_LX2162A)
|
#if defined(CONFIG_ARCH_LX2160A) || defined(CONFIG_ARCH_LX2162A)
|
||||||
/* clear the RST_REQ_MSK and SW_RST_REQ */
|
/* clear the RST_REQ_MSK and SW_RST_REQ */
|
||||||
@ -1260,7 +1260,7 @@ void __efi_runtime EFIAPI efi_reset_system(
|
|||||||
case EFI_RESET_COLD:
|
case EFI_RESET_COLD:
|
||||||
case EFI_RESET_WARM:
|
case EFI_RESET_WARM:
|
||||||
case EFI_RESET_PLATFORM_SPECIFIC:
|
case EFI_RESET_PLATFORM_SPECIFIC:
|
||||||
reset_cpu(0);
|
reset_cpu();
|
||||||
break;
|
break;
|
||||||
case EFI_RESET_SHUTDOWN:
|
case EFI_RESET_SHUTDOWN:
|
||||||
/* Nothing we can do */
|
/* Nothing we can do */
|
||||||
|
@ -319,7 +319,7 @@ static char *get_reset_cause(void)
|
|||||||
|
|
||||||
#define SRC_SCR_SW_RST (1<<12)
|
#define SRC_SCR_SW_RST (1<<12)
|
||||||
|
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
printf("Feature not supported.\n");
|
printf("Feature not supported.\n");
|
||||||
};
|
};
|
||||||
|
@ -267,9 +267,9 @@ void i2c_clk_enable(void)
|
|||||||
writel(readl(CKEN) | CKEN14_I2C, CKEN);
|
writel(readl(CKEN) | CKEN14_I2C, CKEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __attribute__((weak)) reset_cpu(ulong ignored) __attribute__((noreturn));
|
void __attribute__((weak)) reset_cpu(void) __attribute__((noreturn));
|
||||||
|
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
uint32_t tmp;
|
uint32_t tmp;
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ static void cache_flush (void)
|
|||||||
#define RSRR 0x00
|
#define RSRR 0x00
|
||||||
#define RCSR 0x04
|
#define RCSR 0x04
|
||||||
|
|
||||||
__attribute__((noreturn)) void reset_cpu(ulong addr __attribute__((unused)))
|
__attribute__((noreturn)) void reset_cpu(void)
|
||||||
{
|
{
|
||||||
/* repeat endlessly */
|
/* repeat endlessly */
|
||||||
while (1) {
|
while (1) {
|
||||||
|
@ -822,6 +822,10 @@ dtb-$(CONFIG_RCAR_GEN3) += \
|
|||||||
r8a774a1-beacon-rzg2m-kit.dtb \
|
r8a774a1-beacon-rzg2m-kit.dtb \
|
||||||
r8a774b1-beacon-rzg2n-kit.dtb \
|
r8a774b1-beacon-rzg2n-kit.dtb \
|
||||||
r8a774e1-beacon-rzg2h-kit.dtb \
|
r8a774e1-beacon-rzg2h-kit.dtb \
|
||||||
|
r8a774a1-hihope-rzg2m-u-boot.dtb \
|
||||||
|
r8a774b1-hihope-rzg2n-u-boot.dtb \
|
||||||
|
r8a774c0-ek874-u-boot.dtb \
|
||||||
|
r8a774e1-hihope-rzg2h-u-boot.dtb \
|
||||||
r8a77950-ulcb-u-boot.dtb \
|
r8a77950-ulcb-u-boot.dtb \
|
||||||
r8a77950-salvator-x-u-boot.dtb \
|
r8a77950-salvator-x-u-boot.dtb \
|
||||||
r8a77960-ulcb-u-boot.dtb \
|
r8a77960-ulcb-u-boot.dtb \
|
||||||
@ -1009,6 +1013,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
|
|||||||
mt7622-bananapi-bpi-r64.dtb \
|
mt7622-bananapi-bpi-r64.dtb \
|
||||||
mt7623n-bananapi-bpi-r2.dtb \
|
mt7623n-bananapi-bpi-r2.dtb \
|
||||||
mt7629-rfb.dtb \
|
mt7629-rfb.dtb \
|
||||||
|
mt8183-pumpkin.dtb \
|
||||||
mt8512-bm1-emmc.dtb \
|
mt8512-bm1-emmc.dtb \
|
||||||
mt8516-pumpkin.dtb \
|
mt8516-pumpkin.dtb \
|
||||||
mt8518-ap1-emmc.dtb
|
mt8518-ap1-emmc.dtb
|
||||||
|
@ -50,6 +50,14 @@
|
|||||||
ps-clk-frequency = <33333333>;
|
ps-clk-frequency = <33333333>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&nand0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&smcc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&gem0 {
|
&gem0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
|
64
arch/arm/dts/cat875.dtsi
Normal file
64
arch/arm/dts/cat875.dtsi
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source for the Silicon Linux sub board for CAT874 (CAT875)
|
||||||
|
*
|
||||||
|
* Copyright (C) 2021 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Silicon Linux sub board for CAT874 (CAT875)";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
ethernet0 = &avb;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&avb {
|
||||||
|
pinctrl-0 = <&avb_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
renesas,no-ether-link;
|
||||||
|
phy-handle = <&phy0>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
phy0: ethernet-phy@0 {
|
||||||
|
reg = <0>;
|
||||||
|
interrupt-parent = <&gpio2>;
|
||||||
|
interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&can0 {
|
||||||
|
pinctrl-0 = <&can0_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&can1 {
|
||||||
|
pinctrl-0 = <&can1_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pciec0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pfc {
|
||||||
|
avb_pins: avb {
|
||||||
|
mux {
|
||||||
|
groups = "avb_mii";
|
||||||
|
function = "avb";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
can0_pins: can0 {
|
||||||
|
groups = "can0_data";
|
||||||
|
function = "can0";
|
||||||
|
};
|
||||||
|
|
||||||
|
can1_pins: can1 {
|
||||||
|
groups = "can1_data";
|
||||||
|
function = "can1";
|
||||||
|
};
|
||||||
|
};
|
@ -5,24 +5,6 @@
|
|||||||
* Author: Weijie Gao <weijie.gao@mediatek.com>
|
* Author: Weijie Gao <weijie.gao@mediatek.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
/ {
|
|
||||||
binman {
|
|
||||||
filename = "u-boot-mtk.bin";
|
|
||||||
pad-byte = <0xff>;
|
|
||||||
|
|
||||||
#ifdef CONFIG_SPL
|
|
||||||
blob {
|
|
||||||
filename = "spl/u-boot-spl-mtk.bin";
|
|
||||||
size = <CONFIG_SPL_PAD_TO>;
|
|
||||||
};
|
|
||||||
|
|
||||||
u-boot-img {
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&infracfg {
|
&infracfg {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
|
@ -36,6 +36,16 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pinctrl {
|
&pinctrl {
|
||||||
|
state_default: pinmux_conf {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
|
mux {
|
||||||
|
function = "jtag";
|
||||||
|
groups = "ephy_leds_jtag";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
snfi_pins: snfi-pins {
|
snfi_pins: snfi-pins {
|
||||||
mux {
|
mux {
|
||||||
function = "flash";
|
function = "flash";
|
||||||
|
@ -152,6 +152,12 @@
|
|||||||
compatible = "mediatek,mt7629-pinctrl";
|
compatible = "mediatek,mt7629-pinctrl";
|
||||||
reg = <0x10217000 0x8000>;
|
reg = <0x10217000 0x8000>;
|
||||||
|
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&state_default>;
|
||||||
|
|
||||||
|
state_default: pinmux_conf {
|
||||||
|
};
|
||||||
|
|
||||||
gpio: gpio-controller {
|
gpio: gpio-controller {
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
|
99
arch/arm/dts/mt8183-pumpkin.dts
Normal file
99
arch/arm/dts/mt8183-pumpkin.dts
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0 OR MIT
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2021 BayLibre SAS.
|
||||||
|
* Author: Fabien Parent <fparent@baylibre.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include "mt8183.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "MediaTek MT8183 pumpkin board";
|
||||||
|
compatible = "mediatek,mt8183-pumpkin", "mediatek,mt8183";
|
||||||
|
|
||||||
|
memory@40000000 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0 0x40000000 0 0x80000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
/* 192 KiB reserved for ARM Trusted Firmware (BL31) */
|
||||||
|
bl31_secmon_reserved: secmon@54600000 {
|
||||||
|
no-map;
|
||||||
|
reg = <0 0x54600000 0x0 0x30000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* 12 MiB reserved for OP-TEE (BL32)
|
||||||
|
* +-----------------------+ 0x43e0_0000
|
||||||
|
* | SHMEM 2MiB |
|
||||||
|
* +-----------------------+ 0x43c0_0000
|
||||||
|
* | | TA_RAM 8MiB |
|
||||||
|
* + TZDRAM +--------------+ 0x4340_0000
|
||||||
|
* | | TEE_RAM 2MiB |
|
||||||
|
* +-----------------------+ 0x4320_0000
|
||||||
|
*/
|
||||||
|
optee_reserved: optee@43200000 {
|
||||||
|
no-map;
|
||||||
|
reg = <0 0x43200000 0 0x00c00000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = &uart0;
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_1p8v: regulator-1p8v {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "fixed-1.8V";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
regulator-boot-on;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_3p3v: regulator-3p3v {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "fixed-3.3V";
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
regulator-boot-on;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&watchdog {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc0 {
|
||||||
|
bus-width = <4>;
|
||||||
|
max-frequency = <200000000>;
|
||||||
|
cap-mmc-highspeed;
|
||||||
|
mmc-hs200-1_8v;
|
||||||
|
cap-mmc-hw-reset;
|
||||||
|
vmmc-supply = <®_3p3v>;
|
||||||
|
vqmmc-supply = <®_1p8v>;
|
||||||
|
non-removable;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ssusb {
|
||||||
|
mediatek,force-vbus;
|
||||||
|
maximum-speed = "high-speed";
|
||||||
|
dr_mode = "peripheral";
|
||||||
|
status = "okay";
|
||||||
|
};
|
274
arch/arm/dts/mt8183.dtsi
Normal file
274
arch/arm/dts/mt8183.dtsi
Normal file
@ -0,0 +1,274 @@
|
|||||||
|
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2021 MediaTek Inc.
|
||||||
|
* Copyright (C) 2021 BayLibre, SAS
|
||||||
|
* Author: Ben Ho <ben.ho@mediatek.com>
|
||||||
|
* Erin Lo <erin.lo@mediatek.com>
|
||||||
|
* Fabien Parent <fparent@baylibre.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/clock/mt8183-clk.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
#include <dt-bindings/phy/phy.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
compatible = "mediatek,mt8183";
|
||||||
|
interrupt-parent = <&sysirq>;
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
|
||||||
|
cpus {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
cpu-map {
|
||||||
|
cluster0 {
|
||||||
|
core0 {
|
||||||
|
cpu = <&cpu0>;
|
||||||
|
};
|
||||||
|
core1 {
|
||||||
|
cpu = <&cpu1>;
|
||||||
|
};
|
||||||
|
core2 {
|
||||||
|
cpu = <&cpu2>;
|
||||||
|
};
|
||||||
|
core3 {
|
||||||
|
cpu = <&cpu3>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cluster1 {
|
||||||
|
core0 {
|
||||||
|
cpu = <&cpu4>;
|
||||||
|
};
|
||||||
|
core1 {
|
||||||
|
cpu = <&cpu5>;
|
||||||
|
};
|
||||||
|
core2 {
|
||||||
|
cpu = <&cpu6>;
|
||||||
|
};
|
||||||
|
core3 {
|
||||||
|
cpu = <&cpu7>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu0: cpu@0 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a53";
|
||||||
|
reg = <0x000>;
|
||||||
|
enable-method = "psci";
|
||||||
|
capacity-dmips-mhz = <741>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu1: cpu@1 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a53";
|
||||||
|
reg = <0x001>;
|
||||||
|
enable-method = "psci";
|
||||||
|
capacity-dmips-mhz = <741>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu2: cpu@2 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a53";
|
||||||
|
reg = <0x002>;
|
||||||
|
enable-method = "psci";
|
||||||
|
capacity-dmips-mhz = <741>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu3: cpu@3 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a53";
|
||||||
|
reg = <0x003>;
|
||||||
|
enable-method = "psci";
|
||||||
|
capacity-dmips-mhz = <741>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu4: cpu@100 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a73";
|
||||||
|
reg = <0x100>;
|
||||||
|
enable-method = "psci";
|
||||||
|
capacity-dmips-mhz = <1024>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu5: cpu@101 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a73";
|
||||||
|
reg = <0x101>;
|
||||||
|
enable-method = "psci";
|
||||||
|
capacity-dmips-mhz = <1024>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu6: cpu@102 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a73";
|
||||||
|
reg = <0x102>;
|
||||||
|
enable-method = "psci";
|
||||||
|
capacity-dmips-mhz = <1024>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu7: cpu@103 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a73";
|
||||||
|
reg = <0x103>;
|
||||||
|
enable-method = "psci";
|
||||||
|
capacity-dmips-mhz = <1024>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
clk26m: oscillator {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <26000000>;
|
||||||
|
clock-output-names = "clk26m";
|
||||||
|
};
|
||||||
|
|
||||||
|
soc {
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
compatible = "simple-bus";
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
watchdog: watchdog@10007000 {
|
||||||
|
compatible = "mediatek,mt8183-wdt",
|
||||||
|
"mediatek,wdt";
|
||||||
|
reg = <0 0x10007000 0 0x100>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
gic: interrupt-controller@c000000 {
|
||||||
|
compatible = "arm,gic-v3";
|
||||||
|
#interrupt-cells = <4>;
|
||||||
|
interrupt-parent = <&gic>;
|
||||||
|
interrupt-controller;
|
||||||
|
reg = <0 0x0c000000 0 0x40000>, /* GICD */
|
||||||
|
<0 0x0c100000 0 0x200000>, /* GICR */
|
||||||
|
<0 0x0c400000 0 0x2000>, /* GICC */
|
||||||
|
<0 0x0c410000 0 0x1000>, /* GICH */
|
||||||
|
<0 0x0c420000 0 0x2000>; /* GICV */
|
||||||
|
|
||||||
|
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
ppi-partitions {
|
||||||
|
ppi_cluster0: interrupt-partition-0 {
|
||||||
|
affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
|
||||||
|
};
|
||||||
|
ppi_cluster1: interrupt-partition-1 {
|
||||||
|
affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sysirq: interrupt-controller@c530a80 {
|
||||||
|
compatible = "mediatek,mt8183-sysirq",
|
||||||
|
"mediatek,mt6577-sysirq";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <3>;
|
||||||
|
interrupt-parent = <&gic>;
|
||||||
|
reg = <0 0x0c530a80 0 0x50>;
|
||||||
|
};
|
||||||
|
|
||||||
|
topckgen: syscon@10000000 {
|
||||||
|
compatible = "mediatek,mt8183-topckgen", "syscon";
|
||||||
|
reg = <0 0x10000000 0 0x1000>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
infracfg: syscon@10001000 {
|
||||||
|
compatible = "mediatek,mt8183-infracfg", "syscon";
|
||||||
|
reg = <0 0x10001000 0 0x1000>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
apmixedsys: syscon@1000c000 {
|
||||||
|
compatible = "mediatek,mt8183-apmixedsys", "syscon";
|
||||||
|
reg = <0 0x1000c000 0 0x1000>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
uart0: serial@11002000 {
|
||||||
|
compatible = "mediatek,mt8183-uart",
|
||||||
|
"mediatek,hsuart";
|
||||||
|
reg = <0 0x11002000 0 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
clock-frequency = <26000000>;
|
||||||
|
clocks = <&clk26m>, <&infracfg CLK_INFRA_UART0>;
|
||||||
|
clock-names = "baud", "bus";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
mmc0: mmc@11230000 {
|
||||||
|
compatible = "mediatek,mt8183-mmc";
|
||||||
|
reg = <0 0x11230000 0 0x1000>,
|
||||||
|
<0 0x11f50000 0 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>,
|
||||||
|
<&infracfg CLK_INFRA_MSDC0>,
|
||||||
|
<&infracfg CLK_INFRA_MSDC0_SCK>;
|
||||||
|
clock-names = "source", "hclk", "source_cg";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
u3phy: usb-phy@11f40000 {
|
||||||
|
compatible = "mediatek,generic-tphy-v2";
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
ranges;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
u2port0: usb-phy2@11f40000 {
|
||||||
|
reg = <0 0x11f40000 0 0x700>;
|
||||||
|
clocks = <&clk26m>;
|
||||||
|
clock-names = "ref";
|
||||||
|
#phy-cells = <1>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
u3port0: usb-phy3@11f40700 {
|
||||||
|
reg = <0 0x11f40700 0 0x900>;
|
||||||
|
clocks = <&clk26m>;
|
||||||
|
clock-names = "ref";
|
||||||
|
#phy-cells = <1>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
usb: usb@11200000 {
|
||||||
|
compatible ="mediatek,mt8183-mtu3", "mediatek,mtu3";
|
||||||
|
reg = <0 0x11200000 0 0x3e00>,
|
||||||
|
<0 0x11203e00 0 0x0100>;
|
||||||
|
reg-names = "mac", "ippc";
|
||||||
|
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
phys = <&u2port0 PHY_TYPE_USB2>;
|
||||||
|
clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
|
||||||
|
<&infracfg CLK_INFRA_USB>;
|
||||||
|
clock-names = "sys_ck", "ref_ck";
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
ranges;
|
||||||
|
status = "disabled";
|
||||||
|
|
||||||
|
ssusb: ssusb@11200000 {
|
||||||
|
compatible = "mediatek,ssusb";
|
||||||
|
reg = <0 0x11200000 0 0x3e00>;
|
||||||
|
reg-names = "mac";
|
||||||
|
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
usb_host: xhci@11200000 {
|
||||||
|
compatible = "mediatek,mtk-xhci";
|
||||||
|
reg = <0 0x11200000 0 0x1000>;
|
||||||
|
reg-names = "mac";
|
||||||
|
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
|
||||||
|
<&infracfg CLK_INFRA_USB>;
|
||||||
|
clock-names = "sys_ck", "ref_ck";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
21
arch/arm/dts/r8a774b1-hihope-rzg2n-ex.dts
Normal file
21
arch/arm/dts/r8a774b1-hihope-rzg2n-ex.dts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source for the HiHope RZ/G2N Rev.3.0/4.0 connected to
|
||||||
|
* sub board
|
||||||
|
*
|
||||||
|
* Copyright (C) 2020 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "r8a774b1-hihope-rzg2n.dts"
|
||||||
|
#include "hihope-rzg2-ex.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "HopeRun HiHope RZ/G2N with sub board";
|
||||||
|
compatible = "hoperun,hihope-rzg2-ex", "hoperun,hihope-rzg2n",
|
||||||
|
"renesas,r8a774b1";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Set SW43 = ON and SW1001[7] = OFF for SATA port to be activated */
|
||||||
|
&sata {
|
||||||
|
status = "okay";
|
||||||
|
};
|
27
arch/arm/dts/r8a774b1-hihope-rzg2n-u-boot.dts
Normal file
27
arch/arm/dts/r8a774b1-hihope-rzg2n-u-boot.dts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source extras for U-Boot for the Hihope RZ/G2N board
|
||||||
|
*
|
||||||
|
* Copyright (C) 2021 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "r8a774b1-hihope-rzg2n-ex.dts"
|
||||||
|
#include "r8a774b1-u-boot.dtsi"
|
||||||
|
|
||||||
|
&gpio3 {
|
||||||
|
bt_reg_on{
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <13 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-low;
|
||||||
|
line-name = "bt-reg-on";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio4 {
|
||||||
|
wlan_reg_on{
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <6 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-low;
|
||||||
|
line-name = "wlan-reg-on";
|
||||||
|
};
|
||||||
|
};
|
41
arch/arm/dts/r8a774b1-hihope-rzg2n.dts
Normal file
41
arch/arm/dts/r8a774b1-hihope-rzg2n.dts
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source for the HiHope RZ/G2N main board Rev.3.0/4.0
|
||||||
|
*
|
||||||
|
* Copyright (C) 2020 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include "r8a774b1.dtsi"
|
||||||
|
#include "hihope-rev4.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "HopeRun HiHope RZ/G2N main board based on r8a774b1";
|
||||||
|
compatible = "hoperun,hihope-rzg2n", "renesas,r8a774b1";
|
||||||
|
|
||||||
|
memory@48000000 {
|
||||||
|
device_type = "memory";
|
||||||
|
/* first 128MB is reserved for secure area. */
|
||||||
|
reg = <0x0 0x48000000 0x0 0x78000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
memory@480000000 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x4 0x80000000 0x0 0x80000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&du {
|
||||||
|
clocks = <&cpg CPG_MOD 724>,
|
||||||
|
<&cpg CPG_MOD 723>,
|
||||||
|
<&cpg CPG_MOD 721>,
|
||||||
|
<&versaclock5 1>,
|
||||||
|
<&x302_clk>,
|
||||||
|
<&versaclock5 2>;
|
||||||
|
clock-names = "du.0", "du.1", "du.3",
|
||||||
|
"dclkin.0", "dclkin.1", "dclkin.3";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdhi3 {
|
||||||
|
mmc-hs400-1_8v;
|
||||||
|
};
|
53
arch/arm/dts/r8a774b1-u-boot.dtsi
Normal file
53
arch/arm/dts/r8a774b1-u-boot.dtsi
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source extras for U-Boot on RZ/G2 R8A774B1 SoC
|
||||||
|
*
|
||||||
|
* Copyright (C) 2021 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "r8a779x-u-boot.dtsi"
|
||||||
|
|
||||||
|
&extalr_clk {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
/delete-node/ &audma0;
|
||||||
|
/delete-node/ &audma1;
|
||||||
|
/delete-node/ &can0;
|
||||||
|
/delete-node/ &can1;
|
||||||
|
/delete-node/ &canfd;
|
||||||
|
/delete-node/ &csi20;
|
||||||
|
/delete-node/ &csi40;
|
||||||
|
/delete-node/ &du;
|
||||||
|
/delete-node/ &fcpf0;
|
||||||
|
/delete-node/ &fcpvb0;
|
||||||
|
/delete-node/ &fcpvd0;
|
||||||
|
/delete-node/ &fcpvd1;
|
||||||
|
/delete-node/ &fcpvi0;
|
||||||
|
/delete-node/ &hdmi0;
|
||||||
|
/delete-node/ &lvds0;
|
||||||
|
/delete-node/ &rcar_sound;
|
||||||
|
/delete-node/ &sdhi2;
|
||||||
|
/delete-node/ &sound_card;
|
||||||
|
/delete-node/ &vin0;
|
||||||
|
/delete-node/ &vin1;
|
||||||
|
/delete-node/ &vin2;
|
||||||
|
/delete-node/ &vin3;
|
||||||
|
/delete-node/ &vin4;
|
||||||
|
/delete-node/ &vin5;
|
||||||
|
/delete-node/ &vin6;
|
||||||
|
/delete-node/ &vin7;
|
||||||
|
/delete-node/ &vspb;
|
||||||
|
/delete-node/ &vspd0;
|
||||||
|
/delete-node/ &vspd1;
|
||||||
|
/delete-node/ &vspi0;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
/delete-node/ hdmi0-out;
|
||||||
|
};
|
||||||
|
|
||||||
|
/ {
|
||||||
|
soc {
|
||||||
|
/delete-node/ fdp1@fe940000;
|
||||||
|
};
|
||||||
|
};
|
453
arch/arm/dts/r8a774c0-cat874.dts
Normal file
453
arch/arm/dts/r8a774c0-cat874.dts
Normal file
@ -0,0 +1,453 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874)
|
||||||
|
*
|
||||||
|
* Copyright (C) 2021 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include "r8a774c0.dtsi"
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/display/tda998x.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Silicon Linux RZ/G2E 96board platform (CAT874)";
|
||||||
|
compatible = "si-linux,cat874", "renesas,r8a774c0";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
serial0 = &scif2;
|
||||||
|
serial1 = &hscif2;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
hdmi-out {
|
||||||
|
compatible = "hdmi-connector";
|
||||||
|
type = "a";
|
||||||
|
|
||||||
|
port {
|
||||||
|
hdmi_con_out: endpoint {
|
||||||
|
remote-endpoint = <&tda19988_out>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
led0 {
|
||||||
|
gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "LED0";
|
||||||
|
};
|
||||||
|
|
||||||
|
led1 {
|
||||||
|
gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "LED1";
|
||||||
|
};
|
||||||
|
|
||||||
|
led2 {
|
||||||
|
gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "LED2";
|
||||||
|
};
|
||||||
|
|
||||||
|
led3 {
|
||||||
|
gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "LED3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
memory@48000000 {
|
||||||
|
device_type = "memory";
|
||||||
|
/* first 128MB is reserved for secure area. */
|
||||||
|
reg = <0x0 0x48000000 0x0 0x78000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_12p0v: regulator-12p0v {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "D12.0V";
|
||||||
|
regulator-min-microvolt = <12000000>;
|
||||||
|
regulator-max-microvolt = <12000000>;
|
||||||
|
regulator-boot-on;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
sound: sound {
|
||||||
|
compatible = "simple-audio-card";
|
||||||
|
|
||||||
|
simple-audio-card,name = "CAT874 HDMI sound";
|
||||||
|
simple-audio-card,format = "i2s";
|
||||||
|
simple-audio-card,bitclock-master = <&sndcpu>;
|
||||||
|
simple-audio-card,frame-master = <&sndcpu>;
|
||||||
|
|
||||||
|
sndcodec: simple-audio-card,codec {
|
||||||
|
sound-dai = <&tda19988>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sndcpu: simple-audio-card,cpu {
|
||||||
|
sound-dai = <&rcar_sound>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
vcc_sdhi0: regulator-vcc-sdhi0 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
|
||||||
|
regulator-name = "SDHI0 Vcc";
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
vccq_sdhi0: regulator-vccq-sdhi0 {
|
||||||
|
compatible = "regulator-gpio";
|
||||||
|
|
||||||
|
regulator-name = "SDHI0 VccQ";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
|
||||||
|
gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
gpios-states = <1>;
|
||||||
|
states = <3300000 1>, <1800000 0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
wlan_en_reg: fixedregulator {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "wlan-en-regulator";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
startup-delay-us = <70000>;
|
||||||
|
|
||||||
|
gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
|
||||||
|
enable-active-high;
|
||||||
|
};
|
||||||
|
|
||||||
|
x13_clk: x13 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <74250000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
connector {
|
||||||
|
compatible = "usb-c-connector";
|
||||||
|
label = "USB-C";
|
||||||
|
data-role = "dual";
|
||||||
|
|
||||||
|
ports {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
port@0 {
|
||||||
|
reg = <0>;
|
||||||
|
hs_ep: endpoint {
|
||||||
|
remote-endpoint = <&usb3_hs_ep>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
port@1 {
|
||||||
|
reg = <1>;
|
||||||
|
ss_ep: endpoint {
|
||||||
|
remote-endpoint = <&hd3ss3220_in_ep>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&audio_clk_a {
|
||||||
|
clock-frequency = <22579200>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&du {
|
||||||
|
pinctrl-0 = <&du_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
clocks = <&cpg CPG_MOD 724>,
|
||||||
|
<&cpg CPG_MOD 723>,
|
||||||
|
<&x13_clk>;
|
||||||
|
clock-names = "du.0", "du.1", "dclkin.0";
|
||||||
|
|
||||||
|
ports {
|
||||||
|
port@0 {
|
||||||
|
endpoint {
|
||||||
|
remote-endpoint = <&tda19988_in>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci0 {
|
||||||
|
dr_mode = "host";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&extal_clk {
|
||||||
|
clock-frequency = <48000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&hscif2 {
|
||||||
|
pinctrl-0 = <&hscif2_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
uart-has-rtscts;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
bluetooth {
|
||||||
|
compatible = "ti,wl1837-st";
|
||||||
|
enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
|
||||||
|
hd3ss3220@47 {
|
||||||
|
compatible = "ti,hd3ss3220";
|
||||||
|
reg = <0x47>;
|
||||||
|
interrupt-parent = <&gpio6>;
|
||||||
|
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
|
||||||
|
ports {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
port@0 {
|
||||||
|
reg = <0>;
|
||||||
|
hd3ss3220_in_ep: endpoint {
|
||||||
|
remote-endpoint = <&ss_ep>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
port@1 {
|
||||||
|
reg = <1>;
|
||||||
|
hd3ss3220_out_ep: endpoint {
|
||||||
|
remote-endpoint = <&usb3_role_switch>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
tda19988: tda19988@70 {
|
||||||
|
compatible = "nxp,tda998x";
|
||||||
|
reg = <0x70>;
|
||||||
|
interrupt-parent = <&gpio1>;
|
||||||
|
interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
|
||||||
|
video-ports = <0x234501>;
|
||||||
|
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
audio-ports = <TDA998x_I2S 0x03>;
|
||||||
|
clocks = <&rcar_sound 1>;
|
||||||
|
|
||||||
|
ports {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
port@0 {
|
||||||
|
reg = <0>;
|
||||||
|
tda19988_in: endpoint {
|
||||||
|
remote-endpoint = <&du_out_rgb>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
port@1 {
|
||||||
|
reg = <1>;
|
||||||
|
tda19988_out: endpoint {
|
||||||
|
remote-endpoint = <&hdmi_con_out>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
pinctrl-0 = <&i2c1_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
status = "okay";
|
||||||
|
clock-frequency = <400000>;
|
||||||
|
|
||||||
|
rtc@32 {
|
||||||
|
compatible = "epson,rx8571";
|
||||||
|
reg = <0x32>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&lvds0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>;
|
||||||
|
clock-names = "fck", "dclkin.0", "extal";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci0 {
|
||||||
|
dr_mode = "host";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pcie_bus_clk {
|
||||||
|
clock-frequency = <100000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&pciec0 {
|
||||||
|
/* Map all possible DDR as inbound ranges */
|
||||||
|
dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&pfc {
|
||||||
|
du_pins: du {
|
||||||
|
groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp",
|
||||||
|
"du_clk_in_0";
|
||||||
|
function = "du";
|
||||||
|
};
|
||||||
|
|
||||||
|
hscif2_pins: hscif2 {
|
||||||
|
groups = "hscif2_data_a", "hscif2_ctrl_a";
|
||||||
|
function = "hscif2";
|
||||||
|
};
|
||||||
|
|
||||||
|
i2c1_pins: i2c1 {
|
||||||
|
groups = "i2c1_b";
|
||||||
|
function = "i2c1";
|
||||||
|
};
|
||||||
|
|
||||||
|
scif2_pins: scif2 {
|
||||||
|
groups = "scif2_data_a";
|
||||||
|
function = "scif2";
|
||||||
|
};
|
||||||
|
|
||||||
|
sdhi0_pins: sd0 {
|
||||||
|
groups = "sdhi0_data4", "sdhi0_ctrl";
|
||||||
|
function = "sdhi0";
|
||||||
|
power-source = <3300>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sdhi0_pins_uhs: sd0_uhs {
|
||||||
|
groups = "sdhi0_data4", "sdhi0_ctrl";
|
||||||
|
function = "sdhi0";
|
||||||
|
power-source = <1800>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sdhi3_pins: sd3 {
|
||||||
|
groups = "sdhi3_data4", "sdhi3_ctrl";
|
||||||
|
function = "sdhi3";
|
||||||
|
power-source = <1800>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sound_clk_pins: sound_clk {
|
||||||
|
groups = "audio_clkout1_a";
|
||||||
|
function = "audio_clk";
|
||||||
|
};
|
||||||
|
|
||||||
|
sound_pins: sound {
|
||||||
|
groups = "ssi01239_ctrl", "ssi0_data";
|
||||||
|
function = "ssi";
|
||||||
|
};
|
||||||
|
|
||||||
|
usb30_pins: usb30 {
|
||||||
|
groups = "usb30", "usb30_id";
|
||||||
|
function = "usb30";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&rcar_sound {
|
||||||
|
pinctrl-0 = <&sound_pins &sound_clk_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
/* Single DAI */
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
|
||||||
|
/* audio_clkout0/1/2/3 */
|
||||||
|
#clock-cells = <1>;
|
||||||
|
clock-frequency = <11289600>;
|
||||||
|
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
rcar_sound,dai {
|
||||||
|
dai0 {
|
||||||
|
playback = <&ssi0 &src0 &dvc0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&rwdt {
|
||||||
|
timeout-sec = <60>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&scif2 {
|
||||||
|
pinctrl-0 = <&scif2_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdhi0 {
|
||||||
|
pinctrl-0 = <&sdhi0_pins>;
|
||||||
|
pinctrl-1 = <&sdhi0_pins_uhs>;
|
||||||
|
pinctrl-names = "default", "state_uhs";
|
||||||
|
|
||||||
|
vmmc-supply = <&vcc_sdhi0>;
|
||||||
|
vqmmc-supply = <&vccq_sdhi0>;
|
||||||
|
cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
|
||||||
|
bus-width = <4>;
|
||||||
|
sd-uhs-sdr50;
|
||||||
|
sd-uhs-sdr104;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdhi3 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&sdhi3_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
vmmc-supply = <&wlan_en_reg>;
|
||||||
|
bus-width = <4>;
|
||||||
|
non-removable;
|
||||||
|
cap-power-off-card;
|
||||||
|
keep-power-in-suspend;
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
wlcore: wlcore@2 {
|
||||||
|
compatible = "ti,wl1837";
|
||||||
|
reg = <2>;
|
||||||
|
interrupt-parent = <&gpio1>;
|
||||||
|
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb2_phy0 {
|
||||||
|
renesas,no-otg-pins;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb3_peri0 {
|
||||||
|
companion = <&xhci0>;
|
||||||
|
status = "okay";
|
||||||
|
usb-role-switch;
|
||||||
|
|
||||||
|
ports {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
port@0 {
|
||||||
|
reg = <0>;
|
||||||
|
usb3_hs_ep: endpoint {
|
||||||
|
remote-endpoint = <&hs_ep>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
port@1 {
|
||||||
|
reg = <1>;
|
||||||
|
usb3_role_switch: endpoint {
|
||||||
|
remote-endpoint = <&hd3ss3220_out_ep>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&xhci0 {
|
||||||
|
pinctrl-0 = <&usb30_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
status = "okay";
|
||||||
|
};
|
33
arch/arm/dts/r8a774c0-ek874-u-boot.dts
Normal file
33
arch/arm/dts/r8a774c0-ek874-u-boot.dts
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source extras for U-Boot for the Hihope board
|
||||||
|
*
|
||||||
|
* Copyright (C) 2021 Renesas Electronisc Corporation
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "r8a774c0-ek874.dts"
|
||||||
|
#include "r8a774c0-u-boot.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
aliases {
|
||||||
|
spi0 = &rpc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&rpc {
|
||||||
|
num-cs = <1>;
|
||||||
|
status = "okay";
|
||||||
|
spi-max-frequency = <50000000>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
flash0: spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "w25m512jv", "spi-flash", "jedec,spi-nor";
|
||||||
|
spi-max-frequency = <50000000>;
|
||||||
|
spi-tx-bus-width = <1>;
|
||||||
|
spi-rx-bus-width = <1>;
|
||||||
|
reg = <0>;
|
||||||
|
};
|
||||||
|
};
|
14
arch/arm/dts/r8a774c0-ek874.dts
Normal file
14
arch/arm/dts/r8a774c0-ek874.dts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source for the Silicon Linux RZ/G2E evaluation kit (EK874)
|
||||||
|
*
|
||||||
|
* Copyright (C) 2021 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "r8a774c0-cat874.dts"
|
||||||
|
#include "cat875.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Silicon Linux RZ/G2E evaluation kit EK874 (CAT874 + CAT875)";
|
||||||
|
compatible = "si-linux,cat875", "si-linux,cat874", "renesas,r8a774c0";
|
||||||
|
};
|
53
arch/arm/dts/r8a774c0-u-boot.dtsi
Normal file
53
arch/arm/dts/r8a774c0-u-boot.dtsi
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source extras for U-Boot on R8A774C0 SoC
|
||||||
|
*
|
||||||
|
* Copyright (C) 2021 Renesas Electronics Corp.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "r8a779x-u-boot.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
soc {
|
||||||
|
rpc: rpc@ee200000 {
|
||||||
|
compatible = "renesas,rcar-gen3-rpc", "renesas,rpc-r8a774c0";
|
||||||
|
reg = <0 0xee200000 0 0x100>, <0 0x08000000 0 0x04000000>;
|
||||||
|
clocks = <&cpg CPG_MOD 917>;
|
||||||
|
bank-width = <2>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/delete-node/ &can0;
|
||||||
|
/delete-node/ &can1;
|
||||||
|
/delete-node/ &canfd;
|
||||||
|
/delete-node/ &pwm0;
|
||||||
|
/delete-node/ &pwm1;
|
||||||
|
/delete-node/ &pwm2;
|
||||||
|
/delete-node/ &pwm3;
|
||||||
|
/delete-node/ &pwm4;
|
||||||
|
/delete-node/ &pwm5;
|
||||||
|
/delete-node/ &pwm6;
|
||||||
|
/delete-node/ &vin4;
|
||||||
|
/delete-node/ &vin5;
|
||||||
|
/delete-node/ &rcar_sound;
|
||||||
|
/delete-node/ &audma0;
|
||||||
|
/delete-node/ &sdhi1;
|
||||||
|
/delete-node/ &sdhi3;
|
||||||
|
/delete-node/ &vspb0;
|
||||||
|
/delete-node/ &vspd0;
|
||||||
|
/delete-node/ &vspd1;
|
||||||
|
/delete-node/ &vspi0;
|
||||||
|
/delete-node/ &fcpvb0;
|
||||||
|
/delete-node/ &fcpvd0;
|
||||||
|
/delete-node/ &fcpvd1;
|
||||||
|
/delete-node/ &fcpvi0;
|
||||||
|
/delete-node/ &csi40;
|
||||||
|
/delete-node/ &du;
|
||||||
|
/delete-node/ &lvds0;
|
||||||
|
/delete-node/ &lvds1;
|
||||||
|
/delete-node/ &hdmi_con_out;
|
||||||
|
/delete-node/ &sound;
|
||||||
|
/delete-node/ &tda19988;
|
@ -256,7 +256,7 @@
|
|||||||
resets = <&cpg 906>;
|
resets = <&cpg 906>;
|
||||||
};
|
};
|
||||||
|
|
||||||
pfc: pin-controller@e6060000 {
|
pfc: pinctrl@e6060000 {
|
||||||
compatible = "renesas,pfc-r8a774c0";
|
compatible = "renesas,pfc-r8a774c0";
|
||||||
reg = <0 0xe6060000 0 0x508>;
|
reg = <0 0xe6060000 0 0x508>;
|
||||||
};
|
};
|
||||||
@ -960,6 +960,7 @@
|
|||||||
power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
|
power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
|
||||||
resets = <&cpg 812>;
|
resets = <&cpg 812>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
|
rx-internal-delay-ps = <0>;
|
||||||
iommus = <&ipmmu_ds0 16>;
|
iommus = <&ipmmu_ds0 16>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -1214,9 +1215,8 @@
|
|||||||
reg = <0 0xe6ea0000 0 0x0064>;
|
reg = <0 0xe6ea0000 0 0x0064>;
|
||||||
interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&cpg CPG_MOD 210>;
|
clocks = <&cpg CPG_MOD 210>;
|
||||||
dmas = <&dmac1 0x43>, <&dmac1 0x42>,
|
dmas = <&dmac0 0x43>, <&dmac0 0x42>;
|
||||||
<&dmac2 0x43>, <&dmac2 0x42>;
|
dma-names = "tx", "rx";
|
||||||
dma-names = "tx", "rx", "tx", "rx";
|
|
||||||
power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
|
power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
|
||||||
resets = <&cpg 210>;
|
resets = <&cpg 210>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -1698,6 +1698,25 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pciec0_ep: pcie-ep@fe000000 {
|
||||||
|
compatible = "renesas,r8a774c0-pcie-ep",
|
||||||
|
"renesas,rcar-gen3-pcie-ep";
|
||||||
|
reg = <0x0 0xfe000000 0 0x80000>,
|
||||||
|
<0x0 0xfe100000 0 0x100000>,
|
||||||
|
<0x0 0xfe200000 0 0x200000>,
|
||||||
|
<0x0 0x30000000 0 0x8000000>,
|
||||||
|
<0x0 0x38000000 0 0x8000000>;
|
||||||
|
reg-names = "apb-base", "memory0", "memory1", "memory2", "memory3";
|
||||||
|
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&cpg CPG_MOD 319>;
|
||||||
|
clock-names = "pcie";
|
||||||
|
resets = <&cpg 319>;
|
||||||
|
power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
vspb0: vsp@fe960000 {
|
vspb0: vsp@fe960000 {
|
||||||
compatible = "renesas,vsp2";
|
compatible = "renesas,vsp2";
|
||||||
reg = <0 0xfe960000 0 0x8000>;
|
reg = <0 0xfe960000 0 0x8000>;
|
||||||
|
20
arch/arm/dts/r8a774e1-hihope-rzg2h-ex.dts
Normal file
20
arch/arm/dts/r8a774e1-hihope-rzg2h-ex.dts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source for the HiHope RZ/G2H sub board
|
||||||
|
*
|
||||||
|
* Copyright (C) 2020 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "r8a774e1-hihope-rzg2h.dts"
|
||||||
|
#include "hihope-rzg2-ex.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "HopeRun HiHope RZ/G2H with sub board";
|
||||||
|
compatible = "hoperun,hihope-rzg2-ex", "hoperun,hihope-rzg2h",
|
||||||
|
"renesas,r8a774e1";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Set SW43 = ON and SW1001[7] = OFF for SATA port to be activated */
|
||||||
|
&sata {
|
||||||
|
status = "okay";
|
||||||
|
};
|
27
arch/arm/dts/r8a774e1-hihope-rzg2h-u-boot.dts
Normal file
27
arch/arm/dts/r8a774e1-hihope-rzg2h-u-boot.dts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source extras for U-Boot for the Hihope RZ/G2H board
|
||||||
|
*
|
||||||
|
* Copyright (C) 2020 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "r8a774e1-hihope-rzg2h-ex.dts"
|
||||||
|
#include "r8a774e1-u-boot.dtsi"
|
||||||
|
|
||||||
|
&gpio3 {
|
||||||
|
bt_reg_on{
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <13 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-low;
|
||||||
|
line-name = "bt-reg-on";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio4 {
|
||||||
|
wlan_reg_on{
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <6 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-low;
|
||||||
|
line-name = "wlan-reg-on";
|
||||||
|
};
|
||||||
|
};
|
41
arch/arm/dts/r8a774e1-hihope-rzg2h.dts
Normal file
41
arch/arm/dts/r8a774e1-hihope-rzg2h.dts
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source for the HiHope RZ/G2H main board
|
||||||
|
*
|
||||||
|
* Copyright (C) 2020 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include "r8a774e1.dtsi"
|
||||||
|
#include "hihope-rev4.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "HopeRun HiHope RZ/G2H main board based on r8a774e1";
|
||||||
|
compatible = "hoperun,hihope-rzg2h", "renesas,r8a774e1";
|
||||||
|
|
||||||
|
memory@48000000 {
|
||||||
|
device_type = "memory";
|
||||||
|
/* first 128MB is reserved for secure area. */
|
||||||
|
reg = <0x0 0x48000000 0x0 0x78000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
memory@500000000 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x5 0x00000000 0x0 0x80000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&du {
|
||||||
|
clocks = <&cpg CPG_MOD 724>,
|
||||||
|
<&cpg CPG_MOD 723>,
|
||||||
|
<&cpg CPG_MOD 721>,
|
||||||
|
<&versaclock5 1>,
|
||||||
|
<&x302_clk>,
|
||||||
|
<&versaclock5 2>;
|
||||||
|
clock-names = "du.0", "du.1", "du.3",
|
||||||
|
"dclkin.0", "dclkin.1", "dclkin.3";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdhi3 {
|
||||||
|
mmc-hs400-1_8v;
|
||||||
|
};
|
59
arch/arm/dts/r8a774e1-u-boot.dtsi
Normal file
59
arch/arm/dts/r8a774e1-u-boot.dtsi
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Device Tree Source extras for U-Boot on RZ/G2 R8A774E1 SoC
|
||||||
|
*
|
||||||
|
* Copyright (C) 2020 Renesas Electronics Corp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "r8a779x-u-boot.dtsi"
|
||||||
|
|
||||||
|
&extalr_clk {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
/delete-node/ &audma0;
|
||||||
|
/delete-node/ &audma1;
|
||||||
|
/delete-node/ &can0;
|
||||||
|
/delete-node/ &can1;
|
||||||
|
/delete-node/ &canfd;
|
||||||
|
/delete-node/ &csi20;
|
||||||
|
/delete-node/ &csi40;
|
||||||
|
/delete-node/ &du;
|
||||||
|
/delete-node/ &fcpf0;
|
||||||
|
/delete-node/ &fcpf1;
|
||||||
|
/delete-node/ &fcpvb0;
|
||||||
|
/delete-node/ &fcpvb1;
|
||||||
|
/delete-node/ &fcpvd0;
|
||||||
|
/delete-node/ &fcpvd1;
|
||||||
|
/delete-node/ &fcpvi0;
|
||||||
|
/delete-node/ &fcpvi1;
|
||||||
|
/delete-node/ &hdmi0;
|
||||||
|
/delete-node/ &lvds0;
|
||||||
|
/delete-node/ &rcar_sound;
|
||||||
|
/delete-node/ &sdhi2;
|
||||||
|
/delete-node/ &sound_card;
|
||||||
|
/delete-node/ &vin0;
|
||||||
|
/delete-node/ &vin1;
|
||||||
|
/delete-node/ &vin2;
|
||||||
|
/delete-node/ &vin3;
|
||||||
|
/delete-node/ &vin4;
|
||||||
|
/delete-node/ &vin5;
|
||||||
|
/delete-node/ &vin6;
|
||||||
|
/delete-node/ &vin7;
|
||||||
|
/delete-node/ &vspbc;
|
||||||
|
/delete-node/ &vspbd;
|
||||||
|
/delete-node/ &vspd0;
|
||||||
|
/delete-node/ &vspd1;
|
||||||
|
/delete-node/ &vspi0;
|
||||||
|
/delete-node/ &vspi1;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
/delete-node/ hdmi0-out;
|
||||||
|
};
|
||||||
|
|
||||||
|
/ {
|
||||||
|
soc {
|
||||||
|
/delete-node/ fdp1@fe940000;
|
||||||
|
/delete-node/ fdp1@fe944000;
|
||||||
|
};
|
||||||
|
};
|
@ -51,7 +51,7 @@
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
ds23 {
|
led-ds23 {
|
||||||
label = "ds23";
|
label = "ds23";
|
||||||
gpios = <&gpio0 10 0>;
|
gpios = <&gpio0 10 0>;
|
||||||
linux,default-trigger = "heartbeat";
|
linux,default-trigger = "heartbeat";
|
||||||
|
@ -112,7 +112,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
accelerometer@53 {
|
accelerometer@53 {
|
||||||
compatible = "adi,adxl345", "adxl345", "adi,adxl34x", "adxl34x";
|
compatible = "adi,adxl345";
|
||||||
reg = <0x53>;
|
reg = <0x53>;
|
||||||
interrupt-parent = <&intc>;
|
interrupt-parent = <&intc>;
|
||||||
interrupts = <0x0 0x1e 0x4>;
|
interrupts = <0x0 0x1e 0x4>;
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
gpio-leds {
|
gpio-leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
ld4 {
|
led-ld4 {
|
||||||
label = "zynq-zybo-z7:green:ld4";
|
label = "zynq-zybo-z7:green:ld4";
|
||||||
gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
@ -284,18 +284,16 @@
|
|||||||
clocks = <&zynqmp_clk AMS_REF>;
|
clocks = <&zynqmp_clk AMS_REF>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&zynqmp_dpsub {
|
|
||||||
clocks = <&dp_aclk>, <&zynqmp_clk DP_AUDIO_REF>, <&zynqmp_clk DP_VIDEO_REF>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&xlnx_dpdma {
|
|
||||||
clocks = <&zynqmp_clk DPDMA_REF>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&zynqmp_dp_snd_codec0 {
|
|
||||||
clocks = <&zynqmp_clk DP_AUDIO_REF>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&zynqmp_pcap {
|
&zynqmp_pcap {
|
||||||
clocks = <&zynqmp_clk PCAP>;
|
clocks = <&zynqmp_clk PCAP>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpdma {
|
||||||
|
clocks = <&zynqmp_clk DPDMA_REF>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpsub {
|
||||||
|
clocks = <&zynqmp_clk TOPSW_LSBUS>,
|
||||||
|
<&zynqmp_clk DP_AUDIO_REF>,
|
||||||
|
<&zynqmp_clk DP_VIDEO_REF>;
|
||||||
|
};
|
||||||
|
@ -88,9 +88,6 @@
|
|||||||
reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
|
reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
|
||||||
/* xlnx,phy-type = <PHY_TYPE_SGMII>; */
|
/* xlnx,phy-type = <PHY_TYPE_SGMII>; */
|
||||||
};
|
};
|
||||||
/* phy-names = "...";
|
|
||||||
phys = <&lane0 PHY_TYPE_SGMII ... >
|
|
||||||
Note: lane0 sgmii/lane1 usb3 */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpio {
|
&gpio {
|
||||||
|
@ -118,9 +118,6 @@
|
|||||||
reg = <0>;
|
reg = <0>;
|
||||||
/* xlnx,phy-type = <PHY_TYPE_SGMII>; */
|
/* xlnx,phy-type = <PHY_TYPE_SGMII>; */
|
||||||
};
|
};
|
||||||
/* phy-names = "...";
|
|
||||||
phys = <&lane0 PHY_TYPE_SGMII ... >
|
|
||||||
Note: lane0 sgmii/lane1 usb3 */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpio {
|
&gpio {
|
||||||
|
@ -51,6 +51,8 @@
|
|||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
|
compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
non-removable;
|
||||||
|
bus-width = <8>;
|
||||||
reg = <0x0 0xff160000 0x0 0x1000>;
|
reg = <0x0 0xff160000 0x0 0x1000>;
|
||||||
clock-names = "clk_xin", "clk_ahb";
|
clock-names = "clk_xin", "clk_ahb";
|
||||||
clocks = <&clk_xin &clk_xin>;
|
clocks = <&clk_xin &clk_xin>;
|
||||||
|
@ -51,6 +51,8 @@
|
|||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
|
compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
non-removable;
|
||||||
|
bus-width = <8>;
|
||||||
reg = <0x0 0xff170000 0x0 0x1000>;
|
reg = <0x0 0xff170000 0x0 0x1000>;
|
||||||
clock-names = "clk_xin", "clk_ahb";
|
clock-names = "clk_xin", "clk_ahb";
|
||||||
clocks = <&clk_xin &clk_xin>;
|
clocks = <&clk_xin &clk_xin>;
|
||||||
|
@ -78,8 +78,6 @@
|
|||||||
ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
|
ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
|
||||||
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
||||||
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
||||||
phy-names = "sata-phy";
|
|
||||||
phys = <&lane0 PHY_TYPE_SATA 0 0 125000000>, <&lane1 PHY_TYPE_SATA 1 1 125000000>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
|
@ -175,26 +175,11 @@
|
|||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpdma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&zynqmp_dpsub {
|
&zynqmp_dpsub {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&zynqmp_dp_snd_pcm0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&zynqmp_dp_snd_pcm1 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&zynqmp_dp_snd_card0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&zynqmp_dp_snd_codec0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&xlnx_dpdma {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
@ -124,6 +124,10 @@
|
|||||||
reg = <0x0>;
|
reg = <0x0>;
|
||||||
#address-cells = <0x2>;
|
#address-cells = <0x2>;
|
||||||
#size-cells = <0x1>;
|
#size-cells = <0x1>;
|
||||||
|
nand-ecc-mode = "soft";
|
||||||
|
nand-ecc-algo = "bch";
|
||||||
|
nand-rb = <0>;
|
||||||
|
label = "main-storage-0";
|
||||||
|
|
||||||
partition@0 { /* for testing purpose */
|
partition@0 { /* for testing purpose */
|
||||||
label = "nand-fsbl-uboot";
|
label = "nand-fsbl-uboot";
|
||||||
@ -154,6 +158,10 @@
|
|||||||
reg = <0x1>;
|
reg = <0x1>;
|
||||||
#address-cells = <0x2>;
|
#address-cells = <0x2>;
|
||||||
#size-cells = <0x1>;
|
#size-cells = <0x1>;
|
||||||
|
nand-ecc-mode = "soft";
|
||||||
|
nand-ecc-algo = "bch";
|
||||||
|
nand-rb = <0>;
|
||||||
|
label = "main-storage-1";
|
||||||
|
|
||||||
partition@0 { /* for testing purpose */
|
partition@0 { /* for testing purpose */
|
||||||
label = "nand1-fsbl-uboot";
|
label = "nand1-fsbl-uboot";
|
||||||
|
@ -119,7 +119,7 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&xlnx_dpdma {
|
&zynqmp_dpdma {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -69,27 +69,27 @@
|
|||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
ds2 {
|
led-ds2 {
|
||||||
label = "ds2";
|
label = "ds2";
|
||||||
gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
|
||||||
linux,default-trigger = "heartbeat";
|
linux,default-trigger = "heartbeat";
|
||||||
};
|
};
|
||||||
|
|
||||||
ds3 {
|
led-ds3 {
|
||||||
label = "ds3";
|
label = "ds3";
|
||||||
gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
|
||||||
linux,default-trigger = "phy0tx"; /* WLAN tx */
|
linux,default-trigger = "phy0tx"; /* WLAN tx */
|
||||||
default-state = "off";
|
default-state = "off";
|
||||||
};
|
};
|
||||||
|
|
||||||
ds4 {
|
led-ds4 {
|
||||||
label = "ds4";
|
label = "ds4";
|
||||||
gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
|
||||||
linux,default-trigger = "phy0rx"; /* WLAN rx */
|
linux,default-trigger = "phy0rx"; /* WLAN rx */
|
||||||
default-state = "off";
|
default-state = "off";
|
||||||
};
|
};
|
||||||
|
|
||||||
ds5 {
|
led-ds5 {
|
||||||
label = "ds5";
|
label = "ds5";
|
||||||
gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
|
||||||
linux,default-trigger = "bluetooth-power";
|
linux,default-trigger = "bluetooth-power";
|
||||||
@ -130,6 +130,18 @@
|
|||||||
compatible = "iio-hwmon";
|
compatible = "iio-hwmon";
|
||||||
io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
|
io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
si5335a_0: clk26 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <26000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
si5335a_1: clk27 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <27000000>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&dcc {
|
&dcc {
|
||||||
@ -212,7 +224,7 @@
|
|||||||
compatible = "ti,tps65086";
|
compatible = "ti,tps65086";
|
||||||
reg = <0x5e>;
|
reg = <0x5e>;
|
||||||
interrupt-parent = <&gpio>;
|
interrupt-parent = <&gpio>;
|
||||||
interrupts = <77 GPIO_ACTIVE_LOW>;
|
interrupts = <77 IRQ_TYPE_LEVEL_LOW>;
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
};
|
};
|
||||||
@ -250,6 +262,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&psgtr {
|
||||||
|
status = "okay";
|
||||||
|
/* usb3, dps */
|
||||||
|
clocks = <&si5335a_0>, <&si5335a_1>;
|
||||||
|
clock-names = "ref0", "ref1";
|
||||||
|
};
|
||||||
|
|
||||||
&rtc {
|
&rtc {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -281,10 +300,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&serdes {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&spi0 { /* Low Speed connector */
|
&spi0 { /* Low Speed connector */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
label = "LS-SPI0";
|
label = "LS-SPI0";
|
||||||
@ -318,8 +333,6 @@
|
|||||||
&dwc3_0 {
|
&dwc3_0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
dr_mode = "peripheral";
|
dr_mode = "peripheral";
|
||||||
phy-names = "usb3-phy";
|
|
||||||
phys = <&lane2 PHY_TYPE_USB3 0 0 26000000>;
|
|
||||||
maximum-speed = "super-speed";
|
maximum-speed = "super-speed";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -331,8 +344,6 @@
|
|||||||
&dwc3_1 {
|
&dwc3_1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
phy-names = "usb3-phy";
|
|
||||||
phys = <&lane3 PHY_TYPE_USB3 1 0 26000000>;
|
|
||||||
maximum-speed = "super-speed";
|
maximum-speed = "super-speed";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -347,3 +358,14 @@
|
|||||||
&ams_ps {
|
&ams_ps {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpdma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpsub {
|
||||||
|
status = "okay";
|
||||||
|
phy-names = "dp-phy0", "dp-phy1";
|
||||||
|
phys = <&psgtr 1 PHY_TYPE_DP 0 1>,
|
||||||
|
<&psgtr 0 PHY_TYPE_DP 1 1>;
|
||||||
|
};
|
||||||
|
@ -137,6 +137,19 @@
|
|||||||
compatible = "iio-hwmon";
|
compatible = "iio-hwmon";
|
||||||
io-channels = <&u75 0>, <&u75 1>, <&u75 2>, <&u75 3>;
|
io-channels = <&u75 0>, <&u75 1>, <&u75 2>, <&u75 3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* 48MHz reference crystal */
|
||||||
|
ref48: ref48M {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <48000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
refhdmi: refhdmi {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <114285000>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&can1 {
|
&can1 {
|
||||||
@ -213,25 +226,25 @@
|
|||||||
gpio-line-names = "PS_GTR_LAN_SEL0", "PS_GTR_LAN_SEL1", "PS_GTR_LAN_SEL2", "PS_GTR_LAN_SEL3",
|
gpio-line-names = "PS_GTR_LAN_SEL0", "PS_GTR_LAN_SEL1", "PS_GTR_LAN_SEL2", "PS_GTR_LAN_SEL3",
|
||||||
"PCI_CLK_DIR_SEL", "IIC_MUX_RESET_B", "GEM3_EXP_RESET_B",
|
"PCI_CLK_DIR_SEL", "IIC_MUX_RESET_B", "GEM3_EXP_RESET_B",
|
||||||
"", "", "", "", "", "", "", "", "";
|
"", "", "", "", "", "", "", "", "";
|
||||||
gtr-sel0 {
|
gtr-sel0-hog {
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <0 0>;
|
gpios = <0 0>;
|
||||||
output-low; /* PCIE = 0, DP = 1 */
|
output-low; /* PCIE = 0, DP = 1 */
|
||||||
line-name = "sel0";
|
line-name = "sel0";
|
||||||
};
|
};
|
||||||
gtr-sel1 {
|
gtr-sel1-hog {
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <1 0>;
|
gpios = <1 0>;
|
||||||
output-high; /* PCIE = 0, DP = 1 */
|
output-high; /* PCIE = 0, DP = 1 */
|
||||||
line-name = "sel1";
|
line-name = "sel1";
|
||||||
};
|
};
|
||||||
gtr-sel2 {
|
gtr-sel2-hog {
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <2 0>;
|
gpios = <2 0>;
|
||||||
output-high; /* PCIE = 0, USB0 = 1 */
|
output-high; /* PCIE = 0, USB0 = 1 */
|
||||||
line-name = "sel2";
|
line-name = "sel2";
|
||||||
};
|
};
|
||||||
gtr-sel3 {
|
gtr-sel3-hog {
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <3 0>;
|
gpios = <3 0>;
|
||||||
output-high; /* PCIE = 0, SATA = 1 */
|
output-high; /* PCIE = 0, SATA = 1 */
|
||||||
@ -494,8 +507,54 @@
|
|||||||
si5341: clock-generator@36 { /* SI5341 - u69 */
|
si5341: clock-generator@36 { /* SI5341 - u69 */
|
||||||
compatible = "silabs,si5341";
|
compatible = "silabs,si5341";
|
||||||
reg = <0x36>;
|
reg = <0x36>;
|
||||||
};
|
#clock-cells = <2>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
clocks = <&ref48>;
|
||||||
|
clock-names = "xtal";
|
||||||
|
clock-output-names = "si5341";
|
||||||
|
|
||||||
|
si5341_0: out@0 {
|
||||||
|
/* refclk0 for PS-GT, used for DP */
|
||||||
|
reg = <0>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_2: out@2 {
|
||||||
|
/* refclk2 for PS-GT, used for USB3 */
|
||||||
|
reg = <2>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_3: out@3 {
|
||||||
|
/* refclk3 for PS-GT, used for SATA */
|
||||||
|
reg = <3>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_4: out@4 {
|
||||||
|
/* refclk4 for PS-GT, used for PCIE slot */
|
||||||
|
reg = <4>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_5: out@5 {
|
||||||
|
/* refclk5 for PS-GT, used for PCIE */
|
||||||
|
reg = <5>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_6: out@6 {
|
||||||
|
/* refclk6 PL CLK125 */
|
||||||
|
reg = <6>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_7: out@7 {
|
||||||
|
/* refclk7 PL CLK74 */
|
||||||
|
reg = <7>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_9: out@9 {
|
||||||
|
/* refclk9 used for PS_REF_CLK 33.3 MHz */
|
||||||
|
reg = <9>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
i2c@2 {
|
i2c@2 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -603,6 +662,13 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&psgtr {
|
||||||
|
status = "okay";
|
||||||
|
/* pcie, sata, usb3, dp */
|
||||||
|
clocks = <&si5341 0 5>, <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
|
||||||
|
clock-names = "ref0", "ref1", "ref2", "ref3";
|
||||||
|
};
|
||||||
|
|
||||||
&qspi {
|
&qspi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
is-dual = <1>;
|
is-dual = <1>;
|
||||||
@ -649,7 +715,7 @@
|
|||||||
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
||||||
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
||||||
phy-names = "sata-phy";
|
phy-names = "sata-phy";
|
||||||
phys = <&lane3 PHY_TYPE_SATA 1 1 125000000>;
|
phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* SD1 with level shifter */
|
/* SD1 with level shifter */
|
||||||
@ -663,10 +729,6 @@
|
|||||||
xlnx,mio-bank = <1>;
|
xlnx,mio-bank = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&serdes {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -684,8 +746,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
snps,usb3_lpm_capable;
|
snps,usb3_lpm_capable;
|
||||||
phy-names = "usb3-phy";
|
|
||||||
phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
|
|
||||||
maximum-speed = "super-speed";
|
maximum-speed = "super-speed";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -705,26 +765,12 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpdma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&zynqmp_dpsub {
|
&zynqmp_dpsub {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
phy-names = "dp-phy0";
|
||||||
|
phys = <&psgtr 1 PHY_TYPE_DP 0 3>;
|
||||||
&zynqmp_dp_snd_codec0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&zynqmp_dp_snd_pcm0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&zynqmp_dp_snd_pcm1 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&zynqmp_dp_snd_card0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&xlnx_dpdma {
|
|
||||||
status = "okay";
|
|
||||||
};
|
};
|
||||||
|
@ -40,6 +40,24 @@
|
|||||||
device_type = "memory";
|
device_type = "memory";
|
||||||
reg = <0x0 0x0 0x0 0x80000000>;
|
reg = <0x0 0x0 0x0 0x80000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
clock_8t49n287_5: clk125 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <125000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
clock_8t49n287_2: clk26 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <26000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
clock_8t49n287_3: clk27 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <27000000>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&can1 {
|
&can1 {
|
||||||
@ -226,6 +244,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&psgtr {
|
||||||
|
status = "okay";
|
||||||
|
/* nc, sata, usb3, dp */
|
||||||
|
clocks = <&clock_8t49n287_5>, <&clock_8t49n287_2>, <&clock_8t49n287_3>;
|
||||||
|
clock-names = "ref1", "ref2", "ref3";
|
||||||
|
};
|
||||||
|
|
||||||
&rtc {
|
&rtc {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -242,7 +267,7 @@
|
|||||||
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
||||||
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
||||||
phy-names = "sata-phy";
|
phy-names = "sata-phy";
|
||||||
phys = <&lane3 PHY_TYPE_SATA 1 1 125000000>;
|
phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* SD1 with level shifter */
|
/* SD1 with level shifter */
|
||||||
@ -253,10 +278,6 @@
|
|||||||
disable-wp;
|
disable-wp;
|
||||||
};
|
};
|
||||||
|
|
||||||
&serdes {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -274,8 +295,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
snps,usb3_lpm_capable;
|
snps,usb3_lpm_capable;
|
||||||
phy-names = "usb3-phy";
|
|
||||||
phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
|
|
||||||
maximum-speed = "super-speed";
|
maximum-speed = "super-speed";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -294,3 +313,14 @@
|
|||||||
&ams_pl {
|
&ams_pl {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpdma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpsub {
|
||||||
|
status = "okay";
|
||||||
|
phy-names = "dp-phy0", "dp-phy1";
|
||||||
|
phys = <&psgtr 1 PHY_TYPE_DP 0 3>,
|
||||||
|
<&psgtr 0 PHY_TYPE_DP 1 3>;
|
||||||
|
};
|
||||||
|
@ -46,6 +46,24 @@
|
|||||||
compatible = "iio-hwmon";
|
compatible = "iio-hwmon";
|
||||||
io-channels = <&u183 0>, <&u183 1>, <&u183 2>, <&u183 3>;
|
io-channels = <&u183 0>, <&u183 1>, <&u183 2>, <&u183 3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
clock_8t49n287_5: clk125 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <125000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
clock_8t49n287_2: clk26 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <26000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
clock_8t49n287_3: clk27 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <27000000>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&can1 {
|
&can1 {
|
||||||
@ -243,6 +261,13 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&psgtr {
|
||||||
|
status = "okay";
|
||||||
|
/* nc, sata, usb3, dp */
|
||||||
|
clocks = <&clock_8t49n287_5>, <&clock_8t49n287_2>, <&clock_8t49n287_3>;
|
||||||
|
clock-names = "ref1", "ref2", "ref3";
|
||||||
|
};
|
||||||
|
|
||||||
&sata {
|
&sata {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
/* SATA OOB timing settings */
|
/* SATA OOB timing settings */
|
||||||
@ -255,7 +280,7 @@
|
|||||||
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
||||||
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
||||||
phy-names = "sata-phy";
|
phy-names = "sata-phy";
|
||||||
phys = <&lane3 PHY_TYPE_SATA 1 1 125000000>;
|
phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* SD1 with level shifter */
|
/* SD1 with level shifter */
|
||||||
@ -266,10 +291,6 @@
|
|||||||
disable-wp;
|
disable-wp;
|
||||||
};
|
};
|
||||||
|
|
||||||
&serdes {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -287,8 +308,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
snps,usb3_lpm_capable;
|
snps,usb3_lpm_capable;
|
||||||
phy-names = "usb3-phy";
|
|
||||||
phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
|
|
||||||
maximum-speed = "super-speed";
|
maximum-speed = "super-speed";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -307,3 +326,14 @@
|
|||||||
&ams_pl {
|
&ams_pl {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpdma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpsub {
|
||||||
|
status = "okay";
|
||||||
|
phy-names = "dp-phy0", "dp-phy1";
|
||||||
|
phys = <&psgtr 1 PHY_TYPE_DP 0 3>,
|
||||||
|
<&psgtr 0 PHY_TYPE_DP 1 3>;
|
||||||
|
};
|
||||||
|
@ -137,6 +137,19 @@
|
|||||||
compatible = "iio-hwmon";
|
compatible = "iio-hwmon";
|
||||||
io-channels = <&u75 0>, <&u75 1>, <&u75 2>, <&u75 3>;
|
io-channels = <&u75 0>, <&u75 1>, <&u75 2>, <&u75 3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* 48MHz reference crystal */
|
||||||
|
ref48: ref48M {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <48000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
refhdmi: refhdmi {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <114285000>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&can1 {
|
&can1 {
|
||||||
@ -147,6 +160,18 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpdma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&zynqmp_dpsub {
|
||||||
|
status = "okay";
|
||||||
|
phy-names = "dp-phy0", "dp-phy1";
|
||||||
|
phys = <&psgtr 1 PHY_TYPE_DP 0 3>,
|
||||||
|
<&psgtr 0 PHY_TYPE_DP 1 3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* fpd_dma clk 667MHz, lpd_dma 500MHz */
|
||||||
&fpd_dma_chan1 {
|
&fpd_dma_chan1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -490,8 +515,45 @@
|
|||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
si5341: clock-generator@36 { /* SI5341 - u69 */
|
si5341: clock-generator@36 { /* SI5341 - u69 */
|
||||||
compatible = "si5341";
|
compatible = "silabs,si5341";
|
||||||
reg = <0x36>;
|
reg = <0x36>;
|
||||||
|
#clock-cells = <2>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
clocks = <&ref48>;
|
||||||
|
clock-names = "xtal";
|
||||||
|
clock-output-names = "si5341";
|
||||||
|
|
||||||
|
si5341_0: out@0 {
|
||||||
|
/* refclk0 for PS-GT, used for DP */
|
||||||
|
reg = <0>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_2: out@2 {
|
||||||
|
/* refclk2 for PS-GT, used for USB3 */
|
||||||
|
reg = <2>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_3: out@3 {
|
||||||
|
/* refclk3 for PS-GT, used for SATA */
|
||||||
|
reg = <3>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_6: out@6 {
|
||||||
|
/* refclk6 PL CLK125 */
|
||||||
|
reg = <6>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_7: out@7 {
|
||||||
|
/* refclk7 PL CLK74 */
|
||||||
|
reg = <7>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_9: out@9 {
|
||||||
|
/* refclk9 used for PS_REF_CLK 33.3 MHz */
|
||||||
|
reg = <9>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -528,8 +590,23 @@
|
|||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <4>;
|
reg = <4>;
|
||||||
si5328: clock-generator@69 {/* SI5328 - u20 */
|
si5328: clock-generator@69 {/* SI5328 - u20 */
|
||||||
compatible = "silabs,si5328";
|
|
||||||
reg = <0x69>;
|
reg = <0x69>;
|
||||||
|
/*
|
||||||
|
* Chip has interrupt present connected to PL
|
||||||
|
* interrupt-parent = <&>;
|
||||||
|
* interrupts = <>;
|
||||||
|
*/
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
clocks = <&refhdmi>;
|
||||||
|
clock-names = "xtal";
|
||||||
|
clock-output-names = "si5328";
|
||||||
|
|
||||||
|
si5328_clk: clk0@0 {
|
||||||
|
reg = <0>;
|
||||||
|
clock-frequency = <27000000>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
i2c@5 {
|
i2c@5 {
|
||||||
@ -601,6 +678,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&psgtr {
|
||||||
|
status = "okay";
|
||||||
|
/* nc, sata, usb3, dp */
|
||||||
|
clocks = <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
|
||||||
|
clock-names = "ref1", "ref2", "ref3";
|
||||||
|
};
|
||||||
|
|
||||||
&qspi {
|
&qspi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
is-dual = <1>;
|
is-dual = <1>;
|
||||||
@ -647,7 +731,7 @@
|
|||||||
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
||||||
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
||||||
phy-names = "sata-phy";
|
phy-names = "sata-phy";
|
||||||
phys = <&lane3 PHY_TYPE_SATA 1 1 125000000>;
|
phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* SD1 with level shifter */
|
/* SD1 with level shifter */
|
||||||
@ -660,10 +744,6 @@
|
|||||||
xlnx,mio-bank = <1>;
|
xlnx,mio-bank = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&serdes {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -681,8 +761,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
snps,usb3_lpm_capable;
|
snps,usb3_lpm_capable;
|
||||||
phy-names = "usb3-phy";
|
|
||||||
phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&watchdog0 {
|
&watchdog0 {
|
||||||
|
@ -121,6 +121,13 @@
|
|||||||
compatible = "iio-hwmon";
|
compatible = "iio-hwmon";
|
||||||
io-channels = <&u79 0>, <&u79 1>, <&u79 2>, <&u79 3>;
|
io-channels = <&u79 0>, <&u79 1>, <&u79 2>, <&u79 3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* 48MHz reference crystal */
|
||||||
|
ref48: ref48M {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <48000000>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&dcc {
|
&dcc {
|
||||||
@ -386,10 +393,46 @@
|
|||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
si5341: clock-generator@36 { /* SI5341 - u46 */
|
si5341: clock-generator@36 { /* SI5341 - u46 */
|
||||||
compatible = "si5341";
|
compatible = "silabs,si5341";
|
||||||
reg = <0x36>;
|
reg = <0x36>;
|
||||||
};
|
#clock-cells = <2>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
clocks = <&ref48>;
|
||||||
|
clock-names = "xtal";
|
||||||
|
clock-output-names = "si5341";
|
||||||
|
|
||||||
|
si5341_0: out@0 {
|
||||||
|
/* refclk0 for PS-GT, used for DP */
|
||||||
|
reg = <0>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_2: out@2 {
|
||||||
|
/* refclk2 for PS-GT, used for USB3 */
|
||||||
|
reg = <2>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_3: out@3 {
|
||||||
|
/* refclk3 for PS-GT, used for SATA */
|
||||||
|
reg = <3>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_5: out@5 {
|
||||||
|
/* refclk5 PL CLK100 */
|
||||||
|
reg = <5>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_6: out@6 {
|
||||||
|
/* refclk6 PL CLK125 */
|
||||||
|
reg = <6>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
si5341_9: out@9 {
|
||||||
|
/* refclk9 used for PS_REF_CLK 33.3 MHz */
|
||||||
|
reg = <9>;
|
||||||
|
always-on;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
i2c@2 {
|
i2c@2 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -423,8 +466,8 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <4>;
|
reg = <4>;
|
||||||
si5328: clock-generator@69 { /* SI5328 - u48 */
|
si5382: clock-generator@69 { /* SI5382 - u48 */
|
||||||
compatible = "silabs,si5328";
|
compatible = "silabs,si5382";
|
||||||
reg = <0x69>;
|
reg = <0x69>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -511,6 +554,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&psgtr {
|
||||||
|
status = "okay";
|
||||||
|
/* nc, sata, usb3, dp */
|
||||||
|
clocks = <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
|
||||||
|
clock-names = "ref1", "ref2", "ref3";
|
||||||
|
};
|
||||||
|
|
||||||
&qspi {
|
&qspi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
is-dual = <1>;
|
is-dual = <1>;
|
||||||
@ -557,7 +607,7 @@
|
|||||||
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
||||||
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
||||||
phy-names = "sata-phy";
|
phy-names = "sata-phy";
|
||||||
phys = <&lane3 PHY_TYPE_SATA 1 3 125000000>;
|
phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* SD1 with level shifter */
|
/* SD1 with level shifter */
|
||||||
@ -571,10 +621,6 @@
|
|||||||
xlnx,mio-bank = <1>;
|
xlnx,mio-bank = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&serdes {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -582,12 +628,16 @@
|
|||||||
/* ULPI SMSC USB3320 */
|
/* ULPI SMSC USB3320 */
|
||||||
&usb0 {
|
&usb0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
dr_mode = "host";
|
||||||
};
|
};
|
||||||
|
|
||||||
&dwc3_0 {
|
&zynqmp_dpdma {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
dr_mode = "host";
|
};
|
||||||
snps,usb3_lpm_capable;
|
|
||||||
phy-names = "usb3-phy";
|
&zynqmp_dpsub {
|
||||||
phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
|
status = "okay";
|
||||||
|
phy-names = "dp-phy0", "dp-phy1";
|
||||||
|
phys = <&psgtr 1 PHY_TYPE_DP 0 1>,
|
||||||
|
<&psgtr 0 PHY_TYPE_DP 1 1>;
|
||||||
};
|
};
|
||||||
|
@ -120,6 +120,13 @@
|
|||||||
compatible = "iio-hwmon";
|
compatible = "iio-hwmon";
|
||||||
io-channels = <&dac_avcc 0>, <&dac_avcc 1>, <&dac_avcc 2>, <&dac_avcc 3>;
|
io-channels = <&dac_avcc 0>, <&dac_avcc 1>, <&dac_avcc 2>, <&dac_avcc 3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* 48MHz reference crystal */
|
||||||
|
ref48: ref48M {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <48000000>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&dcc {
|
&dcc {
|
||||||
@ -404,10 +411,41 @@
|
|||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
si5341: clock-generator@36 { /* SI5341 - u43 */
|
si5341: clock-generator@36 { /* SI5341 - u43 */
|
||||||
compatible = "si5341";
|
compatible = "silabs,si5341";
|
||||||
reg = <0x36>;
|
reg = <0x36>;
|
||||||
};
|
#clock-cells = <2>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
clocks = <&ref48>;
|
||||||
|
clock-names = "xtal";
|
||||||
|
clock-output-names = "si5341";
|
||||||
|
|
||||||
|
si5341_2: out@2 {
|
||||||
|
/* refclk2 for PS-GT, used for USB3 */
|
||||||
|
reg = <2>;
|
||||||
|
always-on; /* assigned-clocks does not enable, so do it here */
|
||||||
|
};
|
||||||
|
si5341_3: out@3 {
|
||||||
|
/* refclk3 for PS-GT, used for SATA */
|
||||||
|
reg = <3>;
|
||||||
|
always-on; /* assigned-clocks does not enable, so do it here */
|
||||||
|
};
|
||||||
|
si5341_5: out@5 {
|
||||||
|
/* refclk5 PL CLK100 */
|
||||||
|
reg = <5>;
|
||||||
|
always-on; /* assigned-clocks does not enable, so do it here */
|
||||||
|
};
|
||||||
|
si5341_6: out@6 {
|
||||||
|
/* refclk6 PL CLK125 */
|
||||||
|
reg = <6>;
|
||||||
|
always-on; /* assigned-clocks does not enable, so do it here */
|
||||||
|
};
|
||||||
|
si5341_9: out@9 {
|
||||||
|
/* refclk9 used for PS_REF_CLK 33.3 MHz */
|
||||||
|
reg = <9>;
|
||||||
|
always-on; /* assigned-clocks does not enable, so do it here */
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
i2c_si570_user_c0: i2c@2 {
|
i2c_si570_user_c0: i2c@2 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -441,7 +479,10 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <4>;
|
reg = <4>;
|
||||||
/* U409B - 8a34001 */
|
idt_8a34001: phc@5b {
|
||||||
|
compatible = "idt,8a34001"; /* u409B */
|
||||||
|
reg = <0x5b>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
i2c_clk104: i2c@5 {
|
i2c_clk104: i2c@5 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -538,6 +579,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&psgtr {
|
||||||
|
status = "okay";
|
||||||
|
/* pcie, sata, usb3, dp */
|
||||||
|
clocks = <&si5341 0 5>, <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
|
||||||
|
clock-names = "ref0", "ref1", "ref2", "ref3";
|
||||||
|
};
|
||||||
|
|
||||||
&rtc {
|
&rtc {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -553,8 +601,7 @@
|
|||||||
ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
|
ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
|
||||||
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
||||||
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
||||||
phy-names = "sata-phy";
|
phys = <&psgtr 3 PHY_TYPE_SATA 1 3>;
|
||||||
phys = <&lane3 PHY_TYPE_SATA 1 3 125000000>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* SD1 with level shifter */
|
/* SD1 with level shifter */
|
||||||
@ -568,10 +615,6 @@
|
|||||||
xlnx,mio-bank = <1>;
|
xlnx,mio-bank = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&serdes {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -585,6 +628,4 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
snps,usb3_lpm_capable;
|
snps,usb3_lpm_capable;
|
||||||
phy-names = "usb3-phy";
|
|
||||||
phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
|
|
||||||
};
|
};
|
||||||
|
@ -120,6 +120,20 @@
|
|||||||
compatible = "iio-hwmon";
|
compatible = "iio-hwmon";
|
||||||
io-channels = <&dac_avcc 0>, <&dac_avcc 1>, <&dac_avcc 2>, <&dac_avcc 3>;
|
io-channels = <&dac_avcc 0>, <&dac_avcc 1>, <&dac_avcc 2>, <&dac_avcc 3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* 48MHz reference crystal */
|
||||||
|
ref48: ref48M {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <48000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&psgtr {
|
||||||
|
status = "okay";
|
||||||
|
/* pcie, sata, usb3, dp */
|
||||||
|
clocks = <&si5341 0 5>, <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
|
||||||
|
clock-names = "ref0", "ref1", "ref2", "ref3";
|
||||||
};
|
};
|
||||||
|
|
||||||
&dcc {
|
&dcc {
|
||||||
@ -408,10 +422,41 @@
|
|||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
si5341: clock-generator@36 { /* SI5341 - u43 */
|
si5341: clock-generator@36 { /* SI5341 - u43 */
|
||||||
compatible = "si5341";
|
compatible = "silabs,si5341";
|
||||||
reg = <0x36>;
|
reg = <0x36>;
|
||||||
};
|
#clock-cells = <2>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
clocks = <&ref48>;
|
||||||
|
clock-names = "xtal";
|
||||||
|
clock-output-names = "si5341";
|
||||||
|
|
||||||
|
si5341_2: out@2 {
|
||||||
|
/* refclk2 for PS-GT, used for USB3 */
|
||||||
|
reg = <2>;
|
||||||
|
always-on; /* assigned-clocks does not enable, so do it here */
|
||||||
|
};
|
||||||
|
si5341_3: out@3 {
|
||||||
|
/* refclk3 for PS-GT, used for SATA */
|
||||||
|
reg = <3>;
|
||||||
|
always-on; /* assigned-clocks does not enable, so do it here */
|
||||||
|
};
|
||||||
|
si5341_5: out@5 {
|
||||||
|
/* refclk5 PL CLK100 */
|
||||||
|
reg = <5>;
|
||||||
|
always-on; /* assigned-clocks does not enable, so do it here */
|
||||||
|
};
|
||||||
|
si5341_6: out@6 {
|
||||||
|
/* refclk6 PL CLK125 */
|
||||||
|
reg = <6>;
|
||||||
|
always-on; /* assigned-clocks does not enable, so do it here */
|
||||||
|
};
|
||||||
|
si5341_9: out@9 {
|
||||||
|
/* refclk9 used for PS_REF_CLK 33.3 MHz */
|
||||||
|
reg = <9>;
|
||||||
|
always-on; /* assigned-clocks does not enable, so do it here */
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
i2c_si570_user_c0: i2c@2 {
|
i2c_si570_user_c0: i2c@2 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -445,7 +490,10 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <4>;
|
reg = <4>;
|
||||||
/* U409B - 8a34001 */
|
idt_8a34001: phc@5b {
|
||||||
|
compatible = "idt,8a34001"; /* u409B */
|
||||||
|
reg = <0x5b>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
i2c_clk104: i2c@5 {
|
i2c_clk104: i2c@5 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -557,8 +605,7 @@
|
|||||||
ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
|
ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
|
||||||
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
|
||||||
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
|
||||||
phy-names = "sata-phy";
|
phys = <&psgtr 3 PHY_TYPE_SATA 1 3>;
|
||||||
phys = <&lane3 PHY_TYPE_SATA 1 3 125000000>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* SD1 with level shifter */
|
/* SD1 with level shifter */
|
||||||
@ -572,10 +619,6 @@
|
|||||||
xlnx,mio-bank = <1>;
|
xlnx,mio-bank = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&serdes {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -589,6 +632,4 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
snps,usb3_lpm_capable;
|
snps,usb3_lpm_capable;
|
||||||
phy-names = "usb3-phy";
|
|
||||||
phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
|
|
||||||
};
|
};
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
* the License, or (at your option) any later version.
|
* the License, or (at your option) any later version.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <dt-bindings/dma/xlnx-zynqmp-dpdma.h>
|
||||||
#include <dt-bindings/power/xlnx-zynqmp-power.h>
|
#include <dt-bindings/power/xlnx-zynqmp-power.h>
|
||||||
#include <dt-bindings/reset/xlnx-zynqmp-resets.h>
|
#include <dt-bindings/reset/xlnx-zynqmp-resets.h>
|
||||||
|
|
||||||
@ -160,11 +161,25 @@
|
|||||||
mbox-names = "tx", "rx";
|
mbox-names = "tx", "rx";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nvmem_firmware {
|
||||||
|
compatible = "xlnx,zynqmp-nvmem-fw";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
soc_revision: soc_revision@0 {
|
||||||
|
reg = <0x0 0x4>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
zynqmp_pcap: pcap {
|
zynqmp_pcap: pcap {
|
||||||
compatible = "xlnx,zynqmp-pcap-fpga";
|
compatible = "xlnx,zynqmp-pcap-fpga";
|
||||||
clock-names = "ref_clk";
|
clock-names = "ref_clk";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xlnx_aes: zynqmp-aes {
|
||||||
|
compatible = "xlnx,zynqmp-aes";
|
||||||
|
};
|
||||||
|
|
||||||
zynqmp_reset: reset-controller {
|
zynqmp_reset: reset-controller {
|
||||||
compatible = "xlnx,zynqmp-reset";
|
compatible = "xlnx,zynqmp-reset";
|
||||||
#reset-cells = <1>;
|
#reset-cells = <1>;
|
||||||
@ -198,16 +213,6 @@
|
|||||||
ranges;
|
ranges;
|
||||||
};
|
};
|
||||||
|
|
||||||
nvmem_firmware {
|
|
||||||
compatible = "xlnx,zynqmp-nvmem-fw";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
soc_revision: soc_revision@0 {
|
|
||||||
reg = <0x0 0x4>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
amba: axi {
|
amba: axi {
|
||||||
compatible = "simple-bus";
|
compatible = "simple-bus";
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
@ -501,11 +506,11 @@
|
|||||||
interrupts = <0 112 4>;
|
interrupts = <0 112 4>;
|
||||||
};
|
};
|
||||||
|
|
||||||
nand0: nand@ff100000 {
|
nand0: nand-controller@ff100000 {
|
||||||
compatible = "arasan,nfc-v3p10";
|
compatible = "xlnx,zynqmp-nand-controller", "arasan,nfc-v3p10";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
reg = <0x0 0xff100000 0x0 0x1000>;
|
reg = <0x0 0xff100000 0x0 0x1000>;
|
||||||
clock-names = "clk_sys", "clk_flash";
|
clock-names = "controller", "bus";
|
||||||
interrupt-parent = <&gic>;
|
interrupt-parent = <&gic>;
|
||||||
interrupts = <0 14 4>;
|
interrupts = <0 14 4>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -667,6 +672,15 @@
|
|||||||
power-domains = <&zynqmp_firmware PD_QSPI>;
|
power-domains = <&zynqmp_firmware PD_QSPI>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
psgtr: phy@fd400000 {
|
||||||
|
compatible = "xlnx,zynqmp-psgtr-v1.1";
|
||||||
|
status = "disabled";
|
||||||
|
reg = <0x0 0xfd400000 0x0 0x40000>,
|
||||||
|
<0x0 0xfd3d0000 0x0 0x1000>;
|
||||||
|
reg-names = "serdes", "siou";
|
||||||
|
#phy-cells = <4>;
|
||||||
|
};
|
||||||
|
|
||||||
rtc: rtc@ffa60000 {
|
rtc: rtc@ffa60000 {
|
||||||
compatible = "xlnx,zynqmp-rtc";
|
compatible = "xlnx,zynqmp-rtc";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
@ -677,45 +691,6 @@
|
|||||||
calibration = <0x8000>;
|
calibration = <0x8000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
serdes: zynqmp_phy@fd400000 {
|
|
||||||
compatible = "xlnx,zynqmp-psgtr";
|
|
||||||
status = "disabled";
|
|
||||||
reg = <0x0 0xfd400000 0x0 0x40000>,
|
|
||||||
<0x0 0xfd3d0000 0x0 0x1000>,
|
|
||||||
<0x0 0xff5e0000 0x0 0x1000>;
|
|
||||||
reg-names = "serdes", "siou", "lpd";
|
|
||||||
nvmem-cells = <&soc_revision>;
|
|
||||||
nvmem-cell-names = "soc_revision";
|
|
||||||
resets = <&zynqmp_reset ZYNQMP_RESET_SATA>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_USB0_CORERESET>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_USB1_CORERESET>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_USB0_HIBERRESET>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_USB1_HIBERRESET>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_USB0_APB>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_USB1_APB>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_DP>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_GEM0>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_GEM1>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_GEM2>,
|
|
||||||
<&zynqmp_reset ZYNQMP_RESET_GEM3>;
|
|
||||||
reset-names = "sata_rst", "usb0_crst", "usb1_crst",
|
|
||||||
"usb0_hibrst", "usb1_hibrst", "usb0_apbrst",
|
|
||||||
"usb1_apbrst", "dp_rst", "gem0_rst",
|
|
||||||
"gem1_rst", "gem2_rst", "gem3_rst";
|
|
||||||
lane0: lane0 {
|
|
||||||
#phy-cells = <4>;
|
|
||||||
};
|
|
||||||
lane1: lane1 {
|
|
||||||
#phy-cells = <4>;
|
|
||||||
};
|
|
||||||
lane2: lane2 {
|
|
||||||
#phy-cells = <4>;
|
|
||||||
};
|
|
||||||
lane3: lane3 {
|
|
||||||
#phy-cells = <4>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sata: ahci@fd0c0000 {
|
sata: ahci@fd0c0000 {
|
||||||
compatible = "ceva,ahci-1v84";
|
compatible = "ceva,ahci-1v84";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
@ -740,11 +715,11 @@
|
|||||||
xlnx,device_id = <0>;
|
xlnx,device_id = <0>;
|
||||||
#stream-id-cells = <1>;
|
#stream-id-cells = <1>;
|
||||||
iommus = <&smmu 0x870>;
|
iommus = <&smmu 0x870>;
|
||||||
power-domains = <&zynqmp_firmware PD_SD_0>;
|
|
||||||
nvmem-cells = <&soc_revision>;
|
nvmem-cells = <&soc_revision>;
|
||||||
nvmem-cell-names = "soc_revision";
|
nvmem-cell-names = "soc_revision";
|
||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
clock-output-names = "clk_out_sd0", "clk_in_sd0";
|
clock-output-names = "clk_out_sd0", "clk_in_sd0";
|
||||||
|
power-domains = <&zynqmp_firmware PD_SD_0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
sdhci1: mmc@ff170000 {
|
sdhci1: mmc@ff170000 {
|
||||||
@ -758,11 +733,11 @@
|
|||||||
xlnx,device_id = <1>;
|
xlnx,device_id = <1>;
|
||||||
#stream-id-cells = <1>;
|
#stream-id-cells = <1>;
|
||||||
iommus = <&smmu 0x871>;
|
iommus = <&smmu 0x871>;
|
||||||
power-domains = <&zynqmp_firmware PD_SD_1>;
|
|
||||||
nvmem-cells = <&soc_revision>;
|
nvmem-cells = <&soc_revision>;
|
||||||
nvmem-cell-names = "soc_revision";
|
nvmem-cell-names = "soc_revision";
|
||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
clock-output-names = "clk_out_sd1", "clk_in_sd1";
|
clock-output-names = "clk_out_sd1", "clk_in_sd1";
|
||||||
|
power-domains = <&zynqmp_firmware PD_SD_1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
smmu: iommu@fd800000 {
|
smmu: iommu@fd800000 {
|
||||||
@ -962,37 +937,18 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
xlnx_dpdma: dma@fd4c0000 {
|
zynqmp_dpdma: dma-controller@fd4c0000 {
|
||||||
compatible = "xlnx,dpdma";
|
compatible = "xlnx,zynqmp-dpdma";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
reg = <0x0 0xfd4c0000 0x0 0x1000>;
|
reg = <0x0 0xfd4c0000 0x0 0x1000>;
|
||||||
interrupts = <0 122 4>;
|
interrupts = <0 122 4>;
|
||||||
interrupt-parent = <&gic>;
|
interrupt-parent = <&gic>;
|
||||||
clock-names = "axi_clk";
|
clock-names = "axi_clk";
|
||||||
power-domains = <&zynqmp_firmware PD_DP>;
|
power-domains = <&zynqmp_firmware PD_DP>;
|
||||||
dma-channels = <6>;
|
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
dma-video0channel {
|
|
||||||
compatible = "xlnx,video0";
|
|
||||||
};
|
|
||||||
dma-video1channel {
|
|
||||||
compatible = "xlnx,video1";
|
|
||||||
};
|
|
||||||
dma-video2channel {
|
|
||||||
compatible = "xlnx,video2";
|
|
||||||
};
|
|
||||||
dma-graphicschannel {
|
|
||||||
compatible = "xlnx,graphics";
|
|
||||||
};
|
|
||||||
dma-audio0channel {
|
|
||||||
compatible = "xlnx,audio0";
|
|
||||||
};
|
|
||||||
dma-audio1channel {
|
|
||||||
compatible = "xlnx,audio1";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
zynqmp_dpsub: zynqmp-display@fd4a0000 {
|
zynqmp_dpsub: display@fd4a0000 {
|
||||||
compatible = "xlnx,zynqmp-dpsub-1.7";
|
compatible = "xlnx,zynqmp-dpsub-1.7";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
reg = <0x0 0xfd4a0000 0x0 0x1000>,
|
reg = <0x0 0xfd4a0000 0x0 0x1000>,
|
||||||
@ -1002,51 +958,15 @@
|
|||||||
reg-names = "dp", "blend", "av_buf", "aud";
|
reg-names = "dp", "blend", "av_buf", "aud";
|
||||||
interrupts = <0 119 4>;
|
interrupts = <0 119 4>;
|
||||||
interrupt-parent = <&gic>;
|
interrupt-parent = <&gic>;
|
||||||
|
|
||||||
clock-names = "dp_apb_clk", "dp_aud_clk",
|
clock-names = "dp_apb_clk", "dp_aud_clk",
|
||||||
"dp_vtc_pixel_clk_in";
|
"dp_vtc_pixel_clk_in";
|
||||||
|
|
||||||
power-domains = <&zynqmp_firmware PD_DP>;
|
power-domains = <&zynqmp_firmware PD_DP>;
|
||||||
|
resets = <&zynqmp_reset ZYNQMP_RESET_DP>;
|
||||||
vid-layer {
|
dma-names = "vid0", "vid1", "vid2", "gfx0";
|
||||||
dma-names = "vid0", "vid1", "vid2";
|
dmas = <&zynqmp_dpdma ZYNQMP_DPDMA_VIDEO0>,
|
||||||
dmas = <&xlnx_dpdma 0>,
|
<&zynqmp_dpdma ZYNQMP_DPDMA_VIDEO1>,
|
||||||
<&xlnx_dpdma 1>,
|
<&zynqmp_dpdma ZYNQMP_DPDMA_VIDEO2>,
|
||||||
<&xlnx_dpdma 2>;
|
<&zynqmp_dpdma ZYNQMP_DPDMA_GRAPHICS>;
|
||||||
};
|
|
||||||
|
|
||||||
gfx-layer {
|
|
||||||
dma-names = "gfx0";
|
|
||||||
dmas = <&xlnx_dpdma 3>;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* dummy node to indicate there's no child i2c device */
|
|
||||||
i2c-bus {
|
|
||||||
};
|
|
||||||
|
|
||||||
zynqmp_dp_snd_codec0: zynqmp_dp_snd_codec0 {
|
|
||||||
compatible = "xlnx,dp-snd-codec";
|
|
||||||
clock-names = "aud_clk";
|
|
||||||
};
|
|
||||||
|
|
||||||
zynqmp_dp_snd_pcm0: zynqmp_dp_snd_pcm0 {
|
|
||||||
compatible = "xlnx,dp-snd-pcm";
|
|
||||||
dmas = <&xlnx_dpdma 4>;
|
|
||||||
dma-names = "tx";
|
|
||||||
};
|
|
||||||
|
|
||||||
zynqmp_dp_snd_pcm1: zynqmp_dp_snd_pcm1 {
|
|
||||||
compatible = "xlnx,dp-snd-pcm";
|
|
||||||
dmas = <&xlnx_dpdma 5>;
|
|
||||||
dma-names = "tx";
|
|
||||||
};
|
|
||||||
|
|
||||||
zynqmp_dp_snd_card0: zynqmp_dp_snd_card {
|
|
||||||
compatible = "xlnx,dp-snd-card";
|
|
||||||
xlnx,dp-snd-pcm = <&zynqmp_dp_snd_pcm0>,
|
|
||||||
<&zynqmp_dp_snd_pcm1>;
|
|
||||||
xlnx,dp-snd-codec = <&zynqmp_dp_snd_codec0>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -35,7 +35,6 @@ void l2_cache_disable(void);
|
|||||||
void set_section_dcache(int section, enum dcache_option option);
|
void set_section_dcache(int section, enum dcache_option option);
|
||||||
|
|
||||||
void arm_init_before_mmu(void);
|
void arm_init_before_mmu(void);
|
||||||
void arm_init_domains(void);
|
|
||||||
void cpu_cache_initialization(void);
|
void cpu_cache_initialization(void);
|
||||||
void dram_bank_mmu_setup(int bank);
|
void dram_bank_mmu_setup(int bank);
|
||||||
|
|
||||||
|
@ -397,20 +397,6 @@ static inline void set_cr(unsigned int val)
|
|||||||
isb();
|
isb();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline unsigned int get_dacr(void)
|
|
||||||
{
|
|
||||||
unsigned int val;
|
|
||||||
asm("mrc p15, 0, %0, c3, c0, 0 @ get DACR" : "=r" (val) : : "cc");
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void set_dacr(unsigned int val)
|
|
||||||
{
|
|
||||||
asm volatile("mcr p15, 0, %0, c3, c0, 0 @ set DACR"
|
|
||||||
: : "r" (val) : "cc");
|
|
||||||
isb();
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_ARMV7_LPAE
|
#ifdef CONFIG_ARMV7_LPAE
|
||||||
/* Long-Descriptor Translation Table Level 1/2 Bits */
|
/* Long-Descriptor Translation Table Level 1/2 Bits */
|
||||||
#define TTB_SECT_XN_MASK (1ULL << 54)
|
#define TTB_SECT_XN_MASK (1ULL << 54)
|
||||||
@ -475,7 +461,7 @@ enum dcache_option {
|
|||||||
#define TTB_SECT_XN_MASK (1 << 4)
|
#define TTB_SECT_XN_MASK (1 << 4)
|
||||||
#define TTB_SECT_C_MASK (1 << 3)
|
#define TTB_SECT_C_MASK (1 << 3)
|
||||||
#define TTB_SECT_B_MASK (1 << 2)
|
#define TTB_SECT_B_MASK (1 << 2)
|
||||||
#define TTB_SECT (2 << 0)
|
#define TTB_SECT (2 << 0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Short-descriptor format memory region attributes, without TEX remap
|
* Short-descriptor format memory region attributes, without TEX remap
|
||||||
@ -489,7 +475,7 @@ enum dcache_option {
|
|||||||
*/
|
*/
|
||||||
enum dcache_option {
|
enum dcache_option {
|
||||||
DCACHE_OFF = TTB_SECT_DOMAIN(0) | TTB_SECT_XN_MASK | TTB_SECT,
|
DCACHE_OFF = TTB_SECT_DOMAIN(0) | TTB_SECT_XN_MASK | TTB_SECT,
|
||||||
DCACHE_WRITETHROUGH = DCACHE_OFF | TTB_SECT_C_MASK,
|
DCACHE_WRITETHROUGH = TTB_SECT_DOMAIN(0) | TTB_SECT | TTB_SECT_C_MASK,
|
||||||
DCACHE_WRITEBACK = DCACHE_WRITETHROUGH | TTB_SECT_B_MASK,
|
DCACHE_WRITEBACK = DCACHE_WRITETHROUGH | TTB_SECT_B_MASK,
|
||||||
DCACHE_WRITEALLOC = DCACHE_WRITEBACK | TTB_SECT_TEX(1),
|
DCACHE_WRITEALLOC = DCACHE_WRITEBACK | TTB_SECT_TEX(1),
|
||||||
};
|
};
|
||||||
|
@ -22,10 +22,6 @@ __weak void arm_init_before_mmu(void)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
__weak void arm_init_domains(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void set_section_phys(int section, phys_addr_t phys,
|
static void set_section_phys(int section, phys_addr_t phys,
|
||||||
enum dcache_option option)
|
enum dcache_option option)
|
||||||
{
|
{
|
||||||
@ -203,11 +199,12 @@ static inline void mmu_setup(void)
|
|||||||
asm volatile("mcr p15, 0, %0, c2, c0, 0"
|
asm volatile("mcr p15, 0, %0, c2, c0, 0"
|
||||||
: : "r" (gd->arch.tlb_addr) : "memory");
|
: : "r" (gd->arch.tlb_addr) : "memory");
|
||||||
#endif
|
#endif
|
||||||
/* Set the access control to all-supervisor */
|
/*
|
||||||
|
* initial value of Domain Access Control Register (DACR)
|
||||||
|
* Set the access control to client (1U) for each of the 16 domains
|
||||||
|
*/
|
||||||
asm volatile("mcr p15, 0, %0, c3, c0, 0"
|
asm volatile("mcr p15, 0, %0, c3, c0, 0"
|
||||||
: : "r" (~0));
|
: : "r" (0x55555555));
|
||||||
|
|
||||||
arm_init_domains();
|
|
||||||
|
|
||||||
/* and enable the mmu */
|
/* and enable the mmu */
|
||||||
reg = get_cr(); /* get control reg. */
|
reg = get_cr(); /* get control reg. */
|
||||||
|
@ -53,7 +53,7 @@ int disable_interrupts(void)
|
|||||||
void bad_mode (void)
|
void bad_mode (void)
|
||||||
{
|
{
|
||||||
panic ("Resetting CPU ...\n");
|
panic ("Resetting CPU ...\n");
|
||||||
reset_cpu(0);
|
reset_cpu();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void show_efi_loaded_images(struct pt_regs *regs)
|
static void show_efi_loaded_images(struct pt_regs *regs)
|
||||||
|
@ -59,7 +59,7 @@ void dump_regs(struct autosave_regs *regs)
|
|||||||
void bad_mode(void)
|
void bad_mode(void)
|
||||||
{
|
{
|
||||||
panic("Resetting CPU ...\n");
|
panic("Resetting CPU ...\n");
|
||||||
reset_cpu(0);
|
reset_cpu();
|
||||||
}
|
}
|
||||||
|
|
||||||
void do_hard_fault(struct autosave_regs *autosave_regs)
|
void do_hard_fault(struct autosave_regs *autosave_regs)
|
||||||
|
@ -39,7 +39,7 @@ int do_reset(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
|||||||
disable_interrupts();
|
disable_interrupts();
|
||||||
|
|
||||||
reset_misc();
|
reset_misc();
|
||||||
reset_cpu(0);
|
reset_cpu();
|
||||||
|
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -24,7 +24,7 @@ void __attribute__((weak)) board_reset(void)
|
|||||||
/* true empty function for defining weak symbol */
|
/* true empty function for defining weak symbol */
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
at91_st_t *st = (at91_st_t *) ATMEL_BASE_ST;
|
at91_st_t *st = (at91_st_t *) ATMEL_BASE_ST;
|
||||||
|
|
||||||
|
@ -71,10 +71,10 @@ POS1:
|
|||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
|
|
||||||
/* Reading the PMC Status to detect when the Main Oscillator is enabled */
|
/* Reading the PMC Status to detect when the Main Oscillator is enabled */
|
||||||
mov r4, #AT91_PMC_IXR_MOSCS
|
mov r6, #AT91_PMC_IXR_MOSCS
|
||||||
MOSCS_Loop:
|
MOSCS_Loop:
|
||||||
ldr r3, [r2]
|
ldr r3, [r2]
|
||||||
and r3, r4, r3
|
and r3, r6, r3
|
||||||
cmp r3, #AT91_PMC_IXR_MOSCS
|
cmp r3, #AT91_PMC_IXR_MOSCS
|
||||||
bne MOSCS_Loop
|
bne MOSCS_Loop
|
||||||
|
|
||||||
@ -89,10 +89,10 @@ MOSCS_Loop:
|
|||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
|
|
||||||
/* Reading the PMC Status register to detect when the PLLA is locked */
|
/* Reading the PMC Status register to detect when the PLLA is locked */
|
||||||
mov r4, #AT91_PMC_IXR_LOCKA
|
mov r6, #AT91_PMC_IXR_LOCKA
|
||||||
MOSCS_Loop1:
|
MOSCS_Loop1:
|
||||||
ldr r3, [r2]
|
ldr r3, [r2]
|
||||||
and r3, r4, r3
|
and r3, r6, r3
|
||||||
cmp r3, #AT91_PMC_IXR_LOCKA
|
cmp r3, #AT91_PMC_IXR_LOCKA
|
||||||
bne MOSCS_Loop1
|
bne MOSCS_Loop1
|
||||||
|
|
||||||
@ -109,10 +109,10 @@ MOSCS_Loop1:
|
|||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
|
|
||||||
/* Reading the PMC Status to detect when the Master clock is ready */
|
/* Reading the PMC Status to detect when the Master clock is ready */
|
||||||
mov r4, #AT91_PMC_IXR_MCKRDY
|
mov r6, #AT91_PMC_IXR_MCKRDY
|
||||||
MCKRDY_Loop:
|
MCKRDY_Loop:
|
||||||
ldr r3, [r2]
|
ldr r3, [r2]
|
||||||
and r3, r4, r3
|
and r3, r6, r3
|
||||||
cmp r3, #AT91_PMC_IXR_MCKRDY
|
cmp r3, #AT91_PMC_IXR_MCKRDY
|
||||||
bne MCKRDY_Loop
|
bne MCKRDY_Loop
|
||||||
|
|
||||||
@ -120,10 +120,10 @@ MCKRDY_Loop:
|
|||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
|
|
||||||
/* Reading the PMC Status to detect when the Master clock is ready */
|
/* Reading the PMC Status to detect when the Master clock is ready */
|
||||||
mov r4, #AT91_PMC_IXR_MCKRDY
|
mov r6, #AT91_PMC_IXR_MCKRDY
|
||||||
MCKRDY_Loop1:
|
MCKRDY_Loop1:
|
||||||
ldr r3, [r2]
|
ldr r3, [r2]
|
||||||
and r3, r4, r3
|
and r3, r6, r3
|
||||||
cmp r3, #AT91_PMC_IXR_MCKRDY
|
cmp r3, #AT91_PMC_IXR_MCKRDY
|
||||||
bne MCKRDY_Loop1
|
bne MCKRDY_Loop1
|
||||||
PLL_setup_end:
|
PLL_setup_end:
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#include <asm/arch/at91_rstc.h>
|
#include <asm/arch/at91_rstc.h>
|
||||||
|
|
||||||
/* Reset the cpu by telling the reset controller to do so */
|
/* Reset the cpu by telling the reset controller to do so */
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
at91_rstc_t *rstc = (at91_rstc_t *) ATMEL_BASE_RSTC;
|
at91_rstc_t *rstc = (at91_rstc_t *) ATMEL_BASE_RSTC;
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#include <asm/arch/at91_rstc.h>
|
#include <asm/arch/at91_rstc.h>
|
||||||
|
|
||||||
/* Reset the cpu by telling the reset controller to do so */
|
/* Reset the cpu by telling the reset controller to do so */
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
at91_rstc_t *rstc = (at91_rstc_t *)ATMEL_BASE_RSTC;
|
at91_rstc_t *rstc = (at91_rstc_t *)ATMEL_BASE_RSTC;
|
||||||
|
|
||||||
|
@ -44,6 +44,7 @@ struct atmel_pio4_port {
|
|||||||
#define ATMEL_PIO_DIR_MASK BIT(8)
|
#define ATMEL_PIO_DIR_MASK BIT(8)
|
||||||
#define ATMEL_PIO_PUEN_MASK BIT(9)
|
#define ATMEL_PIO_PUEN_MASK BIT(9)
|
||||||
#define ATMEL_PIO_PDEN_MASK BIT(10)
|
#define ATMEL_PIO_PDEN_MASK BIT(10)
|
||||||
|
#define ATMEL_PIO_SR BIT(11)
|
||||||
#define ATMEL_PIO_IFEN_MASK BIT(12)
|
#define ATMEL_PIO_IFEN_MASK BIT(12)
|
||||||
#define ATMEL_PIO_IFSCEN_MASK BIT(13)
|
#define ATMEL_PIO_IFSCEN_MASK BIT(13)
|
||||||
#define ATMEL_PIO_OPD_MASK BIT(14)
|
#define ATMEL_PIO_OPD_MASK BIT(14)
|
||||||
|
@ -48,7 +48,7 @@ __reset_cpu(struct bcm2835_wdog_regs *wdog_regs, ulong ticks)
|
|||||||
writel(BCM2835_WDOG_PASSWORD | rstc, &wdog_regs->rstc);
|
writel(BCM2835_WDOG_PASSWORD | rstc, &wdog_regs->rstc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(ulong ticks)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct bcm2835_wdog_regs *regs =
|
struct bcm2835_wdog_regs *regs =
|
||||||
(struct bcm2835_wdog_regs *)BCM2835_WDOG_PHYSADDR;
|
(struct bcm2835_wdog_regs *)BCM2835_WDOG_PHYSADDR;
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#include <asm/arch/timer_defs.h>
|
#include <asm/arch/timer_defs.h>
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
|
|
||||||
void reset_cpu(unsigned long a)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct davinci_timer *const wdttimer =
|
struct davinci_timer *const wdttimer =
|
||||||
(struct davinci_timer *)DAVINCI_WDOG_BASE;
|
(struct davinci_timer *)DAVINCI_WDOG_BASE;
|
||||||
|
@ -20,7 +20,7 @@ extern void _main(void);
|
|||||||
void *secondary_boot_addr = (void *)_main;
|
void *secondary_boot_addr = (void *)_main;
|
||||||
#endif /* CONFIG_TARGET_ESPRESSO7420 */
|
#endif /* CONFIG_TARGET_ESPRESSO7420 */
|
||||||
|
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_CPU_V7A
|
#ifdef CONFIG_CPU_V7A
|
||||||
writel(0x1, samsung_get_base_swreset());
|
writel(0x1, samsung_get_base_swreset());
|
||||||
|
@ -923,7 +923,7 @@ usb_modify_speed:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !CONFIG_IS_ENABLED(SYSRESET)
|
#if !CONFIG_IS_ENABLED(SYSRESET)
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
|
struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
|
||||||
|
|
||||||
|
@ -197,7 +197,7 @@ void s_init(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_ULP_WATCHDOG
|
#ifndef CONFIG_ULP_WATCHDOG
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
setbits_le32(SIM0_RBASE, SIM_SOPT1_A7_SW_RESET);
|
setbits_le32(SIM0_RBASE, SIM_SOPT1_A7_SW_RESET);
|
||||||
while (1)
|
while (1)
|
||||||
|
@ -320,7 +320,7 @@ int fdt_disable_node(void *blob, char *node_path)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_SYSRESET
|
#ifndef CONFIG_SYSRESET
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -345,7 +345,7 @@ void ddr3_check_ecc_int(u32 base)
|
|||||||
|
|
||||||
if (!ecc_test) {
|
if (!ecc_test) {
|
||||||
puts("Reseting the device ...\n");
|
puts("Reseting the device ...\n");
|
||||||
reset_cpu(0);
|
reset_cpu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -445,7 +445,7 @@ void ddr3_err_reset_workaround(void)
|
|||||||
tmp &= ~KS2_RSTYPE_PLL_SOFT;
|
tmp &= ~KS2_RSTYPE_PLL_SOFT;
|
||||||
__raw_writel(tmp, KS2_RSTCTRL_RSCFG);
|
__raw_writel(tmp, KS2_RSTCTRL_RSCFG);
|
||||||
|
|
||||||
reset_cpu(0);
|
reset_cpu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -192,7 +192,7 @@ int arch_cpu_init(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
volatile u32 *rstctrl = (volatile u32 *)(KS2_RSTCTRL);
|
volatile u32 *rstctrl = (volatile u32 *)(KS2_RSTCTRL);
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <asm/arch/soc.h>
|
#include <asm/arch/soc.h>
|
||||||
#include <mvebu_mmc.h>
|
#include <mvebu_mmc.h>
|
||||||
|
|
||||||
void reset_cpu(unsigned long ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct kwcpu_registers *cpureg =
|
struct kwcpu_registers *cpureg =
|
||||||
(struct kwcpu_registers *)KW_CPU_REG_BASE;
|
(struct kwcpu_registers *)KW_CPU_REG_BASE;
|
||||||
|
@ -17,28 +17,17 @@
|
|||||||
static struct clk_pm_regs *clk = (struct clk_pm_regs *)CLK_PM_BASE;
|
static struct clk_pm_regs *clk = (struct clk_pm_regs *)CLK_PM_BASE;
|
||||||
static struct wdt_regs *wdt = (struct wdt_regs *)WDT_BASE;
|
static struct wdt_regs *wdt = (struct wdt_regs *)WDT_BASE;
|
||||||
|
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
/* Enable watchdog clock */
|
/* Enable watchdog clock */
|
||||||
setbits_le32(&clk->timclk_ctrl, CLK_TIMCLK_WATCHDOG);
|
setbits_le32(&clk->timclk_ctrl, CLK_TIMCLK_WATCHDOG);
|
||||||
|
|
||||||
/* To be compatible with the original U-Boot code:
|
/* Reset pulse length is 13005 peripheral clock frames */
|
||||||
* addr: - 0: perform hard reset.
|
writel(13000, &wdt->pulse);
|
||||||
* - !=0: perform a soft reset; i.e. "RESOUT_N" not asserted). */
|
|
||||||
if (addr == 0) {
|
|
||||||
/* Reset pulse length is 13005 peripheral clock frames */
|
|
||||||
writel(13000, &wdt->pulse);
|
|
||||||
|
|
||||||
/* Force WDOG_RESET2 and RESOUT_N signal active */
|
/* Force WDOG_RESET2 and RESOUT_N signal active */
|
||||||
writel(WDTIM_MCTRL_RESFRC2 | WDTIM_MCTRL_RESFRC1
|
writel(WDTIM_MCTRL_RESFRC2 | WDTIM_MCTRL_RESFRC1 | WDTIM_MCTRL_M_RES2,
|
||||||
| WDTIM_MCTRL_M_RES2, &wdt->mctrl);
|
&wdt->mctrl);
|
||||||
} else {
|
|
||||||
/* Force match output active */
|
|
||||||
writel(0x01, &wdt->emr);
|
|
||||||
|
|
||||||
/* Internal reset on match output (no pulse on "RESOUT_N") */
|
|
||||||
writel(WDTIM_MCTRL_M_RES1, &wdt->mctrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
/* NOP */;
|
/* NOP */;
|
||||||
|
@ -36,12 +36,20 @@ config TARGET_MT7629
|
|||||||
bool "MediaTek MT7629 SoC"
|
bool "MediaTek MT7629 SoC"
|
||||||
select CPU_V7A
|
select CPU_V7A
|
||||||
select SPL
|
select SPL
|
||||||
select BINMAN
|
|
||||||
help
|
help
|
||||||
The MediaTek MT7629 is a ARM-based SoC with a dual-core Cortex-A7
|
The MediaTek MT7629 is a ARM-based SoC with a dual-core Cortex-A7
|
||||||
including DDR3, crypto engine, 3x3 11n/ac Wi-Fi, Gigabit Ethernet,
|
including DDR3, crypto engine, 3x3 11n/ac Wi-Fi, Gigabit Ethernet,
|
||||||
switch, USB3.0, PCIe, UART, SPI, I2C and PWM.
|
switch, USB3.0, PCIe, UART, SPI, I2C and PWM.
|
||||||
|
|
||||||
|
config TARGET_MT8183
|
||||||
|
bool "MediaTek MT8183 SoC"
|
||||||
|
select ARM64
|
||||||
|
help
|
||||||
|
The MediaTek MT8183 is a ARM64-based SoC with a quad-core Cortex-A73 and
|
||||||
|
a quad-core Cortex-A53. It is including UART, SPI, USB3.0 dual role,
|
||||||
|
SD and MMC cards, UFS, PWM, I2C, I2S, S/PDIF, and several LPDDR3
|
||||||
|
and LPDDR4 options.
|
||||||
|
|
||||||
config TARGET_MT8512
|
config TARGET_MT8512
|
||||||
bool "MediaTek MT8512 M1 Board"
|
bool "MediaTek MT8512 M1 Board"
|
||||||
select ARM64
|
select ARM64
|
||||||
@ -75,8 +83,9 @@ endchoice
|
|||||||
source "board/mediatek/mt7622/Kconfig"
|
source "board/mediatek/mt7622/Kconfig"
|
||||||
source "board/mediatek/mt7623/Kconfig"
|
source "board/mediatek/mt7623/Kconfig"
|
||||||
source "board/mediatek/mt7629/Kconfig"
|
source "board/mediatek/mt7629/Kconfig"
|
||||||
|
source "board/mediatek/mt8183/Kconfig"
|
||||||
source "board/mediatek/mt8512/Kconfig"
|
source "board/mediatek/mt8512/Kconfig"
|
||||||
|
source "board/mediatek/mt8516/Kconfig"
|
||||||
source "board/mediatek/mt8518/Kconfig"
|
source "board/mediatek/mt8518/Kconfig"
|
||||||
source "board/mediatek/pumpkin/Kconfig"
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@ -7,5 +7,6 @@ obj-$(CONFIG_MT8512) += mt8512/
|
|||||||
obj-$(CONFIG_TARGET_MT7622) += mt7622/
|
obj-$(CONFIG_TARGET_MT7622) += mt7622/
|
||||||
obj-$(CONFIG_TARGET_MT7623) += mt7623/
|
obj-$(CONFIG_TARGET_MT7623) += mt7623/
|
||||||
obj-$(CONFIG_TARGET_MT7629) += mt7629/
|
obj-$(CONFIG_TARGET_MT7629) += mt7629/
|
||||||
|
obj-$(CONFIG_TARGET_MT8183) += mt8183/
|
||||||
obj-$(CONFIG_TARGET_MT8516) += mt8516/
|
obj-$(CONFIG_TARGET_MT8516) += mt8516/
|
||||||
obj-$(CONFIG_TARGET_MT8518) += mt8518/
|
obj-$(CONFIG_TARGET_MT8518) += mt8518/
|
||||||
|
@ -27,7 +27,7 @@ int dram_init(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
psci_system_reset();
|
psci_system_reset();
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
obj-y += pumpkin.o
|
obj-y += init.o
|
80
arch/arm/mach-mediatek/mt8183/init.c
Normal file
80
arch/arm/mach-mediatek/mt8183/init.c
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2021 MediaTek Inc.
|
||||||
|
* Copyright (C) 2021 BayLibre, SAS
|
||||||
|
* Author: Fabien Parent <fparent@baylibre.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <clk.h>
|
||||||
|
#include <common.h>
|
||||||
|
#include <dm.h>
|
||||||
|
#include <fdtdec.h>
|
||||||
|
#include <ram.h>
|
||||||
|
#include <asm/arch/misc.h>
|
||||||
|
#include <asm/armv8/mmu.h>
|
||||||
|
#include <asm/sections.h>
|
||||||
|
#include <asm/system.h>
|
||||||
|
#include <dm/uclass.h>
|
||||||
|
#include <dt-bindings/clock/mt8516-clk.h>
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
int dram_init(void)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = fdtdec_setup_memory_banksize();
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
return fdtdec_setup_mem_size_base();
|
||||||
|
}
|
||||||
|
|
||||||
|
int dram_init_banksize(void)
|
||||||
|
{
|
||||||
|
gd->bd->bi_dram[0].start = gd->ram_base;
|
||||||
|
gd->bd->bi_dram[0].size = gd->ram_size;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int mtk_pll_early_init(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int mtk_soc_early_init(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset_cpu(ulong addr)
|
||||||
|
{
|
||||||
|
psci_system_reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
int print_cpuinfo(void)
|
||||||
|
{
|
||||||
|
printf("CPU: MediaTek MT8183\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct mm_region mt8183_mem_map[] = {
|
||||||
|
{
|
||||||
|
/* DDR */
|
||||||
|
.virt = 0x40000000UL,
|
||||||
|
.phys = 0x40000000UL,
|
||||||
|
.size = 0x80000000UL,
|
||||||
|
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_OUTER_SHARE,
|
||||||
|
}, {
|
||||||
|
.virt = 0x00000000UL,
|
||||||
|
.phys = 0x00000000UL,
|
||||||
|
.size = 0x20000000UL,
|
||||||
|
.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
|
||||||
|
PTE_BLOCK_NON_SHARE |
|
||||||
|
PTE_BLOCK_PXN | PTE_BLOCK_UXN
|
||||||
|
}, {
|
||||||
|
0,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
struct mm_region *mem_map = mt8183_mem_map;
|
@ -43,7 +43,7 @@ int dram_init_banksize(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct udevice *watchdog_dev = NULL;
|
struct udevice *watchdog_dev = NULL;
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ int mtk_soc_early_init(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
psci_system_reset();
|
psci_system_reset();
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ int dram_init_banksize(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
psci_system_reset();
|
psci_system_reset();
|
||||||
}
|
}
|
||||||
|
@ -167,7 +167,7 @@ int fastboot_set_reboot_flag(enum fastboot_reboot_reason reason)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct pt_regs regs;
|
struct pt_regs regs;
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ void reset_cpu(ulong addr)
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
void reset_cpu(ulong addr)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
psci_system_reset();
|
psci_system_reset();
|
||||||
}
|
}
|
||||||
|
@ -314,7 +314,7 @@ int a3700_fdt_fix_pcie_regions(void *blob)
|
|||||||
return fdt_setprop_inplace(blob, node, "ranges", new_ranges, len);
|
return fdt_setprop_inplace(blob, node, "ranges", new_ranges, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Write magic number of 0x1d1e to North Bridge Warm Reset register
|
* Write magic number of 0x1d1e to North Bridge Warm Reset register
|
||||||
|
@ -104,7 +104,7 @@ void enable_caches(void)
|
|||||||
dcache_enable();
|
dcache_enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(ulong ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
u32 reg;
|
u32 reg;
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ void lowlevel_init(void)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_cpu(unsigned long ignored)
|
void reset_cpu(void)
|
||||||
{
|
{
|
||||||
struct mvebu_system_registers *reg =
|
struct mvebu_system_registers *reg =
|
||||||
(struct mvebu_system_registers *)MVEBU_SYSTEM_REG_BASE;
|
(struct mvebu_system_registers *)MVEBU_SYSTEM_REG_BASE;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user