forked from Qortal/Brooklyn
phase 13
This commit is contained in:
parent
fc69d2c030
commit
e8c95beb2b
@ -430,8 +430,6 @@ static inline unsigned int __arch_hweight8(unsigned int w)
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#include <asm-generic/bitops/find.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/*
|
||||
|
@ -42,7 +42,7 @@ extern void start_thread(struct pt_regs *, unsigned long, unsigned long);
|
||||
struct task_struct;
|
||||
extern void release_thread(struct task_struct *);
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
#define KSTK_EIP(tsk) (task_pt_regs(tsk)->pc)
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
#ifndef _ALPHA_SPINLOCK_TYPES_H
|
||||
#define _ALPHA_SPINLOCK_TYPES_H
|
||||
|
||||
#ifndef __LINUX_SPINLOCK_TYPES_H
|
||||
#ifndef __LINUX_SPINLOCK_TYPES_RAW_H
|
||||
# error "please don't include this file directly"
|
||||
#endif
|
||||
|
||||
|
@ -131,6 +131,8 @@
|
||||
|
||||
#define SO_BUF_LOCK 72
|
||||
|
||||
#define SO_RESERVE_MEM 73
|
||||
|
||||
#if !defined(__KERNEL__)
|
||||
|
||||
#if __BITS_PER_LONG == 64
|
||||
|
@ -1,3 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
obj-y += kernel/
|
||||
obj-y += mm/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -20,7 +20,6 @@ config ARC
|
||||
select COMMON_CLK
|
||||
select DMA_DIRECT_REMAP
|
||||
select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC)
|
||||
select GENERIC_FIND_FIRST_BIT
|
||||
# for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
|
||||
select GENERIC_IRQ_SHOW
|
||||
select GENERIC_PCI_IOMAP
|
||||
@ -32,7 +31,6 @@ config ARC
|
||||
select HAVE_ARCH_TRANSPARENT_HUGEPAGE if ARC_MMU_V4
|
||||
select HAVE_DEBUG_STACKOVERFLOW
|
||||
select HAVE_DEBUG_KMEMLEAK
|
||||
select HAVE_FUTEX_CMPXCHG if FUTEX
|
||||
select HAVE_IOREMAP_PROT
|
||||
select HAVE_KERNEL_GZIP
|
||||
select HAVE_KERNEL_LZMA
|
||||
@ -40,7 +38,6 @@ config ARC
|
||||
select HAVE_KRETPROBES
|
||||
select HAVE_MOD_ARCH_SPECIFIC
|
||||
select HAVE_PERF_EVENTS
|
||||
select HANDLE_DOMAIN_IRQ
|
||||
select IRQ_DOMAIN
|
||||
select MODULES_USE_ELF_RELA
|
||||
select OF
|
||||
|
@ -14,10 +14,10 @@ cflags-y += -fno-common -pipe -fno-builtin -mmedium-calls -D__linux__
|
||||
tune-mcpu-def-$(CONFIG_ISA_ARCOMPACT) := -mcpu=arc700
|
||||
tune-mcpu-def-$(CONFIG_ISA_ARCV2) := -mcpu=hs38
|
||||
|
||||
ifeq ($(CONFIG_ARC_TUNE_MCPU),"")
|
||||
ifeq ($(CONFIG_ARC_TUNE_MCPU),)
|
||||
cflags-y += $(tune-mcpu-def-y)
|
||||
else
|
||||
tune-mcpu := $(shell echo $(CONFIG_ARC_TUNE_MCPU))
|
||||
tune-mcpu := $(CONFIG_ARC_TUNE_MCPU)
|
||||
ifneq ($(call cc-option,$(tune-mcpu)),)
|
||||
cflags-y += $(tune-mcpu)
|
||||
else
|
||||
@ -112,6 +112,3 @@ uImage: $(uimage-default-y)
|
||||
@$(kecho) ' Image $(boot)/uImage is ready'
|
||||
|
||||
CLEAN_FILES += $(boot)/uImage
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
@ -2,8 +2,8 @@
|
||||
# Built-in dtb
|
||||
builtindtb-y := nsim_700
|
||||
|
||||
ifneq ($(CONFIG_ARC_BUILTIN_DTB_NAME),"")
|
||||
builtindtb-y := $(patsubst "%",%,$(CONFIG_ARC_BUILTIN_DTB_NAME))
|
||||
ifneq ($(CONFIG_ARC_BUILTIN_DTB_NAME),)
|
||||
builtindtb-y := $(CONFIG_ARC_BUILTIN_DTB_NAME)
|
||||
endif
|
||||
|
||||
obj-y += $(builtindtb-y).dtb.o
|
||||
|
@ -189,7 +189,6 @@ static inline __attribute__ ((const)) unsigned long __ffs(unsigned long x)
|
||||
#include <asm-generic/bitops/atomic.h>
|
||||
#include <asm-generic/bitops/non-atomic.h>
|
||||
|
||||
#include <asm-generic/bitops/find.h>
|
||||
#include <asm-generic/bitops/le.h>
|
||||
#include <asm-generic/bitops/ext2-atomic-setbit.h>
|
||||
|
||||
|
@ -50,8 +50,12 @@
|
||||
* are redone after IRQs are re-enabled (and gcc doesn't reuse stale register)
|
||||
*
|
||||
* Noted at the time of Abilis Timer List corruption
|
||||
* Orig Bug + Rejected solution : https://lkml.org/lkml/2013/3/29/67
|
||||
* Reasoning : https://lkml.org/lkml/2013/4/8/15
|
||||
*
|
||||
* Orig Bug + Rejected solution:
|
||||
* https://lore.kernel.org/lkml/1364553218-31255-1-git-send-email-vgupta@synopsys.com
|
||||
*
|
||||
* Reasoning:
|
||||
* https://lore.kernel.org/lkml/CA+55aFyFWjpSVQM6M266tKrG_ZXJzZ-nYejpmXYQXbrr42mGPQ@mail.gmail.com
|
||||
*
|
||||
******************************************************************/
|
||||
|
||||
|
@ -46,7 +46,7 @@ struct kprobe_ctlblk {
|
||||
};
|
||||
|
||||
int kprobe_fault_handler(struct pt_regs *regs, unsigned long cause);
|
||||
void kretprobe_trampoline(void);
|
||||
void __kretprobe_trampoline(void);
|
||||
void trap_is_kprobe(unsigned long address, struct pt_regs *regs);
|
||||
#else
|
||||
#define trap_is_kprobe(address, regs)
|
||||
|
@ -63,166 +63,4 @@ struct arc_reg_cc_build {
|
||||
|
||||
#define PERF_COUNT_ARC_HW_MAX (PERF_COUNT_HW_MAX + 8)
|
||||
|
||||
/*
|
||||
* Some ARC pct quirks:
|
||||
*
|
||||
* PERF_COUNT_HW_STALLED_CYCLES_BACKEND
|
||||
* PERF_COUNT_HW_STALLED_CYCLES_FRONTEND
|
||||
* The ARC 700 can either measure stalls per pipeline stage, or all stalls
|
||||
* combined; for now we assign all stalls to STALLED_CYCLES_BACKEND
|
||||
* and all pipeline flushes (e.g. caused by mispredicts, etc.) to
|
||||
* STALLED_CYCLES_FRONTEND.
|
||||
*
|
||||
* We could start multiple performance counters and combine everything
|
||||
* afterwards, but that makes it complicated.
|
||||
*
|
||||
* Note that I$ cache misses aren't counted by either of the two!
|
||||
*/
|
||||
|
||||
/*
|
||||
* ARC PCT has hardware conditions with fixed "names" but variable "indexes"
|
||||
* (based on a specific RTL build)
|
||||
* Below is the static map between perf generic/arc specific event_id and
|
||||
* h/w condition names.
|
||||
* At the time of probe, we loop thru each index and find it's name to
|
||||
* complete the mapping of perf event_id to h/w index as latter is needed
|
||||
* to program the counter really
|
||||
*/
|
||||
static const char * const arc_pmu_ev_hw_map[] = {
|
||||
/* count cycles */
|
||||
[PERF_COUNT_HW_CPU_CYCLES] = "crun",
|
||||
[PERF_COUNT_HW_REF_CPU_CYCLES] = "crun",
|
||||
[PERF_COUNT_HW_BUS_CYCLES] = "crun",
|
||||
|
||||
[PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = "bflush",
|
||||
[PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = "bstall",
|
||||
|
||||
/* counts condition */
|
||||
[PERF_COUNT_HW_INSTRUCTIONS] = "iall",
|
||||
/* All jump instructions that are taken */
|
||||
[PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = "ijmptak",
|
||||
#ifdef CONFIG_ISA_ARCV2
|
||||
[PERF_COUNT_HW_BRANCH_MISSES] = "bpmp",
|
||||
#else
|
||||
[PERF_COUNT_ARC_BPOK] = "bpok", /* NP-NT, PT-T, PNT-NT */
|
||||
[PERF_COUNT_HW_BRANCH_MISSES] = "bpfail", /* NP-T, PT-NT, PNT-T */
|
||||
#endif
|
||||
[PERF_COUNT_ARC_LDC] = "imemrdc", /* Instr: mem read cached */
|
||||
[PERF_COUNT_ARC_STC] = "imemwrc", /* Instr: mem write cached */
|
||||
|
||||
[PERF_COUNT_ARC_DCLM] = "dclm", /* D-cache Load Miss */
|
||||
[PERF_COUNT_ARC_DCSM] = "dcsm", /* D-cache Store Miss */
|
||||
[PERF_COUNT_ARC_ICM] = "icm", /* I-cache Miss */
|
||||
[PERF_COUNT_ARC_EDTLB] = "edtlb", /* D-TLB Miss */
|
||||
[PERF_COUNT_ARC_EITLB] = "eitlb", /* I-TLB Miss */
|
||||
|
||||
[PERF_COUNT_HW_CACHE_REFERENCES] = "imemrdc", /* Instr: mem read cached */
|
||||
[PERF_COUNT_HW_CACHE_MISSES] = "dclm", /* D-cache Load Miss */
|
||||
};
|
||||
|
||||
#define C(_x) PERF_COUNT_HW_CACHE_##_x
|
||||
#define CACHE_OP_UNSUPPORTED 0xffff
|
||||
|
||||
static const unsigned int arc_pmu_cache_map[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
|
||||
[C(L1D)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = PERF_COUNT_ARC_LDC,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_ARC_DCLM,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = PERF_COUNT_ARC_STC,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_ARC_DCSM,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(L1I)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = PERF_COUNT_HW_INSTRUCTIONS,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_ARC_ICM,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(LL)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(DTLB)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = PERF_COUNT_ARC_LDC,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_ARC_EDTLB,
|
||||
},
|
||||
/* DTLB LD/ST Miss not segregated by h/w*/
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(ITLB)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_ARC_EITLB,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(BPU)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = PERF_COUNT_HW_BRANCH_INSTRUCTIONS,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_HW_BRANCH_MISSES,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(NODE)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
#endif /* __ASM_PERF_EVENT_H */
|
||||
|
@ -70,7 +70,7 @@ struct task_struct;
|
||||
extern void start_thread(struct pt_regs * regs, unsigned long pc,
|
||||
unsigned long usp);
|
||||
|
||||
extern unsigned int get_wchan(struct task_struct *p);
|
||||
extern unsigned int __get_wchan(struct task_struct *p);
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
|
@ -149,6 +149,11 @@ static inline long regs_return_value(struct pt_regs *regs)
|
||||
return (long)regs->r0;
|
||||
}
|
||||
|
||||
static inline void instruction_pointer_set(struct pt_regs *regs,
|
||||
unsigned long val)
|
||||
{
|
||||
instruction_pointer(regs) = val;
|
||||
}
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#endif /* __ASM_PTRACE_H */
|
||||
|
@ -6,6 +6,8 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/irqchip.h>
|
||||
#include <asm/mach_desc.h>
|
||||
|
||||
#include <asm/irq_regs.h>
|
||||
#include <asm/smp.h>
|
||||
|
||||
/*
|
||||
@ -39,5 +41,11 @@ void __init init_IRQ(void)
|
||||
*/
|
||||
void arch_do_IRQ(unsigned int hwirq, struct pt_regs *regs)
|
||||
{
|
||||
handle_domain_irq(NULL, hwirq, regs);
|
||||
struct pt_regs *old_regs;
|
||||
|
||||
irq_enter();
|
||||
old_regs = set_irq_regs(regs);
|
||||
generic_handle_domain_irq(NULL, hwirq);
|
||||
set_irq_regs(old_regs);
|
||||
irq_exit();
|
||||
}
|
||||
|
@ -363,8 +363,9 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
|
||||
|
||||
static void __used kretprobe_trampoline_holder(void)
|
||||
{
|
||||
__asm__ __volatile__(".global kretprobe_trampoline\n"
|
||||
"kretprobe_trampoline:\n" "nop\n");
|
||||
__asm__ __volatile__(".global __kretprobe_trampoline\n"
|
||||
"__kretprobe_trampoline:\n"
|
||||
"nop\n");
|
||||
}
|
||||
|
||||
void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
|
||||
@ -375,13 +376,13 @@ void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
|
||||
ri->fp = NULL;
|
||||
|
||||
/* Replace the return addr with trampoline addr */
|
||||
regs->blink = (unsigned long)&kretprobe_trampoline;
|
||||
regs->blink = (unsigned long)&__kretprobe_trampoline;
|
||||
}
|
||||
|
||||
static int __kprobes trampoline_probe_handler(struct kprobe *p,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
regs->ret = __kretprobe_trampoline_handler(regs, &kretprobe_trampoline, NULL);
|
||||
regs->ret = __kretprobe_trampoline_handler(regs, NULL);
|
||||
|
||||
/* By returning a non zero value, we are telling the kprobe handler
|
||||
* that we don't want the post_handler to run
|
||||
@ -390,7 +391,7 @@ static int __kprobes trampoline_probe_handler(struct kprobe *p,
|
||||
}
|
||||
|
||||
static struct kprobe trampoline_p = {
|
||||
.addr = (kprobe_opcode_t *) &kretprobe_trampoline,
|
||||
.addr = (kprobe_opcode_t *) &__kretprobe_trampoline,
|
||||
.pre_handler = trampoline_probe_handler
|
||||
};
|
||||
|
||||
@ -402,7 +403,7 @@ int __init arch_init_kprobes(void)
|
||||
|
||||
int __kprobes arch_trampoline_kprobe(struct kprobe *p)
|
||||
{
|
||||
if (p->addr == (kprobe_opcode_t *) &kretprobe_trampoline)
|
||||
if (p->addr == (kprobe_opcode_t *) &__kretprobe_trampoline)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
|
@ -17,6 +17,168 @@
|
||||
/* HW holds 8 symbols + one for null terminator */
|
||||
#define ARCPMU_EVENT_NAME_LEN 9
|
||||
|
||||
/*
|
||||
* Some ARC pct quirks:
|
||||
*
|
||||
* PERF_COUNT_HW_STALLED_CYCLES_BACKEND
|
||||
* PERF_COUNT_HW_STALLED_CYCLES_FRONTEND
|
||||
* The ARC 700 can either measure stalls per pipeline stage, or all stalls
|
||||
* combined; for now we assign all stalls to STALLED_CYCLES_BACKEND
|
||||
* and all pipeline flushes (e.g. caused by mispredicts, etc.) to
|
||||
* STALLED_CYCLES_FRONTEND.
|
||||
*
|
||||
* We could start multiple performance counters and combine everything
|
||||
* afterwards, but that makes it complicated.
|
||||
*
|
||||
* Note that I$ cache misses aren't counted by either of the two!
|
||||
*/
|
||||
|
||||
/*
|
||||
* ARC PCT has hardware conditions with fixed "names" but variable "indexes"
|
||||
* (based on a specific RTL build)
|
||||
* Below is the static map between perf generic/arc specific event_id and
|
||||
* h/w condition names.
|
||||
* At the time of probe, we loop thru each index and find it's name to
|
||||
* complete the mapping of perf event_id to h/w index as latter is needed
|
||||
* to program the counter really
|
||||
*/
|
||||
static const char * const arc_pmu_ev_hw_map[] = {
|
||||
/* count cycles */
|
||||
[PERF_COUNT_HW_CPU_CYCLES] = "crun",
|
||||
[PERF_COUNT_HW_REF_CPU_CYCLES] = "crun",
|
||||
[PERF_COUNT_HW_BUS_CYCLES] = "crun",
|
||||
|
||||
[PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = "bflush",
|
||||
[PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = "bstall",
|
||||
|
||||
/* counts condition */
|
||||
[PERF_COUNT_HW_INSTRUCTIONS] = "iall",
|
||||
/* All jump instructions that are taken */
|
||||
[PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = "ijmptak",
|
||||
#ifdef CONFIG_ISA_ARCV2
|
||||
[PERF_COUNT_HW_BRANCH_MISSES] = "bpmp",
|
||||
#else
|
||||
[PERF_COUNT_ARC_BPOK] = "bpok", /* NP-NT, PT-T, PNT-NT */
|
||||
[PERF_COUNT_HW_BRANCH_MISSES] = "bpfail", /* NP-T, PT-NT, PNT-T */
|
||||
#endif
|
||||
[PERF_COUNT_ARC_LDC] = "imemrdc", /* Instr: mem read cached */
|
||||
[PERF_COUNT_ARC_STC] = "imemwrc", /* Instr: mem write cached */
|
||||
|
||||
[PERF_COUNT_ARC_DCLM] = "dclm", /* D-cache Load Miss */
|
||||
[PERF_COUNT_ARC_DCSM] = "dcsm", /* D-cache Store Miss */
|
||||
[PERF_COUNT_ARC_ICM] = "icm", /* I-cache Miss */
|
||||
[PERF_COUNT_ARC_EDTLB] = "edtlb", /* D-TLB Miss */
|
||||
[PERF_COUNT_ARC_EITLB] = "eitlb", /* I-TLB Miss */
|
||||
|
||||
[PERF_COUNT_HW_CACHE_REFERENCES] = "imemrdc", /* Instr: mem read cached */
|
||||
[PERF_COUNT_HW_CACHE_MISSES] = "dclm", /* D-cache Load Miss */
|
||||
};
|
||||
|
||||
#define C(_x) PERF_COUNT_HW_CACHE_##_x
|
||||
#define CACHE_OP_UNSUPPORTED 0xffff
|
||||
|
||||
static const unsigned int arc_pmu_cache_map[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
|
||||
[C(L1D)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = PERF_COUNT_ARC_LDC,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_ARC_DCLM,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = PERF_COUNT_ARC_STC,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_ARC_DCSM,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(L1I)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = PERF_COUNT_HW_INSTRUCTIONS,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_ARC_ICM,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(LL)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(DTLB)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = PERF_COUNT_ARC_LDC,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_ARC_EDTLB,
|
||||
},
|
||||
/* DTLB LD/ST Miss not segregated by h/w*/
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(ITLB)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_ARC_EITLB,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(BPU)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = PERF_COUNT_HW_BRANCH_INSTRUCTIONS,
|
||||
[C(RESULT_MISS)] = PERF_COUNT_HW_BRANCH_MISSES,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
[C(NODE)] = {
|
||||
[C(OP_READ)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_WRITE)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
[C(OP_PREFETCH)] = {
|
||||
[C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
|
||||
[C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
enum arc_pmu_attr_groups {
|
||||
ARCPMU_ATTR_GR_EVENTS,
|
||||
ARCPMU_ATTR_GR_FORMATS,
|
||||
@ -328,7 +490,7 @@ static void arc_pmu_stop(struct perf_event *event, int flags)
|
||||
}
|
||||
|
||||
if (!(event->hw.state & PERF_HES_STOPPED)) {
|
||||
/* stop ARC pmu here */
|
||||
/* stop hw counter here */
|
||||
write_aux_reg(ARC_REG_PCT_INDEX, idx);
|
||||
|
||||
/* condition code #0 is always "never" */
|
||||
@ -361,7 +523,7 @@ static int arc_pmu_add(struct perf_event *event, int flags)
|
||||
{
|
||||
struct arc_pmu_cpu *pmu_cpu = this_cpu_ptr(&arc_pmu_cpu);
|
||||
struct hw_perf_event *hwc = &event->hw;
|
||||
int idx = hwc->idx;
|
||||
int idx;
|
||||
|
||||
idx = ffz(pmu_cpu->used_mask[0]);
|
||||
if (idx == arc_pmu->n_counters)
|
||||
|
@ -15,7 +15,7 @@
|
||||
* = specifics of data structs where trace is saved(CONFIG_STACKTRACE etc)
|
||||
*
|
||||
* vineetg: March 2009
|
||||
* -Implemented correct versions of thread_saved_pc() and get_wchan()
|
||||
* -Implemented correct versions of thread_saved_pc() and __get_wchan()
|
||||
*
|
||||
* rajeshwarr: 2008
|
||||
* -Initial implementation
|
||||
@ -248,7 +248,7 @@ void show_stack(struct task_struct *tsk, unsigned long *sp, const char *loglvl)
|
||||
* Of course just returning schedule( ) would be pointless so unwind until
|
||||
* the function is not in schedular code
|
||||
*/
|
||||
unsigned int get_wchan(struct task_struct *tsk)
|
||||
unsigned int __get_wchan(struct task_struct *tsk)
|
||||
{
|
||||
return arc_unwind_core(tsk, NULL, __get_first_nonsched, NULL);
|
||||
}
|
||||
|
@ -245,14 +245,9 @@ static void swap_eh_frame_hdr_table_entries(void *p1, void *p2, int size)
|
||||
{
|
||||
struct eh_frame_hdr_table_entry *e1 = p1;
|
||||
struct eh_frame_hdr_table_entry *e2 = p2;
|
||||
unsigned long v;
|
||||
|
||||
v = e1->start;
|
||||
e1->start = e2->start;
|
||||
e2->start = v;
|
||||
v = e1->fde;
|
||||
e1->fde = e2->fde;
|
||||
e2->fde = v;
|
||||
swap(e1->start, e2->start);
|
||||
swap(e1->fde, e2->fde);
|
||||
}
|
||||
|
||||
static void init_unwind_hdr(struct unwind_table *table,
|
||||
|
@ -32,7 +32,7 @@ void arch_dma_prep_coherent(struct page *page, size_t size)
|
||||
|
||||
/*
|
||||
* Cache operations depending on function and direction argument, inspired by
|
||||
* https://lkml.org/lkml/2018/5/18/979
|
||||
* https://lore.kernel.org/lkml/20180518175004.GF17671@n2100.armlinux.org.uk
|
||||
* "dma_sync_*_for_cpu and direction=TO_DEVICE (was Re: [PATCH 02/20]
|
||||
* dma-mapping: provide a generic dma-noncoherent implementation)"
|
||||
*
|
||||
|
@ -149,8 +149,7 @@ void do_page_fault(unsigned long address, struct pt_regs *regs)
|
||||
/*
|
||||
* Fault retry nuances, mmap_lock already relinquished by core mm
|
||||
*/
|
||||
if (unlikely((fault & VM_FAULT_RETRY) &&
|
||||
(flags & FAULT_FLAG_ALLOW_RETRY))) {
|
||||
if (unlikely(fault & VM_FAULT_RETRY)) {
|
||||
flags |= FAULT_FLAG_TRIED;
|
||||
goto retry;
|
||||
}
|
||||
|
@ -59,13 +59,13 @@ void __init early_init_dt_add_memory_arch(u64 base, u64 size)
|
||||
|
||||
low_mem_sz = size;
|
||||
in_use = 1;
|
||||
memblock_add_node(base, size, 0);
|
||||
memblock_add_node(base, size, 0, MEMBLOCK_NONE);
|
||||
} else {
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
high_mem_start = base;
|
||||
high_mem_sz = size;
|
||||
in_use = 1;
|
||||
memblock_add_node(base, size, 1);
|
||||
memblock_add_node(base, size, 1, MEMBLOCK_NONE);
|
||||
memblock_reserve(base, size);
|
||||
#endif
|
||||
}
|
||||
@ -173,7 +173,7 @@ static void __init highmem_init(void)
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
unsigned long tmp;
|
||||
|
||||
memblock_free(high_mem_start, high_mem_sz);
|
||||
memblock_phys_free(high_mem_start, high_mem_sz);
|
||||
for (tmp = min_high_pfn; tmp < max_high_pfn; tmp++)
|
||||
free_highmem_page(pfn_to_page(tmp));
|
||||
#endif
|
||||
|
@ -50,7 +50,7 @@ static void __init axs10x_enable_gpio_intc_wire(void)
|
||||
* Current implementation of "irq-dw-apb-ictl" driver doesn't work well
|
||||
* with stacked INTCs. In particular problem happens if its master INTC
|
||||
* not yet instantiated. See discussion here -
|
||||
* https://lkml.org/lkml/2015/3/4/755
|
||||
* https://lore.kernel.org/lkml/54F6FE2C.7020309@synopsys.com
|
||||
*
|
||||
* So setup the first gpio block as a passive pass thru and hide it from
|
||||
* DT hardware topology - connect MB intc directly to cpu intc
|
||||
|
@ -52,7 +52,7 @@ static void __init hsdk_enable_gpio_intc_wire(void)
|
||||
* Current implementation of "irq-dw-apb-ictl" driver doesn't work well
|
||||
* with stacked INTCs. In particular problem happens if its master INTC
|
||||
* not yet instantiated. See discussion here -
|
||||
* https://lkml.org/lkml/2015/3/4/755
|
||||
* https://lore.kernel.org/lkml/54F6FE2C.7020309@synopsys.com
|
||||
*
|
||||
* So setup the first gpio block as a passive pass thru and hide it from
|
||||
* DT hardware topology - connect intc directly to cpu intc
|
||||
|
@ -4,3 +4,6 @@ obj-$(CONFIG_KVM) += kvm/
|
||||
obj-$(CONFIG_XEN) += xen/
|
||||
obj-$(subst m,y,$(CONFIG_HYPERV)) += hyperv/
|
||||
obj-$(CONFIG_CRYPTO) += crypto/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -11,6 +11,7 @@ config ARM64
|
||||
select ACPI_PPTT if ACPI
|
||||
select ARCH_HAS_DEBUG_WX
|
||||
select ARCH_BINFMT_ELF_STATE
|
||||
select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
|
||||
select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION
|
||||
select ARCH_ENABLE_MEMORY_HOTPLUG
|
||||
select ARCH_ENABLE_MEMORY_HOTREMOVE
|
||||
@ -119,7 +120,6 @@ config ARM64
|
||||
select GENERIC_CPU_AUTOPROBE
|
||||
select GENERIC_CPU_VULNERABILITIES
|
||||
select GENERIC_EARLY_IOREMAP
|
||||
select GENERIC_FIND_FIRST_BIT
|
||||
select GENERIC_IDLE_POLL_SETUP
|
||||
select GENERIC_IRQ_IPI
|
||||
select GENERIC_IRQ_PROBE
|
||||
@ -133,7 +133,6 @@ config ARM64
|
||||
select GENERIC_TIME_VSYSCALL
|
||||
select GENERIC_GETTIMEOFDAY
|
||||
select GENERIC_VDSO_TIME_NS
|
||||
select HANDLE_DOMAIN_IRQ
|
||||
select HARDIRQS_SW_RESEND
|
||||
select HAVE_MOVE_PMD
|
||||
select HAVE_MOVE_PUD
|
||||
@ -150,11 +149,12 @@ config ARM64
|
||||
select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
|
||||
select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
|
||||
select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
|
||||
# Some instrumentation may be unsound, hence EXPERT
|
||||
select HAVE_ARCH_KCSAN if EXPERT
|
||||
select HAVE_ARCH_KFENCE
|
||||
select HAVE_ARCH_KGDB
|
||||
select HAVE_ARCH_MMAP_RND_BITS
|
||||
select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
|
||||
select HAVE_ARCH_PFN_VALID
|
||||
select HAVE_ARCH_PREL32_RELOCATIONS
|
||||
select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
|
||||
select HAVE_ARCH_SECCOMP_FILTER
|
||||
@ -186,14 +186,15 @@ config ARM64
|
||||
select HAVE_GCC_PLUGINS
|
||||
select HAVE_HW_BREAKPOINT if PERF_EVENTS
|
||||
select HAVE_IRQ_TIME_ACCOUNTING
|
||||
select HAVE_KVM
|
||||
select HAVE_NMI
|
||||
select HAVE_PATA_PLATFORM
|
||||
select HAVE_PERF_EVENTS
|
||||
select HAVE_PERF_REGS
|
||||
select HAVE_PERF_USER_STACK_DUMP
|
||||
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
select HAVE_POSIX_CPU_TIMERS_TASK_WORK
|
||||
select HAVE_FUNCTION_ARG_ACCESS_API
|
||||
select HAVE_FUTEX_CMPXCHG if FUTEX
|
||||
select MMU_GATHER_RCU_TABLE_FREE
|
||||
select HAVE_RSEQ
|
||||
select HAVE_STACKPROTECTOR
|
||||
@ -666,6 +667,203 @@ config ARM64_ERRATUM_1508412
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE
|
||||
bool
|
||||
|
||||
config ARM64_ERRATUM_2051678
|
||||
bool "Cortex-A510: 2051678: disable Hardware Update of the page table dirty bit"
|
||||
default y
|
||||
help
|
||||
This options adds the workaround for ARM Cortex-A510 erratum ARM64_ERRATUM_2051678.
|
||||
Affected Coretex-A510 might not respect the ordering rules for
|
||||
hardware update of the page table's dirty bit. The workaround
|
||||
is to not enable the feature on affected CPUs.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_ERRATUM_2077057
|
||||
bool "Cortex-A510: 2077057: workaround software-step corrupting SPSR_EL2"
|
||||
help
|
||||
This option adds the workaround for ARM Cortex-A510 erratum 2077057.
|
||||
Affected Cortex-A510 may corrupt SPSR_EL2 when the a step exception is
|
||||
expected, but a Pointer Authentication trap is taken instead. The
|
||||
erratum causes SPSR_EL1 to be copied to SPSR_EL2, which could allow
|
||||
EL1 to cause a return to EL2 with a guest controlled ELR_EL2.
|
||||
|
||||
This can only happen when EL2 is stepping EL1.
|
||||
|
||||
When these conditions occur, the SPSR_EL2 value is unchanged from the
|
||||
previous guest entry, and can be restored from the in-memory copy.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_ERRATUM_2119858
|
||||
bool "Cortex-A710/X2: 2119858: workaround TRBE overwriting trace data in FILL mode"
|
||||
default y
|
||||
depends on CORESIGHT_TRBE
|
||||
select ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE
|
||||
help
|
||||
This option adds the workaround for ARM Cortex-A710/X2 erratum 2119858.
|
||||
|
||||
Affected Cortex-A710/X2 cores could overwrite up to 3 cache lines of trace
|
||||
data at the base of the buffer (pointed to by TRBASER_EL1) in FILL mode in
|
||||
the event of a WRAP event.
|
||||
|
||||
Work around the issue by always making sure we move the TRBPTR_EL1 by
|
||||
256 bytes before enabling the buffer and filling the first 256 bytes of
|
||||
the buffer with ETM ignore packets upon disabling.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_ERRATUM_2139208
|
||||
bool "Neoverse-N2: 2139208: workaround TRBE overwriting trace data in FILL mode"
|
||||
default y
|
||||
depends on CORESIGHT_TRBE
|
||||
select ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE
|
||||
help
|
||||
This option adds the workaround for ARM Neoverse-N2 erratum 2139208.
|
||||
|
||||
Affected Neoverse-N2 cores could overwrite up to 3 cache lines of trace
|
||||
data at the base of the buffer (pointed to by TRBASER_EL1) in FILL mode in
|
||||
the event of a WRAP event.
|
||||
|
||||
Work around the issue by always making sure we move the TRBPTR_EL1 by
|
||||
256 bytes before enabling the buffer and filling the first 256 bytes of
|
||||
the buffer with ETM ignore packets upon disabling.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_WORKAROUND_TSB_FLUSH_FAILURE
|
||||
bool
|
||||
|
||||
config ARM64_ERRATUM_2054223
|
||||
bool "Cortex-A710: 2054223: workaround TSB instruction failing to flush trace"
|
||||
default y
|
||||
select ARM64_WORKAROUND_TSB_FLUSH_FAILURE
|
||||
help
|
||||
Enable workaround for ARM Cortex-A710 erratum 2054223
|
||||
|
||||
Affected cores may fail to flush the trace data on a TSB instruction, when
|
||||
the PE is in trace prohibited state. This will cause losing a few bytes
|
||||
of the trace cached.
|
||||
|
||||
Workaround is to issue two TSB consecutively on affected cores.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_ERRATUM_2067961
|
||||
bool "Neoverse-N2: 2067961: workaround TSB instruction failing to flush trace"
|
||||
default y
|
||||
select ARM64_WORKAROUND_TSB_FLUSH_FAILURE
|
||||
help
|
||||
Enable workaround for ARM Neoverse-N2 erratum 2067961
|
||||
|
||||
Affected cores may fail to flush the trace data on a TSB instruction, when
|
||||
the PE is in trace prohibited state. This will cause losing a few bytes
|
||||
of the trace cached.
|
||||
|
||||
Workaround is to issue two TSB consecutively on affected cores.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE
|
||||
bool
|
||||
|
||||
config ARM64_ERRATUM_2253138
|
||||
bool "Neoverse-N2: 2253138: workaround TRBE writing to address out-of-range"
|
||||
depends on CORESIGHT_TRBE
|
||||
default y
|
||||
select ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE
|
||||
help
|
||||
This option adds the workaround for ARM Neoverse-N2 erratum 2253138.
|
||||
|
||||
Affected Neoverse-N2 cores might write to an out-of-range address, not reserved
|
||||
for TRBE. Under some conditions, the TRBE might generate a write to the next
|
||||
virtually addressed page following the last page of the TRBE address space
|
||||
(i.e., the TRBLIMITR_EL1.LIMIT), instead of wrapping around to the base.
|
||||
|
||||
Work around this in the driver by always making sure that there is a
|
||||
page beyond the TRBLIMITR_EL1.LIMIT, within the space allowed for the TRBE.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_ERRATUM_2224489
|
||||
bool "Cortex-A710/X2: 2224489: workaround TRBE writing to address out-of-range"
|
||||
depends on CORESIGHT_TRBE
|
||||
default y
|
||||
select ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE
|
||||
help
|
||||
This option adds the workaround for ARM Cortex-A710/X2 erratum 2224489.
|
||||
|
||||
Affected Cortex-A710/X2 cores might write to an out-of-range address, not reserved
|
||||
for TRBE. Under some conditions, the TRBE might generate a write to the next
|
||||
virtually addressed page following the last page of the TRBE address space
|
||||
(i.e., the TRBLIMITR_EL1.LIMIT), instead of wrapping around to the base.
|
||||
|
||||
Work around this in the driver by always making sure that there is a
|
||||
page beyond the TRBLIMITR_EL1.LIMIT, within the space allowed for the TRBE.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_ERRATUM_2064142
|
||||
bool "Cortex-A510: 2064142: workaround TRBE register writes while disabled"
|
||||
depends on COMPILE_TEST # Until the CoreSight TRBE driver changes are in
|
||||
default y
|
||||
help
|
||||
This option adds the workaround for ARM Cortex-A510 erratum 2064142.
|
||||
|
||||
Affected Cortex-A510 core might fail to write into system registers after the
|
||||
TRBE has been disabled. Under some conditions after the TRBE has been disabled
|
||||
writes into TRBE registers TRBLIMITR_EL1, TRBPTR_EL1, TRBBASER_EL1, TRBSR_EL1,
|
||||
and TRBTRG_EL1 will be ignored and will not be effected.
|
||||
|
||||
Work around this in the driver by executing TSB CSYNC and DSB after collection
|
||||
is stopped and before performing a system register write to one of the affected
|
||||
registers.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_ERRATUM_2038923
|
||||
bool "Cortex-A510: 2038923: workaround TRBE corruption with enable"
|
||||
depends on COMPILE_TEST # Until the CoreSight TRBE driver changes are in
|
||||
default y
|
||||
help
|
||||
This option adds the workaround for ARM Cortex-A510 erratum 2038923.
|
||||
|
||||
Affected Cortex-A510 core might cause an inconsistent view on whether trace is
|
||||
prohibited within the CPU. As a result, the trace buffer or trace buffer state
|
||||
might be corrupted. This happens after TRBE buffer has been enabled by setting
|
||||
TRBLIMITR_EL1.E, followed by just a single context synchronization event before
|
||||
execution changes from a context, in which trace is prohibited to one where it
|
||||
isn't, or vice versa. In these mentioned conditions, the view of whether trace
|
||||
is prohibited is inconsistent between parts of the CPU, and the trace buffer or
|
||||
the trace buffer state might be corrupted.
|
||||
|
||||
Work around this in the driver by preventing an inconsistent view of whether the
|
||||
trace is prohibited or not based on TRBLIMITR_EL1.E by immediately following a
|
||||
change to TRBLIMITR_EL1.E with at least one ISB instruction before an ERET, or
|
||||
two ISB instructions if no ERET is to take place.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config ARM64_ERRATUM_1902691
|
||||
bool "Cortex-A510: 1902691: workaround TRBE trace corruption"
|
||||
depends on COMPILE_TEST # Until the CoreSight TRBE driver changes are in
|
||||
default y
|
||||
help
|
||||
This option adds the workaround for ARM Cortex-A510 erratum 1902691.
|
||||
|
||||
Affected Cortex-A510 core might cause trace data corruption, when being written
|
||||
into the memory. Effectively TRBE is broken and hence cannot be used to capture
|
||||
trace data.
|
||||
|
||||
Work around this problem in the driver by just preventing TRBE initialization on
|
||||
affected cpus. The firmware must have disabled the access to TRBE for the kernel
|
||||
on such implementations. This will cover the kernel for any firmware that doesn't
|
||||
do this already.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config CAVIUM_ERRATUM_22375
|
||||
bool "Cavium erratum 22375, 24313"
|
||||
default y
|
||||
@ -989,6 +1187,15 @@ config SCHED_MC
|
||||
making when dealing with multi-core CPU chips at a cost of slightly
|
||||
increased overhead in some places. If unsure say N here.
|
||||
|
||||
config SCHED_CLUSTER
|
||||
bool "Cluster scheduler support"
|
||||
help
|
||||
Cluster scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with machines that have clusters of CPUs.
|
||||
Cluster usually means a couple of CPUs which are placed closely
|
||||
by sharing mid-level caches, last-level cache tags or internal
|
||||
busses.
|
||||
|
||||
config SCHED_SMT
|
||||
bool "SMT scheduler support"
|
||||
help
|
||||
@ -1014,6 +1221,10 @@ config NUMA
|
||||
select GENERIC_ARCH_NUMA
|
||||
select ACPI_NUMA if ACPI
|
||||
select OF_NUMA
|
||||
select HAVE_SETUP_PER_CPU_AREA
|
||||
select NEED_PER_CPU_EMBED_FIRST_CHUNK
|
||||
select NEED_PER_CPU_PAGE_FIRST_CHUNK
|
||||
select USE_PERCPU_NUMA_NODE_ID
|
||||
help
|
||||
Enable NUMA (Non-Uniform Memory Access) support.
|
||||
|
||||
@ -1030,18 +1241,6 @@ config NODES_SHIFT
|
||||
Specify the maximum number of NUMA Nodes available on the target
|
||||
system. Increases memory reserved to accommodate various tables.
|
||||
|
||||
config USE_PERCPU_NUMA_NODE_ID
|
||||
def_bool y
|
||||
depends on NUMA
|
||||
|
||||
config HAVE_SETUP_PER_CPU_AREA
|
||||
def_bool y
|
||||
depends on NUMA
|
||||
|
||||
config NEED_PER_CPU_EMBED_FIRST_CHUNK
|
||||
def_bool y
|
||||
depends on NUMA
|
||||
|
||||
source "kernel/Kconfig.hz"
|
||||
|
||||
config ARCH_SPARSEMEM_ENABLE
|
||||
@ -1132,7 +1331,7 @@ config CRASH_DUMP
|
||||
|
||||
config TRANS_TABLE
|
||||
def_bool y
|
||||
depends on HIBERNATION
|
||||
depends on HIBERNATION || KEXEC_CORE
|
||||
|
||||
config XEN_DOM0
|
||||
def_bool y
|
||||
@ -1426,6 +1625,12 @@ endmenu
|
||||
|
||||
menu "ARMv8.2 architectural features"
|
||||
|
||||
config AS_HAS_ARMV8_2
|
||||
def_bool $(cc-option,-Wa$(comma)-march=armv8.2-a)
|
||||
|
||||
config AS_HAS_SHA3
|
||||
def_bool $(as-instr,.arch armv8.2-a+sha3)
|
||||
|
||||
config ARM64_PMEM
|
||||
bool "Enable support for persistent memory"
|
||||
select ARCH_HAS_PMEM_API
|
||||
|
@ -44,7 +44,6 @@ config ARCH_BCM2835
|
||||
select ARM_AMBA
|
||||
select ARM_GIC
|
||||
select ARM_TIMER_SP804
|
||||
select BRCMSTB_L2_IRQ
|
||||
help
|
||||
This enables support for the Broadcom BCM2837 and BCM2711 SoC.
|
||||
These SoCs are used in the Raspberry Pi 3 and 4 devices.
|
||||
@ -82,8 +81,6 @@ config ARCH_BITMAIN
|
||||
config ARCH_BRCMSTB
|
||||
bool "Broadcom Set-Top-Box SoCs"
|
||||
select ARCH_HAS_RESET_CONTROLLER
|
||||
select BCM7038_L1_IRQ
|
||||
select BRCMSTB_L2_IRQ
|
||||
select GENERIC_IRQ_CHIP
|
||||
select PINCTRL
|
||||
help
|
||||
@ -92,10 +89,9 @@ config ARCH_BRCMSTB
|
||||
config ARCH_EXYNOS
|
||||
bool "ARMv8 based Samsung Exynos SoC family"
|
||||
select COMMON_CLK_SAMSUNG
|
||||
select EXYNOS_CHIPID
|
||||
select CLKSRC_EXYNOS_MCT
|
||||
select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS
|
||||
select EXYNOS_PMU
|
||||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
select PINCTRL
|
||||
select PINCTRL_EXYNOS
|
||||
select PM_GENERIC_DOMAINS if PM
|
||||
@ -166,8 +162,6 @@ config ARCH_MEDIATEK
|
||||
|
||||
config ARCH_MESON
|
||||
bool "Amlogic Platforms"
|
||||
select COMMON_CLK
|
||||
select MESON_IRQ_GPIO
|
||||
help
|
||||
This enables support for the arm64 based Amlogic SoCs
|
||||
such as the s905, S905X/D, S912, A113X/D or S905X/D2
|
||||
@ -315,9 +309,6 @@ config ARCH_VISCONTI
|
||||
help
|
||||
This enables support for Toshiba Visconti SoCs Family.
|
||||
|
||||
config ARCH_VULCAN
|
||||
def_bool n
|
||||
|
||||
config ARCH_XGENE
|
||||
bool "AppliedMicro X-Gene SOC Family"
|
||||
help
|
||||
|
@ -58,6 +58,11 @@ stack_protector_prepare: prepare0
|
||||
include/generated/asm-offsets.h))
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_AS_HAS_ARMV8_2), y)
|
||||
# make sure to pass the newest target architecture to -march.
|
||||
asm-arch := armv8.2-a
|
||||
endif
|
||||
|
||||
# Ensure that if the compiler supports branch protection we default it
|
||||
# off, this will be overridden if we are using branch protection.
|
||||
branch-prot-flags-y += $(call cc-option,-mbranch-protection=none)
|
||||
@ -182,13 +187,6 @@ ifeq ($(CONFIG_ARM64_USE_LSE_ATOMICS),y)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
# We use MRPROPER_FILES and CLEAN_FILES now
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
$(Q)$(MAKE) $(clean)=arch/arm64/kernel/vdso
|
||||
$(Q)$(MAKE) $(clean)=arch/arm64/kernel/vdso32
|
||||
|
||||
ifeq ($(KBUILD_EXTMOD),)
|
||||
# We need to generate vdso-offsets.h before compiling certain files in kernel/.
|
||||
# In order to do that, we should use the archprepare target, but we can't since
|
||||
|
@ -37,3 +37,4 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64-model-b.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb
|
||||
|
@ -10,7 +10,7 @@ &axp803 {
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
ac_power_supply: ac-power-supply {
|
||||
ac_power_supply: ac-power {
|
||||
compatible = "x-powers,axp803-ac-power-supply",
|
||||
"x-powers,axp813-ac-power-supply";
|
||||
status = "disabled";
|
||||
@ -26,18 +26,18 @@ axp_gpio: gpio {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
gpio0_ldo: gpio0-ldo {
|
||||
gpio0_ldo: gpio0-ldo-pin {
|
||||
pins = "GPIO0";
|
||||
function = "ldo";
|
||||
};
|
||||
|
||||
gpio1_ldo: gpio1-ldo {
|
||||
gpio1_ldo: gpio1-ldo-pin {
|
||||
pins = "GPIO1";
|
||||
function = "ldo";
|
||||
};
|
||||
};
|
||||
|
||||
battery_power_supply: battery-power-supply {
|
||||
battery_power_supply: battery-power {
|
||||
compatible = "x-powers,axp803-battery-power-supply",
|
||||
"x-powers,axp813-battery-power-supply";
|
||||
status = "disabled";
|
||||
@ -147,7 +147,7 @@ reg_drivevbus: drivevbus {
|
||||
};
|
||||
};
|
||||
|
||||
usb_power_supply: usb-power-supply {
|
||||
usb_power_supply: usb-power {
|
||||
compatible = "x-powers,axp803-usb-power-supply",
|
||||
"x-powers,axp813-usb-power-supply";
|
||||
status = "disabled";
|
||||
|
@ -343,7 +343,7 @@ &sound {
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
|
||||
spi-flash@0 {
|
||||
flash@0 {
|
||||
compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <80000000>;
|
||||
|
@ -15,6 +15,7 @@
|
||||
/ {
|
||||
model = "Pinebook";
|
||||
compatible = "pine64,pinebook", "allwinner,sun50i-a64";
|
||||
chassis-type = "laptop";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
|
@ -12,6 +12,8 @@
|
||||
#include <dt-bindings/pwm/pwm.h>
|
||||
|
||||
/ {
|
||||
chassis-type = "handset";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &rtl8723cs;
|
||||
serial0 = &uart0;
|
||||
|
@ -16,6 +16,7 @@
|
||||
/ {
|
||||
model = "PineTab, Development Sample";
|
||||
compatible = "pine64,pinetab", "allwinner,sun50i-a64";
|
||||
chassis-type = "tablet";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
@ -35,6 +36,17 @@ chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
hdmi-connector {
|
||||
compatible = "hdmi-connector";
|
||||
type = "c";
|
||||
|
||||
port {
|
||||
hdmi_con_in: endpoint {
|
||||
remote-endpoint = <&hdmi_out_con>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2c-csi {
|
||||
compatible = "i2c-gpio";
|
||||
sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>; /* PE13 */
|
||||
@ -77,7 +89,7 @@ speaker_amp: audio-amplifier {
|
||||
sound-name-prefix = "Speaker Amp";
|
||||
};
|
||||
|
||||
vdd_bl: regulator@0 {
|
||||
vdd_bl: regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "bl-3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
@ -410,6 +422,21 @@ ®_rtc_ldo {
|
||||
regulator-name = "vcc-rtc";
|
||||
};
|
||||
|
||||
&simplefb_hdmi {
|
||||
vcc-hdmi-supply = <®_dldo1>;
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hvcc-supply = <®_dldo1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi_out {
|
||||
hdmi_out_con: endpoint {
|
||||
remote-endpoint = <&hdmi_con_in>;
|
||||
};
|
||||
};
|
||||
|
||||
&sound {
|
||||
status = "okay";
|
||||
simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
|
||||
|
@ -14,6 +14,7 @@
|
||||
/ {
|
||||
model = "Olimex A64 Teres-I";
|
||||
compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64";
|
||||
chassis-type = "laptop";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
@ -139,6 +140,8 @@ ports {
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
anx6345_in: endpoint {
|
||||
remote-endpoint = <&tcon0_out_anx6345>;
|
||||
};
|
||||
@ -206,7 +209,6 @@ axp803: pmic@3a3 {
|
||||
reg = <0x3a3>;
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -102,6 +102,22 @@ de: display-engine {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpu_opp_table: opp-table-gpu {
|
||||
compatible = "operating-points-v2";
|
||||
|
||||
opp-120000000 {
|
||||
opp-hz = /bits/ 64 <120000000>;
|
||||
};
|
||||
|
||||
opp-312000000 {
|
||||
opp-hz = /bits/ 64 <312000000>;
|
||||
};
|
||||
|
||||
opp-432000000 {
|
||||
opp-hz = /bits/ 64 <432000000>;
|
||||
};
|
||||
};
|
||||
|
||||
osc24M: osc24M_clk {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
@ -1103,6 +1119,7 @@ mali: gpu@1c40000 {
|
||||
clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
|
||||
clock-names = "bus", "core";
|
||||
resets = <&ccu RST_BUS_GPU>;
|
||||
operating-points-v2 = <&gpu_opp_table>;
|
||||
};
|
||||
|
||||
gic: interrupt-controller@1c81000 {
|
||||
@ -1129,8 +1146,14 @@ pwm: pwm@1c21400 {
|
||||
|
||||
mbus: dram-controller@1c62000 {
|
||||
compatible = "allwinner,sun50i-a64-mbus";
|
||||
reg = <0x01c62000 0x1000>;
|
||||
clocks = <&ccu 112>;
|
||||
reg = <0x01c62000 0x1000>,
|
||||
<0x01c63000 0x1000>;
|
||||
reg-names = "mbus", "dram";
|
||||
clocks = <&ccu CLK_MBUS>,
|
||||
<&ccu CLK_DRAM>,
|
||||
<&ccu CLK_BUS_DRAM>;
|
||||
clock-names = "mbus", "dram", "bus";
|
||||
interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
dma-ranges = <0x00000000 0x40000000 0xc0000000>;
|
||||
@ -1203,8 +1226,8 @@ hdmi: hdmi@1ee0000 {
|
||||
reg-io-width = <1>;
|
||||
interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
|
||||
<&ccu CLK_HDMI>;
|
||||
clock-names = "iahb", "isfr", "tmds";
|
||||
<&ccu CLK_HDMI>, <&rtc 0>;
|
||||
clock-names = "iahb", "isfr", "tmds", "cec";
|
||||
resets = <&ccu RST_BUS_HDMI1>;
|
||||
reset-names = "ctrl";
|
||||
phys = <&hdmi_phy>;
|
||||
|
@ -142,9 +142,16 @@ &i2c0 {
|
||||
status = "okay";
|
||||
|
||||
eeprom@51 {
|
||||
compatible = "microchip,24c02";
|
||||
compatible = "microchip,24c02", "atmel,24c02";
|
||||
reg = <0x51>;
|
||||
pagesize = <16>;
|
||||
read-only;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
eth_mac1: mac-address@fa {
|
||||
reg = <0xfa 0x06>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -233,6 +233,10 @@ &display_clocks {
|
||||
compatible = "allwinner,sun50i-h5-de2-clk";
|
||||
};
|
||||
|
||||
&mbus {
|
||||
compatible = "allwinner,sun50i-h5-mbus";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
compatible = "allwinner,sun50i-h5-mmc",
|
||||
"allwinner,sun50i-a64-mmc";
|
||||
|
@ -3,145 +3,27 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-h6.dtsi"
|
||||
#include "sun50i-h6-cpu-opp.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include "sun50i-h6-tanix.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Tanix TX6";
|
||||
compatible = "oranth,tanix-tx6", "allwinner,sun50i-h6";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
connector {
|
||||
compatible = "hdmi-connector";
|
||||
ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
|
||||
type = "a";
|
||||
|
||||
port {
|
||||
hdmi_con_in: endpoint {
|
||||
remote-endpoint = <&hdmi_out_con>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
reg_vcc1v8: regulator-vcc1v8 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc1v8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
reg_vcc3v3: regulator-vcc3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
reg_vdd_cpu_gpu: regulator-vdd-cpu-gpu {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd-cpu-gpu";
|
||||
regulator-min-microvolt = <1135000>;
|
||||
regulator-max-microvolt = <1135000>;
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <®_vdd_cpu_gpu>;
|
||||
};
|
||||
|
||||
&de {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dwc3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpu {
|
||||
mali-supply = <®_vdd_cpu_gpu>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi_out {
|
||||
hdmi_out_con: endpoint {
|
||||
remote-endpoint = <&hdmi_con_in>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
vqmmc-supply = <®_vcc1v8>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
cap-mmc-hw-reset;
|
||||
mmc-hs200-1_8v;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
vcc-pc-supply = <®_vcc1v8>;
|
||||
vcc-pd-supply = <®_vcc3v3>;
|
||||
vcc-pg-supply = <®_vcc1v8>;
|
||||
};
|
||||
|
||||
&r_ir {
|
||||
linux,rc-map-name = "rc-tanix-tx5max";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
|
||||
uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb2otg {
|
||||
dr_mode = "host";
|
||||
status = "okay";
|
||||
bluetooth {
|
||||
compatible = "realtek,rtl8822cs-bt";
|
||||
device-wake-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */
|
||||
host-wake-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */
|
||||
enable-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */
|
||||
};
|
||||
|
||||
&usb2phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb3phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -119,10 +119,10 @@ bus@1000000 {
|
||||
display_clocks: clock@0 {
|
||||
compatible = "allwinner,sun50i-h6-de3-clk";
|
||||
reg = <0x0 0x10000>;
|
||||
clocks = <&ccu CLK_DE>,
|
||||
<&ccu CLK_BUS_DE>;
|
||||
clock-names = "mod",
|
||||
"bus";
|
||||
clocks = <&ccu CLK_BUS_DE>,
|
||||
<&ccu CLK_DE>;
|
||||
clock-names = "bus",
|
||||
"mod";
|
||||
resets = <&ccu RST_BUS_DE>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
@ -153,6 +153,15 @@ mixer0_out_tcon_top_mixer0: endpoint {
|
||||
};
|
||||
};
|
||||
|
||||
video-codec-g2@1c00000 {
|
||||
compatible = "allwinner,sun50i-h6-vpu-g2";
|
||||
reg = <0x01c00000 0x1000>;
|
||||
interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
|
||||
clock-names = "bus", "mod";
|
||||
resets = <&ccu RST_BUS_VP9>;
|
||||
};
|
||||
|
||||
video-codec@1c0e000 {
|
||||
compatible = "allwinner,sun50i-h6-video-engine";
|
||||
reg = <0x01c0e000 0x2000>;
|
||||
|
@ -594,7 +594,7 @@ emac0-tx-ecc@ff8c0400 {
|
||||
};
|
||||
|
||||
qspi: spi@ff8d2000 {
|
||||
compatible = "cdns,qspi-nor";
|
||||
compatible = "intel,socfpga-qspi", "cdns,qspi-nor";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xff8d2000 0x100>,
|
||||
|
@ -119,28 +119,8 @@ partition@0 {
|
||||
};
|
||||
|
||||
partition@200000 {
|
||||
label = "env";
|
||||
reg = <0x200000 0x40000>;
|
||||
};
|
||||
|
||||
partition@240000 {
|
||||
label = "dtb";
|
||||
reg = <0x240000 0x40000>;
|
||||
};
|
||||
|
||||
partition@280000 {
|
||||
label = "kernel";
|
||||
reg = <0x280000 0x2000000>;
|
||||
};
|
||||
|
||||
partition@2280000 {
|
||||
label = "misc";
|
||||
reg = <0x2280000 0x2000000>;
|
||||
};
|
||||
|
||||
partition@4280000 {
|
||||
label = "rootfs";
|
||||
reg = <0x4280000 0x3bd80000>;
|
||||
label = "root";
|
||||
reg = <0x200000 0x3fe00000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,5 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-radxa-zero.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb
|
||||
@ -38,6 +40,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-libretech-pc.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-minix-neo-u9h.dtb
|
||||
|
@ -165,61 +165,6 @@ &clkc CLKID_PCIE_COMB
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
thermal-zones {
|
||||
cpu_thermal: cpu-thermal {
|
||||
polling-delay = <1000>;
|
||||
polling-delay-passive = <100>;
|
||||
thermal-sensors = <&cpu_temp>;
|
||||
|
||||
trips {
|
||||
cpu_passive: cpu-passive {
|
||||
temperature = <85000>; /* millicelsius */
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "passive";
|
||||
};
|
||||
|
||||
cpu_hot: cpu-hot {
|
||||
temperature = <95000>; /* millicelsius */
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "hot";
|
||||
};
|
||||
|
||||
cpu_critical: cpu-critical {
|
||||
temperature = <110000>; /* millicelsius */
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "critical";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ddr_thermal: ddr-thermal {
|
||||
polling-delay = <1000>;
|
||||
polling-delay-passive = <100>;
|
||||
thermal-sensors = <&ddr_temp>;
|
||||
|
||||
trips {
|
||||
ddr_passive: ddr-passive {
|
||||
temperature = <85000>; /* millicelsius */
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "passive";
|
||||
};
|
||||
|
||||
ddr_critical: ddr-critical {
|
||||
temperature = <110000>; /* millicelsius */
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "critical";
|
||||
};
|
||||
};
|
||||
|
||||
cooling-maps {
|
||||
map {
|
||||
trip = <&ddr_passive>;
|
||||
cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ethmac: ethernet@ff3f0000 {
|
||||
compatible = "amlogic,meson-g12a-dwmac",
|
||||
"snps,dwmac-3.70a",
|
||||
@ -2421,6 +2366,61 @@ mali: gpu@ffe40000 {
|
||||
};
|
||||
};
|
||||
|
||||
thermal-zones {
|
||||
cpu_thermal: cpu-thermal {
|
||||
polling-delay = <1000>;
|
||||
polling-delay-passive = <100>;
|
||||
thermal-sensors = <&cpu_temp>;
|
||||
|
||||
trips {
|
||||
cpu_passive: cpu-passive {
|
||||
temperature = <85000>; /* millicelsius */
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "passive";
|
||||
};
|
||||
|
||||
cpu_hot: cpu-hot {
|
||||
temperature = <95000>; /* millicelsius */
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "hot";
|
||||
};
|
||||
|
||||
cpu_critical: cpu-critical {
|
||||
temperature = <110000>; /* millicelsius */
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "critical";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ddr_thermal: ddr-thermal {
|
||||
polling-delay = <1000>;
|
||||
polling-delay-passive = <100>;
|
||||
thermal-sensors = <&ddr_temp>;
|
||||
|
||||
trips {
|
||||
ddr_passive: ddr-passive {
|
||||
temperature = <85000>; /* millicelsius */
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "passive";
|
||||
};
|
||||
|
||||
ddr_critical: ddr-critical {
|
||||
temperature = <110000>; /* millicelsius */
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "critical";
|
||||
};
|
||||
};
|
||||
|
||||
cooling-maps {
|
||||
map {
|
||||
trip = <&ddr_passive>;
|
||||
cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <GIC_PPI 13
|
||||
|
@ -99,6 +99,8 @@ vcc_5v: regulator-vcc_5v {
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
vin-supply = <&main_12v>;
|
||||
gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
vcc_1v8: regulator-vcc_1v8 {
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
#include "meson-gxbb.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
@ -26,8 +27,10 @@ memory@0 {
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led-system {
|
||||
label = "wetek-play:system-status";
|
||||
led-power {
|
||||
/* red in suspend or power-off */
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_POWER;
|
||||
gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
panic-indicator;
|
||||
|
@ -8,6 +8,7 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/sound/meson-aiu.h>
|
||||
|
||||
#include "meson-gxl-s805x.dtsi"
|
||||
|
||||
@ -21,6 +22,13 @@ aliases {
|
||||
ethernet0 = ðmac;
|
||||
};
|
||||
|
||||
au2: analog-amplifier {
|
||||
compatible = "simple-audio-amplifier";
|
||||
sound-name-prefix = "AU2";
|
||||
VCC-supply = <&vcc_5v>;
|
||||
enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
@ -84,6 +92,14 @@ vcc_3v3: regulator-vcc_3v3 {
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
vcc_5v: regulator-vcc-5v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VCC_5V";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
};
|
||||
|
||||
|
||||
emmc_pwrseq: emmc-pwrseq {
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
|
||||
@ -102,6 +118,68 @@ sdio_pwrseq: sdio-pwrseq {
|
||||
clocks = <&wifi32k>;
|
||||
clock-names = "ext_clock";
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "amlogic,gx-sound-card";
|
||||
model = "GXL-P241";
|
||||
audio-aux-devs = <&au2>;
|
||||
audio-widgets = "Line", "Lineout";
|
||||
audio-routing = "AU2 INL", "ACODEC LOLN",
|
||||
"AU2 INR", "ACODEC LORN",
|
||||
"Lineout", "AU2 OUTL",
|
||||
"Lineout", "AU2 OUTR";
|
||||
assigned-clocks = <&clkc CLKID_MPLL0>,
|
||||
<&clkc CLKID_MPLL1>,
|
||||
<&clkc CLKID_MPLL2>;
|
||||
assigned-clock-parents = <0>, <0>, <0>;
|
||||
assigned-clock-rates = <294912000>,
|
||||
<270950400>,
|
||||
<393216000>;
|
||||
status = "okay";
|
||||
|
||||
dai-link-0 {
|
||||
sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
|
||||
};
|
||||
|
||||
dai-link-1 {
|
||||
sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
|
||||
dai-format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
|
||||
};
|
||||
|
||||
codec-1 {
|
||||
sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
|
||||
};
|
||||
};
|
||||
|
||||
dai-link-2 {
|
||||
sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&hdmi_tx>;
|
||||
};
|
||||
};
|
||||
|
||||
dai-link-3 {
|
||||
sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&acodec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&acodec {
|
||||
AVDD-supply = <&vddio_ao18>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&aiu {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cec_AO {
|
||||
@ -136,6 +214,7 @@ &hdmi_tx {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
|
||||
pinctrl-names = "default";
|
||||
hdmi-supply = <&vcc_5v>;
|
||||
};
|
||||
|
||||
&hdmi_tx_tmds_port {
|
||||
@ -220,3 +299,7 @@ &usb {
|
||||
status = "okay";
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
&usb2_phy0 {
|
||||
phy-supply = <&vcc_5v>;
|
||||
};
|
||||
|
@ -14,6 +14,7 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "meson-gxm.dtsi"
|
||||
#include <dt-bindings/sound/meson-aiu.h>
|
||||
|
||||
/ {
|
||||
compatible = "kingnovel,r-box-pro", "amlogic,s912", "amlogic,meson-gxm";
|
||||
@ -33,6 +34,13 @@ memory@0 {
|
||||
reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */
|
||||
};
|
||||
|
||||
spdif_dit: audio-codec-0 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "linux,spdif-dit";
|
||||
status = "okay";
|
||||
sound-name-prefix = "DIT";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
@ -90,6 +98,59 @@ sdio_pwrseq: sdio-pwrseq {
|
||||
clocks = <&wifi32k>;
|
||||
clock-names = "ext_clock";
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "amlogic,gx-sound-card";
|
||||
model = "RBOX-PRO";
|
||||
assigned-clocks = <&clkc CLKID_MPLL0>,
|
||||
<&clkc CLKID_MPLL1>,
|
||||
<&clkc CLKID_MPLL2>;
|
||||
assigned-clock-parents = <0>, <0>, <0>;
|
||||
assigned-clock-rates = <294912000>,
|
||||
<270950400>,
|
||||
<393216000>;
|
||||
status = "okay";
|
||||
|
||||
dai-link-0 {
|
||||
sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
|
||||
};
|
||||
|
||||
dai-link-1 {
|
||||
sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
|
||||
};
|
||||
|
||||
dai-link-2 {
|
||||
sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
|
||||
dai-format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
|
||||
};
|
||||
};
|
||||
|
||||
dai-link-3 {
|
||||
sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&spdif_dit>;
|
||||
};
|
||||
};
|
||||
|
||||
dai-link-4 {
|
||||
sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&hdmi_tx>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&aiu {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&spdif_out_h_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
ðmac {
|
||||
|
@ -225,6 +225,20 @@ &arb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cec_AO {
|
||||
pinctrl-0 = <&cec_ao_a_h_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "disabled";
|
||||
hdmi-phandle = <&hdmi_tx>;
|
||||
};
|
||||
|
||||
&cecb_AO {
|
||||
pinctrl-0 = <&cec_ao_b_h_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
hdmi-phandle = <&hdmi_tx>;
|
||||
};
|
||||
|
||||
&clkc_audio {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -1,2 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
dtb-$(CONFIG_ARCH_APPLE) += t8103-j274.dtb
|
||||
dtb-$(CONFIG_ARCH_APPLE) += t8103-j293.dtb
|
||||
dtb-$(CONFIG_ARCH_APPLE) += t8103-j313.dtb
|
||||
dtb-$(CONFIG_ARCH_APPLE) += t8103-j456.dtb
|
||||
dtb-$(CONFIG_ARCH_APPLE) += t8103-j457.dtb
|
||||
|
@ -10,36 +10,36 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "t8103.dtsi"
|
||||
#include "t8103-jxxx.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "apple,j274", "apple,t8103", "apple,arm-platform";
|
||||
model = "Apple Mac mini (M1, 2020)";
|
||||
|
||||
aliases {
|
||||
serial0 = &serial0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
stdout-path = "serial0";
|
||||
|
||||
framebuffer0: framebuffer@0 {
|
||||
compatible = "apple,simple-framebuffer", "simple-framebuffer";
|
||||
reg = <0 0 0 0>; /* To be filled by loader */
|
||||
/* Format properties will be added by loader */
|
||||
status = "disabled";
|
||||
ethernet0 = ðernet0;
|
||||
};
|
||||
};
|
||||
|
||||
memory@800000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x8 0 0x2 0>; /* To be filled by loader */
|
||||
/*
|
||||
* Force the bus number assignments so that we can declare some of the
|
||||
* on-board devices and properties that are populated by the bootloader
|
||||
* (such as MAC addresses).
|
||||
*/
|
||||
|
||||
&port01 {
|
||||
bus-range = <2 2>;
|
||||
};
|
||||
|
||||
&port02 {
|
||||
bus-range = <3 3>;
|
||||
ethernet0: ethernet@0,0 {
|
||||
reg = <0x30000 0x0 0x0 0x0 0x0>;
|
||||
/* To be filled by the loader */
|
||||
local-mac-address = [00 10 18 00 00 00];
|
||||
};
|
||||
};
|
||||
|
||||
&serial0 {
|
||||
&i2c2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -7,8 +7,10 @@
|
||||
* Copyright The Asahi Linux Contributors
|
||||
*/
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/apple-aic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/pinctrl/apple.h>
|
||||
|
||||
/ {
|
||||
compatible = "apple,t8103", "apple,arm-platform";
|
||||
@ -95,11 +97,11 @@ timer {
|
||||
<AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
clk24: clock-24m {
|
||||
clkref: clock-ref {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
clock-output-names = "clk24";
|
||||
clock-output-names = "clkref";
|
||||
};
|
||||
|
||||
soc {
|
||||
@ -110,6 +112,73 @@ soc {
|
||||
ranges;
|
||||
nonposted-mmio;
|
||||
|
||||
i2c0: i2c@235010000 {
|
||||
compatible = "apple,t8103-i2c", "apple,i2c";
|
||||
reg = <0x2 0x35010000 0x0 0x4000>;
|
||||
clocks = <&clkref>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
pinctrl-names = "default";
|
||||
#address-cells = <0x1>;
|
||||
#size-cells = <0x0>;
|
||||
power-domains = <&ps_i2c0>;
|
||||
};
|
||||
|
||||
i2c1: i2c@235014000 {
|
||||
compatible = "apple,t8103-i2c", "apple,i2c";
|
||||
reg = <0x2 0x35014000 0x0 0x4000>;
|
||||
clocks = <&clkref>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
pinctrl-names = "default";
|
||||
#address-cells = <0x1>;
|
||||
#size-cells = <0x0>;
|
||||
power-domains = <&ps_i2c1>;
|
||||
};
|
||||
|
||||
i2c2: i2c@235018000 {
|
||||
compatible = "apple,t8103-i2c", "apple,i2c";
|
||||
reg = <0x2 0x35018000 0x0 0x4000>;
|
||||
clocks = <&clkref>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-0 = <&i2c2_pins>;
|
||||
pinctrl-names = "default";
|
||||
#address-cells = <0x1>;
|
||||
#size-cells = <0x0>;
|
||||
status = "disabled"; /* not used in all devices */
|
||||
power-domains = <&ps_i2c2>;
|
||||
};
|
||||
|
||||
i2c3: i2c@23501c000 {
|
||||
compatible = "apple,t8103-i2c", "apple,i2c";
|
||||
reg = <0x2 0x3501c000 0x0 0x4000>;
|
||||
clocks = <&clkref>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-0 = <&i2c3_pins>;
|
||||
pinctrl-names = "default";
|
||||
#address-cells = <0x1>;
|
||||
#size-cells = <0x0>;
|
||||
power-domains = <&ps_i2c3>;
|
||||
};
|
||||
|
||||
i2c4: i2c@235020000 {
|
||||
compatible = "apple,t8103-i2c", "apple,i2c";
|
||||
reg = <0x2 0x35020000 0x0 0x4000>;
|
||||
clocks = <&clkref>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-0 = <&i2c4_pins>;
|
||||
pinctrl-names = "default";
|
||||
#address-cells = <0x1>;
|
||||
#size-cells = <0x0>;
|
||||
power-domains = <&ps_i2c4>;
|
||||
status = "disabled"; /* only used in J293 */
|
||||
};
|
||||
|
||||
serial0: serial@235200000 {
|
||||
compatible = "apple,s5l-uart";
|
||||
reg = <0x2 0x35200000 0x0 0x1000>;
|
||||
@ -120,8 +189,21 @@ serial0: serial@235200000 {
|
||||
* TODO: figure out the clocking properly, there may
|
||||
* be a third selectable clock.
|
||||
*/
|
||||
clocks = <&clk24>, <&clk24>;
|
||||
clocks = <&clkref>, <&clkref>;
|
||||
clock-names = "uart", "clk_uart_baud0";
|
||||
power-domains = <&ps_uart0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial2: serial@235208000 {
|
||||
compatible = "apple,s5l-uart";
|
||||
reg = <0x2 0x35208000 0x0 0x1000>;
|
||||
reg-io-width = <4>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clkref>, <&clkref>;
|
||||
clock-names = "uart", "clk_uart_baud0";
|
||||
power-domains = <&ps_uart2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -130,6 +212,269 @@ aic: interrupt-controller@23b100000 {
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
reg = <0x2 0x3b100000 0x0 0x8000>;
|
||||
power-domains = <&ps_aic>;
|
||||
};
|
||||
|
||||
pmgr: power-management@23b700000 {
|
||||
compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x2 0x3b700000 0 0x14000>;
|
||||
};
|
||||
|
||||
pinctrl_ap: pinctrl@23c100000 {
|
||||
compatible = "apple,t8103-pinctrl", "apple,pinctrl";
|
||||
reg = <0x2 0x3c100000 0x0 0x100000>;
|
||||
power-domains = <&ps_gpio>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&pinctrl_ap 0 0 212>;
|
||||
apple,npins = <212>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
i2c0_pins: i2c0-pins {
|
||||
pinmux = <APPLE_PINMUX(192, 1)>,
|
||||
<APPLE_PINMUX(188, 1)>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1-pins {
|
||||
pinmux = <APPLE_PINMUX(201, 1)>,
|
||||
<APPLE_PINMUX(199, 1)>;
|
||||
};
|
||||
|
||||
i2c2_pins: i2c2-pins {
|
||||
pinmux = <APPLE_PINMUX(163, 1)>,
|
||||
<APPLE_PINMUX(162, 1)>;
|
||||
};
|
||||
|
||||
i2c3_pins: i2c3-pins {
|
||||
pinmux = <APPLE_PINMUX(73, 1)>,
|
||||
<APPLE_PINMUX(72, 1)>;
|
||||
};
|
||||
|
||||
i2c4_pins: i2c4-pins {
|
||||
pinmux = <APPLE_PINMUX(135, 1)>,
|
||||
<APPLE_PINMUX(134, 1)>;
|
||||
};
|
||||
|
||||
pcie_pins: pcie-pins {
|
||||
pinmux = <APPLE_PINMUX(150, 1)>,
|
||||
<APPLE_PINMUX(151, 1)>,
|
||||
<APPLE_PINMUX(32, 1)>;
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_nub: pinctrl@23d1f0000 {
|
||||
compatible = "apple,t8103-pinctrl", "apple,pinctrl";
|
||||
reg = <0x2 0x3d1f0000 0x0 0x4000>;
|
||||
power-domains = <&ps_nub_gpio>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&pinctrl_nub 0 0 23>;
|
||||
apple,npins = <23>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
pmgr_mini: power-management@23d280000 {
|
||||
compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x2 0x3d280000 0 0x4000>;
|
||||
};
|
||||
|
||||
wdt: watchdog@23d2b0000 {
|
||||
compatible = "apple,t8103-wdt", "apple,wdt";
|
||||
reg = <0x2 0x3d2b0000 0x0 0x4000>;
|
||||
clocks = <&clkref>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
pinctrl_smc: pinctrl@23e820000 {
|
||||
compatible = "apple,t8103-pinctrl", "apple,pinctrl";
|
||||
reg = <0x2 0x3e820000 0x0 0x4000>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&pinctrl_smc 0 0 16>;
|
||||
apple,npins = <16>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
pinctrl_aop: pinctrl@24a820000 {
|
||||
compatible = "apple,t8103-pinctrl", "apple,pinctrl";
|
||||
reg = <0x2 0x4a820000 0x0 0x4000>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&pinctrl_aop 0 0 42>;
|
||||
apple,npins = <42>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
pcie0_dart_0: dart@681008000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x6 0x81008000 0x0 0x4000>;
|
||||
#iommu-cells = <1>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&ps_apcie_gp>;
|
||||
};
|
||||
|
||||
pcie0_dart_1: dart@682008000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x6 0x82008000 0x0 0x4000>;
|
||||
#iommu-cells = <1>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&ps_apcie_gp>;
|
||||
};
|
||||
|
||||
pcie0_dart_2: dart@683008000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x6 0x83008000 0x0 0x4000>;
|
||||
#iommu-cells = <1>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&ps_apcie_gp>;
|
||||
};
|
||||
|
||||
pcie0: pcie@690000000 {
|
||||
compatible = "apple,t8103-pcie", "apple,pcie";
|
||||
device_type = "pci";
|
||||
|
||||
reg = <0x6 0x90000000 0x0 0x1000000>,
|
||||
<0x6 0x80000000 0x0 0x100000>,
|
||||
<0x6 0x81000000 0x0 0x4000>,
|
||||
<0x6 0x82000000 0x0 0x4000>,
|
||||
<0x6 0x83000000 0x0 0x4000>;
|
||||
reg-names = "config", "rc", "port0", "port1", "port2";
|
||||
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
msi-controller;
|
||||
msi-parent = <&pcie0>;
|
||||
msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>;
|
||||
|
||||
|
||||
iommu-map = <0x100 &pcie0_dart_0 1 1>,
|
||||
<0x200 &pcie0_dart_1 1 1>,
|
||||
<0x300 &pcie0_dart_2 1 1>;
|
||||
iommu-map-mask = <0xff00>;
|
||||
|
||||
bus-range = <0 3>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>,
|
||||
<0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>;
|
||||
|
||||
power-domains = <&ps_apcie_gp>;
|
||||
pinctrl-0 = <&pcie_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
port00: pci@0,0 {
|
||||
device_type = "pci";
|
||||
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>;
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
interrupt-map-mask = <0 0 0 7>;
|
||||
interrupt-map = <0 0 0 1 &port00 0 0 0 0>,
|
||||
<0 0 0 2 &port00 0 0 0 1>,
|
||||
<0 0 0 3 &port00 0 0 0 2>,
|
||||
<0 0 0 4 &port00 0 0 0 3>;
|
||||
};
|
||||
|
||||
port01: pci@1,0 {
|
||||
device_type = "pci";
|
||||
reg = <0x800 0x0 0x0 0x0 0x0>;
|
||||
reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>;
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
interrupt-map-mask = <0 0 0 7>;
|
||||
interrupt-map = <0 0 0 1 &port01 0 0 0 0>,
|
||||
<0 0 0 2 &port01 0 0 0 1>,
|
||||
<0 0 0 3 &port01 0 0 0 2>,
|
||||
<0 0 0 4 &port01 0 0 0 3>;
|
||||
};
|
||||
|
||||
port02: pci@2,0 {
|
||||
device_type = "pci";
|
||||
reg = <0x1000 0x0 0x0 0x0 0x0>;
|
||||
reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>;
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
interrupt-map-mask = <0 0 0 7>;
|
||||
interrupt-map = <0 0 0 1 &port02 0 0 0 0>,
|
||||
<0 0 0 2 &port02 0 0 0 1>,
|
||||
<0 0 0 3 &port02 0 0 0 2>,
|
||||
<0 0 0 4 &port02 0 0 0 3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "t8103-pmgr.dtsi"
|
||||
|
@ -160,64 +160,75 @@ v2m_sysctl: sysctl@20000 {
|
||||
apbregs@10000 {
|
||||
compatible = "syscon", "simple-mfd";
|
||||
reg = <0x010000 0x1000>;
|
||||
ranges = <0x0 0x10000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
led0 {
|
||||
led@8,0 {
|
||||
compatible = "register-bit-led";
|
||||
reg = <0x08 0x04>;
|
||||
offset = <0x08>;
|
||||
mask = <0x01>;
|
||||
label = "vexpress:0";
|
||||
linux,default-trigger = "heartbeat";
|
||||
default-state = "on";
|
||||
};
|
||||
led1 {
|
||||
led@8,1 {
|
||||
compatible = "register-bit-led";
|
||||
reg = <0x08 0x04>;
|
||||
offset = <0x08>;
|
||||
mask = <0x02>;
|
||||
label = "vexpress:1";
|
||||
linux,default-trigger = "mmc0";
|
||||
default-state = "off";
|
||||
};
|
||||
led2 {
|
||||
led@8,2 {
|
||||
compatible = "register-bit-led";
|
||||
reg = <0x08 0x04>;
|
||||
offset = <0x08>;
|
||||
mask = <0x04>;
|
||||
label = "vexpress:2";
|
||||
linux,default-trigger = "cpu0";
|
||||
default-state = "off";
|
||||
};
|
||||
led3 {
|
||||
led@8,3 {
|
||||
compatible = "register-bit-led";
|
||||
reg = <0x08 0x04>;
|
||||
offset = <0x08>;
|
||||
mask = <0x08>;
|
||||
label = "vexpress:3";
|
||||
linux,default-trigger = "cpu1";
|
||||
default-state = "off";
|
||||
};
|
||||
led4 {
|
||||
led@8,4 {
|
||||
compatible = "register-bit-led";
|
||||
reg = <0x08 0x04>;
|
||||
offset = <0x08>;
|
||||
mask = <0x10>;
|
||||
label = "vexpress:4";
|
||||
linux,default-trigger = "cpu2";
|
||||
default-state = "off";
|
||||
};
|
||||
led5 {
|
||||
led@8,5 {
|
||||
compatible = "register-bit-led";
|
||||
reg = <0x08 0x04>;
|
||||
offset = <0x08>;
|
||||
mask = <0x20>;
|
||||
label = "vexpress:5";
|
||||
linux,default-trigger = "cpu3";
|
||||
default-state = "off";
|
||||
};
|
||||
led6 {
|
||||
led@8,6 {
|
||||
compatible = "register-bit-led";
|
||||
reg = <0x08 0x04>;
|
||||
offset = <0x08>;
|
||||
mask = <0x40>;
|
||||
label = "vexpress:6";
|
||||
default-state = "off";
|
||||
};
|
||||
led7 {
|
||||
led@8,7 {
|
||||
compatible = "register-bit-led";
|
||||
reg = <0x08 0x04>;
|
||||
offset = <0x08>;
|
||||
mask = <0x80>;
|
||||
label = "vexpress:7";
|
||||
|
@ -1,6 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \
|
||||
bcm2711-rpi-4-b.dtb \
|
||||
bcm2711-rpi-cm4-io.dtb \
|
||||
bcm2837-rpi-3-a-plus.dtb \
|
||||
bcm2837-rpi-3-b.dtb \
|
||||
bcm2837-rpi-3-b-plus.dtb \
|
||||
|
@ -2,3 +2,4 @@
|
||||
dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-netgear-r8000p.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-tplink-archer-c2300-v1.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-asus-gt-ac5300.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-netgear-raxe500.dtb
|
||||
|
@ -296,7 +296,7 @@ uart0: serial@640 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
nand@1800 {
|
||||
nand-controller@1800 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
|
||||
|
@ -2,4 +2,5 @@
|
||||
dtb-$(CONFIG_ARCH_EXYNOS) += \
|
||||
exynos5433-tm2.dtb \
|
||||
exynos5433-tm2e.dtb \
|
||||
exynos7-espresso.dtb
|
||||
exynos7-espresso.dtb \
|
||||
exynosautov9-sadk.dtb
|
||||
|
@ -87,7 +87,7 @@ bus_noc2: bus9 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
bus_g2d_400_opp_table: opp-table2 {
|
||||
bus_g2d_400_opp_table: opp-table-2 {
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
@ -117,7 +117,7 @@ opp-100000000 {
|
||||
};
|
||||
};
|
||||
|
||||
bus_g2d_266_opp_table: opp-table3 {
|
||||
bus_g2d_266_opp_table: opp-table-3 {
|
||||
compatible = "operating-points-v2";
|
||||
|
||||
opp-267000000 {
|
||||
@ -137,7 +137,7 @@ opp-100000000 {
|
||||
};
|
||||
};
|
||||
|
||||
bus_gscl_opp_table: opp-table4 {
|
||||
bus_gscl_opp_table: opp-table-4 {
|
||||
compatible = "operating-points-v2";
|
||||
|
||||
opp-333000000 {
|
||||
@ -151,7 +151,7 @@ opp-166500000 {
|
||||
};
|
||||
};
|
||||
|
||||
bus_hevc_opp_table: opp-table5 {
|
||||
bus_hevc_opp_table: opp-table-5 {
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
@ -175,7 +175,7 @@ opp-100000000 {
|
||||
};
|
||||
};
|
||||
|
||||
bus_noc2_opp_table: opp-table6 {
|
||||
bus_noc2_opp_table: opp-table-6 {
|
||||
compatible = "operating-points-v2";
|
||||
|
||||
opp-400000000 {
|
||||
|
@ -13,6 +13,7 @@
|
||||
/ {
|
||||
model = "Samsung TM2 board";
|
||||
compatible = "samsung,tm2", "samsung,exynos5433";
|
||||
chassis-type = "handset";
|
||||
};
|
||||
|
||||
&cmu_disp {
|
||||
|
@ -13,6 +13,7 @@
|
||||
/ {
|
||||
model = "Samsung TM2E board";
|
||||
compatible = "samsung,tm2e", "samsung,exynos5433";
|
||||
chassis-type = "handset";
|
||||
};
|
||||
|
||||
&cmu_disp {
|
||||
|
@ -239,7 +239,7 @@ cluster_a53_l2: l2-cache1 {
|
||||
};
|
||||
};
|
||||
|
||||
cluster_a53_opp_table: opp-table0 {
|
||||
cluster_a53_opp_table: opp-table-0 {
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
@ -285,7 +285,7 @@ opp-1300000000 {
|
||||
};
|
||||
};
|
||||
|
||||
cluster_a57_opp_table: opp-table1 {
|
||||
cluster_a57_opp_table: opp-table-1 {
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
@ -1132,7 +1132,7 @@ syscon_cam1: syscon@145f0000 {
|
||||
};
|
||||
|
||||
syscon_fsys: syscon@156f0000 {
|
||||
compatible = "syscon";
|
||||
compatible = "samsung,exynos5433-sysreg", "syscon";
|
||||
reg = <0x156f0000 0x1044>;
|
||||
};
|
||||
|
||||
@ -1585,7 +1585,7 @@ pwm: pwm@14dd0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_0: hsi2c@14e40000 {
|
||||
hsi2c_0: i2c@14e40000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14e40000 0x1000>;
|
||||
interrupts = <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1598,7 +1598,7 @@ hsi2c_0: hsi2c@14e40000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_1: hsi2c@14e50000 {
|
||||
hsi2c_1: i2c@14e50000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14e50000 0x1000>;
|
||||
interrupts = <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1611,7 +1611,7 @@ hsi2c_1: hsi2c@14e50000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_2: hsi2c@14e60000 {
|
||||
hsi2c_2: i2c@14e60000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14e60000 0x1000>;
|
||||
interrupts = <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1624,7 +1624,7 @@ hsi2c_2: hsi2c@14e60000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_3: hsi2c@14e70000 {
|
||||
hsi2c_3: i2c@14e70000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14e70000 0x1000>;
|
||||
interrupts = <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1637,7 +1637,7 @@ hsi2c_3: hsi2c@14e70000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_4: hsi2c@14ec0000 {
|
||||
hsi2c_4: i2c@14ec0000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14ec0000 0x1000>;
|
||||
interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1650,7 +1650,7 @@ hsi2c_4: hsi2c@14ec0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_5: hsi2c@14ed0000 {
|
||||
hsi2c_5: i2c@14ed0000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14ed0000 0x1000>;
|
||||
interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1663,7 +1663,7 @@ hsi2c_5: hsi2c@14ed0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_6: hsi2c@14ee0000 {
|
||||
hsi2c_6: i2c@14ee0000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14ee0000 0x1000>;
|
||||
interrupts = <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1676,7 +1676,7 @@ hsi2c_6: hsi2c@14ee0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_7: hsi2c@14ef0000 {
|
||||
hsi2c_7: i2c@14ef0000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14ef0000 0x1000>;
|
||||
interrupts = <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1689,7 +1689,7 @@ hsi2c_7: hsi2c@14ef0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_8: hsi2c@14d90000 {
|
||||
hsi2c_8: i2c@14d90000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14d90000 0x1000>;
|
||||
interrupts = <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1702,7 +1702,7 @@ hsi2c_8: hsi2c@14d90000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_9: hsi2c@14da0000 {
|
||||
hsi2c_9: i2c@14da0000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14da0000 0x1000>;
|
||||
interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1715,7 +1715,7 @@ hsi2c_9: hsi2c@14da0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_10: hsi2c@14de0000 {
|
||||
hsi2c_10: i2c@14de0000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14de0000 0x1000>;
|
||||
interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1728,7 +1728,7 @@ hsi2c_10: hsi2c@14de0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_11: hsi2c@14df0000 {
|
||||
hsi2c_11: i2c@14df0000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14df0000 0x1000>;
|
||||
interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -359,7 +359,7 @@ pinctrl_bus1: pinctrl@14870000 {
|
||||
interrupts = <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
hsi2c_0: hsi2c@13640000 {
|
||||
hsi2c_0: i2c@13640000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x13640000 0x1000>;
|
||||
interrupts = <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -372,7 +372,7 @@ hsi2c_0: hsi2c@13640000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_1: hsi2c@13650000 {
|
||||
hsi2c_1: i2c@13650000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x13650000 0x1000>;
|
||||
interrupts = <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -385,7 +385,7 @@ hsi2c_1: hsi2c@13650000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_2: hsi2c@14e60000 {
|
||||
hsi2c_2: i2c@14e60000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14e60000 0x1000>;
|
||||
interrupts = <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -398,7 +398,7 @@ hsi2c_2: hsi2c@14e60000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_3: hsi2c@14e70000 {
|
||||
hsi2c_3: i2c@14e70000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14e70000 0x1000>;
|
||||
interrupts = <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -411,7 +411,7 @@ hsi2c_3: hsi2c@14e70000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_4: hsi2c@13660000 {
|
||||
hsi2c_4: i2c@13660000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x13660000 0x1000>;
|
||||
interrupts = <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -424,7 +424,7 @@ hsi2c_4: hsi2c@13660000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_5: hsi2c@13670000 {
|
||||
hsi2c_5: i2c@13670000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x13670000 0x1000>;
|
||||
interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -437,7 +437,7 @@ hsi2c_5: hsi2c@13670000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_6: hsi2c@14e00000 {
|
||||
hsi2c_6: i2c@14e00000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14e00000 0x1000>;
|
||||
interrupts = <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -450,7 +450,7 @@ hsi2c_6: hsi2c@14e00000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_7: hsi2c@13e10000 {
|
||||
hsi2c_7: i2c@13e10000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x13e10000 0x1000>;
|
||||
interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -463,7 +463,7 @@ hsi2c_7: hsi2c@13e10000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_8: hsi2c@14e20000 {
|
||||
hsi2c_8: i2c@14e20000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x14e20000 0x1000>;
|
||||
interrupts = <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -476,7 +476,7 @@ hsi2c_8: hsi2c@14e20000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_9: hsi2c@13680000 {
|
||||
hsi2c_9: i2c@13680000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x13680000 0x1000>;
|
||||
interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -489,7 +489,7 @@ hsi2c_9: hsi2c@13680000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_10: hsi2c@13690000 {
|
||||
hsi2c_10: i2c@13690000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x13690000 0x1000>;
|
||||
interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -502,7 +502,7 @@ hsi2c_10: hsi2c@13690000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsi2c_11: hsi2c@136a0000 {
|
||||
hsi2c_11: i2c@136a0000 {
|
||||
compatible = "samsung,exynos7-hsi2c";
|
||||
reg = <0x136a0000 0x1000>;
|
||||
interrupts = <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -1,4 +1,14 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
# required for overlay support
|
||||
DTC_FLAGS_fsl-ls1028a-qds := -@
|
||||
DTC_FLAGS_fsl-ls1028a-qds-13bb := -@
|
||||
DTC_FLAGS_fsl-ls1028a-qds-65bb := -@
|
||||
DTC_FLAGS_fsl-ls1028a-qds-7777 := -@
|
||||
DTC_FLAGS_fsl-ls1028a-qds-85bb := -@
|
||||
DTC_FLAGS_fsl-ls1028a-qds-899b := -@
|
||||
DTC_FLAGS_fsl-ls1028a-qds-9999 := -@
|
||||
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-frdm.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-frwy.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-oxalis.dtb
|
||||
@ -11,6 +21,12 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var2.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var3-ads2.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var4.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-13bb.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-65bb.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-7777.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-85bb.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-899b.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-9999.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-rdb.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-qds.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-rdb.dtb
|
||||
@ -25,6 +41,8 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-qds.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-rdb.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-bluebox3.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-bluebox3-rev-a.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-clearfog-cx.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-honeycomb.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
|
||||
@ -38,6 +56,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-ctouch2.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-edimm2.2.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mm-kontron-n801x-s.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mm-nitrogen-r2.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mm-tqma8mqml-mba8mx.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw71xx-0x.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw72xx-0x.dtb
|
||||
@ -45,8 +64,11 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7901.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7902.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mn-beacon-kit.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mn-bsh-smm-s2.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mn-bsh-smm-s2pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mn-tqma8mqnl-mba8mx.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mn-var-som-symphony.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mn-venice-gw7902.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
|
||||
@ -58,6 +80,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-devkit.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-r2.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-r3.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-r4.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mq-tqma8mq-mba8mx.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mq-mnt-reform2.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mq-nitrogen.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mq-phanbell.dtb
|
||||
@ -69,5 +92,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8qm-mek.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8qxp-ai_ml.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8qxp-colibri-eval-v3.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8qxp-mek.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8ulp-evk.dtb
|
||||
|
||||
dtb-$(CONFIG_ARCH_S32) += s32g274a-evb.dtb
|
||||
dtb-$(CONFIG_ARCH_S32) += s32g274a-rdb2.dtb
|
||||
dtb-$(CONFIG_ARCH_S32) += s32v234-evb.dtb
|
||||
|
@ -8,7 +8,7 @@
|
||||
* None of the four SerDes lanes are used by the module, instead they are
|
||||
* all led out to the carrier for customer use.
|
||||
*
|
||||
* Copyright (C) 2020 Michael Walle <michael@walle.cc>
|
||||
* Copyright (C) 2021 Michael Walle <michael@walle.cc>
|
||||
*
|
||||
*/
|
||||
|
||||
@ -21,24 +21,9 @@ / {
|
||||
compatible = "kontron,sl28-var1", "kontron,sl28", "fsl,ls1028a";
|
||||
};
|
||||
|
||||
&enetc_port0 {
|
||||
status = "disabled";
|
||||
/*
|
||||
* Delete both the phy-handle to the old phy0 label as well as
|
||||
* the mdio node with the old phy node with the old phy0 label.
|
||||
*/
|
||||
/delete-property/ phy-handle;
|
||||
/delete-node/ mdio;
|
||||
};
|
||||
|
||||
&enetc_port1 {
|
||||
phy-handle = <&phy0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
&enetc_mdio_pf3 {
|
||||
/* Delete unused phy node */
|
||||
/delete-node/ ethernet-phy@5;
|
||||
|
||||
phy0: ethernet-phy@4 {
|
||||
reg = <0x4>;
|
||||
@ -60,4 +45,15 @@ vddh: vddh-regulator {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&enetc_port0 {
|
||||
status = "disabled";
|
||||
/* Delete the phy-handle to the old phy0 label */
|
||||
/delete-property/ phy-handle;
|
||||
};
|
||||
|
||||
&enetc_port1 {
|
||||
phy-handle = <&phy0>;
|
||||
phy-mode = "rgmii-id";
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -5,7 +5,7 @@
|
||||
* This is for the network variant 2 which has two ethernet ports. These
|
||||
* ports are connected to the internal switch.
|
||||
*
|
||||
* Copyright (C) 2020 Michael Walle <michael@walle.cc>
|
||||
* Copyright (C) 2021 Michael Walle <michael@walle.cc>
|
||||
*
|
||||
*/
|
||||
|
||||
@ -18,12 +18,6 @@ / {
|
||||
};
|
||||
|
||||
&enetc_mdio_pf3 {
|
||||
phy0: ethernet-phy@5 {
|
||||
reg = <0x5>;
|
||||
eee-broken-1000t;
|
||||
eee-broken-100tx;
|
||||
};
|
||||
|
||||
phy1: ethernet-phy@4 {
|
||||
reg = <0x4>;
|
||||
eee-broken-1000t;
|
||||
@ -34,14 +28,11 @@ phy1: ethernet-phy@4 {
|
||||
&enetc_port0 {
|
||||
status = "disabled";
|
||||
/*
|
||||
* In the base device tree the PHY was registered in the mdio
|
||||
* subnode as it is PHY for this port. On this module this PHY
|
||||
* is connected to a switch port instead and registered above.
|
||||
* Therefore, delete the mdio subnode as well as the phy-handle
|
||||
* property here.
|
||||
* In the base device tree the PHY at address 5 was assigned for
|
||||
* this port. On this module this PHY is connected to a switch
|
||||
* port instead. Therefore, delete the phy-handle property here.
|
||||
*/
|
||||
/delete-property/ phy-handle;
|
||||
/delete-node/ mdio;
|
||||
};
|
||||
|
||||
&enetc_port2 {
|
||||
|
@ -5,7 +5,7 @@
|
||||
* This is for the network variant 4 which has two ethernet ports. It
|
||||
* extends the base and provides one more port connected via RGMII.
|
||||
*
|
||||
* Copyright (C) 2019 Michael Walle <michael@walle.cc>
|
||||
* Copyright (C) 2021 Michael Walle <michael@walle.cc>
|
||||
*
|
||||
*/
|
||||
|
||||
@ -18,15 +18,7 @@ / {
|
||||
compatible = "kontron,sl28-var4", "kontron,sl28", "fsl,ls1028a";
|
||||
};
|
||||
|
||||
&enetc_port1 {
|
||||
phy-handle = <&phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
&enetc_mdio_pf3 {
|
||||
phy1: ethernet-phy@4 {
|
||||
reg = <0x4>;
|
||||
eee-broken-1000t;
|
||||
@ -47,4 +39,9 @@ vddh: vddh-regulator {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&enetc_port1 {
|
||||
phy-handle = <&phy1>;
|
||||
phy-mode = "rgmii-id";
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Device Tree file for the Kontron SMARC-sAL28 board.
|
||||
*
|
||||
* Copyright (C) 2019 Michael Walle <michael@walle.cc>
|
||||
* Copyright (C) 2021 Michael Walle <michael@walle.cc>
|
||||
*
|
||||
*/
|
||||
|
||||
@ -80,22 +80,19 @@ &duart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&enetc_port0 {
|
||||
phy-handle = <&phy0>;
|
||||
phy-connection-type = "sgmii";
|
||||
managed = "in-band-status";
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
&enetc_mdio_pf3 {
|
||||
phy0: ethernet-phy@5 {
|
||||
reg = <0x5>;
|
||||
eee-broken-1000t;
|
||||
eee-broken-100tx;
|
||||
};
|
||||
};
|
||||
|
||||
&enetc_port0 {
|
||||
phy-handle = <&phy0>;
|
||||
phy-mode = "sgmii";
|
||||
managed = "in-band-status";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&esdhc {
|
||||
@ -160,6 +157,10 @@ partition@3e0000 {
|
||||
};
|
||||
};
|
||||
|
||||
&ftm_alarm0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
gpio-line-names =
|
||||
"", "", "", "", "", "", "", "",
|
||||
@ -309,3 +310,11 @@ eeprom@50 {
|
||||
&lpuart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -25,7 +25,7 @@ aliases {
|
||||
serial1 = &duart1;
|
||||
mmc0 = &esdhc;
|
||||
mmc1 = &esdhc1;
|
||||
rtc1 = &ftm_alarm0;
|
||||
rtc1 = &ftm_alarm1;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@ -211,6 +211,16 @@ &duart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&enetc_port1 {
|
||||
phy-handle = <&qds_phy1>;
|
||||
phy-mode = "rgmii-id";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&enetc_port2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&esdhc {
|
||||
status = "okay";
|
||||
};
|
||||
@ -234,6 +244,10 @@ mt35xu02g0: flash@0 {
|
||||
};
|
||||
};
|
||||
|
||||
&ftm_alarm1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
|
||||
@ -322,13 +336,16 @@ rtc@51 {
|
||||
};
|
||||
};
|
||||
|
||||
&enetc_port1 {
|
||||
phy-handle = <&qds_phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
&lpuart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&lpuart0 {
|
||||
&lpuart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mscc_felix_port4 {
|
||||
ethernet = <&enetc_port2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -339,3 +356,11 @@ &sai1 {
|
||||
&sata {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Device Tree file for NXP LS1028A RDB Board.
|
||||
*
|
||||
* Copyright 2018 NXP
|
||||
* Copyright 2018-2021 NXP
|
||||
*
|
||||
* Harninder Rai <harninder.rai@nxp.com>
|
||||
*
|
||||
@ -21,7 +21,14 @@ aliases {
|
||||
serial1 = &duart1;
|
||||
mmc0 = &esdhc;
|
||||
mmc1 = &esdhc1;
|
||||
rtc1 = &ftm_alarm0;
|
||||
rtc1 = &ftm_alarm1;
|
||||
spi0 = &fspi;
|
||||
ethernet0 = &enetc_port0;
|
||||
ethernet1 = &enetc_port2;
|
||||
ethernet2 = &mscc_felix_port0;
|
||||
ethernet3 = &mscc_felix_port1;
|
||||
ethernet4 = &mscc_felix_port2;
|
||||
ethernet5 = &mscc_felix_port3;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@ -102,6 +109,48 @@ can-transceiver {
|
||||
};
|
||||
};
|
||||
|
||||
&duart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&duart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&enetc_mdio_pf3 {
|
||||
sgmii_phy0: ethernet-phy@2 {
|
||||
reg = <0x2>;
|
||||
};
|
||||
|
||||
/* VSC8514 QSGMII quad PHY */
|
||||
qsgmii_phy0: ethernet-phy@10 {
|
||||
reg = <0x10>;
|
||||
};
|
||||
|
||||
qsgmii_phy1: ethernet-phy@11 {
|
||||
reg = <0x11>;
|
||||
};
|
||||
|
||||
qsgmii_phy2: ethernet-phy@12 {
|
||||
reg = <0x12>;
|
||||
};
|
||||
|
||||
qsgmii_phy3: ethernet-phy@13 {
|
||||
reg = <0x13>;
|
||||
};
|
||||
};
|
||||
|
||||
&enetc_port0 {
|
||||
phy-handle = <&sgmii_phy0>;
|
||||
phy-mode = "sgmii";
|
||||
managed = "in-band-status";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&enetc_port2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&esdhc {
|
||||
sd-uhs-sdr104;
|
||||
sd-uhs-sdr50;
|
||||
@ -132,6 +181,10 @@ mt35xu02g0: flash@0 {
|
||||
};
|
||||
};
|
||||
|
||||
&ftm_alarm1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
|
||||
@ -188,52 +241,6 @@ rtc@51 {
|
||||
};
|
||||
};
|
||||
|
||||
&duart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&duart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&enetc_mdio_pf3 {
|
||||
/* VSC8514 QSGMII quad PHY */
|
||||
qsgmii_phy0: ethernet-phy@10 {
|
||||
reg = <0x10>;
|
||||
};
|
||||
|
||||
qsgmii_phy1: ethernet-phy@11 {
|
||||
reg = <0x11>;
|
||||
};
|
||||
|
||||
qsgmii_phy2: ethernet-phy@12 {
|
||||
reg = <0x12>;
|
||||
};
|
||||
|
||||
qsgmii_phy3: ethernet-phy@13 {
|
||||
reg = <0x13>;
|
||||
};
|
||||
};
|
||||
|
||||
&enetc_port0 {
|
||||
phy-handle = <&sgmii_phy0>;
|
||||
phy-connection-type = "sgmii";
|
||||
managed = "in-band-status";
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
sgmii_phy0: ethernet-phy@2 {
|
||||
reg = <0x2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&enetc_port2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mscc_felix {
|
||||
status = "okay";
|
||||
};
|
||||
@ -279,6 +286,10 @@ &optee {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sai4 {
|
||||
status = "okay";
|
||||
};
|
||||
@ -287,6 +298,11 @@ &sata {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
dr_mode = "otg";
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -66,6 +66,13 @@ CPU_PW20: cpu-pw20 {
|
||||
};
|
||||
};
|
||||
|
||||
rtc_clk: rtc-clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "rtc_clk";
|
||||
};
|
||||
|
||||
sysclk: sysclk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
@ -80,13 +87,6 @@ osc_27m: clock-osc-27m {
|
||||
clock-output-names = "phy_27m";
|
||||
};
|
||||
|
||||
dpclk: clock-controller@f1f0000 {
|
||||
compatible = "fsl,ls1028a-plldig";
|
||||
reg = <0x0 0xf1f0000 0x0 0xffff>;
|
||||
#clock-cells = <0>;
|
||||
clocks = <&osc_27m>;
|
||||
};
|
||||
|
||||
firmware {
|
||||
optee: optee {
|
||||
compatible = "linaro,optee-tz";
|
||||
@ -592,6 +592,7 @@ usb0: usb@3100000 {
|
||||
snps,dis_rxdet_inp3_quirk;
|
||||
snps,quirk-frame-length-adjustment = <0x20>;
|
||||
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb1: usb@3110000 {
|
||||
@ -602,6 +603,7 @@ usb1: usb@3110000 {
|
||||
snps,dis_rxdet_inp3_quirk;
|
||||
snps,quirk-frame-length-adjustment = <0x20>;
|
||||
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sata: sata@3200000 {
|
||||
@ -642,6 +644,18 @@ pcie1: pcie@3400000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pcie_ep1: pcie-ep@3400000 {
|
||||
compatible = "fsl,ls1028a-pcie-ep","fsl,ls-pcie-ep";
|
||||
reg = <0x00 0x03400000 0x0 0x00100000
|
||||
0x80 0x00000000 0x8 0x00000000>;
|
||||
reg-names = "regs", "addr_space";
|
||||
interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
|
||||
interrupt-names = "pme";
|
||||
num-ib-windows = <6>;
|
||||
num-ob-windows = <8>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pcie2: pcie@3500000 {
|
||||
compatible = "fsl,ls1028a-pcie";
|
||||
reg = <0x00 0x03500000 0x0 0x00100000>, /* controller registers */
|
||||
@ -669,6 +683,18 @@ pcie2: pcie@3500000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pcie_ep2: pcie-ep@3500000 {
|
||||
compatible = "fsl,ls1028a-pcie-ep","fsl,ls-pcie-ep";
|
||||
reg = <0x00 0x03500000 0x0 0x00100000
|
||||
0x88 0x00000000 0x8 0x00000000>;
|
||||
reg-names = "regs", "addr_space";
|
||||
interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
|
||||
interrupt-names = "pme";
|
||||
num-ib-windows = <6>;
|
||||
num-ob-windows = <8>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
smmu: iommu@5000000 {
|
||||
compatible = "arm,mmu-500";
|
||||
reg = <0 0x5000000 0 0x800000>;
|
||||
@ -800,6 +826,38 @@ QORIQ_CLK_PLL_DIV(16)>,
|
||||
clock-names = "wdog_clk", "apb_pclk";
|
||||
};
|
||||
|
||||
malidp0: display@f080000 {
|
||||
compatible = "arm,mali-dp500";
|
||||
reg = <0x0 0xf080000 0x0 0x10000>;
|
||||
interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 223 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "DE", "SE";
|
||||
clocks = <&dpclk>,
|
||||
<&clockgen QORIQ_CLK_HWACCEL 2>,
|
||||
<&clockgen QORIQ_CLK_HWACCEL 2>,
|
||||
<&clockgen QORIQ_CLK_HWACCEL 2>;
|
||||
clock-names = "pxlclk", "mclk", "aclk", "pclk";
|
||||
arm,malidp-output-port-lines = /bits/ 8 <8 8 8>;
|
||||
arm,malidp-arqos-value = <0xd000d000>;
|
||||
|
||||
port {
|
||||
dpi0_out: endpoint {
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gpu: gpu@f0c0000 {
|
||||
compatible = "vivante,gc";
|
||||
reg = <0x0 0xf0c0000 0x0 0x10000>;
|
||||
interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clockgen QORIQ_CLK_HWACCEL 2>,
|
||||
<&clockgen QORIQ_CLK_HWACCEL 2>,
|
||||
<&clockgen QORIQ_CLK_HWACCEL 2>;
|
||||
clock-names = "core", "shader", "bus";
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
sai1: audio-controller@f100000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "fsl,vf610-sai";
|
||||
@ -926,6 +984,13 @@ QORIQ_CLK_PLL_DIV(2)>,
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dpclk: clock-controller@f1f0000 {
|
||||
compatible = "fsl,ls1028a-plldig";
|
||||
reg = <0x0 0xf1f0000 0x0 0x10000>;
|
||||
#clock-cells = <0>;
|
||||
clocks = <&osc_27m>;
|
||||
};
|
||||
|
||||
tmu: tmu@1f80000 {
|
||||
compatible = "fsl,qoriq-tmu";
|
||||
reg = <0x0 0x1f80000 0x0 0x10000>;
|
||||
@ -1025,6 +1090,7 @@ enetc_port2: ethernet@0,2 {
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
@ -1049,7 +1115,7 @@ mscc_felix: ethernet-switch@0,5 {
|
||||
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
|
||||
ports {
|
||||
mscc_felix_ports: ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
@ -1083,6 +1149,7 @@ mscc_felix_port4: port@4 {
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
@ -1094,6 +1161,7 @@ mscc_felix_port5: port@5 {
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -1108,6 +1176,7 @@ enetc_port3: ethernet@0,6 {
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
@ -1124,6 +1193,94 @@ ierb@1f0800000 {
|
||||
reg = <0x01 0xf0800000 0x0 0x10000>;
|
||||
};
|
||||
|
||||
pwm0: pwm@2800000 {
|
||||
compatible = "fsl,vf610-ftm-pwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x0 0x2800000 0x0 0x10000>;
|
||||
clock-names = "ftm_sys", "ftm_ext",
|
||||
"ftm_fix", "ftm_cnt_clk_en";
|
||||
clocks = <&clockgen 4 1>, <&clockgen 4 1>,
|
||||
<&rtc_clk>, <&clockgen 4 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm1: pwm@2810000 {
|
||||
compatible = "fsl,vf610-ftm-pwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x0 0x2810000 0x0 0x10000>;
|
||||
clock-names = "ftm_sys", "ftm_ext",
|
||||
"ftm_fix", "ftm_cnt_clk_en";
|
||||
clocks = <&clockgen 4 1>, <&clockgen 4 1>,
|
||||
<&rtc_clk>, <&clockgen 4 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm2: pwm@2820000 {
|
||||
compatible = "fsl,vf610-ftm-pwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x0 0x2820000 0x0 0x10000>;
|
||||
clock-names = "ftm_sys", "ftm_ext",
|
||||
"ftm_fix", "ftm_cnt_clk_en";
|
||||
clocks = <&clockgen 4 1>, <&clockgen 4 1>,
|
||||
<&rtc_clk>, <&clockgen 4 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm3: pwm@2830000 {
|
||||
compatible = "fsl,vf610-ftm-pwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x0 0x2830000 0x0 0x10000>;
|
||||
clock-names = "ftm_sys", "ftm_ext",
|
||||
"ftm_fix", "ftm_cnt_clk_en";
|
||||
clocks = <&clockgen 4 1>, <&clockgen 4 1>,
|
||||
<&rtc_clk>, <&clockgen 4 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm4: pwm@2840000 {
|
||||
compatible = "fsl,vf610-ftm-pwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x0 0x2840000 0x0 0x10000>;
|
||||
clock-names = "ftm_sys", "ftm_ext",
|
||||
"ftm_fix", "ftm_cnt_clk_en";
|
||||
clocks = <&clockgen 4 1>, <&clockgen 4 1>,
|
||||
<&rtc_clk>, <&clockgen 4 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm5: pwm@2850000 {
|
||||
compatible = "fsl,vf610-ftm-pwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x0 0x2850000 0x0 0x10000>;
|
||||
clock-names = "ftm_sys", "ftm_ext",
|
||||
"ftm_fix", "ftm_cnt_clk_en";
|
||||
clocks = <&clockgen 4 1>, <&clockgen 4 1>,
|
||||
<&rtc_clk>, <&clockgen 4 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm6: pwm@2860000 {
|
||||
compatible = "fsl,vf610-ftm-pwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x0 0x2860000 0x0 0x10000>;
|
||||
clock-names = "ftm_sys", "ftm_ext",
|
||||
"ftm_fix", "ftm_cnt_clk_en";
|
||||
clocks = <&clockgen 4 1>, <&clockgen 4 1>,
|
||||
<&rtc_clk>, <&clockgen 4 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm7: pwm@2870000 {
|
||||
compatible = "fsl,vf610-ftm-pwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x0 0x2870000 0x0 0x10000>;
|
||||
clock-names = "ftm_sys", "ftm_ext",
|
||||
"ftm_fix", "ftm_cnt_clk_en";
|
||||
clocks = <&clockgen 4 1>, <&clockgen 4 1>,
|
||||
<&rtc_clk>, <&clockgen 4 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rcpm: power-controller@1e34040 {
|
||||
compatible = "fsl,ls1028a-rcpm", "fsl,qoriq-rcpm-2.1+";
|
||||
reg = <0x0 0x1e34040 0x0 0x1c>;
|
||||
@ -1136,27 +1293,16 @@ ftm_alarm0: timer@2800000 {
|
||||
reg = <0x0 0x2800000 0x0 0x10000>;
|
||||
fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0 0x0>;
|
||||
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ftm_alarm1: timer@2810000 {
|
||||
compatible = "fsl,ls1028a-ftm-alarm";
|
||||
reg = <0x0 0x2810000 0x0 0x10000>;
|
||||
fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0 0x0>;
|
||||
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
malidp0: display@f080000 {
|
||||
compatible = "arm,mali-dp500";
|
||||
reg = <0x0 0xf080000 0x0 0x10000>;
|
||||
interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 223 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "DE", "SE";
|
||||
clocks = <&dpclk>,
|
||||
<&clockgen QORIQ_CLK_HWACCEL 2>,
|
||||
<&clockgen QORIQ_CLK_HWACCEL 2>,
|
||||
<&clockgen QORIQ_CLK_HWACCEL 2>;
|
||||
clock-names = "pxlclk", "mclk", "aclk", "pclk";
|
||||
arm,malidp-output-port-lines = /bits/ 8 <8 8 8>;
|
||||
arm,malidp-arqos-value = <0xd000d000>;
|
||||
|
||||
port {
|
||||
dp0_out: endpoint {
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -94,6 +94,8 @@ flash@0 {
|
||||
compatible = "n25q128a13", "jedec,spi-nor"; /* 16MB */
|
||||
reg = <0>;
|
||||
spi-max-frequency = <1000000>; /* input clock */
|
||||
fsl,spi-cs-sck-delay = <100>;
|
||||
fsl,spi-sck-cs-delay = <100>;
|
||||
};
|
||||
|
||||
slic@2 {
|
||||
|
@ -206,6 +206,13 @@ sysclk: sysclk {
|
||||
clock-output-names = "sysclk";
|
||||
};
|
||||
|
||||
reboot {
|
||||
compatible = "syscon-reboot";
|
||||
regmap = <&reset>;
|
||||
offset = <0x0>;
|
||||
mask = <0x02>;
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <2>;
|
||||
@ -226,6 +233,11 @@ dcfg: dcfg@1e00000 {
|
||||
little-endian;
|
||||
};
|
||||
|
||||
reset: syscon@1e60000 {
|
||||
compatible = "fsl,ls1088a-reset", "syscon";
|
||||
reg = <0x0 0x1e60000 0x0 0x10000>;
|
||||
};
|
||||
|
||||
isc: syscon@1f70000 {
|
||||
compatible = "fsl,ls1088a-isc", "syscon";
|
||||
reg = <0x0 0x1f70000 0x0 0x10000>;
|
||||
@ -485,6 +497,7 @@ usb1: usb@3110000 {
|
||||
dr_mode = "host";
|
||||
snps,quirk-frame-length-adjustment = <0x20>;
|
||||
snps,dis_rxdet_inp3_quirk;
|
||||
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -31,6 +31,130 @@ sb_3v3: regulator-sb3v3 {
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mdio-mux-1 {
|
||||
compatible = "mdio-mux-multiplexer";
|
||||
mux-controls = <&mux 0>;
|
||||
mdio-parent-bus = <&emdio1>;
|
||||
#address-cells=<1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
mdio@0 { /* On-board PHY #1 RGMI1*/
|
||||
reg = <0x00>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@8 { /* On-board PHY #2 RGMI2*/
|
||||
reg = <0x8>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@18 { /* Slot #1 */
|
||||
reg = <0x18>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@19 { /* Slot #2 */
|
||||
reg = <0x19>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@1a { /* Slot #3 */
|
||||
reg = <0x1a>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@1b { /* Slot #4 */
|
||||
reg = <0x1b>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@1c { /* Slot #5 */
|
||||
reg = <0x1c>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@1d { /* Slot #6 */
|
||||
reg = <0x1d>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@1e { /* Slot #7 */
|
||||
reg = <0x1e>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@1f { /* Slot #8 */
|
||||
reg = <0x1f>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
mdio-mux-2 {
|
||||
compatible = "mdio-mux-multiplexer";
|
||||
mux-controls = <&mux 1>;
|
||||
mdio-parent-bus = <&emdio2>;
|
||||
#address-cells=<1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
mdio@0 { /* Slot #1 (secondary EMI) */
|
||||
reg = <0x00>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@1 { /* Slot #2 (secondary EMI) */
|
||||
reg = <0x01>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@2 { /* Slot #3 (secondary EMI) */
|
||||
reg = <0x02>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@3 { /* Slot #4 (secondary EMI) */
|
||||
reg = <0x03>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@4 { /* Slot #5 (secondary EMI) */
|
||||
reg = <0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@5 { /* Slot #6 (secondary EMI) */
|
||||
reg = <0x05>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@6 { /* Slot #7 (secondary EMI) */
|
||||
reg = <0x06>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mdio@7 { /* Slot #8 (secondary EMI) */
|
||||
reg = <0x07>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&can0 {
|
||||
@ -81,6 +205,14 @@ dflash2: flash@0 {
|
||||
};
|
||||
};
|
||||
|
||||
&emdio1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&emdio2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&esdhc0 {
|
||||
status = "okay";
|
||||
};
|
||||
@ -107,6 +239,19 @@ mt35xu512aba0: flash@0 {
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
|
||||
fpga@66 {
|
||||
compatible = "fsl,lx2160aqds-fpga", "fsl,fpga-qixis-i2c",
|
||||
"simple-mfd";
|
||||
reg = <0x66>;
|
||||
|
||||
mux: mux-controller {
|
||||
compatible = "reg-mux";
|
||||
#mux-control-cells = <1>;
|
||||
mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */
|
||||
<0x54 0x07>; /* 1: reg 0x54, bit 2:0 */
|
||||
};
|
||||
};
|
||||
|
||||
i2c-mux@77 {
|
||||
compatible = "nxp,pca9547";
|
||||
reg = <0x77>;
|
||||
@ -156,6 +301,10 @@ rtc@51 {
|
||||
};
|
||||
};
|
||||
|
||||
&optee {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sata0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -49,6 +49,14 @@ &dpmac4 {
|
||||
managed = "in-band-status";
|
||||
};
|
||||
|
||||
&dpmac5 {
|
||||
phy-handle = <&inphi_phy>;
|
||||
};
|
||||
|
||||
&dpmac6 {
|
||||
phy-handle = <&inphi_phy>;
|
||||
};
|
||||
|
||||
&dpmac17 {
|
||||
phy-handle = <&rgmii_phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
@ -109,6 +117,15 @@ can-transceiver {
|
||||
};
|
||||
};
|
||||
|
||||
&emdio2 {
|
||||
status = "okay";
|
||||
|
||||
inphi_phy: ethernet-phy@0 {
|
||||
compatible = "ethernet-phy-id0210.7440";
|
||||
reg = <0x0>;
|
||||
};
|
||||
};
|
||||
|
||||
&esdhc0 {
|
||||
sd-uhs-sdr104;
|
||||
sd-uhs-sdr50;
|
||||
@ -202,6 +219,10 @@ rtc@51 {
|
||||
};
|
||||
};
|
||||
|
||||
&optee {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcs_mdio3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -1023,6 +1023,7 @@ usb0: usb@3100000 {
|
||||
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "host";
|
||||
snps,quirk-frame-length-adjustment = <0x20>;
|
||||
usb3-lpm-capable;
|
||||
snps,dis_rxdet_inp3_quirk;
|
||||
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||||
status = "disabled";
|
||||
@ -1034,6 +1035,7 @@ usb1: usb@3110000 {
|
||||
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "host";
|
||||
snps,quirk-frame-length-adjustment = <0x20>;
|
||||
usb3-lpm-capable;
|
||||
snps,dis_rxdet_inp3_quirk;
|
||||
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||||
status = "disabled";
|
||||
@ -1751,4 +1753,12 @@ dpmac18: ethernet@12 {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
firmware {
|
||||
optee: optee {
|
||||
compatible = "linaro,optee-tz";
|
||||
method = "smc";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -167,6 +167,14 @@ mdio@7 { /* Slot #8 (secondary EMI) */
|
||||
};
|
||||
};
|
||||
|
||||
&can0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&can1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&crypto {
|
||||
status = "okay";
|
||||
};
|
||||
@ -226,10 +234,17 @@ &emdio2 {
|
||||
};
|
||||
|
||||
&esdhc0 {
|
||||
sd-uhs-sdr104;
|
||||
sd-uhs-sdr50;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr12;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&esdhc1 {
|
||||
mmc-hs200-1_8v;
|
||||
mmc-hs400-1_8v;
|
||||
bus-width = <8>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -302,11 +317,17 @@ temperature-sensor@4c {
|
||||
rtc@51 {
|
||||
compatible = "nxp,pcf2129";
|
||||
reg = <0x51>;
|
||||
/* IRQ_RTC_B -> IRQ11_B(CPLD) -> IRQ11(CPU), active low */
|
||||
interrupts-extended = <&extirq 11 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&optee {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sata0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -43,6 +43,27 @@ reg_audio: regulator-audio {
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
reg_usbotg1: regulator-usbotg1 {
|
||||
compatible = "regulator-fixed";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_reg_usb_otg1>;
|
||||
regulator-name = "usb_otg_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
reg_camera: regulator-camera {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "mipi_pwr";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
gpio = <&pca6416_1 0 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
startup-delay-us = <100000>;
|
||||
};
|
||||
|
||||
reg_usdhc2_vmmc: regulator-usdhc2 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VSD_3V3";
|
||||
@ -67,6 +88,10 @@ sound {
|
||||
};
|
||||
};
|
||||
|
||||
&csi {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ecspi2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_espi2>;
|
||||
@ -90,6 +115,30 @@ &i2c2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c2>;
|
||||
status = "okay";
|
||||
|
||||
camera@3c {
|
||||
compatible = "ovti,ov5640";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ov5640>;
|
||||
reg = <0x3c>;
|
||||
clocks = <&clk IMX8MM_CLK_CLKO1>;
|
||||
clock-names = "xclk";
|
||||
assigned-clocks = <&clk IMX8MM_CLK_CLKO1>;
|
||||
assigned-clock-parents = <&clk IMX8MM_CLK_24M>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
AVDD-supply = <®_camera>; /* 2.8v */
|
||||
powerdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
|
||||
|
||||
port {
|
||||
/* MIPI CSI-2 bus endpoint */
|
||||
ov5640_to_mipi_csi2: endpoint {
|
||||
remote-endpoint = <&imx8mm_mipi_csi_in>;
|
||||
clock-lanes = <0>;
|
||||
data-lanes = <1 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c4 {
|
||||
@ -141,6 +190,18 @@ pca6416_1: gpio@21 {
|
||||
};
|
||||
};
|
||||
|
||||
&mipi_csi {
|
||||
status = "okay";
|
||||
ports {
|
||||
port@0 {
|
||||
imx8mm_mipi_csi_in: endpoint {
|
||||
remote-endpoint = <&ov5640_to_mipi_csi2>;
|
||||
data-lanes = <1 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&sai3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sai3>;
|
||||
@ -169,6 +230,24 @@ &uart3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg1 {
|
||||
vbus-supply = <®_usbotg1>;
|
||||
disable-over-current;
|
||||
dr_mode="otg";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg2 {
|
||||
pinctrl-names = "default";
|
||||
disable-over-current;
|
||||
dr_mode="host";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphynop2 {
|
||||
reset-gpios = <&pca6416_1 7 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
&usdhc2 {
|
||||
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
||||
pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
|
||||
@ -209,12 +288,26 @@ MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28 0x41
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_ov5640: ov5640grp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x19
|
||||
MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x19
|
||||
MX8MM_IOMUXC_GPIO1_IO14_CCMSRCGPCMIX_CLKO1 0x59
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pcal6414: pcal6414-gpiogrp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x19
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_reg_usb_otg1: usbotg1grp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_SAI3_RXC_GPIO4_IO29 0x19
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_sai3: sai3grp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6
|
||||
|
@ -263,7 +263,6 @@ &usdhc1 {
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
cap-power-off-card;
|
||||
pm-ignore-notify;
|
||||
keep-power-in-suspend;
|
||||
mmc-pwrseq = <&usdhc1_pwrseq>;
|
||||
status = "okay";
|
||||
|
@ -116,6 +116,13 @@ ethphy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <10000>;
|
||||
qca,disable-smarteee;
|
||||
vddio-supply = <&vddio>;
|
||||
|
||||
vddio: vddio-regulator {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -91,7 +91,6 @@ &usdhc1 {
|
||||
max-frequency = <50000000>;
|
||||
bus-width = <4>;
|
||||
no-1-8-v;
|
||||
pm-ignore-notify;
|
||||
keep-power-in-suspend;
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -91,7 +91,6 @@ &usdhc1 {
|
||||
max-frequency = <50000000>;
|
||||
bus-width = <4>;
|
||||
no-1-8-v;
|
||||
pm-ignore-notify;
|
||||
keep-power-in-suspend;
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -191,8 +191,10 @@ usbnet: usbether@1 {
|
||||
};
|
||||
|
||||
&usdhc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
||||
pinctrl-0 = <&pinctrl_usdhc2>;
|
||||
pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
|
||||
pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
|
||||
vmmc-supply = <®_vdd_3v3>;
|
||||
vqmmc-supply = <®_nvcc_sd>;
|
||||
cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
|
||||
@ -321,4 +323,28 @@ MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0
|
||||
MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194
|
||||
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4
|
||||
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4
|
||||
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4
|
||||
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4
|
||||
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4
|
||||
MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196
|
||||
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6
|
||||
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6
|
||||
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6
|
||||
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6
|
||||
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6
|
||||
MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
@ -63,7 +63,7 @@ opp-750M {
|
||||
&ecspi1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ecspi1>;
|
||||
cs-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
|
||||
cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
|
||||
spi-flash@0 {
|
||||
@ -86,6 +86,7 @@ pca9450: pmic@25 {
|
||||
pinctrl-0 = <&pinctrl_pmic>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
sd-vsel-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
regulators {
|
||||
reg_vdd_soc: BUCK1 {
|
||||
@ -228,6 +229,7 @@ MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3
|
||||
pinctrl_pmic: pmicgrp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141
|
||||
MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x141
|
||||
>;
|
||||
};
|
||||
|
||||
|
@ -57,7 +57,7 @@ reg_usb_otg1_vbus: regulator-usb-otg1 {
|
||||
&ecspi2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_spi2>;
|
||||
cs-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH>;
|
||||
cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -76,7 +76,7 @@ reg_usb_otg2_vbus: regulator-usb-otg2 {
|
||||
&ecspi2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_spi2>;
|
||||
cs-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH>;
|
||||
cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -96,7 +96,7 @@ reg_wifi_en: regulator-wifi-en {
|
||||
&ecspi2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_spi2>;
|
||||
cs-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH>;
|
||||
cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -255,6 +255,10 @@ opp-750M {
|
||||
};
|
||||
};
|
||||
|
||||
&disp_blk_ctrl {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&ecspi1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_spi1>;
|
||||
@ -282,6 +286,14 @@ fixed-link {
|
||||
};
|
||||
};
|
||||
|
||||
&gpu_2d {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&gpu_3d {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default";
|
||||
@ -632,6 +644,18 @@ &i2c4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pgc_gpu {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&pgc_gpumix {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&pgc_mipi {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart1>, <&pinctrl_uart1_gpio>;
|
||||
|
@ -7,6 +7,8 @@
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/power/imx8mm-power.h>
|
||||
#include <dt-bindings/reset/imx8mq-reset.h>
|
||||
#include <dt-bindings/thermal/thermal.h>
|
||||
|
||||
#include "imx8mm-pinfunc.h"
|
||||
@ -63,6 +65,12 @@ A53_0: cpu@0 {
|
||||
clock-latency = <61036>; /* two CLK32 periods */
|
||||
clocks = <&clk IMX8MM_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
nvmem-cells = <&cpu_speed_grade>;
|
||||
@ -78,6 +86,12 @@ A53_1: cpu@1 {
|
||||
clock-latency = <61036>; /* two CLK32 periods */
|
||||
clocks = <&clk IMX8MM_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
cpu-idle-states = <&cpu_pd_wait>;
|
||||
@ -91,6 +105,12 @@ A53_2: cpu@2 {
|
||||
clock-latency = <61036>; /* two CLK32 periods */
|
||||
clocks = <&clk IMX8MM_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
cpu-idle-states = <&cpu_pd_wait>;
|
||||
@ -104,6 +124,12 @@ A53_3: cpu@3 {
|
||||
clock-latency = <61036>; /* two CLK32 periods */
|
||||
clocks = <&clk IMX8MM_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
cpu-idle-states = <&cpu_pd_wait>;
|
||||
@ -112,6 +138,10 @@ A53_3: cpu@3 {
|
||||
|
||||
A53_L2: l2-cache0 {
|
||||
compatible = "cache";
|
||||
cache-level = <2>;
|
||||
cache-size = <0x80000>;
|
||||
cache-line-size = <64>;
|
||||
cache-sets = <512>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -589,8 +619,7 @@ clk: clock-controller@30380000 {
|
||||
<&clk IMX8MM_CLK_IPG_AUDIO_ROOT>,
|
||||
<&clk IMX8MM_SYS_PLL3>,
|
||||
<&clk IMX8MM_VIDEO_PLL1>,
|
||||
<&clk IMX8MM_AUDIO_PLL1>,
|
||||
<&clk IMX8MM_AUDIO_PLL2>;
|
||||
<&clk IMX8MM_AUDIO_PLL1>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>,
|
||||
<&clk IMX8MM_ARM_PLL_OUT>,
|
||||
<&clk IMX8MM_SYS_PLL3_OUT>,
|
||||
@ -600,8 +629,7 @@ clk: clock-controller@30380000 {
|
||||
<400000000>,
|
||||
<750000000>,
|
||||
<594000000>,
|
||||
<393216000>,
|
||||
<361267200>;
|
||||
<393216000>;
|
||||
};
|
||||
|
||||
src: reset-controller@30390000 {
|
||||
@ -610,6 +638,110 @@ src: reset-controller@30390000 {
|
||||
interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
gpc: gpc@303a0000 {
|
||||
compatible = "fsl,imx8mm-gpc";
|
||||
reg = <0x303a0000 0x10000>;
|
||||
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
|
||||
pgc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pgc_hsiomix: power-domain@0 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_HSIOMIX>;
|
||||
clocks = <&clk IMX8MM_CLK_USB_BUS>;
|
||||
assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
|
||||
};
|
||||
|
||||
pgc_pcie: power-domain@1 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_PCIE>;
|
||||
power-domains = <&pgc_hsiomix>;
|
||||
clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>;
|
||||
};
|
||||
|
||||
pgc_otg1: power-domain@2 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_OTG1>;
|
||||
power-domains = <&pgc_hsiomix>;
|
||||
};
|
||||
|
||||
pgc_otg2: power-domain@3 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_OTG2>;
|
||||
power-domains = <&pgc_hsiomix>;
|
||||
};
|
||||
|
||||
pgc_gpumix: power-domain@4 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_GPUMIX>;
|
||||
clocks = <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
|
||||
<&clk IMX8MM_CLK_GPU_AHB>;
|
||||
assigned-clocks = <&clk IMX8MM_CLK_GPU_AXI>,
|
||||
<&clk IMX8MM_CLK_GPU_AHB>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>,
|
||||
<&clk IMX8MM_SYS_PLL1_800M>;
|
||||
assigned-clock-rates = <800000000>, <400000000>;
|
||||
};
|
||||
|
||||
pgc_gpu: power-domain@5 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_GPU>;
|
||||
clocks = <&clk IMX8MM_CLK_GPU_AHB>,
|
||||
<&clk IMX8MM_CLK_GPU_BUS_ROOT>,
|
||||
<&clk IMX8MM_CLK_GPU2D_ROOT>,
|
||||
<&clk IMX8MM_CLK_GPU3D_ROOT>;
|
||||
resets = <&src IMX8MQ_RESET_GPU_RESET>;
|
||||
power-domains = <&pgc_gpumix>;
|
||||
};
|
||||
|
||||
pgc_vpumix: power-domain@6 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_VPUMIX>;
|
||||
clocks = <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
|
||||
assigned-clocks = <&clk IMX8MM_CLK_VPU_BUS>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>;
|
||||
};
|
||||
|
||||
pgc_vpu_g1: power-domain@7 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_VPUG1>;
|
||||
};
|
||||
|
||||
pgc_vpu_g2: power-domain@8 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_VPUG2>;
|
||||
};
|
||||
|
||||
pgc_vpu_h1: power-domain@9 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_VPUH1>;
|
||||
};
|
||||
|
||||
pgc_dispmix: power-domain@10 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_DISPMIX>;
|
||||
clocks = <&clk IMX8MM_CLK_DISP_APB_ROOT>,
|
||||
<&clk IMX8MM_CLK_DISP_AXI_ROOT>;
|
||||
assigned-clocks = <&clk IMX8MM_CLK_DISP_AXI>,
|
||||
<&clk IMX8MM_CLK_DISP_APB>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_1000M>,
|
||||
<&clk IMX8MM_SYS_PLL1_800M>;
|
||||
assigned-clock-rates = <500000000>, <200000000>;
|
||||
};
|
||||
|
||||
pgc_mipi: power-domain@11 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_MIPI>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
aips2: bus@30400000 {
|
||||
@ -947,7 +1079,6 @@ fec1: ethernet@30be0000 {
|
||||
fsl,num-rx-queues = <3>;
|
||||
nvmem-cells = <&fec_mac_address>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
nvmem_macaddr_swap;
|
||||
fsl,stop-mode = <&gpr 0x10 3>;
|
||||
status = "disabled";
|
||||
};
|
||||
@ -961,6 +1092,84 @@ aips4: bus@32c00000 {
|
||||
#size-cells = <1>;
|
||||
ranges = <0x32c00000 0x32c00000 0x400000>;
|
||||
|
||||
csi: csi@32e20000 {
|
||||
compatible = "fsl,imx8mm-csi", "fsl,imx7-csi";
|
||||
reg = <0x32e20000 0x1000>;
|
||||
interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_CSI1_ROOT>;
|
||||
clock-names = "mclk";
|
||||
power-domains = <&disp_blk_ctrl IMX8MM_DISPBLK_PD_CSI_BRIDGE>;
|
||||
status = "disabled";
|
||||
|
||||
port {
|
||||
csi_in: endpoint {
|
||||
remote-endpoint = <&imx8mm_mipi_csi_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
disp_blk_ctrl: blk-ctrl@32e28000 {
|
||||
compatible = "fsl,imx8mm-disp-blk-ctrl", "syscon";
|
||||
reg = <0x32e28000 0x100>;
|
||||
power-domains = <&pgc_dispmix>, <&pgc_dispmix>,
|
||||
<&pgc_dispmix>, <&pgc_mipi>,
|
||||
<&pgc_mipi>;
|
||||
power-domain-names = "bus", "csi-bridge",
|
||||
"lcdif", "mipi-dsi",
|
||||
"mipi-csi";
|
||||
clocks = <&clk IMX8MM_CLK_DISP_AXI_ROOT>,
|
||||
<&clk IMX8MM_CLK_DISP_APB_ROOT>,
|
||||
<&clk IMX8MM_CLK_CSI1_ROOT>,
|
||||
<&clk IMX8MM_CLK_DISP_AXI_ROOT>,
|
||||
<&clk IMX8MM_CLK_DISP_APB_ROOT>,
|
||||
<&clk IMX8MM_CLK_DISP_ROOT>,
|
||||
<&clk IMX8MM_CLK_DSI_CORE>,
|
||||
<&clk IMX8MM_CLK_DSI_PHY_REF>,
|
||||
<&clk IMX8MM_CLK_CSI1_CORE>,
|
||||
<&clk IMX8MM_CLK_CSI1_PHY_REF>;
|
||||
clock-names = "csi-bridge-axi","csi-bridge-apb",
|
||||
"csi-bridge-core", "lcdif-axi",
|
||||
"lcdif-apb", "lcdif-pix",
|
||||
"dsi-pclk", "dsi-ref",
|
||||
"csi-aclk", "csi-pclk";
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
|
||||
mipi_csi: mipi-csi@32e30000 {
|
||||
compatible = "fsl,imx8mm-mipi-csi2";
|
||||
reg = <0x32e30000 0x1000>;
|
||||
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
|
||||
assigned-clocks = <&clk IMX8MM_CLK_CSI1_CORE>,
|
||||
<&clk IMX8MM_CLK_CSI1_PHY_REF>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_1000M>,
|
||||
<&clk IMX8MM_SYS_PLL2_1000M>;
|
||||
clock-frequency = <333000000>;
|
||||
clocks = <&clk IMX8MM_CLK_DISP_APB_ROOT>,
|
||||
<&clk IMX8MM_CLK_CSI1_ROOT>,
|
||||
<&clk IMX8MM_CLK_CSI1_PHY_REF>,
|
||||
<&clk IMX8MM_CLK_DISP_AXI_ROOT>;
|
||||
clock-names = "pclk", "wrap", "phy", "axi";
|
||||
power-domains = <&disp_blk_ctrl IMX8MM_DISPBLK_PD_MIPI_CSI>;
|
||||
status = "disabled";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
imx8mm_mipi_csi_out: endpoint {
|
||||
remote-endpoint = <&csi_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usbotg1: usb@32e40000 {
|
||||
compatible = "fsl,imx8mm-usb", "fsl,imx7d-usb";
|
||||
reg = <0x32e40000 0x200>;
|
||||
@ -971,6 +1180,7 @@ usbotg1: usb@32e40000 {
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
|
||||
phys = <&usbphynop1>;
|
||||
fsl,usbmisc = <&usbmisc1 0>;
|
||||
power-domains = <&pgc_otg1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -990,6 +1200,7 @@ usbotg2: usb@32e50000 {
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
|
||||
phys = <&usbphynop2>;
|
||||
fsl,usbmisc = <&usbmisc2 0>;
|
||||
power-domains = <&pgc_otg2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -1030,6 +1241,50 @@ gpmi: nand-controller@33002000{
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpu_3d: gpu@38000000 {
|
||||
compatible = "vivante,gc";
|
||||
reg = <0x38000000 0x8000>;
|
||||
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_GPU_AHB>,
|
||||
<&clk IMX8MM_CLK_GPU_BUS_ROOT>,
|
||||
<&clk IMX8MM_CLK_GPU3D_ROOT>,
|
||||
<&clk IMX8MM_CLK_GPU3D_ROOT>;
|
||||
clock-names = "reg", "bus", "core", "shader";
|
||||
assigned-clocks = <&clk IMX8MM_CLK_GPU3D_CORE>,
|
||||
<&clk IMX8MM_GPU_PLL_OUT>;
|
||||
assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
|
||||
assigned-clock-rates = <0>, <1000000000>;
|
||||
power-domains = <&pgc_gpu>;
|
||||
};
|
||||
|
||||
gpu_2d: gpu@38008000 {
|
||||
compatible = "vivante,gc";
|
||||
reg = <0x38008000 0x8000>;
|
||||
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_GPU_AHB>,
|
||||
<&clk IMX8MM_CLK_GPU_BUS_ROOT>,
|
||||
<&clk IMX8MM_CLK_GPU2D_ROOT>;
|
||||
clock-names = "reg", "bus", "core";
|
||||
assigned-clocks = <&clk IMX8MM_CLK_GPU2D_CORE>,
|
||||
<&clk IMX8MM_GPU_PLL_OUT>;
|
||||
assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
|
||||
assigned-clock-rates = <0>, <1000000000>;
|
||||
power-domains = <&pgc_gpu>;
|
||||
};
|
||||
|
||||
vpu_blk_ctrl: blk-ctrl@38330000 {
|
||||
compatible = "fsl,imx8mm-vpu-blk-ctrl", "syscon";
|
||||
reg = <0x38330000 0x100>;
|
||||
power-domains = <&pgc_vpumix>, <&pgc_vpu_g1>,
|
||||
<&pgc_vpu_g2>, <&pgc_vpu_h1>;
|
||||
power-domain-names = "bus", "g1", "g2", "h1";
|
||||
clocks = <&clk IMX8MM_CLK_VPU_G1_ROOT>,
|
||||
<&clk IMX8MM_CLK_VPU_G2_ROOT>,
|
||||
<&clk IMX8MM_CLK_VPU_H1_ROOT>;
|
||||
clock-names = "g1", "g2", "h1";
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
|
||||
gic: interrupt-controller@38800000 {
|
||||
compatible = "arm,gic-v3";
|
||||
reg = <0x38800000 0x10000>, /* GIC Dist */
|
||||
|
@ -126,7 +126,6 @@ wm8962: audio-codec@1a {
|
||||
compatible = "wlf,wm8962";
|
||||
reg = <0x1a>;
|
||||
clocks = <&clk IMX8MN_CLK_SAI3_ROOT>;
|
||||
clock-names = "xclk";
|
||||
DCVDD-supply = <®_audio>;
|
||||
DBVDD-supply = <®_audio>;
|
||||
AVDD-supply = <®_audio>;
|
||||
|
@ -274,7 +274,6 @@ &usdhc1 {
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
cap-power-off-card;
|
||||
pm-ignore-notify;
|
||||
keep-power-in-suspend;
|
||||
mmc-pwrseq = <&usdhc1_pwrseq>;
|
||||
status = "okay";
|
||||
|
@ -97,6 +97,15 @@ mdio {
|
||||
ethphy0: ethernet-phy@0 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <0>;
|
||||
reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <10000>;
|
||||
qca,disable-smarteee;
|
||||
vddio-supply = <&vddio>;
|
||||
|
||||
vddio: vddio-regulator {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -63,6 +63,12 @@ A53_0: cpu@0 {
|
||||
clock-latency = <61036>;
|
||||
clocks = <&clk IMX8MN_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
nvmem-cells = <&cpu_speed_grade>;
|
||||
@ -78,6 +84,12 @@ A53_1: cpu@1 {
|
||||
clock-latency = <61036>;
|
||||
clocks = <&clk IMX8MN_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
cpu-idle-states = <&cpu_pd_wait>;
|
||||
@ -91,6 +103,12 @@ A53_2: cpu@2 {
|
||||
clock-latency = <61036>;
|
||||
clocks = <&clk IMX8MN_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
cpu-idle-states = <&cpu_pd_wait>;
|
||||
@ -104,6 +122,12 @@ A53_3: cpu@3 {
|
||||
clock-latency = <61036>;
|
||||
clocks = <&clk IMX8MN_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
cpu-idle-states = <&cpu_pd_wait>;
|
||||
@ -112,6 +136,10 @@ A53_3: cpu@3 {
|
||||
|
||||
A53_L2: l2-cache0 {
|
||||
compatible = "cache";
|
||||
cache-level = <2>;
|
||||
cache-size = <0x80000>;
|
||||
cache-line-size = <64>;
|
||||
cache-sets = <512>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -948,7 +976,6 @@ fec1: ethernet@30be0000 {
|
||||
fsl,num-rx-queues = <3>;
|
||||
nvmem-cells = <&fec_mac_address>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
nvmem_macaddr_swap;
|
||||
fsl,stop-mode = <&gpr 0x10 3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -86,6 +86,9 @@ &eqos {
|
||||
pinctrl-0 = <&pinctrl_eqos>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-handle = <ðphy0>;
|
||||
snps,force_thresh_dma_mode;
|
||||
snps,mtl-tx-config = <&mtl_tx_setup>;
|
||||
snps,mtl-rx-config = <&mtl_rx_setup>;
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
@ -97,6 +100,75 @@ ethphy0: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
eee-broken-1000t;
|
||||
reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <80000>;
|
||||
realtek,clkout-disable;
|
||||
};
|
||||
};
|
||||
|
||||
mtl_tx_setup: tx-queues-config {
|
||||
snps,tx-queues-to-use = <5>;
|
||||
snps,tx-sched-sp;
|
||||
|
||||
queue0 {
|
||||
snps,dcb-algorithm;
|
||||
snps,priority = <0x1>;
|
||||
};
|
||||
|
||||
queue1 {
|
||||
snps,dcb-algorithm;
|
||||
snps,priority = <0x2>;
|
||||
};
|
||||
|
||||
queue2 {
|
||||
snps,dcb-algorithm;
|
||||
snps,priority = <0x4>;
|
||||
};
|
||||
|
||||
queue3 {
|
||||
snps,dcb-algorithm;
|
||||
snps,priority = <0x8>;
|
||||
};
|
||||
|
||||
queue4 {
|
||||
snps,dcb-algorithm;
|
||||
snps,priority = <0xf0>;
|
||||
};
|
||||
};
|
||||
|
||||
mtl_rx_setup: rx-queues-config {
|
||||
snps,rx-queues-to-use = <5>;
|
||||
snps,rx-sched-sp;
|
||||
|
||||
queue0 {
|
||||
snps,dcb-algorithm;
|
||||
snps,priority = <0x1>;
|
||||
snps,map-to-dma-channel = <0>;
|
||||
};
|
||||
|
||||
queue1 {
|
||||
snps,dcb-algorithm;
|
||||
snps,priority = <0x2>;
|
||||
snps,map-to-dma-channel = <1>;
|
||||
};
|
||||
|
||||
queue2 {
|
||||
snps,dcb-algorithm;
|
||||
snps,priority = <0x4>;
|
||||
snps,map-to-dma-channel = <2>;
|
||||
};
|
||||
|
||||
queue3 {
|
||||
snps,dcb-algorithm;
|
||||
snps,priority = <0x8>;
|
||||
snps,map-to-dma-channel = <3>;
|
||||
};
|
||||
|
||||
queue4 {
|
||||
snps,dcb-algorithm;
|
||||
snps,priority = <0xf0>;
|
||||
snps,map-to-dma-channel = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -120,6 +192,7 @@ ethphy1: ethernet-phy@1 {
|
||||
reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <80000>;
|
||||
realtek,clkout-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -51,6 +51,12 @@ A53_0: cpu@0 {
|
||||
clock-latency = <61036>;
|
||||
clocks = <&clk IMX8MP_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
@ -62,6 +68,12 @@ A53_1: cpu@1 {
|
||||
clock-latency = <61036>;
|
||||
clocks = <&clk IMX8MP_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
@ -73,6 +85,12 @@ A53_2: cpu@2 {
|
||||
clock-latency = <61036>;
|
||||
clocks = <&clk IMX8MP_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
@ -84,12 +102,22 @@ A53_3: cpu@3 {
|
||||
clock-latency = <61036>;
|
||||
clocks = <&clk IMX8MP_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&A53_L2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
A53_L2: l2-cache0 {
|
||||
compatible = "cache";
|
||||
cache-level = <2>;
|
||||
cache-size = <0x80000>;
|
||||
cache-line-size = <64>;
|
||||
cache-sets = <512>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -369,6 +397,10 @@ cpu_speed_grade: speed-grade@10 {
|
||||
eth_mac1: mac-address@90 {
|
||||
reg = <0x90 6>;
|
||||
};
|
||||
|
||||
eth_mac2: mac-address@96 {
|
||||
reg = <0x96 6>;
|
||||
};
|
||||
};
|
||||
|
||||
anatop: anatop@30360000 {
|
||||
@ -785,7 +817,7 @@ flexspi: spi@30bb0000 {
|
||||
interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MP_CLK_QSPI_ROOT>,
|
||||
<&clk IMX8MP_CLK_QSPI_ROOT>;
|
||||
clock-names = "fspi", "fspi_en";
|
||||
clock-names = "fspi_en", "fspi";
|
||||
assigned-clock-rates = <80000000>;
|
||||
assigned-clocks = <&clk IMX8MP_CLK_QSPI>;
|
||||
#address-cells = <1>;
|
||||
@ -832,7 +864,6 @@ fec: ethernet@30be0000 {
|
||||
nvmem-cells = <ð_mac1>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
fsl,stop-mode = <&gpr 0x10 3>;
|
||||
nvmem_macaddr_swap;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -854,6 +885,8 @@ eqos: ethernet@30bf0000 {
|
||||
<&clk IMX8MP_SYS_PLL2_100M>,
|
||||
<&clk IMX8MP_SYS_PLL2_125M>;
|
||||
assigned-clock-rates = <0>, <100000000>, <125000000>;
|
||||
nvmem-cells = <ð_mac2>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
intf_mode = <&gpr 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -169,6 +169,11 @@ ethphy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <10000>;
|
||||
qca,disable-smarteee;
|
||||
vddio-supply = <&vddh>;
|
||||
|
||||
vddh: vddh-regulator {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -326,6 +331,10 @@ &pgc_gpu {
|
||||
power-supply = <&sw1a_reg>;
|
||||
};
|
||||
|
||||
&pgc_vpu {
|
||||
power-supply = <&sw1c_reg>;
|
||||
};
|
||||
|
||||
&qspi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_qspi>;
|
||||
|
@ -1,14 +1,9 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
// Copyright (C) 2020 Purism SPC <kernel@puri.sm>
|
||||
// Copyright (C) 2021 Purism SPC <kernel@puri.sm>
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx8mq-librem5.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Purism Librem 5r3";
|
||||
compatible = "purism,librem5r3", "purism,librem5", "fsl,imx8mq";
|
||||
};
|
||||
#include "imx8mq-librem5-r3.dtsi"
|
||||
|
||||
&a53_opp_table {
|
||||
opp-1000000000 {
|
||||
@ -16,22 +11,6 @@ opp-1000000000 {
|
||||
};
|
||||
};
|
||||
|
||||
&accel_gyro {
|
||||
mount-matrix = "1", "0", "0",
|
||||
"0", "1", "0",
|
||||
"0", "0", "-1";
|
||||
};
|
||||
|
||||
&bq25895 {
|
||||
ti,battery-regulation-voltage = <4200000>; /* uV */
|
||||
ti,charge-current = <1500000>; /* uA */
|
||||
ti,termination-current = <144000>; /* uA */
|
||||
};
|
||||
|
||||
&buck3_reg {
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
&proximity {
|
||||
proximity-near-level = <25>;
|
||||
};
|
||||
|
@ -1,31 +1,19 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
// Copyright (C) 2020 Purism SPC <kernel@puri.sm>
|
||||
// Copyright (C) 2021 Purism SPC <kernel@puri.sm>
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx8mq-librem5.dtsi"
|
||||
#include "imx8mq-librem5-r3.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Purism Librem 5r4";
|
||||
compatible = "purism,librem5r4", "purism,librem5", "fsl,imx8mq";
|
||||
};
|
||||
|
||||
&accel_gyro {
|
||||
mount-matrix = "1", "0", "0",
|
||||
"0", "1", "0",
|
||||
"0", "0", "-1";
|
||||
};
|
||||
|
||||
&bat {
|
||||
maxim,rsns-microohm = <1667>;
|
||||
};
|
||||
|
||||
&bq25895 {
|
||||
ti,battery-regulation-voltage = <4200000>; /* uV */
|
||||
ti,charge-current = <1500000>; /* uA */
|
||||
ti,termination-current = <144000>; /* uA */
|
||||
};
|
||||
|
||||
&led_backlight {
|
||||
led-max-microamp = <25000>;
|
||||
};
|
||||
|
@ -14,6 +14,7 @@
|
||||
/ {
|
||||
model = "Purism Librem 5";
|
||||
compatible = "purism,librem5", "fsl,imx8mq";
|
||||
chassis-type = "handset";
|
||||
|
||||
backlight_dsi: backlight-dsi {
|
||||
compatible = "led-backlight";
|
||||
@ -40,12 +41,14 @@ vol-down {
|
||||
label = "VOL_DOWN";
|
||||
gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_VOLUMEDOWN>;
|
||||
debounce-interval = <50>;
|
||||
};
|
||||
|
||||
vol-up {
|
||||
label = "VOL_UP";
|
||||
gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_VOLUMEUP>;
|
||||
debounce-interval = <50>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -60,6 +63,40 @@ reg_aud_1v8: regulator-audio-1v8 {
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
/*
|
||||
* the pinctrl for reg_csi_1v8 and reg_vcam_1v8 is added to the PMIC
|
||||
* since we can't have it twice in the 2 different regulator nodes.
|
||||
*/
|
||||
reg_csi_1v8: regulator-csi-1v8 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "CAMERA_VDDIO_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
vin-supply = <®_vdd_3v3>;
|
||||
gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
/* controlled by the CAMERA_POWER_KEY HKS */
|
||||
reg_vcam_1v2: regulator-vcam-1v2 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "CAMERA_VDDD_1V2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
vin-supply = <®_vdd_1v8>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
reg_vcam_2v8: regulator-vcam-2v8 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "CAMERA_VDDA_2V8";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
vin-supply = <®_vdd_3v3>;
|
||||
gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
reg_gnss: regulator-gnss {
|
||||
compatible = "regulator-fixed";
|
||||
pinctrl-names = "default";
|
||||
@ -138,9 +175,14 @@ reg_vsys_3v4: regulator-vsys-3v4 {
|
||||
|
||||
reg_wifi_3v3: regulator-wifi-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_wifi_pwr>;
|
||||
regulator-name = "3V3_WIFI";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpio = <&gpio3 10 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
vin-supply = <®_vdd_3v3>;
|
||||
};
|
||||
|
||||
sound {
|
||||
@ -193,6 +235,14 @@ simple-audio-card,codec {
|
||||
};
|
||||
};
|
||||
|
||||
usdhc2_pwrseq: pwrseq {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_bt>, <&pinctrl_wifi_disable>;
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio4 29 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
bm818_codec: sound-wwan-codec {
|
||||
compatible = "broadmobi,bm818", "option,gtm601";
|
||||
#sound-dai-cells = <0>;
|
||||
@ -222,10 +272,14 @@ &A53_3 {
|
||||
cpu-supply = <&buck2_reg>;
|
||||
};
|
||||
|
||||
&csi1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ddrc {
|
||||
operating-points-v2 = <&ddrc_opp_table>;
|
||||
|
||||
ddrc_opp_table: ddrc-opp-table {
|
||||
ddrc_opp_table: opp-table {
|
||||
compatible = "operating-points-v2";
|
||||
|
||||
opp-25M {
|
||||
@ -307,6 +361,27 @@ MX8MQ_IOMUXC_NAND_DQS_GPIO3_IO14 0x83
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_bt: btgrp {
|
||||
fsl,pins = <
|
||||
/* BT_REG_ON */
|
||||
MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x83
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_camera_pwr: camerapwrgrp {
|
||||
fsl,pins = <
|
||||
/* CAMERA_PWR_EN_3V3 */
|
||||
MX8MQ_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x83
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_csi1: csi1grp {
|
||||
fsl,pins = <
|
||||
/* CSI1_NRST */
|
||||
MX8MQ_IOMUXC_ENET_RXC_GPIO1_IO25 0x83
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_charger_in: chargeringrp {
|
||||
fsl,pins = <
|
||||
/* CHRG_INT */
|
||||
@ -638,6 +713,20 @@ MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_wifi_disable: wifidisablegrp {
|
||||
fsl,pins = <
|
||||
/* WIFI_REG_ON */
|
||||
MX8MQ_IOMUXC_SAI3_RXC_GPIO4_IO29 0x83
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_wifi_pwr: wifipwrgrp {
|
||||
fsl,pins = <
|
||||
/* WIFI3V3_EN */
|
||||
MX8MQ_IOMUXC_NAND_DATA04_GPIO3_IO10 0x83
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_wdog: wdoggrp {
|
||||
fsl,pins = <
|
||||
/* nWDOG */
|
||||
@ -689,7 +778,7 @@ pmic: pmic@4b {
|
||||
compatible = "rohm,bd71837";
|
||||
reg = <0x4b>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pmic>;
|
||||
pinctrl-0 = <&pinctrl_pmic>, <&pinctrl_camera_pwr>;
|
||||
clocks = <&pmic_osc>;
|
||||
clock-names = "osc";
|
||||
clock-output-names = "pmic_clk";
|
||||
@ -922,6 +1011,31 @@ codec: audio-codec@1a {
|
||||
>;
|
||||
};
|
||||
|
||||
camera_front: camera@20 {
|
||||
compatible = "hynix,hi846";
|
||||
reg = <0x20>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_csi1>;
|
||||
clocks = <&clk IMX8MQ_CLK_CLKO2>;
|
||||
assigned-clocks = <&clk IMX8MQ_CLK_CLKO2>;
|
||||
assigned-clock-rates = <25000000>;
|
||||
reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
|
||||
vdda-supply = <®_vcam_2v8>;
|
||||
vddd-supply = <®_vcam_1v2>;
|
||||
vddio-supply = <®_csi_1v8>;
|
||||
rotation = <90>;
|
||||
orientation = <0>;
|
||||
|
||||
port {
|
||||
camera1_ep: endpoint {
|
||||
data-lanes = <1 2>;
|
||||
link-frequencies = /bits/ 64
|
||||
<80000000 200000000 300000000>;
|
||||
remote-endpoint = <&mipi1_sensor_ep>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
backlight@36 {
|
||||
compatible = "ti,lm36922";
|
||||
reg = <0x36>;
|
||||
@ -995,6 +1109,23 @@ &lcdif {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mipi_csi1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
mipi1_sensor_ep: endpoint {
|
||||
remote-endpoint = <&camera1_ep>;
|
||||
data-lanes = <1 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mipi_dsi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@ -1010,6 +1141,7 @@ lcd_panel: panel@0 {
|
||||
vddi-supply = <®_lcd_1v8>;
|
||||
backlight = <&backlight_dsi>;
|
||||
reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
|
||||
mantix,tp-rstn-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
|
||||
|
||||
port {
|
||||
panel_in: endpoint {
|
||||
@ -1055,13 +1187,13 @@ &pwm2 {
|
||||
|
||||
&pwm3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_led_g>;
|
||||
pinctrl-0 = <&pinctrl_led_r>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm4 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_led_r>;
|
||||
pinctrl-0 = <&pinctrl_led_g>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -1199,7 +1331,10 @@ &usdhc2 {
|
||||
pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
|
||||
bus-width = <4>;
|
||||
vmmc-supply = <®_wifi_3v3>;
|
||||
mmc-pwrseq = <&usdhc2_pwrseq>;
|
||||
post-power-on-delay-ms = <1000>;
|
||||
cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
|
||||
max-frequency = <50000000>;
|
||||
disable-wp;
|
||||
cap-sdio-irq;
|
||||
keep-power-in-suspend;
|
||||
|
@ -12,6 +12,7 @@
|
||||
/ {
|
||||
model = "MNT Reform 2";
|
||||
compatible = "mntre,reform2", "boundary,imx8mq-nitrogen8m-som", "fsl,imx8mq";
|
||||
chassis-type = "laptop";
|
||||
|
||||
pcie1_refclk: clock-pcie1-refclk {
|
||||
compatible = "fixed-clock";
|
||||
@ -202,6 +203,7 @@ MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x45
|
||||
|
||||
pinctrl_usdhc2: usdhc2grp {
|
||||
fsl,pins = <
|
||||
MX8MQ_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0
|
||||
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83
|
||||
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3
|
||||
MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3
|
||||
|
@ -69,6 +69,9 @@ ethphy0: ethernet-phy@4 {
|
||||
reg = <4>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
|
||||
reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <300>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -191,20 +194,20 @@ MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f
|
||||
MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f
|
||||
MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f
|
||||
MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91
|
||||
MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91
|
||||
MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0xd1
|
||||
MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91
|
||||
MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91
|
||||
MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91
|
||||
MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91
|
||||
MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x19
|
||||
MX8MQ_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x59
|
||||
MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0xd1
|
||||
MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x1
|
||||
MX8MQ_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x41
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c1: i2c1grp {
|
||||
fsl,pins = <
|
||||
MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL 0x4000007f
|
||||
MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA 0x4000007f
|
||||
MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL 0x40000022
|
||||
MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000022
|
||||
>;
|
||||
};
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user